Web-based IDEs Edge Closer To the Mainstream
snitch writes "Last week Mozilla released Bespin, their web-based framework for code editing, and only a few days later Boris Bokowski and Simon Kaegi implemented an Eclipse-based Bespin server using headless Eclipse plug-ins. With the presentation of the web-based Eclipse workbench at EclipseCon and the release of products like Heroku, a web-based IDE and hosting environment for RoR apps, it seems that web-based IDEs might soon become mainstream."
Sure, they will not replace local editing tools for the main development of applications, but for remote access and small stuff it sounds nice.
Don't get me wrong. . . I think it is an amazing technical feat, but is it really practical to require internet access for this?
I think it is time that we as a community get behind a project that allows these remote apps to be cached locally for fully disconnected use (with a desktop runtime -- something akin to Adobe Air). It would be great to visit the site once and thereafter run it local (and get updates later while connected). As long as I'm fantasizing, I think we should try to make this a standard for new desktop apps -- written like gadgets, but full blown apps.
What do you think? Are there projects out there that are working on this already?
I often find myself without an internet connection and will just pull up Eclipse on my laptop and work on my checked out copy of the codeline. I don't need the connection except to check code back in and versioning control systems )if setup and used properly) already allow for collaboration (to an extent). So why should I require a connection to code? I want to work on code whenever I want regardless of whether I can find a wifi hotspot or not.
This is my sig. There are many like it but this one is mine.
Apart from "xhost +" (which is a bad security move), I wholeheartedly agree. This is what X was designed for.
As people romance the scale and stability of the mainframe and move towards centralized, mainframe approaches, they forget the reasons that gave birth to the PC revolution to begin with.
Having your stuff on your computer is an immensely liberating act. No matter what the terms of service, your data is in someone else's charge when its on yonder mainframe, and you are at the mercy of their data center when it comes to performance, user interface, virtually all aspects of the system.
On the other hand, with a PC, particularly as applications move towards more open file designs, you get much more control, more choice, and as much power as you would like to invest in.
This is my sig.
I'm going to remain skeptical.
Net apps are great, but their performance in many areas is unavoidably way below that of native apps. When you can do everything with JS, you can be reasonably speedy if the processing requirements aren't huge and your browser doesn't leak memory too badly. (Dammit, Firefox!)
But when you need to persist data, you have to spawn an ajax query and that 1/10 to 1/4 second (even over a fast network connection) just isn't comparable from the user perspective to hitting a local HD. As local mass storage switches from HD to solid-state over the next couple of years, the difference between native and web apps is going to increase, not decrease.
Besides, half of these things are going to be ad-supported, right? At least in my experience, the performance of most websites has decreased the last 3 years or so as they hit and increasing number of different servers. It's typical for a single page to load content, ads, local javascript, stylesheets, and analytics from 10 or more pages. Each of these connections triggers its own DNS query. Every connection and every DNS lookup has a %age chance of hanging for a few seconds due to network traffic, server load, or what have you - as a result almost 10% of web pages I try to load these days stall for a few seconds. Do you really want that kind of crap going on in the background while you're developing? I don't.
Hah! Just reminded of a most annoying example! Slashdot, for me, loads pretty much instantly. But every time I post and click that "preview" button, there's a five-second wait before the preview actually shows up. That'll be fun, and additional five seconds for every classfile save in my IDE...
I stole this sig from someone cleverer than me.
Why is that tempting? It seems like the equivalent of paying second graders to do your taxes.
Well.. maybe. Or Maybe not. But Definitely not sort of.
Let's see
As a user you get:
As a company, you get:
I'm not saying I hold the objective truth, just some counterpoints which seem to justify a deeper investigation.
universal access
If the Internet fsking worked the way it was supposed to, I wouldn't need some other server; my own machine would be a first-class citizen, and so long as I could remember its IP address I could SSH in.
I used to do just this. I was at a university which had a very nice, rather open network, and I could access my machine from anywhere in the world. Why bother even carrying a laptop around when you can x-forward your machine to any of a thousand terminals scattered around campus? But these days I'm at another university, and their network is locked down in arcane and nondeterministic ways, so that sometimes I can access my machine, sometimes I can't, and god only knows why. The one thing you can reliably do is surf the web.
...which is why we're cramming all this bullshit into web browsers to begin with. We've kept the Web working, but broken the Internet.
Mounting via NFS or SMB is generally dog slow and not recommended. Using an intelligent IDE like Eclipse that wants to parse and index all your source code, and trying to do that on a mounted drive is going to make things even worse as it crawls through every single file in your source tree.
A better solution is an IDE that leaves the files where they are, and offloads all the heavy lifting to that machine, where disk accesses are fast, or are at least fast compared to sending everything over the wire.
I mentioned this in another post, but due to my screwup of not applying good formatting to that one, I'll repost it here, as it's just as relevant. (mods, please ignore the other one)
Shameless plug... I work on an Eclipse project (Remote Development Tools aka RDT) that allows you to have a local Eclipse that targets a C/C++ project that lives on the remote machine. No SMB or NFS mounting required, nor do you have to deal with the slowness of running Eclipse over X. Nor do you have to run your IDE in a browser. The UI runs natively on your local machine, so all that nice stuff like copy/paste and drag n' drop just works (mostly..).
When you do something such as build your project (e.g. "make all", but it can be whatever you wish), the build commands are sent to the remote machine via the remote protocol of your choice. This can be via SSH if that's what you want. The output of the build is populated back to the local machine over the wire, and errors and warnings in your code are mapped onto those remote files so you can do lovely things such as clicking on the errors and being taken to the right location in that file.
If you want all the whizz-bang features like intelligent search, content assist, call hierarchy, etc. to work in a secure environment then tunnel the mandatory dstore connection over SSH, or setup SSL (I'd recommend the SSH tunnel route).
Here are the release notes for our first release. I'd recommend downloading the latest 2.1.1 nightly build over the 2.1 build to get some key bug fixes.