On both points, that is the exact opposite of my experience doing Node.js/Javascript/CSS/HTML in Cloud9IDE.
It is clear that the browser environment imposes some restrictions on what an online IDE can do (restricted hotkeys, no on-machine filesystem access). Notwithstanding that, I've come to prefer the Cloud9IDE environment over local options and love being able to pick-up where I left off as I switch between computers.
I only program as a hobby. Cloud9IDE and other cloud services have let me build a site / service that is ranked in the top 9k globally (per Alexa) without having to fuss about this sort of thing.
There are many things I could do given the time and interest. Learning everything needed to get where I am has taken lots of time that I feel is better spent providing direct value to the product and its users vs. wondering what the 'optimal' dev environment might look like.
An intelligently-designed IDE is still going to be far easier for anything but constant, everyday use -- the learning curve of "start using this with context menus, then gradually learn the shortcuts for the things you do most often" is really far better than "everything is key shortcuts -- keep these cheatsheets next to you."
I tend to use vi when doing sysadmin sorts of things... but there are a dozen commands that I've relearned several times now, because I learn them, don't need them for a few weeks, and then have to re-learn them when I need them again.
As an alternative, VCS have solved the problem of picking up where I've left off in an IDE-agnostic way so I can use the tools I've grown accustomed to.
> Also coding in the browser has been a miserable experience.
Basically that ^.
Having tried some web IDEs, I can say it's not a pleasant situation when browser crashes or hangs.
Putting aside local tools or whatever, the editor must must be available at all times, with or without internet connection. At least that's my view. :)
Heck, even email in a browser still is rough going, and I'm using a webmail interface Google has been working on for ages now, in Google's own browser -- but I still write most of my emails in a native mail application.
"Edit X from any anywhere" is a great idea, and "Every time you open the application you'll automatically have the newest version" is a great idea, but when you add them together and get "our application will run in the browser" it falls flat (still) in crucial ways.
Just basic workflow -- work on your code in the browser-based IDE, then (in the same browser, with your multiple tabs and windows) go dig up some ideas on SO, check your gmail... Now flip back quickly to your IDE. Oh -- but it's not in your dock/taskbar, or Alt-tab menu. Which of those browser windows was it in?
You can work around this by tweaking your workflow, and obviously Google in particular is working on browser apps that bridge the gap; I use Postman in Chrome, and that's a better experience. But this is more important than I think a lot of people realized.
I tried using my laptop to edit a document I had saved on Google Docs on the train once. Docs was unusable with a cellular connection. I didn't get to edit the document and now I post on the internet about it at 3am.
These sorts of issues are quickly going away. While it is true they have not been entirely eliminated, there are some architectures rolling out that should eliminate them. There are a couple technology problems various teams are trying to solve. First is that the editing experience has to be local fast. The new Monaco project coming out from Microsoft soon is an adaptation of Atom that is getting to near desktop editing speeds, including aspects related to Content Assist that require processing of large files in near real time. The second is internet connectivity. Increasingly, the editors that are being embedded in the browser will have transient services that can co-locate within the browser, enabling continued editing / saving even while the connection is offline. These technologies, as they mature and the edge cases are ironed out, should work to improve this concern.
Also coding in the browser has been a miserable experience.