[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[news.eclipse.technology.ldt] Re: keeping an eye on the competition :-)

Chris Daly wrote:
One way to shape our thinking about what LDT could and should try to do would be to look at what other IDEs are doing today in the multi-language space and where they are going.

What follows are some notes on projects I've been tracking that have to do with IDEs that come with integrated language designers and language tooling generators:

- Sergey Dmitriev, of the IntelliJ IDE company JetBrains, recently wrote a manifesto called "Language Oriented Programming" where he talks about a new IDE he is developing that includes a "Structure Language" and an "Editor Language". These are languages designed to express languages and their IDE tooling.
http://www.onboard.jetbrains.com/is1/articles/04/10/lop/
http://www.jetbrains.com/mps/


- The company Xactium has a product called XMF-Mosaic which is sort of an IDE for designing DSLs and building the IDE tooling for the DSLs you design. I really recommend their book "Applied Metamodeling" which you can download for free from their site (go to Downloads area).
http://albini.xactium.com/content/


- Microsoft has a project called "DSL tools" for Visual Studio. Look for their developer blogs that talk about it and also look at the book Software Factories (Greenfield et al.), especially chapter 8.
http://lab.msdn.microsoft.com/teamsystem/community/blogs/
http://blogs.msdn.com/stevecook
http://blogs.msdn.com/stuart_kent



These are just three examples and they surely reflect my bias towards DSLs. I'd be interested in hearing more from you all (I'm sure Tim and the others from Borland could add something to this) about non-Eclipse multi-language efforts that would be good models to study to help shape the LDT.



Chris

I thought these were very interesting links and I hope the LDT work can provide a foundation for this approach. I think the idea of a language to model languages and tooling has to be the approach that provides the easiest implementation for later language projects (assuming it's done well).


I found the Applied Metamodelling book a useful but I thought the examples were overly simplistic (always hard to find the right balance thought) and I thought it was too heavily slanted towards OO. If you're going to support multiple languages you also need to address multiple paradigms. I appreciate that the OO is being used to model other languages and could model (say) functional languages but it would have been nice to see some treatment of this.

Also I think the book misses the point when it talks about the process of language design. If language development is to form a primary technique for software development it need to be more accessible than this to programmers who aren't prepared to immerse themselves in the theory. The material on language extensions and reuse goes in the right direction for this.

I'd recommend taking a look at Mozart/Oz http://www.mozart-oz.org/ and there's a book to go with this too.http://www.amazon.co.uk/exec/obidos/ASIN/0262220695/qid=1115846440/sr=8-1/ref=sr_8_xs_ap_i1_xgl/202-8610107-3311826
(there a draft PDF version knocking around on the web somewhere too). This work shows a very highly abstracted treatment of programming languages from several paradigms.