Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Currently, I'm an Emacs user, (I'm used to the commands, and I work in a bunch of different languages day-to-day, one of which is Common Lisp, so it's the natural choice), but a recent-ish talk by Steve Yegge has gotten me thinking that an online editor/IDE (if done well) might provide a lot of benefits. Both in terms of tracking large code-bases, and in terms of supporting editing at the same highly-interactive level for many languages. The Bespin roadmap makes it sound like they're going in the same direction and there are also web-based implementations of both Emacs and vi (none of which I have any experience with).

My question is twofold.

First, are any of these editors ready for prime-time? Meaning, are they at least on-par with desktop based editors? If not, do they reliably bring any of they benefits that a server-based implementation could support (things like fully combined VCS/editor/server-side preview/storage, real IDE-level support for many disparate languages, support for team coding/remote pair programming, etc.)? I'm more interested in experience than speculation here.

Second, where do you see the concept going? Are editors eventually evolving into services, are they staying on the desktop, or will we get to a hybrid system that supports local editing but provide certain, cluster-friendly pieces through a network connection? Feel free to speculate on this part.

share|improve this question

closed as not constructive by ChrisF Jan 30 '12 at 22:49

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

I'd say I am 5 years away from using one. –  Job Dec 17 '10 at 2:59
@Rob Z - what's with the holy-war tag? –  Inaimathi Dec 17 '10 at 3:16
@Inaimathi - Talking about people favorite editors, to include the online ones, is bound to stir up controversy. –  rjzii Dec 17 '10 at 3:23
@Rob Z - <shrug /> Let it serve as a warning, I guess. My intention was to get some reasoned discussion going, not the standard dogmatic responses of "no, my pet rock is the one true answer". The responses so far don't seem to be veering towards the religious. –  Inaimathi Dec 17 '10 at 4:01
You may like Ymacs - check the live demo: ymacs.org –  realworldcoder Dec 21 '10 at 18:11

14 Answers 14

I had some thoughts on online editors, but my internet connection is down so I can't remember them.

share|improve this answer
+1 I don't exactly know why, but this makes sense... –  Nathan Osman Dec 17 '10 at 4:30
Aren't they stored in your HTML5 local-store or somewhere? –  pjz Dec 17 '10 at 7:26
@Inaimathi: in order for an online editor to replace an offline editor, it would have to work offline. Which would make it exactly the same as an offline editor with some online collaboration/cloud/whatever features. At present, the fact that it is 'online' is not a selling point, it's a so-what point. But as I like to be brief, I let my one-sentence answer imply all of this. You can call it knee-jerk if you like, but I can't get excited about it. –  Steven A. Lowe Dec 17 '10 at 7:45
There's a fine line between "brief" and "not constructive". The questions were meant to induce some thought and discussion and your original, one-sentence response answered one half of one of them. You don't need to be excited, but you also don't need to derail if you're not interested in thinking about the merits of a type of tool past the most obvious possible problem. If you disagree with the premise of the question, you should have just downvoted it and not bothered posting. –  Inaimathi Dec 17 '10 at 12:39
@Inaimathi: That's like sayding if you disagree with the answer, you should just downvote it and not bother commenting. –  Steven A. Lowe Dec 17 '10 at 14:54

I don't know of one that's on par with emacs yet. There are several that could replace nano. None have all the features you seem to be looking for.

That said, I think that online editing is going to get its period of "ooh, shiny!", then fall out of use for everyone except folks with micromanaging bosses :P

I can't imagine working efficiently in an online editor. I work without internet access much of the time. I don't want the temptation to let me only copy of something reside on the server. I don't want to have to use the same environment as everyone I work with (somebody would inevitably be very uncomfortable in it). I don't want to have to code with the knowledge that others may be watching, trying to understand -- I tend to attack multiple parts of a task in parallel, and I know that others can't always follow it. With an online, collaborative editor I would tend to approach problems more clearly, but less efficiently. I can't imagine that a development environment run over my internet connection could feel responsive enough when I am accustomed to an environment run on my local machine.

