618 comments

[ 3.3 ms ] story [ 347 ms ] thread
Ah, this really makes sense with all of the recent work they've done on VSCode's remote development capabilities.

- An early announcement on their focus: https://code.visualstudio.com/blogs/2019/05/02/remote-develo...

- Most (all?) of their recent VSCode updates include improvements to remote development. i.e.: https://code.visualstudio.com/updates/v1_44#_remote-developm...

- Facebook partnering and becoming an early, heavy adopter: https://developers.facebook.com/blog/post/2019/11/19/faceboo...

The WSL integration is a pretty good result of that effort too.
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.
Didn't we already solve this problem with containers?
You should read the article...nothing to do with containers...
I believe he was referring to the system libraries being outdated problem
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 mean, they could have totally released the source and it probably wouldn’t impact their bottom line at all.
It would make quite a dent in support contracts for their on-prem offering.
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?
I think jon-wood was talking about the website’s source code, not the mobile app.
Yeah, this.

The analogy seems clear to me: The web is to IE as git is to VSCode, eh?

At the very least, it makes it harder for an editor to be a competitor to VSCode w/o integrating with GitHub (not just git) now, eh?

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.

It’s telling that they went with VScode and not Atom. Makes me wonder what the long term outlook for Atom is.
Those of you downvoting this - can you explain what you disagree with here?

Because it looks like a good analysis of this part of Microsoft's strategy to turn "Open Source" into a spyware-laden sausage machine for Azure.

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.

Calling it spyware is hyperbolic.

Keep it up Microsoft.

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).
Microsoft has been adopting standards to then extend them and lock-in users for two decades.

> Microsoft has been providing some amazing tools completely free of charge

Yes, and they are the opposite of a no-profit.

This are just the first steps: "embrace" and "extend".

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.
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.

Are you sure it needs a remote component? The remote SSH dev experience is actually pretty good in python.
Quite sure. Here's the documentation.

https://code.visualstudio.com/docs/remote/remote-overview

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.

Use the remote containers plugin and that problem goes away.
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!
remote dev (and I guess now codespaces) is one of those "clear differentiators" that is actually getting me to move away from intellij and friends.
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)

I agree. I’d love remote intellij development, but it doesn’t seem to be something they’re interested in at all.
In my experience, it can't even do it for TS either.

WebStorm seems to understand Microsoft's TS better than the VS Code Plugin. Complex refactors actually work.

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.

Vscode has an excellent support for golang too. Python support also is good but sometimes it’s hit or miss with some native dependencies.
VScodes support for Golang is meh. My entire team has switched to using Intellij/Goland.
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.
Try solargraph for VSCode. I've found it about as useful as RubyMine.
But intellij has had remote dev support for longer than vscode has even existed, what am I missing?
How does it work with poor or slow internet connection?
Should be fine - most editors will not round trip on every key press, only periodic saves or command runs.
In my experience, pretty well. If the internet cuts out temporarily, it reconnects automatically without losing any of your work.
It’s actually impressive how often VS code or ssh has exploded for some reason without losing any work.
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"
Agreed. It's completely changed my productivity for the better. I don't even remember the code is remote.
+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.
but how do you test the iOS app on Windows?
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.

Emacs has had Tramp for ages, which does this. Yes, it's amazing. :)
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.

Emacs is the beast.
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.

When good software works, it's so cool.

It's amazing!

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.

https://github.com/cdr/code-server

(comment deleted)
Having some thought about the GitPod folks[0] that provide nearly the same feature set.

I hope we are not witnessing a big sherlocking being done here, but… it really looks like one. :/

[0] https://www.gitpod.io/

Yes, I think it is... Gitpod still has gitlab though :)

It's quite crazy what GitHub is doing...

We're pretty stoked to have new friends in cloud-native development!

Microsoft/GitHub joining the dev-environment-as-code movement is huge, will likely save us all a few more years of dependency-hell.

(EDIT: Removed official blog post link because taywrobel posted it first)

