InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Web-based IDEs to become mainstream?

Posted by Dionysios G. Synodinos on Feb 19, 2009

Sections
Development,
Architecture & Design
Topics
Java ,
Programming ,
Ruby ,
.NET ,
IDE
Tags
Eclipse ,
IDEs

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, the a web-based IDE and hosting environment for RoR apps it seems that web-based IDEs might soon become mainstream.

With Bespin Mozilla aims to deliver an open, extensible, web-based framework for code editing that tries to increase developer productivity, enable compelling user experiences, and promote the use of open standards:

Based upon discussions with hundreds of developers, and our own experience developing for the Open Web, we’ve come up with a proposed set of features along with some high-level goals:

  • Ease of Use - the editor experience should not be intimidating and should facilitate quickly getting straight into the code
  • Real-time Collaboration - sharing live coding sessions with colleagues should be easy and collaboratively coding with one or more partners should Just Work
  • Integrated Command-Line - tools like vi and Emacs have demonstrated the power of integrating command-lines into editors; Bespin needs one, too
  • Extensible and Self-Hosted - the interface and capabilities of Bespin should be highly extensible and easily accessible to users through Ubiquity-like commands or via the plug-in API
  • Wicked Fast - the editor is just a toy unless it stays smooth and responsive editing files of very large sizes
  • Accessible from Anywhere - the code editor should work from anywhere, and from any device, using any modern standards-compliant browse

The current release of Bespin is 0.1 and it is an initial prototype that includes support for basic editing features, such as syntax highlighting, large file sizes, undo/redo, previewing files in the browser, importing/exporting projects, etc.

For more information on Bespin you can try the demo  or see the source code.

Only a few days after the release of Bespin Boris Bokowski and Simon Kaegi implemented an Eclipse-based Bespin server using Eclipse components:

We looked at Bespin and asked, wouldn't it be great if Eclipse could play in this space too? Wouldn't it be cool if we could implement a Bespin server using Eclipse plug-ins that already exist?

Well... that Eclipse-based Bespin server is available now, after two days of development!

Simon Kaegi and I locked ourselves into a room and just implemented it. Today, we are declaring success, and are sharing the code as part of the e4 project with anyone interested. If you would like to give it a spin, check out this wiki page.

The Eclipse IDE, as you know it, is an OSGi-based application, and is built entirely out of components (called plug-ins or bundles). Many of these components can run headless, on a server, such as the underlying resource model, the incremental Java compiler, etc. Using the headless components, it was very easy to implement the Bespin client-server API. Like Mozilla's Bespin server, our server supports browsing files and folders, and editing files. In addition to that, we implemented extra features such as showing compile errors and warnings, and checking out projects from CVS servers using anonymous CVS.

This project is an ongoing work within the e4 community effort, for building the next generation of the Eclipse Platform and provides an experimental implementation of Bespin's client-server API.

One more product that follows this paradigm is Heroku , a web-based IDE and hosting environment for Ruby on Rails applications which has features like:

  • Instant Deployment
  • Online Editing
  • Git support
  • Easy collaboration
  • Fully Integrated Stack
  • Elastic Performance
  • Rails Console
  • Command-Line Collaboration
  • and more

It seems Heroku has made a very good first impression to Eclipse committer Elias Volanakis and has made him wonder about similar efforts in the Java space:

After all if the app has to be on the web and source == binary (Ruby is interpreted), why not put the IDE on the web too? Having the tools, the code and the runtime environment on-line makes several things easier:

  • Start working in a snap: Instant access to the source code from anywhere. No need to set-up an IDE. No need to set-up a local Ruby on Rails environment. No need to check out any code. Your data is there.
  • Instant collaboration: create a developer account. Send link to log-in page to developer. Start collaborating. (I hope it will support collaborative editing).
  • Deployment of the app is trivial. No need to find and configure a suitable server.
  • The "hosted-everything" aspect could make a great "source-forge-with-hosting" combo. Imagine finding a good web-application and just having to click on "deploy and run this on my account" for giving it a test drive.