share|improve this answer
I foresee a dirty SAAS solution with massive offline storage hell, amounting to a slow offline IDE. –  msanford Dec 17 '10 at 3:01

There would be important security implications. I'm used to using code hosts like github, and have to assume that they know how to keep my data safe. Should they suffer some catastrophic storage failure, that doesn't actually matter so much because I've got a clone of the repo locally. Move the IDE out onto the internet and how many developers would forget to keep local copies of their data? If your answer is that I keep my code local but my editor remote, then what exactly is the point of having the remote editor? One of the points of DVCS is that you can work when your connection's offline, and now you want to take away my editor.

Would builds be done as part of the online service, too? If so, how is my signing (or, if you work on MS platforms, authenticode) certificate managed? Do I need to give the service my private key? How is distribution of the builds performed?

Now, I believe that all of these issues can be solved. However I also believe that they have not all been solved, or at least that no-one has shown convincingly that a product exists that solves them. And it's important for me that they are solved before I consider editing client source on a remote service.

share|improve this answer
This echoes my own concerns. I think too many applications assume a live connection to the internet at all times and forget that there are people who have to develop on separate networks (for proprietary R&D, government contracts, or simple paranoia). –  Berin Loritsch Dec 17 '10 at 13:52
@Berin: Alternately, I can take my laptop to the cabin and get some work done. It's got electricity, but not Internet access. –  David Thornley Mar 4 '11 at 20:42

It's hard to get around latency. Sooner or later you're going to have to sync with the server, or risk being badly behind when you get changes. I've yet to see an editor that really does this well, especially for large files or a large set of files.

Other than that, I don't see any problems. I'm using an online editor right now, right? It does live preview, markup, and a few auto-completion widgets that are contextually useful. Wikipedia was almost entirely written using an online editor.

There's no reason emacs couldn't be reimplemented in Javascript; write a small LISP compiler and you're done, right? ;) Hell, maybe someone already has.

I think the present trend is toward degrading gracefully depending on what capabilities you have on the device. iPad? Plenty of text editors, though no full-fledged IDE yet. I expect to see XCode there in a few years. iPhone? long-term editing is painful, but it damn well better be supported.

share|improve this answer

Google Wave could have done that, doing online collaborative editing that is, but sadly it is soon to be rolled back. Apache has taken Wave under its wing, hope it gets a new life from there.

share|improve this answer

I'm really interesting with the idea when I first saw it. I'm using codepad. It saves me lots of time when experiencing some nifty feature of new languages (such as test how array works) for learning purpose. And also, makes it easier to share code among developer community (lots of stackoverflow question includes a link to codepad). The best thing is that I don't need to install any compiler/server to see that my php/java code work!!

But the bad is that I haven't seen any of those online editors support storage (writing/reading files for example).

About the quesions: I haven't seen any, but your idea is good. I think all of those are possible, except storage. May it need some other storage service, because allowing save/executing files on the process server is risky. And my company probaly won't trust the code for a public editor service, too.

In the future, may we developers don't need to install anything on our computer, and just use a service (within the company) to compile & run it. It will save lots of time for us.

In spite of the fact that it's still a dream now.

share|improve this answer

Are they safe? I mean if I am writing code, how can I be sure that they are not saving my code on their server? And even if they are good, due to inertia, it will take them some time to be hit.

share|improve this answer

I have not seen a "real IDE-level support". But I like to post code snippets at Ideone online compiler (yes, it supports Lisp) as it ensures my readers that the code at least compiles and let them to test it without any external tools. Using the editor online is ok while there is no other option (basic functionalities like syntax highlighting is available).

Looking to the nearest future I vote for hybrid systems. In my point of view online IDEs will grow and provide step by step more and more functionality.