They should be OK because they're still usable with GitLab and have a self-hosted offering.
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.
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...)

EDIT: They actually announced the renaming of the product a couple of days ago: https://techcrunch.com/2020/04/30/microsofts-visual-studio-o...

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.

Having APIs designed for public consumption probably helped.
My experience with azure storage didn't make me think it was "designed"...
Evolved via natural selection perhaps?
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...
Hopefully they’ll eventually provide an S3 compatibility layer like everyone else.
Give Azure NetApp Files a test drive. World of difference.
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
All that is nice. But who are they building this for? Who is asking for this stuff?
So I suppose that you would like a faster horse?
When someone builds something and doesn't actually mention why, its not unreasonable to ask what the motivation was...
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.

(comment deleted)
> 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.

[1] https://news.ycombinator.com/newsguidelines.html

I think that's a fair point.
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.

> 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.

Clarification question: do you mean two images in total?

Perhaps you are saying that would cover all 15 Rails apps?

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've been looking for a better way to make changes to my personal projects from my Chromebook.
I imagine a lot of projects will start here, whether it's new developers or existing developers who want to spin up a straightforward service.

I just used Glitch.com for the first time to set write and deploy a Node server in 10 minutes, and it was an incredible experience.

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.

GitHub’s acquisition of Microsoft is really paying off.
Thanks to Microsoft maybe it will be possible to code seriously on an iPad. Hey Apple look at this!
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.

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!
Do you really want to write coffee on your phone? I couldn't imagine wanting to every do that myself. Am I weird? :)
I will say it would be nice to review a PR while standing in line for groceries.
I think you can do that from the Github app.
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

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.

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.

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!
They did some demos of improved github mobule support for phone based reviews in the Github satellite stream.
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.

Yes! I certainly do. It's not my main device but for a quick bugfix when I'm not close to a PC it's really useful.

Currently Github regularly completely freezes Chrome on my phone when viewing moderately large files. And I have a decently specced phone.

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.
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.

Super super super excited!

(comment deleted)
Can we please have Julia support? :)
I don’t know Visual Studio Codespaces.

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.

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.
Thanks for this! I was just gonna say "wait, this looks exactly like Visual Studio Online".
I couldn't find any info on how much memory/vCPU these will have available or if it's configurable, does anyone know?
(comment deleted)
Hey I'm a Codespaces PM. It's 2 cores 4GB right now but there will be more configurations coming soon as get further along in the beta.
Github is getting Microsofted, there were some good things about this in the recent past, but I wonder...
Two years, tops, then it'll be unusable.
Three years, and we'll have a version control ribbon to replace all pre-existing UI elements.
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.
What does "getting Microsofted" mean, especially in the context of the last 10 years?
A thin dusting of "Open Source" over lock-in, spyware, and censorship.

To thunderous applause from people who are fooled by the first element of that.

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.

Indeed, the signal to noise ratio for GitHub is pretty rapidly decreasing. It's getting a lot harder to find the important details on any given page.
> It's sad to see GitHub moving slowly into spreading itself too thin

People have been saying this every time GitHub has added a feature that wasn't SCM. How is this time any different?

> I think GitHub becoming SourceForgeV2 is closer than people think. It's bound to happen at one point.

How do you possibly jump from Codespaces to SourceForgeV2, and somehow proclaim it as certainty?

Since when is saying "I think" considered to "proclaim as certainty"?
It's literally in the quote: "It's bound to happen at one point."
> instead of just improving the platform they have. They now try to replace CI services, donation platforms and now remote code editors.

Aren't they in the category of "improving the platform they have"? What exactly do you want Github to be improved then?

By this logic, Apple should have stuck to Macs and never created the iPhone..
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.

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 can only imagine how the people at GitHub paid to work on Atom are feeling right now.

Microsoft hasn't been kind to them!

The people at Github that used to be paid to work on Atom may be the ones that built this :)
Pretty sure they haven't been paid to work on Atom since the acquisition: https://github.com/atom/atom/graphs/contributors

