Ask HN: Is anyone using a web IDE for most of their development work?

84 points by xhrpost ↗ HN
It seems like there's a new web/cloud IDE every month. Codenvy, Cloud9, Koding, Nitrous, Codebox, etc. Has anyone shifted their development environment to one of these successfully for a decent size project?

83 comments

[ 3.4 ms ] story [ 145 ms ] thread
I have one pretty big project on Cloud9. The main reason is that I can assist designer whenever he needs any help.

At the beginning when everything moved around a lot it was just time-consuming to give him instruction on how to update to newer version. We kept everything on there and it is working pretty well for us.

I do most of development locally but sometimes when I am away and need something quick I do it over C9.

Not _most_, but I do a decent amount of development through Cloud9 on a Chromebook. I'd intended to install Ubuntu on it, but actually because of C9 I've not needed to. It's also proven invaluable for assisting people; the ability to spin up a fresh new C9 VM to collaboratively debug a project has been very useful.
FPComplete built a web IDE for Haskell development but recently decided to open-source the backend and focus on tools instead: https://www.fpcomplete.com/blog/2015/04/future-of-soh-fphc
+1 The FPComplete web based Haskell web IDE is very good.

I worked at Google for a while in 2013 and they had an awesome web IDE named Cider. I wonder if that is still in use internally at Google.

I got into C9 to develop on a Chromebook but found it simple and functional enough to use in general. I only use it with remote servers so the size of the project doesn't really matter. It might if you want to collaborate with a bunch of people all live editing through C9's collaboration feature, but I haven't tested that.

The only other downside is that it requires you to install a bunch of deps and an outdated version of Node.js on whatever remote server you connect it to. I wish they'd make some of that optional.

The Pebble Web IDE is actually really pretty good! I generally don't use them, but for Pebble it was easier, as it offers direct deployment, complication toolchain etc.
(comment deleted)
I wish I could agree, but debugging deployment or your app was close to impossible if you ran into a problem with their web IDE.

Maybe with time they'll workout the bugs.

I really like their UI and deploying over the web - that was like magic. But I was having a weird issue with loading images in Pebble.JS at first. I came back a week later and the image load worked just fine under the same conditions. They're still in early stages, but it's an awesome platform.
Been IntelliJ Idea (or Webstorm) for years now. The excellent Git integration and diff tool is really useful
That's not a web ide. :-)
Maybe he thought we are talking about IDE for web development. :P
That's exactly what I thought, haha!
The title is not very clear. I only knew it meant web based IDEs as it mentions Cloud9. I can see why some may think it is a question about modern day Dreamweaver.
I built a decent sized Meteor app a while ago on Nitrous, but started running out of memory on their free tier after a while. I recently switched to Codeanywhere, which I'm still evaluating. My main reason for using a cloud IDE is because I am a Windows user and I wanted to build something on the latest version of Meteor without needing to start up a Linux VM or Vagrant box.
I use the SageMathCloud mathematics-oriented web-IDE for all of my development work. (I'm the lead developer of SageMathCloud.)
I work primarily in Clojure and Python. I haven't found anything that lets me interact with project/virtualenv repls yet, let alone have reasonable completion/documentation lookup. I use crouton from my pixel2 so I can run spacemacs. I'd be open to suggestions.
I have used nitrous.io for some Clojure work (and Ruby and Node) and you have as many terminal windows open on an instance as you want.
Due to Internet connection issues I can't use a cloud IDEs. However, I think https://cloudpebble.net/ is one of most populars.

Wish they support VIM keybindings as well.

So far I've stuck to Eclipse, but I wonder about using one for Scala.js (which I'm planning on using for my next personal project) just because of the toolchain and because it seems like it could make the edit-test cycle shorter. Is there anything out there with integrated Scala.js support?
(comment deleted)
I'm not a developer; the closest I get is managing a few web servers for clients on the side. That said, if I were I'd spin up a Vultr or Dropbox instance and use something like Codiad[1], that way I could have complete control of the back end.

[1] http://codiad.com/