This seems to be an excellent fit for Ruby and I'm looking forward to giving it a test-drive

Now, how does it apply to Java web-apps?

Another interesting project in this space is codepad, which is an online compiler/interpreter, and a simple collaboration tool:

codepad.org is an online compiler/interpreter, and a simple collaboration tool. It's a pastebin that executes code for you. You paste your code, and codepad runs it and gives you a short URL you can use to share it. Paste the URL into chat or email to get help or to show someone how to do something. Or just try things out when you don't have an interpreter handy. It works well on many phones. 

There are more web-based IDEs with various degrees of maturity and breadth of features like:

With all those new projects surfacing what do you think, are we going to see web-based IDEs becoming the norm in the near future?

Dionysios G. Synodinos is a Web Engineer and a freelance consultant, focusing on Web technologies

12 comments

Watch Thread Reply

Now here is something... by Lars Tackmann Posted
Re: Now here is something... by Thai Dang Vu Posted
Programmers on thin clients? You're not going to like that very much by gcom nz Posted
Eclipse Rich Ajax Platform by Alan Moraes Posted
Re: Eclipse Rich Ajax Platform by Laurentiu Ciovica Posted
Re: Eclipse Rich Ajax Platform by Ian Skerrett Posted
Re: Eclipse Rich Ajax Platform by Laurentiu Ciovica Posted
Re: Eclipse Rich Ajax Platform by Vijay Allagi Posted
hard to realize by Nicko SU Posted
Nothing new .... AltioLive is all about web based by Gary Thompson Posted
Online IDE by ivan php Posted
Re: Online IDE by Josh Pratt Posted
  1. Back to top

    Now here is something...

    by Lars Tackmann

    This I like; as a consultant I can testify to the huge amount of time needed to set up development environments, It is not unusual to first be online after 8-10 days of fighting the sys-admins for access rights, finding the right install docs, fiddling with classpath, dll's...

    Now if someone would make a decent webbased IDE (Jetbrains...) with Java, SQL and UML support, coupled with online GIT and/or Subversion hosting (Google code, GIThub) and throw in the ability to deploy on Amazon EC2 instances (i.e. predefined instances with GlassFish, Tomcat, PostgreSQL, Oracle...) then I would sure be a happy customer.

    Of cause to gain any enterprise customers it would need the ability to run offline, and to be hosted internally (i.e. be some sort of self contained webapp) and ideally integrate with existing virtual environments (XEN, VMWare) and project management tools (JIRA, MS Project...).

  2. Back to top

    Re: Now here is something...

    by Thai Dang Vu

    Now if someone would make a decent webbased IDE (Jetbrains...) with Java, SQL and UML support, coupled with online GIT and/or Subversion hosting (Google code, GIThub) and throw in the ability to deploy on Amazon EC2 instances


    I like your idea :) I think I have to wait for about 4-5 years.

  3. Back to top

    Programmers on thin clients? You're not going to like that very much

    by gcom nz

    I think the breathless faux-humility coming from these Mozilla devs is going to turn to shame once they realize their corporate Google & Mozilla masters are planning to have them show up to work at a dumb-terminal soon.

    Oh, they won't do that because you're too important and need to work from home? No problem, you'll get a nice $100 all-in-one terminal at home too, complete with tamper-free case and secure line to the office.

    Seriously people, think about what you're making here and promoting. It's the ultimate homogenization. It's only good for your corporate masters. *sigh* programmers are so stoopid. And unethical. This is as shameful as working on military technology.

  4. Back to top

    Eclipse Rich Ajax Platform

    by Alan Moraes

    What about Eclipse Rich Ajax Platform? www.eclipse.org/rap/

  5. Back to top

    Re: Eclipse Rich Ajax Platform

    by Laurentiu Ciovica

    Hi all,

    Last year for the WSEAS International Conferences i wrote an article called "Web-IDE" where I've presented my idea of an web based IDE for Java or other programming languages.

    My idea starts from the Java slogan "Write once, run anywhere" becoming "write once, write anywhere, run anywhere" the Web-IDE slogan.

    The main target of the project is to build a web based Java integrated development environment with full capabilities in editing and compiling java code and not only.

    The initial and current approach for the project were to build it upon the Eclipse RAP technology having as back-end an strong and mature application server.

    If anyone is interested please mail me and i will send the whole article.

    All the best,
    Laurentiu

  6. Back to top

    Re: Eclipse Rich Ajax Platform

    by Ian Skerrett


    If anyone is interested please mail me and i will send the whole article.



    I am interested but how do I e-mail you?

  7. Back to top

    Re: Eclipse Rich Ajax Platform

    by Laurentiu Ciovica

    Hi Mr. Ian Skerrett,

    You can find more information about me here:
    www.linkedin.com/in/laurentiuciovica
    csourcezone.blogspot.com/

    I will wait for your reply.
    Thank you,
    Laurentiu

  8. Back to top

    hard to realize

    by Nicko SU

    For me is hard to realize that web based IDE will become mainstream expecially developed country like Indonesia with have difficulty in limited bandwidth. At least 5 years from now. Only some company are lucky with broadband connection can use that.

  9. Back to top

    Nothing new .... AltioLive is all about web based

    by Gary Thompson

    I don't believe a web based IDE should focus upon hard core developers. There is a community that build Excel and MS-Access solution in a adhoc manner with little software engineering discipline. As a development community we should be engineering the widgets that these power users can make use of. The power users create their business systems online and deploy them online, without the need to understand source control and testing methodologies other than user acceptance testing. Source control should be implied (handled by the environment), and testing should be achieved at the widget level by the engineering team.


    The aim of AltioLive is to provide an environment that enables business people to build RIA applications, leaving software developers to create the UI widgets and write the required server side integration logic.


    AltioLive since 1999 has provided a web based environment for creating RIA applications. It is not a full blown IDE where you cut code, compile and test but does set the standards for web based design tools. The reasons for the AltioLive web based IDE was discussed in a previous blog post "Why does AltioLive have its own IDE?"


    With the current economic climate tools that enable business end users to work with the softwarwe development team to achieve solutions cheaper and quicker is the priority.

  10. Back to top

    Online IDE

    by ivan php

    Dear sir,


    You forgot the one of the best online IDEs - PHPanywhere.net



    Cheers

  11. Back to top

    Re: Online IDE

    by Josh Pratt

    HI. I am very interested in an online or internet based IDE. I have found a few but most cannot handle the knids of things I am interested in or are not in the languages I want to use. I am looking for a IDE for Java Processing or for Python.

    Any ideas?

  12. Back to top

    Re: Eclipse Rich Ajax Platform

    by Vijay Allagi

    Hello Laurentiu,
    I want to know more about the Web-IDE.I am trying make a static Test tool to webb based tool.So please send me deatails of it.
    Regards,
    Vijay
    yavijhere_03@yahoo.co.in

Educational Content

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.

Polyglot Persistence for Java Developers - Moving Out of the Relational Comfort Zone

Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB.

The Golden Circle – Why How What

Jean Tabaka challenges the audience to reflect on what Agile practices they are employing, how they are using them, ending with the questions “Why have their organization chosen to go Agile?

The Web Platform as a Limitless Pool of Innovation, with Andreas Gal

Andreas talks about the benefits of the Open Web and how it compares to proprietary stacks. He also talks about various projects that push the envelope like Boot to Gecko, Broadway and pdf.js.

Hadoop and NoSQLin a Big Data Environment

Ron Bodkin discusses early adoption of Hadoop, NoSQL and describes MapReduce and related libraries and Frameworks. Other topics include Hive, Pig, multi tenancy, and security in a big data environment

Spring and Platform Interoperability

Stephen Bohlen explains how Spring helps with interoperability between Java and .NET, demoing it with the help of a sample application.

How to Stop Writing Next Year's Unsustainable Piece of Code

Guilherme Silveira mentions some of the turning points in project development that may affect the quality of the code offering advice on avoiding writing crappy code.