Today it occured to me, and a short scan on the net indicates that I've not been the first to think of this (although not many went before me, that should probably say enough...) that it might actually be a good idea to have a web based IDE.
Not only would it be so much a coding IDE as a collaborative environment for developing software. A choice of workplace flexibility, methods, collaborative patterns, collaborative tools, testing strategies, testing facilities, management tools, productivity measurements, project refactorings, code protection, deployment support could be offered. Hows that for an Integrated Development Environment?
As I said I quickly perused the web to see if I wasn't landing last weeks news and found the following:
Of course Goolge has a beta but that looks pretty pre alpha
Someone thought an XML web based IDE would be a good thing
Obie Fernandez thought in september of 2005 of an web based IDE baseed on Ruby on Rails, cool.
another pre alpha
And finaly ECCO that seems to be the most mature of the lot
As I said this rather unsatisfactory result indicates that this idea is probably not as hot as I would like it to be. Personnaly I would love the idea that I could just open a browser on any computer in the world and work on my own pass time projects or projects that I do for a living not having to worrie about if I have the sources, the tools/libs/docs required.
It seems ideal if I want to just test something in Ruby or Groovy or J2EE (or some language I know even less about) to be able to just select a project and in a wizzard like interface tag the options for the kind of application or project or test method and a project is set up, the IDE has the features needed for the specific language and you just start coding. Build scripts, unit test database connections, everything just works since I didn't have to think about how to configure them. That means I can try out and develop an idea in a few hours, the time I usally now am busy trying to get a new compiler and database up and running.
The tremendous collaboration tooling available on the web can be integrated in development and the deliverables of the development process can all be part of the same environement. The possibilities to support projects in terms of methodolgy/project management/code and other deliverables quality/traceability far exceed what can be reached by a set of seperate tools even if they are individually web based (RUP has a intranet based deliverables management tool/Jira or other issue management tool/wiki for collaboration/basecamp for project colaboration/etc) This is for an important part due to the fact that the most important deliverables; models and code are in the vast majority of cases produced on tools based on a single computer/IDE instance. Although code (code or models I see them both as more or less the same in light of this discussion, so lets call them both code for now) is managed in a repository, the actual centre of its manipulation and evaluation is done on an individual computer that needs specific tools installed that usually don't integrate with the other tools just mentioned. And although the individual collaborative tools mentioned above are very good at what they do having one tool that would span all that functionality only half as good would win hands down in productivity/project quality terms just because the integration would allow far better leverage of content.
This kind of environment would possibly have a better protection against code "leaving" a project to become some other projects asset. This would off course not be relavant to open source projects but there are a lot of non open source projects that might have persons responsible that would be really glad about this kind of security.
Open source project would benefit greatly by the fact that a very off the wall project setup in terms of tooling/libs/test setup or whatever would be no problem to new project memebers. They would spend no time getting their environment setup to be able to actually contribute something to the project.
I realise that it is kind of a big brother idea to have someone have the potential to fully control/measure/evaluate everything that is done by the individuals on a project in terms of lines of code written, number of testcases created, number of fixes on a unit of code, the fact that code is related to other deliverables (technical designs, isseus, testscripts), the hours somebody is working, etc etc. Most of these things can theoretically be monitored now aswell, were it not that it would take a lot of effort combining a diverse set of tools (if tools are used at all). I'm sure a lot of project managers would be very happy that they would have all this information. To be frank I think I would not be too unhappy that my project managers would see on what silly things I have to spend my time. But that is in the current, far from ideal, lots of tools, way of working I'm faced with today, not the bright new world of the true IDE.