The nice example is also a CodeToGo iApp (as a new user I can not give a link here but this is easy googlable) - it allows to program and test snippets with mobile devices.

share|improve this answer

Because of the business environment I've been the last few years, I've come to the following conclusion:

The more online our workday becomes, the more we need to support disconnected users.

(I don't claim to be the first one to make that observation)

Simply put: When 10% of my work requires me to be online then if I can't be online I'm still 90% effective. Flip that around and I think you'll get my point: When 90% of my work day requires me to be online then if I can't be online I'm only 10% effective.

That's oversimplification. In all likelihood, if 90% of your workday required you to be online, then you're probably done for if you can't be online.

If the online tool can work offline, is performant, etc, then I'm fine with it. But I don't want to lose a day's worth of billing because some idiot with a backhoe just dug through the fiber line for my neighborhood. That takes me down and anyone else relying on me.

share|improve this answer

I like JSBin, a collaborative Online editor. It makes collaborative coding between multiply programmers very easy, it's also a good way to present your question online for help, because you can put your snippet on it and send generated link out, the snippet is runnable, another programmers can easily tweak your code base on your snippet and revise it send you back the new generated link where you can see their correction for your problem. It even includes version control function, which are very convenient way to track updates against to your original code.

share|improve this answer

Not quite what you're looking for, but Palm's Ares IDE is an example of where things could be headed. Currently this is the only web IDE that I consider "ready" for use.

I think there's a confusion between web-based and remote-operation. One does not necessarily imply the other. I can imagine future IDE's that run locally but are loaded from a remote web server (with offline caching).

share|improve this answer

It would be quite a huge investment for anyone to make a web IDE that has a feature set capable of competing with the current offerings, and I can't really think of many actual benefits to having an IDE run online, by which I presume you mean "inside a browser tab".

Debugging would be complicated too -- unless you're willing to debug on a web server, and the web server's willing to let you debug on their machine, you'd still need to download a debugger -- and somehow have it link to the web IDE. That would mean two round trips for every debugger action you make -- which would certainly be annoying latency.

Maybe collaboration and interoperability would benefit, but collaboration can be solved even with current IDEs with much less effort than building a new IDE from scratch. I can't think of any technical reason that a plugin couldn't be made to have Visual Studio for instance allow multiple people to edit a single file at the same time, and there are plenty of good version management/synchronization plugins for most of the common IDEs.

Unless this is for a brand new language or for a language that doesn't have much IDE support, I don't see any reason to rush to abandon desktop IDEs yet.

To be honest I'm really not too fond of the whole SAAS fad. It's too early. HTML/JS are upbeat right now, but they don't seem like the right technologies to make it work for the industry in the long haul.

I also worry that if there were one such popular IDE service the way there's one popular video service, patent trolls and owners of mundane copyrights will start shutting down people's projects with hardly a second thought.

share|improve this answer

Sounds like a solution in search of a problem to me. I'm really not willing to pay the "gee whiz" tax on something that's fundamental to making my living. This sounds like it'll introduce a serious chunk of complexity for no real gain other than buzzword adoption and "ooh, shiny!" factor. Requiring constant network connectivity isn't a big deal IMHO (although I recognize it's a valid concern for some), but now you're introducing lag at just about every point in the development process. I guess I could see it for PaaS development like Salesforce, where your execution environment is hosted (and can't easily or legally be self-hosted), but not for much else.

share|improve this answer

I'm not sure we'll be seeing an 'online editor' anytime soon. By that I mean a site that is simply an instance of an editor like emacs. That sounds too generic, at least for the time being.

What I believe will happen is a transition from desktop IDEs to online IDEs, hybrid at first then fully online. I can see that happening sooner on specific niches (e.g. web development) with one or two supported technologies and then slowly expanding to support more.

What you can see today is editors like CodeMirror and EditArea embedded in a couple of sites. There are more editors but I'm not sure there is a clear winner so far. Here's an example: http://code.google.com/apis/ajax/playground/

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.