Web-based IDE’s and AST Formats

I noticed yesterday that Github is using ACE to edit files. Apparently ACE is a descendant of the Bespin project.

In a previous post I described a script I had written that parses python into an AST represented using JSON. I’m looking for budding attempts at standardizing such representations. Does ACE have something appropriate?

As I mentioned in that previous post, this was just a small piece of a project on source code search algorithms. It’s a fun project, but when I think about why more progress hasn’t been made by others, the lack of a good standard for representing AST’s seem to be the biggest barrier.

As much as I respect the work of Xtext, MPS and Spoofax, it seems to me that the key to unlocking all this potential is creating AST interchange formats that Javascript can easily manipulate.

Five years ago the strategies with the most buzz were 1) ATerm and 2) MOF. I don’t imagine that projects like ACE will ever give the time of day to MOF. And I’m not aware of any plans to build a Javascript library for ATerm.

Ometa/JS was a cool attempt at creating language-oriented tools in a browser, but as far as I know, it never gained a big following.

The hardest part about the vast majority of software these days is not performance optimization or correctness or proving properties about some fancy type system. It’s decomposing the problem into components that the world is ready to digest.

Many of the existing attempts at multi-language IDE’s have just been too big. I’m thinking of the “libraries not frameworks” meme that has been making the rounds on Twitter lately. I’d like to be able to embed text-editing panes for language mash-ups and DSL’s in my web applications. The big GUI tools out there at the moment can’t be carved up to suit that purpose.

On the other hand, some attempts like the syntax highlighter I’m now using on this blog don’t seem ambitious enough. Will this project ever evolve into a more powerful tool, or will it be content to simply highlight text? The problem is that — as anyone who has used syntax highlighting in text editors like emacs knows — there are frequently edges cases that stymie anything other than a full description of the language.

Projects like ACE seem to be in the right position to take the lead. I’ll update this post if I find any answers.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google