All coding, note taking, writing, and drawing happens in Lively Web (http://lively-web.org) for me. It comes with a shell and nodejs integration as well as a websocket-based messaging systems that allows to integrate all sorts of different backends, e.g. Clojure (https://cloxp.github.io).
I always found the cloud IDE's hard to work with. Mostly because of speed, and mostly because they are forcing all the tools (terminal, editor, etc) to live in one browser window.
Yup, I have Cloud9 installed locally on my own server. All my coding is done through it. Fast, easily accessible over VPN, and complete control. Love having multiple terminals open right up on my server in the IDE and just flip through them using tabs.
This looks great, it could be a good tool for setting up dev environments for student interns. Not sure how well the C++ is. Their documentation [1] doesn't list how to install privately, nor is the pricing for private setups clear.

Could you share how you set this up, and how much it costs?

https://docs.c9.io/v1.0/docs/picking-a-plan

Very easy to install:

https://github.com/c9/core

It's completely open source. License allows non-commercial use, if you want to be completely legit and use this for commercial purposes, you need to get in touch with them or use the hosted version.

(comment deleted)
Why would you use anything other than "standard" dev environments for student interns?

You've probably ironed out many kinks in your dev environment, and can help them when they run into them. You run risks at alienating your interns with un-manageable errors.

You answered it yourself

> can help them when they run into them

I previously had a big reduction in questions regarding version control once I setup GitLab running on our server and a simple tutorial wiki page. We also don't have enough computers for all the interns, but have a powerful number crunching machine. We do engineering work, some students have only used MatLab. A webpage would be much easier to setup, and less hassle for me.

really like cloud9, I can test stuffs fast. But I'll be moving to vagrant + docker soon.
No, because none of them contain the static analysis and developer tools one comes to expect from a competent IDE.

Also coding in the browser has been a miserable experience.

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

You can do that with Vim/Emacs, tmux on less than $5/mo VPS. Chrome has a pretty good SSH terminal extension.
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.

Hey, if it works for you that's great.

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.

> No, because none of them contain the static analysis and developer tools one comes to expect from a competent IDE.

So nobody uses emacs or vi without static analysis plugins either?

Text editors aren't IDEs. However, static analysis tools are available for both emacs and vim.
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.
Any of these WEB IDEs support TypeScript? Thanks.
I often use Jetbrains IDEs, currently using PHP Storm almost exclusivel. I love it's code refactoring, easy source code navigation to delarations.
i too enjoy using jetbrains' products.
At our office a lot of the development takes place on computers not connected to the internet, on a separate network. I installed Codiad (http://codiad.com/) on our dev server a year or so back. Recently it has taken off and a couple other guys are using it. I've slowly migrated from Eclipse + Remote Systems Explorer to Codiad.

Super easy to install (its all php based, very few dependencies), and for the most part "just works".

I have codiad open in the browser and usually a PuTTy window open on the server to test, run command line, etc.

We have Linux(Ubuntu) servers and a mix of OSX / Windows dev machines. Keeping Eclipse working across all of them was annoying (and explaining how to setup when a new Developer comes in). Now I just create a Codiad account, a ssh account and let them have at it.

I went down the path of attempting an "offline install" of Cloud9, but gave up after a while...it mostly assumes you have an active internet connection.

How long ago did you attempt to install Cloud9? It's recently been updated (~2 months ago) to the new V3 which is much easier to install and run offline (https://github.com/c9/core)
I used Cloud9 while doing Hartl's Rails tutorial and was very impressed. Would probably use it for my personal projects if I was on Windows.
I've used Cloud9 completely to make drumroll.io. Very impressed for Node.js projects.
Ok really dumb question. How do they see your local files?
Or how do you run your app unless it's a front-end app? Just in isolated virtual environments?
Yea Cloud9 gives you a virtual container (with root access too) that you can run anything in just like you would on your local machine.
They don't. The files are stored on the server.

I imagine that one can upload local files to the server, but when you're saving a file or compiling, it's all being done on the server side rather than locally.

IPython notebooks run in the browser, but (usually) don't use a remote server.

This medium - html/js - is great for analysis work with lots of image-processing/plotting/reporting, etc. but very difficult to build out a full app in it because it lacks any of the normal IDE find and refactor tools. Also, the .ipynb file storage format tends to obscure finding code within directories.