They killed Atom the day they took over - they haven't had the balls to say anything publicly, but just go look at the commit graphs in the Atom repos. Here's a summary: https://twitter.com/DuncanLock/status/1177747512905461760

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.
Wow, I was okay with this until I saw the promise to keep Atom around.

That's...scummy.

I like how they say that if you don't want to develop in a browser, you can connect VS Code. You're still developing in a browser.

Still a great IDE though.

> You're still developing in a browser.

How so? Node/Electron != browser, though I see how the whole HTML/JS/CSS thing can be confusing.

I think it’s saying you’re still using chrome under the covers when you use electron apps.
(comment deleted)
It's a browser without an address bar.
(comment deleted)
This also seems quite similar to repl.it, which I've been enjoying a lot recently.

I wonder if they'll support plugins and importing other VS Code settings to the online editor.

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.

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 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.

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.

Can you share what issues you've had?

Been looking at this.

This tweet from GitHub's lead designer would suggest so!

https://twitter.com/notdetails/status/1258070699165585410

... also this tweet from another GitHub product designer

https://twitter.com/mschoening/status/1258069269260038144

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.
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).
Does it work with the software keyboard? I seem to recall Monaco not really supporting mobile.
I haven't specifically tried it, but I think it would be challenging given how much screen real estate the keyboard takes.
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?
Seems you are about to finally turn the iPad into a good development device :)
My kingdom for native VSCode on iPad. It’d be soooo much better than a Safari version.
What do you mean by "a backend for vim"? I use vim almost exclusively for coding but I'm not really sure what you mean here.
nice! thought about an environment like that. would be great to have python, golang and c/cpp runtimes.
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.

FYI gitpod.io offers 16 CPU / 60 GB RAM, and works great on Chromebooks & iPads.
>gitpod.io . . . works great on . . . iPads

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).

>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.

[1]: https://devblogs.microsoft.com/visualstudio/bring-your-own-m...

Thank you, very interesting! I use IntelliJ mostly, and this is something I wish was available on that platform
What languages does this support? It would be super cool if this supports `xcodebuild` :O
They have Mac runners for GitHub actions, so maybe they could (although you’d have to pay a steep price since it’s hard to virtualize OS X).
Any language you can run in a Linux container, so not XCode, because Apple
ahh shucks :( But this means it will support Swift so yay??
We support all languages that can run within a Linux container, see https://github.com/mcolyer/codespace-containers/blob/master/... for a base example image (I work as the product lead on this).
Awesome! Seems like it's very capable even from launch.
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)

This is great, I can't help but feel like the whole point of rewriting a part of VS in JS was to get to this stage.
> Get the full Visual Studio Code experience without leaving GitHub.

I'm going to go out on a limb here and say that statement isn't quite accurate.

It's plausible, given that VS Code is effectively a web app. (the exception in features could be Extensions)

Not the first IDE to have full-feature parity on desktop and web.

Given that a locally running VS Code can interact with the host system, and a webpage cannot, I'm sure there will be some differences between the two.

And like you said, the exception in features could be extensions. If that's the case, it's not "the full Visual Studio Code experience".

(Not to take away from their announcement, it's very interesting and I've joined the wait list, just this type of absolute wording irks me).

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.

Not having extensions alone already means it's not the full experience. How many people run vanilla VS Code?

Can I run unit tests? Debug?

The article notes near the top that extensions are supported, and also answers your other questions.
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."

Are extensions not allowed?
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
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.

> 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).

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.)

As for the pricing, it will likely be in the same ballpark as the non-github branded version of this exact same service (modulo any included time with a paid github subscription): https://azure.microsoft.com/en-us/pricing/details/visual-stu...

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.

... Then don't buy a $2K+ MacBook Pro?
> 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.

Is this built on top of open source technology? Say, can I integrate it into a gitlab instance, or host it on my own server?
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.

At first glance this seems great for me. I was a big fan of Cloud9 before they were purchased by Amazon.

