Interestingly, it seems that Microsoft hast just renamed its "Visual Studio Online" (which was basically the same as this new product) to "Visual Studio Codespaces". So it seems that they are merging these two products. (See: https://visualstudio.microsoft.com/services/visual-studio-co...)
Codespaces uses the same underlying technology as Visual Studio Codespaces to bring a fully GitHub-native experience to our GitHub users. We've been working with multiple teams on the Visual Studio side to make this happen (I work as the product lead on Codespaces)
Similarly Github Actions is reusing a lot of Azure Pipelines under the hood.
One of the most impressive parts about Microsoft's recent acquisitions is how quickly essentially two separate companies are now sharing code. It's hard enough to get different teams/products in the same company to use shared code in a meaningful way, and Microsoft has accomplished it with a new company.
Azure storage is definitely the black sheep. They cleaned up the VM/compute layer a few years ago with the introduction of Azure Resource Manager (ARM), but storage hasn't gotten that big an overhaul yet. And it shows. They seem to be slowly improving things under the hood though...
What's the issue with Azure Storage? It seems to me like it's one of the azure cloud services that are the least painful to use - at least through the official SDKs
For Github Actions, the product launch has been a major success and has become a new monetizable product. Anecdotally, I've heard of some companies moving their Jenkins/Circle CI/Travis CI workflows over to it, better proof is the sheer number of Github Actions that are now easy to install. This also allows Github to compete directly with Bitbucket and Bitbucket pipelines.
If your question is about who is asking for Github Codespaces, I'm not totally sure. Personally, for small changes it would be nice to be able to edit directly in Github but I certainly wouldn't pay for it. I imagine that core why behind this product release (besides the fact that most of this functionality was already pre-built and easy to reuse) is that it improves the user experience for anyone working from their chromeOS device, tablet and phone improving brand loyalty and capturing new users, especially students who may only have chromeOS devices.
As an OSS developer, Github actions make a lot of sense and is very welcome since it's very easy to setup (now! it was impossible in the beginning) and if you use bash scripts/npm scripts AND a tiny bit of workflow code then they are very agnostic as well.
I am unsure about this Github Codespaces though, I'll be testing it but I am fairly skeptical about invest a lot in Github-specific tooling beyond what is needed by a typical repo. It seems like Github has been trying to "extend" git into a proprietary phase for a while, and now with Microsoft backing it I'll wait to see if it's still the same old concept of locking you in deep and then do as they please. Not sure, it does look like they are going nice for now, but I personally prefer to wait.
This Codespaces doesn't solve a specific need I could point out like Actions did before, but maybe I'm just not their target.
I can imagine this being very useful in educational settings. Instead of students and teachers spending time on getting everyone's lab environments set up they just fork the course repository and tada it's there and it works.
For private repos, Codespaces will help on-boarding new team members or employees who don't have to waste time setting up a dev environment to contribute back.
I would love to have this stuff in theory but in practice, it hasn't worked for me.
I'm responsible for about 15 different Rails apps. These apps were built over the last 8 years and many have some nasty dependencies that make setting up a dev environment for them a pain. Or running tests a pain or whatever.
So many no one has touched in years but then some bug needs to be addressed in them. Today I have to get the app running again on my machine and there's always some silly timesink that makes the trivial change take too long.
For me ideally, I'd have two docker style images, one production, one test/development that just adds the dev resources to the production image. And then I could jump into any editor and see the changes live online without even installing docker on my machine.
Having a full dev system online means I can make changes from my phone, or really any internet connected device.
At this point, I don't have any interest in using such a system for my day to day work. But for my oddball stuff a well designed one would be great.
I can easily see at least one use: we have some outsourced dev work. It is painful to get them up and running because we have to set up remote desktop with everything that goes along with that, simply in order to let them edit code and run builds.
I imagine MS/GH will be selling to people like us the idea that we can simply make our GH repos the dev environments, and so all the access controls which we apply for managing interaction with the dev environment get us the appropriate dev environment for (effectively) free, and we throw out the desktop VMs.
Have you asked them? You can hit up pretty much anyone these days on Twitter and they'll respond, if the question is reasonable. You make it sound like someone owes you a response.
If this is about GitHub Actions specifically there is quite a bit of info at https://github.blog/2019-08-08-github-actions-now-supports-c.... My takeaway is that it's about packaging up Azure Pipelines in a way that GitHub users understand and complements other features. There are more jarring ways to integrate the products.
> You make it sound like someone owes you a response.
I didn't interpret the comment that way.
BTW, I'm not saying your interpretation is "not true" or "crazy" or anything like that. I just think it is better to keep this kind of (bad faith) interpretation private. I think it is useful to remember this HN guideline "Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith." [1]
The benefit, which is not spelled out there, is that if more of us do this, there will be fewer amplifications / chain-reactions of misinterpretations. This results in a more useful discussion.
For the love of God please make it work at least manageably in phones! Tall ask no doubt, but y'all seem capable of it. GitHub does everything right except getting the phone experience right!
I’ve used GitHub’s in browser editor to make minor changes to a PR from my phone while out at dinner. It was possible, but made me wish it was a little bit better.
I don’t think I would spend a day writing on my phone, but it’s really useful having this mobile.
I also use GitLab and their “web ide” (I think it’s called) is nice for changes by non-developers who don’t ever have a dev environment. We use a lot of config and docs repos that analysts use to update project material and they use the browser exclusively. I also approve merge requests from my phone almost daily to regenerate the static sites.
I'm gonna say you are in the minority there. Firstly, a Review should be just that a review of the code - not just a blind acceptance of a button. Its going to be hard to properly review code, which may be across multiple files, or may require switching within the same file, on a phone.
And secondly, work life balance, just because you can work while waiting in line for groceries doesn't mean you should
Firstly, I know my repo quite well and can generally (not always) tell whats happening with a PR without having to switch too many files. Even if I need to do that, I've been able to do that just fine on GitHubs desktop page so if it's not easy on a mobile now it's just a usability problem. It's a little bit much to say there's only one right way to do PRs or even write code.
Secondly, work life balance is a choice. Glad you make it, no one should ever be coerced against it, but I want to choose what I do. I'd rather look at my company code than what Kim Kardashians butt looks like on the Us weekly issue in the aisle. Also a bit presumptuous to assume it's only work, I have a personal website as well and I actually want to work on that whenever I have downtime.
My main usage of the app so far has been to approve PRs when pair/mob programming. Instead of going back to my desk where my computer is, I can approve the PR I've co-authored immediately.
Obviously it's quite a narrow use case, but I imagine there are lots of similar cases where the review is simple for one reason or the other and you want to get it done quickly.
Why would you need Codespaces for that? They released a standalone GitHub app recently just for this purpose. Not sure if it also works with the web version. But Codespaces seems to be the wrong tool for this job.
Their app is still outrageously feature incomplete in some ways. Can't create a branch! Can't edit files! Still better than their mobile site though but I end up opening their site in desktop mode to do any real work on my mobile. Super annoying!
Something I don’t yet understand about GitHub Codespaces is: can you execute a Dockerfile from it? Can you execute multiple ones? Can you execute docker-compose configurations?
Is it just an editor, or can it also spin an AWS (or Azure?) instance of the code you are writing?
I have seen people mention they can code from an iPad; but that’s not a complete workstation replacement unless it is easy to run your code.
I'm very excited about this! I hope you can host Codespaces in Australia as well so the latency is nice and fast! I tried VSO but I could only deploy to Singapore and it wasn't fast enough for me in Australia.
So I imagine this is similar to codesandbox.io which already lets you do frontendy bits?
I imagine the way Code spaces works is you spin up a container in azure with checked out GitHub branch, vscode on the browser then interfaces with the container(s).
Pretty neat idea if you can customize the docker container setup like a simple docker compose file or something.
Is the codespaces team hiring by any chance? I took a look at GitHub Jobs, and there are a few positions I could apply to there, but none directly related.
Visual Studio Online (before the recent renaming as Azure DevOps) was at first, and for years, a Team Fondation server in the cloud an associated service. Naming, renaming, re-renaming is always quite an issue with Microsoft products.
Their remote development capability is amazing and was quite a game changer for me. Having a nice ide where all of the plugins work on a remote server as if everything is local is so nice!
The SSH plugin is insanely good. I can dev from a Windows machine and SSH into my Mac and do React Native (native) iOS modules. Even my zsh shell acts as if it's local. Running `pod install` from Windows. It's seemless.
+1 to this. $DAYJOB has some proprietary ssh handling, but I can dev from my work-issued macbook into a Linux desktop in the office and vscode "just works"
+1 on this -- I had lots of remote issues when traveling to Windows desktop locations. It was surprising how few good solutions (hint: 0) I found. Until VSCode, which has been awesome.
I agree. I was floored by how well it worked, and actually had doubts that it was working in the way I expected it to/it's supposed to. It was just so seamless and natural. I kept thinking there was no way it was using the correct configuration, running the right scripts, etc.
It was a lifesaver too. I was using a severely under-powered ThinkPad and I'm admittedly awful with Windows. Being able to quickly swap to that remote setup reduced a tremendous amount of friction for me.
So nice when it works and has been breaking incredibly badly for me recently. The Python extensions that vscode was trying to bring up whenever I connected to my remote had some weird interaction with a virtualenv and just pinned the server to 100% CPU and rendered it completely unresponsive. Repeatedly. Reboot to recover.
Generally extremely good, but for obvious reasons this makes me think twice about connecting to some things.
That's not the same at all. The emacs one is equivalent to all the other text editors that were able to open and save to SSH. Vscode allows remote plugin installation, so things like intellisense work on a code base of millions of lines remotely.
I've absolutely had gtags+semantic on remote C++ projects working just fine with Emacs and Tramp. Python+Flask, too, come to think of it. Oh, and Ruby, including full projectile integration along with automated test execution integration.
The key is Projectile+Tramp; I suppose you coulde use EDE, but I prefer Projectile.
I wish IntelliJ moves in this direction so bad - would gladly pay more for this. I tried switching to VS Code for my current project yesterday and it's the best VS Code scenario out of my projects - backend RoR frontend React/TS. TypeScript aspect is amazing but the Rails part is nowhere close to RubyMine.
.NET (Core) was inferior to any IDE (even Xamarin ones) last time I tried it (~6 months back). IntelliJ Rider has been quite an amazing discovery in this regard - I prefer it to Visual Studio.
And then there are things like mobile development which VS Code has realistically no chance of touching.
Any language I can think of other than TypeScript - VSCode just cannot come close to IntelliJ support. I would pay for the ability to have a desktop machine on which I could SSH develop from say a Windows tablet/2in1 with integrated 4G and hardware powerful enough to run the client editor + productivity apps and has portability + battery life (say some intel low power series + 8GB ram)
VSCode team's highest priority is Javascript/Typescript, everything else is just trailing behind. Python and C++ are the very well supported ones. .NET is still really bad.
RubyMine can become a resource hog - even when it's not acting up the VSCode responsiveness is a noticeable improvement for me (and I'm working on a i9 MBP with 32gb ram !) - for example code refreshes analysis hints and opens autocomplete much faster.
I don't trust any refactoring tool to do cross file refactoring correctly in JS/TypeScript and the code navigation stuff in VSCode has been rock solid for me - I don't really miss anything and it's a much faster environment to work in - if I just had to do JS/TS development I could switch without any issues.
I've been doing some AOSP customization (Android 9) and I have several remote (Ubuntu) servers hosting/building OS images for different implementations (it takes too much disk space for a local PC and even so, I have a Windows based PC because of reasons, so if I had to use VMs, it would be too slow).
Now I can use intellisense through the entire Linux folder without delays. And... a global search for a string takes no more than 2 seconds. And I am talking about a string search through the entire codebase (not just the kernel; thousands of files).
My days are brighter, my life happier, my mood changed; thank you whoever invented this!
True, I love it and it has been a game changer. The only problem with that is that it only works with the official VSCode, not with the OSS counterpart, which is a damn shame.
Is there a way yet for me to run a server on Windows, and be able to code anywhere from my web browser? I basically want code-server that works on Windows.
I wish the vscode remote dev functionality didn't require a binary server/remote side component. I have a bunch of users who want to use it, but it's not compatible with the system libraries on our servers and dev environments.
Reminds me of a job in a past life I was quite happy to leave. It seemed like all I did was clean up low-end websites compromised through Frontpage extensions.
That was a year I'll never get back, but I do highly recommend the fun of leaving _vti_bin/ directories laying around with funny-behaving things in them. Every few months I still see evidence in my personal site logs of a script kiddie slowly becoming enraged as they figure out I left them a busy box to play with.
It seems like it runs all the functionality on the remote end, and the vscode instance you're running on the machine in front of you is just the GUI. To install this, you need ssh access, and then it drops some binaries on the remote system and uses ssh to start them up -- so it looks to a layman trying to get this working that "it only needs ssh", but that's just for the install stage. These binaries only work with more recent releases of glibc.
You know what's interesting about some of the features listed on that page:
- Develop on the same operating system you deploy to or use larger or more specialized hardware.
- Sandbox your development environment to avoid impacting your local machine configuration.
- Make it easy for new contributors to get started and keep everyone on a consistent environment.
- Use tools or runtimes not available on your local OS or manage multiple versions of them.
- Access an existing development environment from multiple machines or locations.
We have all those already with the way our development environments are setup, but the reason people want to use vscode is for the editor, no one asks about the above things.
So then perhaps you could mount the remote file system with something like SSHFS and use VS Code locally?
I don’t understand what VSCode could provide that would be useful while not executing any code on the server side. It sounds like what you’re really asking is that vscode be made compatible with older version of glibc?
sshfs is god awful slow for heavy local editor use. I don't understand what vscode provides other than an editor when all those capabilities are something that already exists when working directly on a remote machine, either.
I am asking that vscode be made compatible with older, established builds of glibc; or that the server component be open source so it's potentially possible to get it to work.
The article has a lot to do with containers. When you spin up a code space, you get a containerized workspace for the current repository.
> Codespaces sets up a cloud-hosted, containerized, and customizable VS Code environment. After set up, you can connect to a codespace through the browser or through VS Code.
(But that wasn’t what the parent was referring to...)
There are perpetual reminders all around that Microsoft's only pretending to like f/oss because that's where the developer attention (and thus corporate money) is. There's spyware in all of their open source apps (TypeScript excluded, because they couldn't get away with it there) that you can of course patch out, but you can't get it removed from the project because, free software or not, Microsoft gets to decide what goes in or out.
Bet you a dollar the GitHub mobile app that's going to come out pretty soon will also be totally proprietary with no source provided. It's a growing trend in developer tooling: even Docker's desktop versions (not Microsoft's fault, but still) are not even open source (much less free software).
It's going to be really sad in a few years when Microsoft starts turning the screws to extract more revenue from this free software ecosystem (GitHub/npm) that they are coming to exert major control over.
Soon, the most common "industry standard" tooling for the largest and most popular software development ecosystem (javascript) will rely heavily on proprietary software that spies on you continuously while you use it, just like Windows.
> Bet you a dollar the GitHub mobile app that's going to come out pretty soon will also be totally proprietary with no source provided.
Stable version already came out a while ago, been using it on my phone. Also, GitHub the website has never been open source and they never pretended it was or was going to be, so no one was holding breath for source code of the mobile app.
I'm pretty sure it wouldn't. The mobile app isn't something that requires a ton of support anyway. What good would the source code do you in this case?
Not really. At least: the web happened well before IE was introduced as an answer. In contrast, VS Code was invented much later than git which at the time was an established technology and in some ways a standard.
The other context here is that IE was a competitive browser in its time: 1998-2001. The problem is that it won and then languished. IE had a lot of sway over how developers built things as the market share grew. Then it locked in users in various ways which starved the other competitors.
It took until Phoenix (now Firefox), for there to be something better that grabbed the attention of developers and those sick of being stuck with IE. It became Firefox and Mozilla hatched a pretty effective plan to steal market share. For all of Mozilla's recent failings, we forget (or weren't around to remember) the success of Firefox was pretty impressive as it was a grassroots effort.
I think the downvotes are because Microsoft has been providing some amazing tools completely free of charge. If that helps them sell more Azure... great! Everyone wins, except GitLab and AWS.
Some of us have longer memories of Microsoft's game-plan - embrace and extend. With so man now willing to grant Microsoft open source cred don't forget that it wasn't so long ago that Microsoft was running a Linux patent racket. If we allow The Beast to monopolise open source development tools we have only ourselves to blame.
Not at all. There are no objective criteria to define spyware that do not also apply to Windows or VS Code (and probably the GitHub mobile app, but I have not yet confirmed that).
My hope and suspicion is this will have a significant impact on the number of improvements to open-source projects and particularly little things like js components.
Just in the last few days, I've come across a few very minor bugs, with a one-line fix. In order to make that change, I currently need to fork the repo, download it, make the change (turn off my prettier or adapt to the repo's) then make the PR.
I'm hoping with this I can just make a PR in the owner's package. It's the difference between a 10 minute commit and a 1 minute change.
GitHub's editor is useful for simple fixes, (formatting, markdown, typos,) but Codespaces seems extremely useful in building a reproducible dev environment for more complex packages / projects, including build tooling!
If you could have a fully-functional dev environment with pre-installed dependencies in 10s and the package takes 48 seconds to build and test, then you could.
I'm aware of several places in my team's codebase where you can change a couple of characters and break the entire company if you didn't test the change.
There's a very big difference between editing a file in a textbox and editing a file in an IDE pre-configured to have all the correct dependencies, extensions, build&test scripts, intellisense, etc.
The set of single line changes I'd be comfortable making with full IDE support is much larger than the set of one line changes I'd be comfortable making in a text box.
I feel like even with one-line fixes, having the tests run before committing (to see the CI/CD results instead) would give people a lot more confidence in making those changes.
Personally speaking, I'd be worried that I end up making 15 commits to get everything right and the history in that PR would be slightly embarrassing. Having the live linting, intellisense and tests makes pushing a single commit a lot easier.
Yeah, where this gets really interesting is in the integration with the project's build system, CI, and test environments.
I'm envisioning a project with a full automated build and test suite with an on-demand staging environment for each change (the k8s docs project does this, at least it did the last time I chucked a typo PR over the wall).
With proper integration to the editor you could have an extremely slick dev environment instantly available for any casual passerby. Once implemented, this would greatly simplify maintainers' lives as well!
The edit button is perfect for fixing typos; I don't think I've ever even used it for any other purpose. Tidying-up typos up as you're passing through is a small way in which anyone can help contribute! It's like picking up pieces of trash as you're strolling through a park.
a bit of a noob question. I'd love to be able to tweak code on the spot. Like I'm showing something to my boss and he wants something quickly adjusted, I write a couple lines, commit and then with Github Actions I get back an updated executable immediately
But I feel like things are set up explicitly to not work this way. Maybe I'm doing something wrong but can you trigger a rebuild of a prerelease?
It seems you need to setup a new tag and a new release version to ever get a rebuild. There are explicitly no official Actions for updating releases. A new release for a one line change seems a bit crazy (and you'll get a huge clutter of releases which is confusing for users)
You can set up your actions to build an executable for each commit on the master branch, it will be available as an artifact in the actions tab. This is useful if you want to test your built code.
Generally speaking, you shouldn't modify existing releases, since somebody may have downloaded them and he will have no way of knowing you have improved them.
I guess you're right. That this is the expected workflow. The way the UI by default dumps Prereleases and Releases together (with very small faint font to distinguish them) in the same tab called "Releases" is an issue so I sorta understand why you feel it'd be confusing. The UI is no good, but this is not an insurmountable problem
It's true you can have a latest artifact.. I will try using that - but I can't email a colleague and tell him/her to download an artifact. There is no "latest build action artifact" page and there is so much extraneous information that if they've never used github you'd need to attach an explanation of where to click.
I didn't feel my use-case was particularly unusual, but I guess it's doesn't fit Github's model.
Hopefully the licensing requirements can be made simple as well!
I recently wanted to submit a 3 character change to golang that significantly speeds up strconv.ParseFloat(), but lost interest about 2-3 minutes into reading this: https://golang.org/doc/contribute.html
CLA's are imposed by companies, not licenses. I'm quire sure that companies with OSS projects under GPL licenses would still want external contributors to certify that the code they contribute is theirs to contribute and can legally be licensed as GPL.
The owner of a GPL project doesn't own the copyright for contributed code (and therefore can't license it themselves under GPL), unless they receive a copyright assignment.
diff --git a/src/strconv/atof.go b/src/strconv/atof.go
index 28ad094..49cec69 100644
--- a/src/strconv/atof.go
+++ b/src/strconv/atof.go
@@ -410,12 +410,12 @@ out:
}
// Exact powers of 10.
-var float64pow10 = []float64{
+var float64pow10 = [...]float64{
1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
1e20, 1e21, 1e22,
}
-var float32pow10 = []float32{1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10}
+var float32pow10 = [...]float32{1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10}
// If possible to convert decimal representation to 64-bit float f exactly,
// entirely in floating-point math, do so, avoiding the expense of decimalToFloatBits.
math.Pow10() already uses arrays this way, and I found a ~10% performance while optimizing an alternative float parsing implementation by making the same change.
Didn't you just poison this change and ensure that it can never be applied? Having posted this anonymously, nobody can sign the Contributor License Agreement and promise truthfully that this is original code that they have the rights to contribute. Including yourself, in the future.
You can not copyright the ... (dot dot dot) nor can you claim copyright to an existing work by adding ... to it. You might be able to pattern it though...
I don't know the specifics of Google's contributor agreement (you need to log in with a Google account just to read it), but in my experience they are much stricter than copyright law. I've heard of organizations that would like to force people to sign contributor agreements just to be allowed to open GitHub issues. Because the issue might contain information that might taint everything. At least in the view of corporate lawyers.
Sure - I'm just venting. I found something trivial that makes a small difference, but the contribution process was overly cumbersome.
To the parent poster's point, I feel if I could easily submit even a small subset of the trivial changes I have sitting around in local forks, it'd greatly improve several projects.
Must be fun for @sytse to watch these GitHub announcements every year, where they consistently release the same thing GitLab rolled out two years prior.
a) Gitlab.com is ridiculously slow. Even the CEO admits they failed to invest in it.
b) You can't disable features you don't need so you end up with a sidebar full of Kubernetes and Security features for a Git project dedicated to documentation.
c) Staggering amount of open issues and merge requests so you feel discouraged from even raising anything since it just gets lost in the weeds.
d) On the main Git project screen there are 15 buttons. Including again ones for "Add Kubernetes cluster" or "Add License" which you can't remove or hide even though it's irrelevant for 99% of Git projects.
e) Feature set and billing are all over the place. It has great project/issue management but in order to get say roadmaps you need to have everyone in your team on the $99/month plan. Even though they aren't developers. So in some cases Gitlab ends up being much more expensive than Jira + Github.
I could keep going. But Gitlab is an example of a company that is moving too fast and needs much better product management. I would take Github's more deliberate approach any day.
Regarding disabling features and the Git project screen, our UX research team has heard this feedback from other users. It's fair feedback, and we're looking at how to address it.
I love GitLab's transparency and the decentralized concept; But I can't comprehend how some basic features take as long as they do to get done. It took GitLab _3 YEARS_ to add a "What's new" link to the header: https://gitlab.com/gitlab-org/gitlab/-/issues/16653 ... and it still isn't closed.
Issues fall through the cracks because there's no internal health oversight, take this issue for example: https://gitlab.com/gitlab-org/gitlab/-/issues/21907 It simply ceased to exist because the original staff member left GitLab.
I've also seen community MRs with weeks of work go to waste because GL staff couldn't take proper ownership/responsibility to see them through.
I think having a "all hands" week where all work stops except for going through current GitLab.org issues, fixing labeling/priorities, adding related issues and pinging the correct leads would do WONDERS.
Sadly, if GitHub adds scoped labels and descriptions we'll be making a move over as it's the final piece of the puzzle.
One feature that would help a ton, that would hopefully be low hanging is to refresh the "Issues", "Merge Requests", and "To Do" count indicators in the background.
They're basically useless right now because I constantly have 6+ tabs open and they all have different numbers and I just now I need to do a full page refresh to get the updated number.
I agree that there are loads of open Gitlab issues, but I’ve found that their team are really easy to communicate with, really open to feedback and somehow also respond really quickly on issues. I like that they use Gitlab for so much and that they’re still really open to hearing about a workflow that’s different to theirs and keen to help with that.
As a user I really like that they have their tickets open like that. I’d never contact Github and tell them about some minor feature that would be helpful or give them feedback on a new feature they’ve released because how would you even do that in a way that’s not annoying? And with Gitlab you often get to feed in at the design stage which you’re completely shut out from anywhere else.
I’m not sure if you’ve actually had issues go missing - I know they have loads of repos and I’ve only engaged with a few - but my experience definitely hasn’t been that things get lost in the weeds.
For what it’s worth I agree with all the extra features being too visible. I kinda get it - one day I’ll get round to learning Kubernetes and I’ll probably do something with Gitlab’s integration when I do - but while I don’t use them those features are definitely too visible and add too much clutter.
We host our own GitLab instance and it's been great. Performance is way better than the public GitLab site and it's been dependable. It would be nice to disable some of the features but, overall, everyone at my company is happy.
Ah yes, the "Who can find the open 2y old GitLab issue for our problem" game. There is always one and it always has a couple of "This is an issue for a customer <zendesk link>" comments. At least even very old issues still get responses and seemingly are tracked somehow.
I kind of agree with the "too fast". It seems to me that many features are being created as a PoC to pad out features lists and having something new to market. It will then live on as barely useable and accumulates hundreds/thousands of issues as the devs seem to be spread way too thin over all the PoC, core and new features.
This is great feedback. Going fast is a core part of our strategy, as is focusing on breadth over depth (https://about.gitlab.com/company/strategy/#breadth-over-dept...). Not only does this provide an easier path to collaborate and contribute for the wider community, it allows us to shorten the feedback loop with everyone that uses GitLab so that we can invest our time and effort in the areas that matter most to the wider community.
That said, I completely agree that we need to get better how we iterate and improve the quality and performance of existing features. We've more than doubled the number of Product Managers, Engineers, and UX Designers over the last 12 months to work alongside the wider community to help transition "barely usable" features into lovable features. Please ping me (@gweaver) on any long standing issues that are important to you and i'll do my best to route it to the directly responsible PM.
> But Gitlab is an example of a company that is moving too fast
I've studied GitLab's code history for a while, and they have been moving at a very fast pace for years now. Below is a one year window (from today) into to their gitlab repo.
2) The vast majority of the code churn is ruby, which is expected.
3) Based on the bus factor, a lot of files that are iterated on, have less than 10 unique contributors. And there are a handful of files that are iterated on a lot, by a lot of people.
4) A lot of the code changes are 10 lines of churn (lines added, changed, deleted) or less, which indicates incremental improvements/bug fixes/etc., as opposed to adding new functionality.
Something that I'm not doing right now, is mapping the churn, to the number of unique contributors. It would be interesting to see if there is a pattern to their churn vs number of contributors.
GitLab is definitely moving at a very fast pace, and it would be interesting to map this to their issues, but their API is extremely slow, so I've never bothered trying.
Edit: For the scatter charts, the x-axis represents the number of files. And the y-axis is number of contributors (bus factor chart) and churn size (churn chart)
The GitLab license is really tough. We use GitLab internally with about 1000 users, but only 50-100 are developers. The rest are analysts and data scientists who either edit doc files or push their R projects so other people can see them.
25 of those are willing to pay for the advanced features at $100/month, but the entire instance has to be upgraded. It’s frustrating because there’s no way to pay $100/month so 950 people can view a private repo or edit markdown.
If we could enable features for just the devs who need it, we could. The GitLab folks were nice, but the only workaround for this was to have multiple instances that people would connect to depending on their need. That’s confusing for non-devs and also many projects have a few developers but 3x as many people who just edit markdown or view CI status.
I'm a solo developer and I disagree with everything you have said. Gitlab has been an absolute joy to use. Sure, it has a lot of features, but it's not like you are forced to use stuff you don't need. My workflow is pretty simple, yet I have never felt like I'm using a sledgehammer to kill a fly.
GH is clearly not innovating nearly as much as GitLab and hasn’t been for a long time, but since they have so a huge chunk of the market already they can see what works and what doesn’t work for GitLab and cherry pick what they like. Apple operates in a very similar manner - in many areas they lag behind.
I'm not sure this is correct. GH seems to take their time, and get things right. They're product leadership is really top tier compared to the rest of the tools providers who are often quick to release a feature half-baked hoping to iterate. I've rarely seen a GH feature that's not fully polished and "makes sense" on day 1.
They are the Apple of the dev tools space. Less is nearly always more.
Can't really agree on that, looking at Github Actions for example.
It's such a lack luster offering with severe limitations that make it almost unusable for any sort of serious project (no support for private Docker repository, no manual steps, yaml support is abyssmal, ...)
My view is that GitLab is more prone to feature creep. They have a lot of innovative features, but because of the number of features, most of them really only feel 90% or 95% of the way there. GitHub chooses a smaller number of features, but they feel more polished.
I don't think the feature creep is all bad. Sometimes the new features are amazingly useful, if not totally polished. It depends on what you need, and sometimes you need features that only GitLab has.
VS Code online is a substantially more robust offering than the GitLab Web IDE. Not an apples to apples comparison of the actual substance of the offerings here.
This isn't really a useful observation — it's not like any of those were something unique which nobody had thought of before GitLab implemented them, either. It'd be far more useful to compare them knowledgeably and talk about their respective benefits and drawbacks.
Look at Android vs iOS. Each release sees popular features "borrowed" from the competition. Back and forth Google takes something Apple did well, then Apple turns around and does the same.
Tight competition between two platforms gives us, the consumers/users, the best. It drives innovation, it drives down prices (I mean, lets be honest, GitLab had the entire "free" thing down a LONG time ago), and the features that we do have get refined to be even better.
BTW I've seen the same thing on Zoho side, they have so many products and they all work seamlessly across one another, yet they have a very little market share.
I'd definitely encourage everyone to git GL a try - our teams switched over from GH + Jira about a year ago, and haven't looked back. The integrated CI and project management features are a game changer.
GitLab is also faster at cloning than GitHub. Whenever I have to clone a bunch of website repos to update templates for my website generator the GitLab repos finish cloning first even though I start them last.
To be fair, nothing was announced today by GH that wasn't in GL for several years.
Perhaps the quality of VS Code trumps GL WebIDE ... But I am not the sort of developer to ditch my desktop editors / IDEs for something running in a browser (electron or otherwise).
I think the most important thing that most people maybe forgetting is, GitHub maybe announcing these features, but these features were the results of acquiring companies that were solely focused on these features for years.
So if you take this into consideration, GitHub's feature has not only been in works for a while, but they have been refined to a point that GitLab will have a hard time catching up to.
There is no way GitLab will be able to compete on the IDE front-end for a while since GitHub's solution is essentially VSCode which they own and is iterated on at an incredible rate. And the one thing Microsoft hasn't made open source, that makes remote work incredibility powerful, is what makes Codespace incredibility difficult for GitLab to compete with.
Their security scan feature is the result of acquiring a leader in the field with expertise that GitLab will have a hard time matching/hiring for. And GitHub's Insights feature is the result of multiple acquisitions with years of previous experience.
These announcements maybe new, but the solutions that GitHub has released are years ahead of GitLab's existing solution.
I vaguely remember a post a while back (maybe a year ago) where they said they can't make a part of their remote technology open-source. Maybe things have changed, but I was quite sure it was something they were keeping close to them.
Also thanks for pointing out the certificate issue. I was actually leaving it that way on purpose, but I guess it can reflect poorly on my product, so I should just update the landing page with something non-descriptive.
Perhaps, you're right (or maybe not :-). Frankly, all this stuff, while interesting and eventually useful, is a bit low on my current priority list ... Re: certificate - You're welcome.
Was this reply to the wrong comment? Cause your first line is a total non sequitur to what you're replying to. And this is definitely a space people both a) can compare (compete?) and b) MS is playing catchup to (albeit with a great advantage).
I understand that many companies will be seduced by the offering and what could come next:
* No more source code on developers machine so better for security.
* No more development environment to setup and all the devs sharing the exact same settings: simplified onboarding of devs.
* No need for costly developers machines.
* No more infra to setup to host the source code repository, the CI/CD workflows (even if many companies already moved that to the cloud).
But as a developer I am worried what could also come next:
* dashboards for managers with all sort of stats on developers: code quality with arbitrary rules, productivity (number of lines of codes), number of stars from other developers, etc.
* being locked-in with the Microsoft toolchain all along from source code edition to deployment in Azure. For instance currently I chose to do my NodeJs backend development on vim with coc-vim and found it to be much lighter than Vscode (I have a very old developers machine)
They announced developer productivity analytics in the same keynote as they announced codespaces. It's not just coming, it's here!
Funny enough, after introducing the analytics stuff, they started the next section by showing that the more code you write the more security vulnerabilities you have.
Which is it, Github? Do I want to stay on top of your SLOC leaderboards so my manager doesn't fire me? Or does writing the most lines mean I introduced the most vulnerabilities so my manager should fire me? The answer depends on which product github is trying to sell you at that very moment.
> dashboards for managers with all sort of stats on developers: code quality with arbitrary rules, productivity (number of lines of codes), number of stars from other developers, etc.
How does GitHub Codespaces allow for any of this? All of this was already possible with plain git, no?
* Some teams do this already with git data...but if it's free as part of a team's development platform then maybe the less sophisticated managers who don't know how to interpret the data will misuse it?
* If the editor is heavily instrumented then even more granular "productivity" metrics could be extracted, like time spent with the tab active, etc. which aren't available with a vanilla install of other editors. ¯\_(ツ)_/¯
Sounds like a form of (job?) security-through-obscurity, no? The data was always there, but not all managers were savvy enough to process it and weaponize it.
In the end, obscurity is just not a durable defense. Better to earn trust with good managers, and avoid companies that let bad managers flourish. If you don't have the ability to quit a bad manager or bad working environment, then no amount of tooling choices by GitHub/Microsoft was going to save you anyways.
Oh boy. Had chills from my time as a Jr. Engineer at Accenture. Still remember the day a manager looked at me like I offended his entire family for saying that lines written didn't mean productivity achieved.
You can archive (2) with VS Code by having a development container defined in .devcontainer/devcontainer.json + .devcontainer/Dockerfile + Remote-Containers plugin.
I've been doing that in my company and it's awesome to have a reproducible environment for each project.
This is pretty epic. VS Code has proven itself to be one of the best (if not the best) and feature-complete editor out there. It's basically an IDE of a ton of languages at this point, and it's completely free. Integrating it with GH is a no-brainer move from Microsoft's standpoint, to increase market share even further with more seamless integration.
If they're able to do setup for Python, Go, Ruby, and JavaScript projects, I suspect that'll be > 50% of all professional work (both FOSS and private) done on GH.
While VS Code is definitely good in general, and first choice for languages like JavaScript, I find it really hard to compare it to JetBrains PyCharm and GoLand (understanding GoLand has no free version).
The debugging and refactoring experiences for Go and Python in VSCode feel slow, awkward to set up and configure and just generally tacked-on.
I have gotten the PyCharm professional and GoLand licensed through my employer but I will 100% be paying for them out of my own pocket if I ever lose that.
Yup, VSCode isn't comparable to IntelliJ or the rest at all for anything other than Typescript. IntelliJ offers a bunch of life saving refactorings. Want to extract a new method? Ctrl+Alt+M. The exact same shortcut works in every language, with almost the same semantics as much as possible. Intellij can do context aware autocompletion (Ctrl+Shift+Space).
I use vscode for lightweight file editing. But for any long term project, it doesn't offer anything over Jetbrains products.
I pay for the full JetBrains subscription. While I still use vscode for typescript and rust, I use JetBrains for anything else. It's one of those no brainer purchases that pays for itself within a month.
Programmers create enormous value. If you can get even small single digit percentage improvements by leveraging better tooling, it pays for itself almost right away.
I estimate conservatively I produce $500,000 in value a year. If I can eke out a 1% improvement in productivity that's worth $5000 a year.
I think it's a big blind spot that developers don't invest enough in.
Many vendors do think like this when they start their offer with 'how much is your time worth'? Indeed, your tool might save me 1 hour but it's not necessarily worth the price.
On complex codebases though I mostly need the IDE just to navigate code. Anything released in the past decade knows how to index some classes, jump around and do 'find usage'.
I agree that tooling most definitely helps, starting with your office, your chair, your hardware and your software config. You could also get 1% out of sleeping more I think.
Chair, desk, distraction free environment, fast computer, fast internet, multiple screens, consistently good sleep, diet, and exercise. Stable emotional environment (relationships). You could easily get better than 1% from each of those. I'm ruthless about optimizing these.
Software tools, keyboard shortcuts, libraries, frameworks and saas software are also good targets to optimize that often don't get enough attention.
(Serious question) I'm curious to hear more about "ruthlessly optimizing" your emotional environment and relationships. That is not something heard everyday...
Or if you'd prefer not to personally summarize, are there any books, articles, videos, etc, you can recommend that expand on this overall life philosophy?
It's not the right word for that, but in general just be extremely picky about serious qualities in your partner. Ditch bad relationships and maybes quickly, because there is a high opportunity cost. Value peace in a relationship, and stay away from people who like to fight.
I think he was talking about the value he generates, so possibly something like revenue/profit per employee kind of thing. For example, FB and Google make more than $1M revenue per employee. You can go more granular and look at the impact of your team or yourself as well.
But can be his comp as well, these are not unheard[1] of numbers.
I've found I love JetBrains IDEs when I'm operating as a one-language power-user. But the last few years I find myself needing to use 2-3 languages in the same day (several more if you include markup "languages"). VSCode has become my editor of choice for local dev and vim for remote dev/debug.
I use IntelliJ with the various language plugins for this reason. It allows me to use the same setup for all my languages. Granted, I do get the full license through my employer, but I think it's worth it even if my company didn't pay for it.
This is exactly my current situation. In one day I can end up writing in up to 4 languages (Go, Python, C, C++) and having one editor, with one set of settings for editing, and all the customization available in a single settings.json file, is just too good to give up for language-specific IDE's, especially ones that require yearly subscriptions.
I just use intellij for the same purpose. Today alone, I made changes in Kotlin, Typescript, Java, JS, Groovy, and Python. All in a single project, in Intellij. I do use and appreciate vscode, sometimes, but the experience is nowhere near as good as Intellij for me.
That said, being able to change/edit PRs in github with vscode will be awesome. Will negate the need to check out out a branch locally for a ton of cases.
Honestly, unless I'm working on a Windows machine, I find JetBrains Rider to be the best option for C# specifically. This is especially true if you like having your tests easily accessible from your IDE.
That said, VSCode is still very nice for front-end pretty much universally, and it's also great for things like back-end Javascript/Typescript. I think Codespaces is really going to excel when it comes to things like NodeJS -> AWS Lambda. Make code changes, run "sls test", done.
> This is especially true if you like having your tests easily accessible from your IDE.
I haven't used Rider, but I'm curious how it could be easier than the Visual Studio test explorer? It seems pretty convenient, and doesn't lack any obvious features I can think of.
Minor point: the Rider test explorer tells you why your tests aren't appearing. Visual Studio's test explorer will just say "You have no tests, try rebuilding your solution" even if you already rebuilt it.
I assume in part this is because the Rider test explorer is based on the one in Resharper.
Some stuff it does better is things like running 64 bit and 32 bit tests at the same time, supporting both nUnit 2 & 3 without having to disable/enable the plugin. Mind you I spent some time with code in release mode trying to work why I couldn't debug a test last week.
To be fair I hate what Resharper does for Visual Studio performance and a lot of the really useful refactoring in box these days so I no longer use it.
I prefer to stick with Visual Studio but I know lots of folks who are happy with Rider. It's good for all of us when there is competition in paid for developer tools.
I feel with .NET Core migrations the wind is shifting, at least for web development where VSCode is starting to be preferable to Visual Studio. VSCode isn't likely to get the WinForms or XAML visual designers any time soon, so Desktop apps will likely stay a Visual Studio niche, but even then I've found myself increasingly working in VSCode up until the point I need to do a UI tweak even with Desktop apps.
It's no contest, JetBrains Rider provides the best C# development experience on any platform, with smarts well beyond what VS is capable of.
While a commercial product, I've got 9 JetBrains products installed under the same toolbox subscription where it's by far the best value software suite I've ever paid for. Thanks to their Toolbox App you can update all products with a single click, just the productivity saved from not having to endure VS's multi-gigabyte updates & OS restarts pays for itself.
Weird way to put it, C# is expected to work better in VisualStudio, it's the standard/officially supported .NET IDE. For everything else I prefer VS Code personally.
JetBrains has Rider on Linux for C# and while not free, if you're already paying for other JetBrains IDE's, as many devs do, it's included. I just think there's still not much reason to do C# on Linux over say Kotlin if you want a huge ecosystem.
I'd consider it if they come out with a cross-platform GUI toolkit for .NET Core/
While Visual Studio is powerful, I have ran into wierd behaviors within the IDE that just make it a chore to use. Personally, I've preferred C# on VSCode over Visual Studio so far.
I've been using VS Code's Go and Python plugins for development for the last 2 years and I've never had any major issues. In fact, my experience continues to get better after every release.
With the Go language server kicking off, Go development in VS Code is literally a breeze. Every single thing I'd want to do (format code, imports, run tests, run a particular test, debug a test, breakpoints, on and on) has been integrated into the VS Code plugin and it works pretty much seamlessly. I haven't used Goland since it's early release in 2016 or so, so I might be missing out on something, but it doesn't feel like it.
I've never had a good experience with PyCharm. Again might be because I've using earlier releases and things have gotten better. But I'm at a point where I'm too comfortable with VS Code and have customized it to a point where I don't think it's worth it for me to switch to another editor, especially one that is tied to a particular language.
I made the transition from PyCharm to VSCode a couple of days ago and... it's not been smooth. Virtualenv doesn't automatically activate when I first open the workspace, pylint doesn't work yet VSCode thinks it's working and debugging just doesn't seem to work full stop.
I need to get back to it and try to fix it because I do like VSCode as a whole.
One thing that helps me managing Python environments in VS Code: I start VSCode from the command line with my virtual environment activated ("code -n .").
With this, I rarely have issues with VSCode picking up my environment. Hope that is of some use to you.
Pro-tip for VSCode: if you have a .venv directory in the root of your project, VSCode will try to activate it when you open the project. A few other tools have adopted that convention, too, and now at my job so have we. Rather than sticking virtualenvs in some odd location, the venv for ~/projects/mystuff is ~/projects/mystuff/.venv, and now it almost always Just Works.
I think VSCode sets a really good level across all languages (even more esoteric ones like Idris) however it can't compete with IDEs essentially dedicated to a tech stack like PyCharm or Visual Studio.
Just an anecdote from a sample size of one - I had a recent situation where I had to nagivate and edit a code base that was a mix of Go, C++, and JS. And I had a paid IntelliJ Ultimate license. Long story short, VSCode did the best/fastest go-to-defintion like navigation given the constraints. IntelliJ separating Clion to a separate install is rather unfortunate. I can edit Java and Go together, but not C++
I think it's because CLion is a bit of a separate codebase, integrating with GDB and all that, rather than just a language plugin that's also sold as a separate IDE as is the case for other languages.
This is also why the Rust plugin only has proper debugging capabilities in CLion.
I used to use rubymine a few years ago and maybe I just wasn't using it right but I can do all the stuff in rubymine in vs code. The only thing I'm missing is being able to look through the code for gems.
Them's fightin' words. But on a more serious note, I think 50% is a massive overestimation. We haven't seen pricing. Unless MS is willing to take a huge loss on this there's no way it will be free. We all know the resources required to run a modern web app in development mode. I can certainly see this being useful if you happen to be away from your dev machine, or if you just want to contribute to something without setting up the whole environment, but not as a full-time solution. Especially considering github is known to have outages. You'll really be SOL then.
The estimated cost for a full time developer to use the system is $23.30/month or roughly $280 a year. That's quite competitive- my "portable" workstation costs north of $2k and has a 3 year life span, so the "yearly" cost is $666. The benefits of being able to get use cheaper dev terminals in the general case could pay for itself, even before you get to the benefits of having a common environment.
Also, you can self host for free. 50% is an over estimate (I've never seen 50% of developers agree to ANYTHING), but broad adoption looks highly likely.
I'll admit I've got a particularly killer use case. My daily project has an enterprise system for its backend. Its obnoxiously complex software, so devs generally only run part of it locally and part of it off of shared infrastructure in Azure. Because we are distributed team, cross-country network latency really hurts application performance under "local" dev conditions.
Running in a codespace, the entire codebase runs in Azure. The application performs almost as fast while debugging as it does in production deployment. It's awesome for where we've been able to convert to it.
MS may indeed be willing to take a "huge loss" on this. It may dwarf the added revenue from other sources.
So like I don't know your particular context but I imagine MS's moves would seem surprising for developers, say, at startups. Whereas if you work at an IT adjoint to a mechanical contractor it might make more sense. What's at stake is that MS might be ramping up to some bigger announcement, "GitHub Cloud" or so, where you pay some fee for the cloud hosting and the sales pitch is, "imagine that you can fix a bug from a bug report in a non-crappy editor like VS Code, do a quick code review and push a button which will run your tests, canary deploy, then version it and push it live -- we take care of all that infra, you just pay for the Azure hosting." If you give half of that for free to everybody, you nominally "lose" but you increase the adoption rate of a separate revenue machine, which makes up for it.
A similar strategy was used by Microsoft to make their initial profits with Windows. There it was "you don't have to worry about the hardware specs -- we have already worked all of those out and all of them work with Windows." The key point in both is to say, "what are people seeking out, at the same time as they are seeking out my product?" and then to either give people a lot of freedom or a really easy option. You would rather take one pill that is carefully engineered to have the right omega-3 balance to stave off depression AND is a good probiotic AND has all of your daily vitamins, than to have to bother with a separate fish oil pill and probiotic and multivitamin. Focusing on product "complements" is often a really good strategy.
Doesn't to me (they might not deprecate it but they will simply stop putting resources into it at which point it turns into maintenance mode). As another posted pointed out the Facebook links, companies would love remote IDE tooling hosted on their premise so it can be an easy way to remove overhead on onboarding and tighten security more.
Free is a huge minus in my book. If I'm not the customer, then I'm the product. I'll happily keep paying for my JetBrains all-product license: https://www.jetbrains.com/all/
This is not necessarily always the case, for example the free thing might be a loss leader, exist to boost secondary or tertiary effects or otherwise exist for non-profit motivated reasons.
Sure, it's a generalization, not an absolute. But for me there's not a big difference between "I'm the end product" and "I'm an intermediate product used to increase sales of the end product". Microsoft isn't a charity; they're an oligopoly pushing hard to keep their stock price up.
I think your characterization of being an "intermediate product" is also dubious since you aren't being sold in any reasonable sense ala the way you are with ad tech. And whilst MS are obviously in the business of making money that doesn't mean it's the only thing they'll do.
If you'd like to argue that MS is giving this away just to be nice, instead of as a calculated move toward sustaining or increasing revenue, I'd be interested to see that. But for now let's assume they're doing what their shareholders expect: making money.
We can't know whether I'm an intermediate product without knowing their goals, which they're unlikely to be transparent about. But lets suppose one of their goals is usage and market share statistics that they use as proof to convince paying customers. In that case, my usage is very much an intermediate product.
Or let's imagine that one of their goals is restored market dominance in developer tools. To that end, they would like their competitors to receive less money, leading to their collapse. If they paid somebody else to give away developer tools for that purpose, I'd obviously be the product. That they're paying for that internally obscures it, but fundamentally doesn't change the exploitative nature of the relationship.
If all this is really what you believe rather than just being argumentative then how can you use any product. Usage and market share statistics are just as useful to JetBrains in that regard and you pay them for the privilege of being an “intermediate product”.
Jetbrains shows no signs of wanting to be a monopoly player in development tools. I've been a customer a long time, and I think they've done a great job of balancing making money with doing solid work and serving their customers. Microsoft, on the other hand, has a long history of willful domination and exploitation, and they've specifically done that with free products to kneecap competitors.
No, I like competitive marketplaces, as they're one of the core engines of capitalism. I deeply dislike willful monopolies and oligopolies in general, because their goal is to break that engine in ways that harm consumers and often society. Microsoft themselves I can take or leave now that they've been mostly defanged.
I also really like having good developer tools. Many of them come out of community-driven open source. But some of them cost money. And for those, I very much want there to be a competitive marketplace, so there are strong incentives for all players to keep improving.
I'm not sure what you mean by this, care to expand? Aren't you also the product for JetBrains, since you're one of the customers that's keeping them afloat?
Sure. The foundation of commerce is sustained relationships where value is mutually exchanged. I give you a few bucks, you give me a cheeseburger. If fix somebody's problem with a computer, they give me cash. Product for payment; value for value.
When some commercial effort departs from that, it's good to be suspicious. The bills are getting paid somehow. E.g., look at network television from 1960-2000 or so. The viewers were not customers. The viewers were the product being sold to people who wanted to manipulate them. Advertisers were the customers, so the programs were generally about getting maximum influenceable wallet-connected eyeballs; quality was at best secondary.
In contrast, look at what's happened to TV since then. We're in a golden age. [1] Why? Many reasons, but a key one is that people are now paying for TV directly. To Netflix and Hulu and HBO and all the other paid streaming efforts, you're the customer, not the product being sold to somebody else. Now they have a strong incentive to make things that you don't just tolerate but love.
Microsoft in particular has a history of monopolistic behavior that has been harmful to the industry (e.g., [2], [3]). Are these developer tools awesome just because Microsoft is run by nice, generous people? I'd say instead they correctly recognize that if they want to regain some of their lost market power, they're going to have to compete with the existing tools, many of which are quite good. Why are they good? I'd say it's partly because smart people have built a strong business [4] making those tools. If Microsoft manages to eliminate the competition, they'll lose the incentive to build good stuff, just like they have in the past.
> Many reasons, but a key one is that people are now paying for TV directly
This is an insignificant reason. People paid for cable TV and were soon shown ads. Even people who pay to see movies are shown ads before the movie and during movies via product placement. Hulu makes great shows but sells ads more highly targeted than any broadcast channels.
The biggest reason for the current golden age is that streaming services don't have to try to create the most broadly appealing content to fill the most valuable timeslots and can instead cater to each viewer's tastes directly. Breaking Bad was a great show before it got on Netflix, but it wasn't a hit until wide on-demand streaming availability helped it find its audience. Tiger King is the kind of hot garbage that would normally get an afternoon time slot on a second tier cable channel, but making it available on demand turned it into a megahit.
The explosion in channels was definitely another factor. But being paid matters. HBO punched above its weight for years, for example. WHy? Because they had to.
I agree with you that oligopolies like big movie-theater chains will try to exploit that power by doing anti-consumer things like showing ads. But that's just more proof we should be suspicious of free products that may increase oligopoly power.
I can definitely see where you're coming from. In fact, for VS Code, I believe they collect quite a bit of metrics on your usage of the product through telemetry, so it's definitely not "free" in the sense of "nothing given" - essentially, your programming and usage habits of the program are being sent to MS every second.
Re: the case of VS Code eliminating competition and MS losing the inventive to build good stuff, I think the core editor engine being open source gives me hope that this won't happen like in the olden days of MS. But of course, still a risk.
Facebook (and Cambridge Analytica) is another example.
> If Microsoft manages to eliminate the competition, they'll lose the incentive to build good stuff, just like they have in the past.
Typical strategy. You provide a good and cheap product until you reach a relative majority of a market and customer lock-in, then quietly slow down on the free improvements and start extracting money from the users.
No the JetBrains IDE is the product. This phrase generally refers to things like Facebook or Google. They offer tons of free services in order to gather data about you and sell it to advertisers.
Thanks. VS Code is actually no saint in this regard. MS collects metrics through VS Code's "telemetry" option (I think toggle-able to off, not sure) and this data has no doubt been used to improve VS Code and help MS build better product offerings and hence more rake in more revenue.
This isn't always true, so it's best to look at it on a case by case basis. One wouldn't suggest that Typescript coders are a product of MS.
So far, they don't seem to be treating vscode users like the product. I think they're are building out great free tooling to entice users to use their other paid services like Azure.
Github has made their pricing model and the motivations for it pretty clear. They subsidize their hosted service with enterprise self-hosted pricing to justify expanding their feature set. This has been true for a long time, well before the MS acquisition. The things that have changed are:
- Developments that were in place were released.
- The subsidization model made pricing structure changes possible.
None of this has to be a big conspiracy or a big change from Microsoft's acquisition. It's possible they just have a business model that's less nefarious than you're able or willing to understand.
That's an adequate slam at the end there, but I'm more interested in your claim about "to justify expanding their feature set." How about you give me the elevator pitch on that. Because the obvious alternative explanation is that Github was doing what a lot of companies have done: use a loss-leader pricing scheme to establish market dominance, allowing them to charge more to customers for whom that dominance is a feature.
Well, you must then love Oracle. I mean, what you are saying is just silly. Of course the producers of FOSS want something in return, but sometimes it's not nefarious as you might imagine it to be.
It could be a strategical investment to create an ecosystem out of technology that you know the best and can influence its direction, to then sell customizations and develop services on top of it. Like MS is doing here. Or RedHat. Or Google with Kubernetes. Or Canonical with Ubuntu. And so on.
It could be a lot of things. Would you like to argue that it is some specific thing that couldn't possibly lead to the sort of oligopoly or monopoly position that Microsoft has eagerly sought and maintained in the past? If so, which exact thing?
I'm arguing that the premise of non-free software and services being somehow better because there must be a catch is just ludicrous. So no, I don't want to argue "it is some specific thing".
I don't think MS is very charitable company and dislike many things about them, but sometimes a deal is just mutually beneficial. Better at times than with paid products.
And if Microsoft has something terrible planned, the community would just fork the project and go in a different direction.
Moreover I want to add that people, and companies, change. Just like a nation isn't the same it was 100 years ago, Microsoft too might have toned down its malicious practises. Just as a thought to you. We don't anymore blame Germans for being Nazis either.
I'm not saying paid IDEs are necessarily better. But I am saying that in practice, commercial IDE vendors have been making superior products to the free-as-in-speech ones, and have been for 20 years at least.
You blow a lot of smoke here, with "sometimes" and "might". Sure, Microsoft could have been taken over by angels straight from heaven, and is now only intent on doing charitable works until the money runs out. Many things are possible. But possible doesn't mean true. If you'd like to argue something's true, by all means do it.
I think the only substance is "the community would just fork". One, there's no particular proof that a bunch of volunteers can make something like that. Two, that's an enormous effort. Look at how much work and time it took between MS using a free IE to kill Netscape and the emergence of Firefox. And that only worked because Mozilla found a revenue model that let it afford the large number of full-time engineers needed to produce a browser.
So if you're serious about your argument, why don't you explain exactly how "the community" will afford to do that fork. And why your imagined destruction of paid developer tool vendors like JetBrains and handing MS a monopoly in the market is ok as long as you're getting something free right now.
I doubt codespaces will be free- this is how VS Code starts seeing increased monetization. It'll be interesting to see if the self hosted codespace options are no-cost as well.
Not in the sense which that is meant. The foundation of commerce is long-term, positive-sum relationships between people. The people at my corner grocery are looking out for the needs of me and my neighbors; we look out for them in return. That relationship is fundamentally different than the one between cow and meatpacker.
Yes, you are the product in the sense that this is meant. The people at my grocery store track my purchases using my loyalty card, use that data to influence their ads, and sell that data to others.
Jetbrains might not do this, but if they can make money from this, they would be just as incentivized to do this as GitHub.
Good thing my grocery store doesn't have a loyalty program or track purchases then. Maybe you should use a different one?
I agree the lets-exploit-the-customers behavior you're talking about is currently common, but it's far from universal. And regardless, in a value-for-money relationship one has power that just isn't there when one is purely being sold.
Huh. Do you really not see any difference between a publicly funded accommodation and attempts to dominate a market by a company with a long history of abusing a monopoly?
I do see some differences. I was attempting to use those differences to illustrate one of the ways that this maxim about consumers and products is overly broad.
Exactly. All generalizations are broad. But nobody goes around objecting to generalizations every time they see one; they'd get nothing else done. So the pattern in which they do that is always informative.
Microsoft is really the best at the slow strategic burn.
* You host your project in github
* You fund your project using github sponsors
* You develop your project using github codespaces
* You compile, test and deploy using github actions
* You cloud host on azure
Each individual feature is definitely great. I'm not trying to be critical of Microsoft trying to turn their investment in github into a profitable business. This is a kind of vertical integration that is guaranteed to lead to some efficiencies.
One prediction based on this stack is the next piece could be some sort of subscription payment architecture. I wouldn't be surprised to see some kind of Microsoft Marketplace integration coming, but maybe branded under github. Some kind of SaaS subscription enabler.
We're not even porting GitHub to Azure. Our tooling is completely platform agnostic, and MSFT Actions facilitating deployment to Azure are built in the same platform and open sourced the same way that AWS, GCP and everyone else are offering theirs.
GitHub isn't driving anyone to Azure Devops, we'd prefer folks to migrate from AzDO to GitHub. The focus of much of our work is building out the GitHub platform to meet and fairly quickly exceed the capabilities of AzDO (or any other platform for that matter) in every respect
And strangely enough, Microsoft is currently the only big three Cloud Vendor which you likely wont be competing against.
If you are doing anything on the Web, you are competing against Google ( and Facebook ). If you are doing Retail, e-commerce, you are competing against Amazon.
Microsoft is trying to turn the Cloud into its new OS before Amazon does it. But from the way things stand this will likely never happen.
So as far as I can tell I have no problem with that strategy at all.
Don't forget about VSCode! It's very quickly becoming one of the best free editors out there, replacing Sublime, Atom and the rest. I'm actually curious, will this be using Atom, it's own thing, or VS Code as the editor backend?
I have actually been running code-server [0] which finally allows me to have my powerful editor with all my settings and extensions and working with my own files on any device.
> Don't forget about VSCode! It's very quickly becoming one of the best free editors out there
I don't know if people realize just how much market share VS Code has grabbed. It went from 7% to 50% in five years, according some some surveys [1]. Microsoft is quietly dominating this part of the stack. [2]
MS constructing a path between different levels of the development stack. They're integrating languages they control with their super popular IDE with their insanely popular source code repository with their cloud provider.
My bet is they won't stop you from going off the path (e.g. using VS Code to push to Bitbucket and deploy to AWS), but they will make the MS path the easiest and the default.
VS Code in GitHub is a perfect example of this. Every integration makes it easier and more appealing to your CTO to Just Use Microsoft TM.
Regarding Atom, I've heard some whispers around the internet that they may slowly wind it down in favor of VSCode so that Microsoft doesn't have two competing text editors. Anyone know how true that might be?
As someone how really like github and really dislikes azure devops - and a corporate direction pushing us from the former to the later - any idea what their endgame is as these two converge?
I also use Azure DevOps for work and am a recently-former MSFT person. From what I've heard from those still there, most of the new development is going towards Github Actions, which is also reflected in their staffing movements. However with GHA running on top of ADO pipeline infrastructure (public info), Microsoft's success with the strategic slow burn as OP called it, and their super-long-term-support reputation, it's probably not in their interest to rush the move. I'd be willing to bet that in a year+ or so the writing on the public wall becomes much clearer. To that extent, we've started planning a migration at my company.
the end game is the developer gig economy. you assign a ticket to yourself, write the code while they analyse your behavior to calculate your hourly rate then you get paid
It might work for low level development tasks (which could very well be most of the software development happening in the world, who knows?), but not for anything more advanced.
Edit: I misunderstood your comment as about Azure generally and not Azure DevOps specifically. I see Azure DevOps as the “full service” version of GitHub’s slightly more “DIY” approach. DevOps can also be customized and sold by partners, consultants, I think. GitHub if anything, might move more to a “consultant network” approach. I think Microsoft is maintaining two district brands for developers, for the time being. I originally wrote:
I think there’s a clear benefit to Microsoft for GitHub to internally use Azure, but I think there’s a clear benefit to Microsoft’s developer community, GitHub and the Microsoft Partner ecosystem for GitHub to support AWS and GCP via open source, AWS Marketplace, Docker and anything else that helps ensure GitHub is useful independent of the rest of Microsoft’s services — GitHub being impartial is more important to Microsoft than the extra market share they might — might — get.
The corporate direction could be based on pricing. Azure DevOps (pay per concurrent job) can be a lot cheaper than Github Actions (pay per minute of CI time, with macOS minutes counting as 10 minutes each).
I definitely agree - was thinking about this in 2018 when thinking about the acquisition, and it's really interesting to see how this is driving the competitive landscape between Azure and AWS:
http://redgoldleader.blogspot.com/2018/07/using-continuous-d...
I find the UI much more beautiful and clean than github's, but this is mostly a personal preference. Just hope it will be feature complete really soon!
Source hut is cool. Among things, it prioritizes exposing and leveraging Git's existing functionality wherever possible, like email patches, rather than building new proprietary functionality on top of Git like Github and others do.
Everything about Github's PR workflow is killer to me, so to me personally the message I take away from this is that Source Hut isn't even competing with Github in the parts I care about.
If the one particular aspect I mentioned isn't for you then why even bother wasting your valuable time responding? Just go read their website instead and see if there is something for you. Maybe there is, maybe there isn't, but at least then you'd know definitively. Much better use of your time and effort. I'll even save you a few clicks:
I posted because I think my post would be useful to other people who are considering alternatives to GitHub but also like rich PR workflows like GitHub has, and because I think it's good to encourage would-be GitHub alternatives to invest in that area.
I've actually been following Sourcehut's mailing list and updates since forever because I find their philosophies interesting, but not right or practical for my own workflow.
It was just on the front page last week for a new feature launch (project hubs). The design is very minimal, but it’s organized into several different composable features. The author is on here often.
If the things are offered free, and you build a lot of it into your system, and now it costs money, you have to choose between paying that money, or paying a potentially high switching cost to move to a different system.
If you had known you were going to be faced with those costs, you may never have bought into the system in the first place.
Simple but big issue I have is getting solutions that suit the platform. Often when I'm looking for help on something it gives me the on-prem solution. Docs on your website are confusing for this reason and that's why I stopped using. Takes me 30 seconds to solve a problem on GH and 5min to solve the same problem on GL. Clean that up so when devs try out the platform it's slick and easy to buy into not annoying and difficult.
I think it's more about all of the integration leading to efficiencies that are hard to ignore while they're being subsidized / promoted. It'll start out as something where the value proposition is too good to ignore, but, as time goes on, they'll tier off features and charge a premium as you scale up.
There was a time when I was hopeful and though Microsoft would take a developer first approach with the end goal being making it easy to deploy to Azure. After seeing the VSO (the old name for Codespaces) pricing I'm a lot more cynical. Microsoft's going to be altruistic until they're not.
Go look at the pricing for VSO. They have a full time dev (100 hours a month - lol) estimated at a cost of $23 USD per month. Just wait until there's some type of marketplace for extension developers. The local version of VSCode will disappear overnight and (IMO) we'll be paying $50+ / month for the same thing that's free right now.
Get ready to pay for everything per user per month for the rest of your life.
My fear is that an officially supported marketplace for selling extensions would be appealing enough that important extensions would put all future development effort into their marketplace versions and cease development of local versions.
I wanted to quickly help calm any potential concerns about changes to VS Code or its model.
Codespaces is a separate, additional service from VS Code, very much focused on providing compute catered to developers and their workflows. We hope you'll use and love it, but we're also very happy if you'd prefer to continue to use VS Code in the ways that you may have previously done.
Either way, we will continue to invest heavily in VS Code as you know it. Codespaces will not change that.
I believe you when you say your intentions are good, but I'm skeptical. Even if it's not the official stance, getting as many people as possible onto the SaaS offering has to be the goal and, IMO, there could be a point where maintaining the standalone product isn't worth it.
I'm worried that Microsoft's going to be successful in shifting a bunch of developer workload onto Azure and that'll create a power imbalance where developers will see increasing prices while they lose control their own workflows.
Is it true that Nadella frequents the gym and chastises people for running on treadmills instead of Azure? Lol.
Gitlab looks nicer and has a lot more features even in the open source edition. (Though some paid features seem to be arbitrary paid vs free, like scoped tags, a feature everyone could use is paid, while a really Enterprise feature like kubernetes support is free)
This is going to be great for open source—Being able to get a fully-configured dev environment at a click of a button greatly lowers the barrier to entry. I've had a few small OS contributions where the time to set up the environment was more than the time I spent programming!
I could also see this being popular with engineering teams. No futzing with the new hire's computer, just have them open a web browser and they can dive right in!
I'm not sure if this is really true. Why would you want to become a contributor to an OSS project if you can't bother to get it working on your machine? You actually learn quite a bit about the project by going through its dependency hell.
Idk, I feel like we've been trained to believe this is necessary. Why you should need to know more about a dependency than its documented API? This sort of reminds me of Americans believing their current healthcare situation is the only way to do it even though it's awful.
Don't get me wrong - I don't think that you should go through it every time. Also, I'm not sure anyone reads the documented API of a dependency until some unexpected behaviour is happening.
My basic point is that the dependency hell is not the biggest barrier for an open source contribution. In fact, mixing both problems is a bit strange to me - codespaces is not going to magically solve the dependency hell - it's just going to shift it to some other part of the configuration.
The best way to start contributing to an OSS project is really be to have a mentor in project who could guide you through it during your first contribution. Personally, I'm willing to fight the machine for a couple of hours/days to get something to compile -- however, it's hard to justify reading code for weeks in the hope I can tackle an open issue.
Sometimes setup on different platforms is different in very subtle and hard to debug ways, and for smaller OSS projects that haven't yet been tested on different platforms, it may be very hard to figure that out. Now you can develop even on a chromebook (without the terminal access) without having to deal with any of that.
The only time I could see myself using this is in the following scenario;
1. Browsing repos.
2. See a quick fix I could make (like a typo)
3. Open up the code space view, make the change, add and commit it.
For my daily needs I would never replace an online IDE with my local IDE. I see no value in doing that. My concern would be for when github has a service outage. I am without my IDE until they resolve the issue? With a local IDE I can just continue to work on my branch and push it when GH comes back online.
> The only time I could see myself using this is in the following scenario
You can already do this. There's an edit button when you view any file and a streamlined process for turning your change into a PR. I don't think Codespaces will make this any faster. Maybe you can fix slightly less trivial things due to the IDE support but on the level you described no new capabilities are added.
I contribute to various OSS (and private) projects all time just by using the GitHub code editor and catching errors or regressions if any in the CI. Having a fully fledged dev environment is even better.
Basically it's just the same as whipping out a simple text editor in hurry; if I need to modify multiple files, I just do multiple commits (do a change -> commit -> jump to my branch/fork -> do the rest of the changes one by one) as GitHub doesn't support editing multiple files for a single commit and then I wait for the CI results. If something goes awry I'll probably clone the repo at that point.
Most of the time when I contribute to a GH project it works like this: I use the product, discover a bug, search on their GH, don’t find it, file a new bug report, clone the source fix the bug, submit PR, never commit to the same project again.
The threshold for doing that sort of minor work can be lowered a lot by this.
If going through the setup is hell, what makes you believe that it'll be easier to contribute after you get it for free? I still believe the best way is for OSS projects to ask contributors to do some mentoring...
> what makes you believe that it'll be easier to contribute after you get it [setup] for free
I'm flabbergasted. Like.. I don't even know where to start. You've been through an on-boarding process before right? Have you led one? Haven't you ever watched a junior dev get dragged through all sorts of arbitrary "don't breathe on it" setups just so they can start making tiny isolated bug fixes?
And even then, you're just following instructions where even most high level developers don't even know why their project is set up the way it is.
We've worked on very, very, very different projects your and I.
I don't understand what your comment have to do with contributing to OSS. Anyway, I don't really believe that codespaces or any out of the box tool is going to be a magical solution for junior devs not be dragged in those kind of setups in the projects that you're referring to.
> magical solution for junior devs not be dragged in those kind of setups in the projects that you're referring to
That's exactly what this is. The setup is part of a clonable environment. So for large scale compiled projects, you wouldn't have to:
1. Download the massive thing
2. Get it to compile
3. Potentially not have to compile many files that already have their `*.o` (or equivalent) file in the environment.
It could be like just walking up to some other developers fully functioning station, and getting started.
Most developers are pissed at programming on the cloud and want to do core development locally on their laptops, if you will force them to cloud edits that good luck getting developers to work with you.
From my experience (in the UK) companies either don't care about your environment assuming you set it up, or they just give you a preconfigured laptop (or workstation)
From Microsoft's point of view, it makes sense to merge Visual code with Github, as both are their properties. And it walks into the realm of repl.it and darklang, who are demonstrating people want to shorten the repl loop.
But I'm still wary of Microsoft, and remember them from the 90's. Completely dominant and ruthless. Even though it's new people now.
I can see them embracing open source development workflow, branching to eat up everything that has to do with your development workflow. Once Microsoft wins the ecosystem of open source developer workflow is when they'll start to leverage it, using it as lead gen for the lucrative cloud/dev ops services.
They're playing a long game to beat Amazon AWS, and to beat off any new startups with shorter repls.
I wonder if it's usable from an iPad. I haven't tried an online ide before, but if it works well it could be a great mobile development tool.
It would be awesome if this could be setup as a backend for vim as well. Given how well Coc.vim integrates with VSCode tooling, I'm cautiously optimistic.
That's correct it's usable from an iPad during the beta. There are a few known issues but we're planning on addressing those so that we can support this workflow (I work as the product lead on Codespaces).
Super excited to hear this, I had the exact same question reading the page. Any chance you'd be willing to slip us a peak on when we could reasonably (even a Qx ballpark) on when Beta begins?
I've been self-hosting VS Code Server ( https://github.com/cdr/code-server ) and using it from Chrome on my iPad with a keyboard and mouse when I'm on the road..
If this is the same or similar approach, then it should work just fine.
If the pricing for Codespaces is reasonable, I'm going to move to that for sure. It's been kind of a hassle to keep my self-hosted setup running properly.
Hey, the first tweet is mine. Codespaces work pretty great on an iPad. We're going to be making improvements to the experience here as we get to GA but we know it's a scenario everyone is really excited about.
Backend may have been the wrong word, but they mention being able to connect to your codespace from VSCode running on your computer. It would be cool if you could connect to your codespace from vim running on your computer in the same way.
I'm getting tired of this game. Even the deaf ones like me start to hear the drums now.
You know, it's not that we do not have enough megacorps controlling every aspect of our lives. We need more of the "opposite" - places that empower you and leave you in peace and control.
People hate on Electron apps, but it sure enables some cool stuff. I can't imagine another sustainable way to build a fully-fledged IDE that runs as a desktop application that people love, _and_ can be run on a remote server instance, rendered and interacted with in the browser. Amazing.
VSCode is a decent app, but I no longer consider it an electron app. It uses tons of c++ and you'd have to have the cash to buy the electron team (like ms did) to get anywhere close to what they have done.
I remember listening to Nathan Sobo, one of the founders/creators of Atom, talking to The Changelog in 2017 about creating Atom and his goal/dream to make it a collaborative editor, i.e. Google Docs for code [0]. He didn't have a timeline but he had done research into it:
> That’s definitely something I wanna do; that’s not really in progress yet. I did a bunch of research in that area, so that I can’t really put a timeline on. I can definitely say that more async style traditional GitHub collaboration will be happening this year. I think there will be a natural outgrowth from that into the real-time stuff.
Don't know if Sobo or his Atom colleagues do anything with the VS Code people, but hearing about Codespaces made me immediately think about his ideas for cloud editing.
(AFAIK the CodeSpaces presentation didn't mention collaborative editing in its current feature set)
I had a short chat with some members of the VSCode python extension team to give feedback on their product. They wanted to know how much I’d value collaborative editing in VSCode. They’re definitely thinking about it.
If you've noticed it during the demo, the Live Share extension is preinstalled and logged in with your GitHub account, so you can start a session right away.
Hopefully one day we can get over "sherlocking". When you build your business off of another business, you're still at the mercy of the other business.
Agree. And considering the size of this, they are executing a very well defined playbook. Sounds like a very successful company integration to me. Will be good for everyone.
Hypothetically, say I wanted to build, I don't know, a new spreadsheet that ran Python, runs on macOS and Linux. I hope it will give Excel a run for its money. Since Excel is so disappointing outside Windows.
Now I know Microsoft has a long history of safeguarding trade secrets, they were always very aggressive in this regard, from the beginning, the Xerox Parc days, and they still are. They state in their Investor Report that in Research & Development, they safeguard trade secrets, and are a world leader in patent pursuit [1].
Surely I don't need to worry that this platform for online development, tied to my source code, is not just another step towards making it easier for them to have a sneak peak into what I'm building? I know they can see my code in Github, but as a developer I know source code is one thing, but getting code to compile and run is a lot more work (on a very big project). This would make it even easier to dip into project runtimes, since IDE and environment settings are stored online now.
I mean, there's no way that strategically, they would aggressively try to bulwark their own business lines, by snooping on competing tech, and using insights to help strategically direct their patent lawyers, advising them on who to go after an how. And anyway, even if they did do that occasionally, there's no way they would bully me unjustly, I would surely deserve it. Right?
Microsoft is pushing for a future with dumb terminals and online services. I think this is just a move that gets them closer to the point where a low power tablet/laptop combo (surface like form factor) can be all that a developer needs to work.
There's a lot of reasons why Microsoft will want that, among them that if they can sell a solution that works in cheap terminals, they can tie corporate customers into their bubble by selling them services that allows them to avoid buying hardware for their employees.
I'm not saying that being wary of Microsoft's ownership of your code isn't warranted, I'm just saying there are probably less shady/convoluted reasons why this kind of product benefits them - Occam's razor, etc.
I think we need another, Machiavelli's Razor: "Don't attribute a string of coincidences to accident when they are more neatly explained by self-interest".
I don't know of a central list. It depends on the particular language server you are using and if it supports the feature. The only other language I use it with besides java is typescript/javascript. https://github.com/microsoft/vscode-docs/blob/vnext/release-...
It's a neat idea and kudos to them for executing on this. However, it also triggers my spidey sense a bit. It makes me concerned about a far-flung future in which people who opt-out of the VSCode integration get a sub-optimal experience. Who knows if it will go this way but it may happen very slowly and without anyone noticing over a period of years. Corporate strategies often trend this way.
At least now we don't need to run VS Code in another Chromium instance!
Now that Microsoft has Chromium Edge in Windows, it should be possible to provide a good way to spawn and communicate with Chromium GUIs/windows from native Win32 apps! That would be killer!
To me it is just something that grew by being distributed being merged into a monolithic entity. Merging and centralization seems reasonable at some point to solve big problems and iron out insignificant differences, and computing has always been swaying between distributed and centralized, but this is one scary centralization phase for me because it looks unprecedentedly global and because it concerns developers themselves. I don't like fiddling with development environments (I kind of liked it first, actually) and toolchains (especially the web ones) just as much as anyone else, but I am afraid this might be too much lock-in.
I doubt you'd get the same quick & simple experience you have with Repl.it. This is more replacing your local VSCode, which is not what Repl.it aims to replace.
this is not even just replacing your local vs code.
This is a minor variation of the existing Visual Studio Online (now renamed Visual Studio Codespace) product.
The core of it is running an automatically created azure hosted docker container. It automatically checks out your repository. It actually runs the whole VS Code backend on the remote machine, with the the user interface being provided by the "local" VS Code instance (web or desktop).
I'm going to bet this will end up with identical pricing to the existing product, at least if you don't pay for any github products. If you do, there might be some discount or included running time with those products.
The only part that sounds new here is the editor integration into the GitHub site.
I wonder how they will (did?) work around the keyboard shortcuts that Chrome reserves (and doesn't propagate to the page).
For example, Cmd+T in VSCode opens up the quick search panel, while in Chrome it opens a new tab.
One of the hardest part getting anyone into Programming is actually setting up their Dev environment. ( You have many different platform, OS version or other compatibles issues... etc. And most student dont have clue about any of these ) You then have to teach them basic Git ( Github ) usage.
Cloud9 could be great but hasn't gotten any traction apart from using it for some tutorials.
This Codespaces brings the best of both world and kill two birds with one stone.
The next step is Azure, hopefully they could have an Amazon Lightsail equivalent that is simple to understand and deploy without scaring beginners away.
I think that setting up your development environment is often an ironically pleasant and linear (i.e. easy) task that is a matter of following some tutorials and that might make a beginner feel like they are accomplishing something. There were always plenty of tutorials for doing that as well, and I can imagine it is not least because developers like sharing their experience by writing them. Of course after some time it becomes a hassle and one just wants to have their setup the habitual way, but in the beginning for me at least it felt like accomplishing something.
I hope they allow to run the VMs on local hardware. I would love to use my desktop resources (more than they are offering, which is still generous) for this feature.
I think Chromebooks are going to be a great use for this. Lightweight client but full editor and environment, with no hassle.
>I think Chromebooks are going to be a great use for this.
A great use for this if you don't mind losing the ability to run Ublock Origin and similar extensions when Google "upgrades" the software on the Chromebook to extension manifest V3.
That is relevant because most developers probably need to look stuff up on the web while they are working. Some of us really don't like ads.
I’m not sure if you can bring your own machine[1] with GitHub Codespaces, but you can with Visual Studio Codespaces, which has the same underlying tech/featureset. (Visual Studio Codespaces was known as Visual Studio Online until last week) it basically does exactly what you want, let’s you use your dedicated local resources on another machine or remotely via the browser or using VS Code proper.
I work at Microsoft on Azure but not with VS Codespaces or with GitHub Codespaces — I’m just a big fan/user/beta tester.
gitpod.io is tightly integrated with the Monaco editor; is it not?
I ask because the top of https://microsoft.github.io/monaco-editor/ says, "The Monaco editor is not supported in mobile browsers or mobile web frameworks". Has Microsoft changed their policy and simply neglected to change the passage I just quoted?
You're right, Gitpod uses Theia, which uses Monaco, which doesn't officially support mobile browsers.
However, we do extensive testing of Gitpod and Theia on mobile devices, and work around bugs or contribute fixes upstream to Monaco when possible.
Gitpod/Theia users now report that the iPad experience is great, and we continue to push forward on improving it.
On the other hand, VS Codespaces blocks you with a "This browser is not supported" error page when you're not using Chrome. (Even pre-Chromium Edge is unsupported.) But you absolutely need Safari support to work on iPad (all browsers there are basically just Safari skins).
So.. let's say I host my source code with MS (GitHub), I develop using their web ide (visual studio code space) and then I deploy to their cloud (azure).
Give it a decade and you'll have Microsoft specific developers and organizations who are locked in beyond rescue.
It's always a fragmentation vs defragmentation battle.
It's going to be ALL developers getting locked in. You're seeing a 5-10 year plan in action here.
1. Create a popular, locally run dev editor.
2. Shift it to the cloud.
3. Build all new features into the cloud version only.
4. Ignore the locally run version until it's obsolete.
5. Developers rent the cloud version forever.
The GitHub integration is going to be amazing for Microsoft because the allure of clicking a button and getting an instant development environment will be huge. Watch for a big campaign where popular frameworks start providing "Launch in Codespaces" or similar buttons.
We'll get to a point where new developers won't even know how to set up a local development environment. I'd bet a lot that Microsoft is envisioning a world where developers pay $1000+ per year for a combination of GitHub, Codespaces, Actions, Pipelines, etc..
The idea of paying cloud compute rates for things like build agents is crazy to me, but here we are.
For me, the real appeal is to be able to share dev environments easily and make software development truly remote friendly.
In the end, it will come down to latency, usability and pricing. I do agree with you though - I'm not paying $2K+ for a macbook pro and then pay to run VSCode in the cloud -- something doesn't add up.
I'm not clear on how this will make things easier. The default "environments" are just docker container defined in this repo: https://github.com/Microsoft/vscode-dev-containers/
except that you can leave them suspended when not using them. (For the non-GitHub version this is literally a VM provisioned by way of running a single pre-specified docker container. Suspending is presumably just suspending the whole VM. In the beta the GitHub branded version will not persist processes, so it would be more like stopping the VM when not in use rather than just suspending it.)
The estimated costs for full time development for one user with only one environment is ~$23.30/month.
Each environment you leave in a suspended state for a whole month would cost $6.40. OF course, if you are willing to have your filesystem wiped and rebuild each time you start and stop coding, you can destroy the environments when not in use, in which case you will probably want to create a custom dockerfile to customize the environment.
> We'll get to a point where new developers won't even know how to set up a local development environment.
I think we're already there. I think system administration is the current biggest stumbling block that new programmers have. Tools like repl.it, google colab, etc. remove these (stumbling blocks | learning opportunities).
At many universities, a lot of code is now written in online editors that compile, run, and check against public and hidden unit tests (sort of like codewars but lower quality).
I personally love learning systems administration but there is very real demand for services that abstract it all away.
That said, you enumerated an effective roadmap for this kind of transition. I suspect it will generate an increased annual cost similar in magnitude to the Office 365 migration.
> Give it a decade and you'll have Microsoft specific developers and organizations who are locked in beyond rescue.
Don’t need to give it a decade, you can find plenty now, or two decades ago. It’s not like Microsoft is a new entrant to the IDE market with VSCode or GiHub Codespaces (hint: the VS part of VSCode).
Well then I'm glad you're here...Is it possible to integrate with an existing Dockerfile? My team's main build is handled by an image that is a result of years of fine-tuning and files with external dependency definitions (like requirements.txt for pip). Getting all of that installed in github's container is only slightly easier than getting it all installed in a desktop IDE, which is currently prohibitively difficult for us. We don't want to end up with a second platform we have to maintain.
More generally, is there going to be a clean way to to use this if we already have a containerized stack, especially editing code in a user's existing container? (With the code still under version control, of course)
"given enough eyeballs, all bugs are shallow"
If this succeeds in reducing the friction for someone to submit a patch/bug fix, the number of 'eyeballs' for open-source projects would increase substantially.
This is maybe the most relevant threat to the macbook pro product line I've seen in a while. Seems like I could do everything I need on an iPad with this, without Apple having to give me access to a shell in iOS.
I was just looking in to setting up "VS Code in the browser" with gitpod, code-server, and Visual Studio Codespaces last weekend. Gitpod looked nice but the fact that you can only customize the editor per-repository doesn't make sense to me. Looks like GitHub has solved this by using a `dotfiles` repo. code-server looked decent but I would much rather auth / secure the editor through GitHub. I tried to use Visual Studio Codespaces but I find Microsoft's account system and Azure's interface so infuriating. I'm really looking forward to this!
> Gitpod looked nice but the fact that you can only customize the editor per-repository doesn't make sense to me.
Gitpod also has user-specific Preferences, and even user-specific VS Code extensions. (Usually customization places have a "Workspace" tab and a "User" tab.)
I am surprised this is not using atom. After all I that that was developed by the GitHub team. But I guess since Microsoft owns them VScode comes first.
I can see why this is interesting from a project manager's perspective. But why would I as a developer want this, let alone pay for it? Isn't this the "developing in a browser" nightmare everybody was joking about a few years ago?
Maybe this will work for developing web applications which are executed on a remote machine by design, but everything else?
Products like this have existed in various forms for a few years now, but this is poised to set a new bar. I wonder at what point a significant number of companies will start issuing their developers lightweight laptops and just having them use a web-based environment for everything. It seems almost inevitable (at least, when developing applications that are sufficiently abstracted from the underlying system).
Edit: it also occurs to me that this could be Microsoft's big end-game from all of their recent dev-focused work and acquisitions (VSCode, NPM, GitHub, TypeScript, WSL, etc.). If they create a world where a significant fraction of developers who currently buy their dev environments from Apple start renting them from MS instead, that's a huge deal. And of course there's lots of potential for synergy with Azure on top of that.
I am so excited about this. I've been using code-server [0] for a while now, because Visual Studio Online was not fast enough in Australia for me to use.
I have a VPS that runs code-server and I use 'save as app' in Edge so that it captures control keys properly. It feels like it's native and using ssh tunnels it feels 99% native, and I can pick back up working on any computer.
I ended up with this set up because I have a Galaxy Book S and VS Code doesn't have an ARM build. Very excited!
What worries me is the consolidation of great resources in the hands of one party. We know from our collective experience since forever that concentration of any resource does not give us resilience.
I haven't used GitHub in some time (using gitlab), so just wondering what are they using to run this stuff... because you'll probably need a fullyfleged container service with secret management and whatnot. Does GitHub already provide this?
Also I'm guessing the editor won't be using the same file system as the launched code, i.e. would hot reload be possible or do you have to commit and redeploy
You simply prefix your GitHub (or gitlab) url with "gitpod.io/{your-repo} and you are instantly redirected to VM with with your repo cloned and ready to use, a fully customizable dev environment, vscode, extensions, machine is public on the internet so you can "npm start" and actually start serving your site.
I develop front ends for Laravel apps. The database is also on my desktop. With this would I need to host the database on its own server or can the Codespace also handle running a DB? Mainly asking because I only use laptops for co-working and meetups. Would love to ditch buying them and just use the iPad Pro that I have. Not sure how to handle the database if I'm on an iPad.
This is great news! I've been doing a similar setup to this for years with Jupyter Notebooks.
However, if I get to make a teeny tiny feature request (Nat, if you're out there...) it would be about this:
> What if I don’t want to develop in a browser?
> If you prefer, you can open a codespace in GitHub and then connect to it in VS Code.
I really kinda wish I could do the oposite, kinda like how Google Drive's Colaboratory (essentially Jupyter Notebooks on Drive[0]) do: I would launch a CodeSpace on GitHub, and it would handle all of the UI and automation bits, but I would keep the "environment" hosted somewhere else (i.e. a Docker container exposing a CodeSpace agent/headless VSCode through localhost:8080 that my browser talks to)
All of the gears seem to be already in-place for this to be possible given:
> How is Codespaces different from VS Code?
> Codespaces sets up a cloud-hosted, containerized, and customizable VS Code environment. After set up, you can connect to a codespace through the browser or through VS Code.
The reasons for this are several:
- I bought a beefy computer for a reason, and want to use it. I don't want to pay boatloads of money to Azure to have equal firepower to what I currently have idling;
- From an SRE perspective, your code, several times needs to be "inside" your infrastructure to run properly (because of roles, latency, you might be running Data Loss Prevention solutions, what have you), and this allows me to point the CodeSpace to a dedicated instance I have running inside a VPN on my own infrastructure;
- There are more, but I don't want to make this too long and I'm failing to recall some of them.
So to sum it up: I think this is a potentially great feature, as long as it doesn't come coupled with the need to buy Azure instance time. This would (and I'm asserting this purely from my own gut, without a shred of evidence) probably lead to increased adoption for this feature, and as a corollary lead to selling more Azure instance time for those who do not want the hassle, without crippling those who actually need to keep some things "in-house".
I was a big fan of the idea of GitLab IDE, but never got too deep; it seemed like a great idea that could use more baking. But then I saw Theia and GitPod. I like GitPod, but I just wish it had better Github integration.
Well, yeah. So... good job Github. Can’t wait to try this one out.
This is great. We all knew it was coming, but I wish they hadn't axed xray.
Has vscode performance improved in recent history?
Are there any plans to replace hot code paths with Rust or wasm?
Has modal editing improved?
I'm not against using vscode, but even with codespaces it's a hard sell.
Will this support Teletype style multi-cursor collaboration? I'm very excited about this for easy dev environment setup but if it had easy collaboration it would be immediately adoptable at my org for pair programming while we're all pandemic-remote.
I've already been using VSCode remote over SSH on cheap yet powerful Hetzner instances. You can do this on any cloud vendor and you can, if you want, put your home directory as a volume and resize up and down your machine as you want.
It's interesting that Microsoft acknowledges the fact that their native windows platform is really not good for a lot of developer. Linux is better. The web is even better. Good direction they're heading to.
Once they have all the coding sessions recorded they can finally replace those pesky devs /jk. But seriously, is there anything in the conditions about ability to record coding sessions of say open source devs?
Sounds good, microsoft is building some interesting tools lately. I use visual code on the desktop for various languages, so it is a welcome to see it will be supported online through github repositories.
So now that the IDE is on the web, it would be pretty neat to be able to automatically launch interactive debugging sessions when breakpoints are hit in CI jobs.
Does any CI solution already offer something like this?
I hope this accelerates interest around web-based development environments. If someone could pre-package a setup containing language servers for "all" languages, a build system that is generic to all languages (bazel or bazel-like), and internally run a small kube cluster with a wildcard DNS name pointing to it you'd reduce ops work of setting up staging environments, feature branch testing, development environment management, etc for most development teams by at least 10%.
I can't wait for a monorepo-friendly staging/development environment that works out of the box and can provide cross-language & generated code autocompletions for "every" language.
I think you severely underestimate how hard it is to do this for “all” and “every” language. Even VSC only has first class support for a handful of top languages. Most languages I use have barely more then a syntax highlighting package.
Can someone explain how 'build' is done with the obvious targetting of platforms and build configs etc? Does the build happen locally? On a rented server? Serverless?
Gitlab has a decent web ide, I think this may be github playing catch up, but I'm hopeful that this competition gets us a better product on both sides.
I was expecting this years ago when GitHub started work on Atom. This will be quite useful for people who are willing to participate in the Microsoft ecosystem.
Being able to connect, do the work, run tests and everything without needing a strong laptop sounds like a good solution for people who like to travel.
I've been using Visual Studio Online (now Visual Studio Codespaces) which is the same tech, I've found it has everything my local VS Code had; extensions, terminal, debugging, themes, all the settings. Pretty remarkable, but as VS Code has always been a web application, it make some sense.
I'm sure there'll be something missing but nothing major
Well, the web app is interacting with a host system too — the host just happens to be different than your web browser environment.
I mean, yes, there are some differences between the two (and keep in mind you can also access a Codespace via a locally installed copy of VS Code in a remote development environment, where the remote dev environment is the Codespace VM), but as far as I know, there are very few differences between how a remote environment locally works vs a remote environment using the browser-hosted editor.
You’re correct when you say there are differences, but I still feel like “full” experience is accurate. Full doesn’t have to mean 1:1 copy. To me it just means aren’t losing out on something.
I work at Microsoft on Azure but not on VS Codespaces or GH Codespaces. I’m just a fan/user of both.
It does have extensions[1]. It just might not be able to run _all_ extensions.
[1] From the link: "Inside of a codespace, you’ll have access to the Visual Studio Code Marketplace, and you can preload any extensions you want loaded at launch using a devcontainer configuration file. You can also personalize your codespace by pulling in dotfiles."
I think if you look at the pricing for github actions minutes, you'd gather an extremely rough idea of what they feel is a fair price for docker hosting. Maybe add some buffer to make the VS Code investment worth it, etc.
Absolutely, just might not be for everyone. Installing running those modules is gonna cost them. node_modules for create-react-app, react official boiler plate is around 280mb
It used to be called Visual Studio Online (it was renamed to this) and you could indeed run it on your server, so I'm assuming that's not going to change.
No clue about GitLab integration. I don't see myself using a browser tab instead of an app to write code, and the app does have GitLab plugins, so I'm gonna go with probably.
It's also some pretty serious vertical integration for Github/Microsoft!
IDE: Github
Source control + collaboration: Github
CI/CD: Github
Hosting: Github + Azure (with docker and azure functions that experience is pretty much already there technically?)
I'm aware of the product, I'd like to know if there plans to integrate these two offerings (e.g.: click on GitHub CodeSpace and connect to my _personal_ remote server as opposed to one on Azure) and if there will be any better approaches for IT/Ops security focused folks to configure these en masse. The current approach is untenable, each user has to log in and set up a VS Remote environment individually, personally, and if I'm rolling this out to a team that's just not an option.
Interesting to see VScode in github. Slowly integrating Microsoft’s feature. I think we can soon expect something like Create a MS PowerPoint from code comments
Wasn't one of the primary reasons for the creation of git to be "decentralized, offline"?
This is counterintuative to that.
Call me paranoid, but you'd have to be a madman to
* Store all of your source code with Microsoft (GitHub / npm)
* Now start authoring all of your said source code online with yet another Microsoft product
That's a stupidly huge amount of trust to put into Microsoft.
Don't conflate Git with GitHub. Git is decentralized and always will be, and you're free to use Git however and wherever you'd like. GitHub is a collaborative code repository with social features, and the ability to edit code in place is an interesting evolution. The fact that GitHub happens to use Git is incidental. The entire product would be a useful and viable venture even if it were backed by CVS or Mercurial or Perforce. Git just happened to be the best choice when they started.
I tend to agree, it's quite crazy what they are trying to pull off technically. It's hard to imagine how all these features will not impact the service. Also it's probably just bleeding money... millions of dollars on CodeScan alone.
Just think! You have Github. Git coming from linux, open source World, ...
Also Github is notoriously the base of a lot of the ecosystem that is deprecating Microsoft solutions and environnement.
All the website and js things of today are all developped by and for the unix world(linux, mac,..).
In ms World, you were supposed to use proprietary closed heavy corporate solutions : c sharp, j2e, closed 'pro' server solutions.
Si Github was the corner of all of that. Then they but it, suddenly there are a lot of features coming that bring it far from the scm job it was meant to.
Now, it starts to be 'integrated' with ms tool ecosystem.
How long before your Github accounts are merged, shared, replace with a Microsoft account?
They will tell you that it makes sense and is needed because vscode needs to be interconnected with ms team and co...
And btw, don't forget the past. They had 'team fondation server' (that is now azure devons server'), that was shitty and git and Github were terrible competitors.:
https://wilsonmar.github.io/tfs-vs-github/
And all of tfs was volontarely deeply intricated with Visual studio useless things.
Github was since forever a proprietary product, so EEE doesn't apply here. This is equivalent to buying a closed email client and integrating it with MS Office.
So GitHub (Microsoft) continues to venture way beyond just source control and it's directly related areas, into a much more overall "development" strategy, seemingly echoing what GitLab have been doing for a while.
It's sad to see GitHub moving slowly into spreading itself too thin, instead of just improving the platform they have. They now try to replace CI services, donation platforms and now remote code editors.
Seems their core service is still holding up so far, but with all these moves in different directions, I'm getting a bit worried that the SCM and software collaboration part will be left out. I think GitHub becoming SourceForgeV2 is closer than people think. It's bound to happen at one point.
They now try to replace CI services, donation platforms and now remote code editors.
I am not too worried about spreading themselves too thinly. GitHub Actions is much nicer than some of the competitors I used before (though I still love sr.ht builds).
Also, it would be bad for them not to branch out. GitLab is now a strong competitor and they also provide many features beyond code hosting, such as CI, registries, etc.
It is nice that there are three large players now (GitHub, GitLab, Atlassian). GitHub was stagnant for a while, but they seem to be moving fast again after GitLab became a serious competitor. It's a clear case where competition is benefitting the users, both in price and in platform capabilities.
I'm not sure it's bound to happen. They're owned by a trillion dollar company and Github is a super important tool in their overall developer strategy.
> Seems their core service is still holding up so far, but with all these moves in different directions, I'm getting a bit worried that the SCM and software collaboration part will be left out.
They literally just made teams cheaper and added to their free tier.
EDIT: They actually announced the renaming of the product a couple of days ago: https://techcrunch.com/2020/04/30/microsofts-visual-studio-o...