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, no registration required.

Why don't we have a lot of good web-based IDEs? Which aspects of the system make it difficult for IDE to be implemented as a web application?

share|improve this question
3  
Define "good web-based IDE". –  Spoike Nov 17 '12 at 16:03
1  
Because you havent written one –  GrandmasterB Nov 17 '12 at 20:24
3  
Follow up question: Why do you want a good web based IDE? What does web based give you that a "traditional" IDE can't give you? –  Billy ONeal Nov 17 '12 at 21:52
    
Have you actually searched for any? Depending on what 'good' means, you should have found at least 2 that I can think of immediately. And are the two questions really related? –  vgoff Nov 17 '12 at 22:37
    
Because web projects are not that complex. –  m3th0dman Nov 18 '12 at 20:18

5 Answers 5

up vote 4 down vote accepted

Modern IDEs are wrappers around more primitive tools (ie local compilers and debuggers) so you can't really answer the question without considering the limitations of pure web-based development in general.

One huge reason web based dev would be limited would have to be the inability to access local resources:

  • Can't communicate with local device hardware
  • Can't develop desktop apps without a web-based emulator
  • Can't access my local file system.
  • Can't setup a socket interface bound to my local network

Some other questions would have to be answered about a web-based IDE's ecosystem

  • How do I install dependencies (ie python libraries via a web interface?)
  • Could the IDE work with all the tools I need?
  • How do I configure required tools via a web interface? How would I configure say reddis? How would I install boost as a C++ dev? What if at the same time I need to do QT dev?
  • Will I be able to use arbitrary legacy code/libraries. I was told there would be FORTRAN :).
  • How do I deploy my code?
  • How do I perform remote debugging on a customer's deployed process (whatever that is equivalent to in this ecosystem)

In short I'd need a different model for development that didn't require config files, use things like stdin/stdout, etc. It'd have to be a web interface to a full VM. How would we do that? All the legacy work to do software installation etc is built around the desktop/command line interfaces.

So you'd be limited to a specific subset of programming. Probably limited to a pre-efined scope in pre-installed tools and libraries. Which likely is fine in a very narrow sense. I could see a web IDE for quickly standing up web apps. But Desktop Apps? Specialized apps (desktop or otherwise) that communicate with a specialized hardware? Apps that live in a very specific network enviroment? Apps that rely on very specific libraries?

I'm excited about the possibilities, especially coupled around VMs like EC2 instances. Some web tools built around your EC2 instance to aid in general development might be a cool area to work on. Don't want to limit the possibilities, but there's plenty of challenges that make this very hard compared to using a desktop dev environment.

share|improve this answer

There are plenty of web based IDEs. Some of them place an emphasis on collaborative coding. I think that whatever makes you think there aren't a lot of "good" web-based IDE's is probably the subjective definition of what "good" actually means. What features are missing etc...

http://codiad.com/

http://www.eclipse.org/orion/

http://shiftedit.net/

https://c9.io ( http://ace.ajax.org/#nav=about )

http://ecco.sourceforge.net/

http://code.google.com/p/collide/

Personally, I'm always going to stick with my native desktop IDE.

share|improve this answer
2  
Don't forget Eclipse project Orion (eclipse.org/orion). –  Mike Larsen Nov 17 '12 at 16:26
5  
“Personally, I'm always going to stick with my native desktop IDE” – that is the definition of “good”. Whatever web IDEs are, they’re simply not good enough. –  Konrad Rudolph Nov 18 '12 at 9:52
    
@KonradRudolph well... I think not necessary. It can still be: Web IDE is "Good", but Desktop IDE is even "Better" –  Adrian Shum Nov 19 '12 at 2:51

If you aren't compiling and running code on your local machine, then a web IDE does make a lot of sense. For instance, your IDE could set up an Amazon EC2 instance for your development, compile code there, and deploy it. This is nothing that a traditional IDE can't do, of course; in this situation, both web based and traditional GUI IDEs are usable.

However, developing any IDE to the Eclipse standard is difficult. Adding on this debug-to-cloud capability is added effort. There simply hasn't been enough time with a cloud emphasis on development for people to develop high-quality web IDEs.

share|improve this answer

The problem, I think, is that there is so much complexity involved in developing any non-trivial application that a web-based IDE is just not the right environment for it. If you're looking for specific aspects of an IDE that are difficult, I would say debugging and deployment/hosting are the hardest to do over the web.

For example, say you are developing a web application. A company with enough time and resources can create a web-based HTML/JavaScript IDE to aid in creating the web application. But what does that IDE do when you have to go and deploy the application for testing/debugging locally? In theory, they could provide a few application hosting options themselves and auto-host the web application for you, but realistically, they would probably limit you to a small, finite set of hosting technologies (maybe IIS or Apache?).

Then what happens when you need to access features of the web-server that they haven't thought of exposing via their web-based IDE? There are so many configuration nuances for a web-server that in the act of exposing them all via a web IDE, you might as well just give the user remote-desktop access to the machine. And don't even get me started when you need a multi-server environment (i.e. web-server, SQL server, services server, etc.).

This is all assuming that you are working in the web domain. Now imagine creating an IDE that can ALSO support desktop development (i.e. service components, GUI apps). This adds an even greater level of complexity when trying to debug a desktop app via a browser.

Doing these complex tasks over-the-wire is probably possible, but just not practical. Also, the user experiences of web-based IDEs does not seem like it would be responsive enough for the type of productivity that today's developer expects from their IDE. Productivity tools such as Resharper (Visual Studio) require such high processing power that this behavior would be pretty hard to duplicate on the web.

share|improve this answer

Why? Because they are solving a problem that doesn't exist. The only advantages over a downloaded IDE that I can think of is they occupy less disk space. However, as the price of disk space has dropped to $1/10 Gb, I don't see that as an issue. For those who regularly write code, the disadvantages of Web-based IDEs are that they are slower and less capable compared to free IDEs like Eclipse.

share|improve this answer
2  
Another advantage is that your development environment is the same, regardless of whether you are at home, in the office, or in an internet cafe. However, this is also a problem that doesn't really exist, as many people carry flaptops. –  Paul Butcher Nov 17 '12 at 16:09
    
Ultimately, I think this is the correct answer. A web based IDE sounds nifty, but what pressing problem would it actually solve? And would it solve the problem better than a remote desktop solution? I know my 'development environment' includes more than just an IDE - database tools, graphics tools, and others. All that would need to be integrated into the web based IDE for it to truly replace desktop ones. –  GrandmasterB Nov 17 '12 at 20:30
6  
this IS the correct answer. web apps have two big advantages: A: no install/config needed. and B: updates propagate automatically. For A, developers usually want to config their environment to their exact taste. For B, a developer don't want the environment to change unexpectedly, except for changes in shared projects, which are neatly and efficiently solved by version control systems. –  Javier Nov 17 '12 at 21:48
2  
@Javier Good point. The two main advantages of webapps (no config, automatic updates) are actually disadvantages for IDEs... we developers being people who start flamewars over which is the best text editor; and even while agreeing on the editor, over which version and config is the best :) –  Andres F. Nov 18 '12 at 0:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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