views:

205

answers:

4

I'm writing this as DevConnections in Las Vegas is happening. Visual Studio 2010 has been released and I now have this 3GB beast installed to my machine. (I'll admit, it has some nice features.)

However, while the install was monopolizing my computer's resources I began to wish that my IDE worked more like Google Documents (instantly available, available anywhere, easy to share, easy to collaborate, naturally versioned).

A few Google (and StackOverflow) searches led me to :

I'm well aware that these IDE's are missing a lot of what exists in VS 2010. However, that isn't my question. Instead, I'm wondering what benefits a web-based IDE might have? Assuming a company invests the time to create the missing features, what is the downside?

+5  A: 

Benefits:

  • Code available anywhere an internet connection is available
  • Simple sharing mechanisms
  • Simplified build mechanism
  • Many modern IDE features available (Autocomplete, syntax highlighting, etc...)
  • Requires a modern browser

Drawbacks:

  • Code is only available where an internet connection is available
  • Requires a modern browser (this might be an issue in some corporate settings)
  • Simplified build mechanism
  • At the mercy of the latency gods
  • No native debugger
  • No choice of revision-control
  • No clear backup solution
  • No clear way to fully remove source code from the provider's servers
  • No support available
  • No choice over maintenance schedule of servers
  • No control over IDE or environment features and tools
  • Must trust provider's security and privacy controls

As you can see, many of its benefits are also potential drawbacks. So I think the use of a browser-based IDE is very project dependent.

However, IMHO, I don't think browser-based IDEs have enough features or provide enough necessary services to replace desktop IDEs in most modern enterprises.

Ben S
The killer here is probably latency. If you are used to a *good* IDE, your unit tests report back to you in 1/10 of a second and refactoring and code completion are pretty much instantenous. Modern IDEs are all about tightening the feedback loop, and I can do some pretty amazing stuff in my IDE locally while my keypress is still crawling through some pipe somewhere on the other side of the planet.
Jörg W Mittag
The killer for me is the lack of control. I don't want to lose my code if their servers die and I don't want to waste a day of work if they decide to do a server upgrade or other maintenance. I'm also not a fan of giving all of my work away and just hope they aren't harvesting information about my code.
Ben S
A: 

The web is inheritly less featureful than a native application. Also, how do you compile and test out your code? No sane web host will let strangers compile, run, and test their code on their servers.

Earlz
Gabe
@Gabe: You're assuming that you're building a web project. Modern IDE's are also used to create *other* types of projects.
Adam Robinson
Ah, so we need fat-clients to create more fat-clients. ;) Just playing devil's advocate.
Gabe
@Gabe: It does seem like a more natural fit, yes. Any solution geared toward allowing a web-based IDE to create a "fat client" is going to contain a fair amount of hackery.
Adam Robinson
@Adam Robinson: Actually, there's some pretty compelling use cases. Rhomobile offers a cloud-based development environment for mobile applications, and they provide one-click deployment to pretty much every major smartphone and app store. You don't need to install Visual Studio *and* XCode *and* Android IDE *and* whatever it is that you need for BlackBerry. In fact, you don't even need to have Windows or OSX. You write your application *once* and Rhomobile makes sure that they always have the latest Android and iPhone SDKs on their servers and with one click your app lands in the App Store.
Jörg W Mittag
@Jörg: That's definitely interesting, though it doesn't have anything to do with "fat clients" (unless you're extending that definition to mobile devices). I'm certainly not saying that such a product is without worth, but the idea of developing a *desktop* application in a web environment seems like it would be more trouble than it's worth.
Adam Robinson
@Jörg: That aside, how do you test or debug these applications in that IDE?
Adam Robinson
+1  A: 

Just being devils advocate here and listing the disadvantages:

Disconnection!

The fact that you don't really own any software - if you stop paying the monthly bills you can't access it any more but you can keep using offline installed products after the initial payment.

Big / valuable projects may be uncomfortable not having their source code tucked away inside a network they control - one hacked account and their main IP is out on the net.

Limited extension ecosystem - with online services there is generally a control over it like facebook for example, but nobody tells resharper what features they can include

Forced upgrade - big corporations are still running .net 2.0 (.net 4 just came out). They can be slow to move and being forced to use the latest and greatest version of the app could be a too fast a pace for them.

Exposed to bugs - some people have wierd personal rules like they dont touch v1 software. If you always have the latest version you are exposing yourself to being hit by productivity consuming errors (security updates are a different category to feature updates but still if you are running desktop software you can isolate your security exposure and decide your own reasons to upgrade)

Interoperability - perhaps your app works with another app - they might not be able to keep up with the release pace of the main app and the interoperability functionality might lag while the other developers play catch up.

Centralised point of failure - no control over backups, redundancy, etc - its in the hands of the developers of the service.

Personally I find cloud based services very convenient and as time goes on now that I have a laptop and a desktop and a work computer and my friends have computers it becomes a chore to sync data between the lot. At the current stage we are still dealing with toy apps on the web but hopefully in a few years Silverlight will put a big dent in that.

rtpHarry
Regarding ownership/privacy, Bespin projects can be hosted on a private server.
Gabe
@Gabe: That would exclude it from being "in the cloud", would it not?
Adam Robinson
A: 

Besides "ubiquitous" availability (note the quotes), you get the "benefit" of editing code on the server. So, you get to skip many of the deployment steps that are necessary for many server side apps today. There's a simplicity of editing code like you'd edit a blog, but it can also be a curse as well. You still need a way to separate development from production.

But that said, if you use the Blog or many CMS applications, millions of folks use "Web based IDES" every day, so there's obviously applicability for specific application areas. I can tell you there are times I wish fixing a quick bug on a deployed app were as simply as clicking an "edit" button.

Will Hartung