I was new to dev world and had never touched AWS so the transition to AWS C9 left me bewildered and I just gave up on it.

This seems like this would fill that role for me pretty well.

Bonus points - I currently use Visual Studio Code as my goto tool.

So seems like GitHub is in the shape of VS Code now. Good job Microsoft. Atom is not your child anymore.
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.
So how would this differ from CodeSandbox or StackBlitz?
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.

Let's just hope they don't only maintain this online editor and deprecate the desktop install.
That sounds quite unlikely.
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.

For monorepos, it might work pretty well.

> would love remote IDE tooling hosted on their premise so

sounds exactly like what Gitpod self-hosted is for: https://www.gitpod.io/blog/gitpod-self-hosted-0.4.0/

Yeah but does it come with github or azure enterprise package?

No.

This sounds like good feedback. What do you mean by "github or azure enterprise package"?

I think Gitpod Self-Hosted was successfully installed on GCP, AWS, and Azure, and we're working on documenting the process.

It also works with self-managed GitHub and GitLab installations (with Bitbucket coming soon).

Considering the desktop install is an Electron app I wouldn't think the two would diverge that much.
If they don't release the code for the cloud implementation, it could diverge.
> if not the best

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.

I don't think anyone would suggest this a full time replacement for your dev environment and IDE
There is preview pricing available for VS Code Spaces, which is almost the same thing. https://azure.microsoft.com/en-us/pricing/details/visual-stu...

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 use my workstation for lots more than typing into vscode. If that’s all I do, then I could just use a chromebook.

I think my $2k laptop uses its local storage for evaluating software, working with large data in memory, lots of other stuff.

So that’s not going away. This would be a cost on top of my hardware $666/year.

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.

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.

The issue with PyCharm is that it’s actually quite hard to extend due to lack of proper documentation for their plugins.

I love it but I sometimes think of something that contains less features while is easier to develop for would be a better choice.

Even for C# VSCode is way less useful than VisualStudio, which also has a free version (though doesn't run on Linux)
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.

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.
> Even for C#

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/

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.

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.

Have you tried the Remote Development VS Code extensions from Microsoft? I find them quite neat.
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.

> I estimate conservatively I produce $500,000 in value a year

Do you actually earn this amount per year? Or, is this just a projection of what you think the value of code you write is?

(comment deleted)
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.

[1] https://levels.fyi

Yes, I'm talking about value. My comp is less than that figure. There are some developers with total comp like that though.
You can never earn the amount of value you produce. Your employer can't survive if they hire you for that amount.
Not sustainably, but they could if they underpay others. Or run a deficit.
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'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.
Mine is in the root directory but it's called venv, without the preceeding dot. I'll dig around the settings to see if I can change what it looks for.

Strangely it works if I close the initial termnial it spawns and open a new one.

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.
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.

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.
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/
> If I'm not the customer, then I'm the product.

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.

> If I'm not the customer, then I'm the product.

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.
Ahh, so we get to it. You just don’t like MS. I think that’s a valid reason not to use their products.
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 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.
Even if you're the customer, 99.9% of the time, you're also the product.
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.

Your grocery store probably charges slotting fees for shelf space, making you the product.

You have the same power when not paying because there are other providers whose free services you could use instead.

My grocery store definitely does not charge slotting fees. Which is part of why I use them. They're a small, family-run market.
Do you avoid public drinking fountains? (Covid-19 aside)
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.
It's interesting that this is the moment at which you chose to do that.
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.
I aspire to contribute intrigue to the world.
> If I'm not the customer, then I'm the product.

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?

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.
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.

[1] https://en.wikipedia.org/wiki/Golden_Age_of_Television_(2000...

[2] https://eev.ee/blog/2020/02/01/old-css-new-css/

[3] http://www.ecis.eu/documents/Finalversion_Consumerchoicepape...

[4] https://news.ycombinator.com/item?id=21796793

Thanks for the detailed response.

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.

> 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.

(comment deleted)
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.

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.