Wednesday, January 05, 2011

Links to DSL desing/writting in Java:

Domain specific languages are powerful, yet to be used-with-care, tools. They can provide new ways of interacting or configuring a system, and greatly increase its productivity and flexibility. New modern (and mostly interpreted) languages like Ruby or Groovy are better suited for DSL implementation than classic languages (Java, C++,...). However Java or C++ can still be used, accepting some verbosity overhead.

The following article offers a fantastic introduction to DSLs, their core concepts, desing and implementation, using both modern and more classical languages. Only one piece is missing; nothing is mentioned about the testability of "ultra-expresive" code. Besides, the redundant information that languages like Java forces us to write, and that the author call "ceremony", help other engineers to understand (and thus maintain) our code. We do not just write code to be executed, but also to be maintained (let's not be selfish please).


As I said these links provide just introductory information. I'll add more links in the following days or weeks as I continue with my own learning adventure.

Enjoy life to the full!!!!!!!!!!

Edit:

I have found one of those sentences that Guru wannabes (you know, they will look at you and say "We have designed a DSL to....... you know what a DSL is, don't you?") definitely hate:

"Internal DSL" is more or less a fancy name for an API that has been created thinking in terms of readability and focusing on a particular problem of a specific domain.

I have found this in an interesting artical called "An aproach to Internal Domain Specific Languages in Java"

Tuesday, January 04, 2011

Online compilers

Hi there,

There seems to be a good few online compilers, ready to help us whenever we need to test some code or idea, but no compiler is at hand (and we are just too lazy to get one, or we are using a machine where our privileges do not allow us to install one). I have tested just two of them:


In fact I have created the customary hello world using ideone. Check it out.

This kind of very simple online compilers sprung off the pastebin concetp/idea. The wikipedia provides many links to different pastebin sites.

Enjoy