Make your energy matter with project:Einstein, the language of the enterprise.
project:Einstein is an open source project aiming to deliver a Domain Specific Langauge for contemporary enterprise development. This includes an SOA based approach with a lightweight, easy to understand language on top of a contemporary stack of enteprise technologies.
What Ant does for builds Einstein will do for application development.
We're still in the design phase at the moment, but watch this space. In the meantime here's a taster of (working) Einstein code:
// Here we define a URL as a String, this variable will be referenced later.
// The 'text' provider will be used to obtain a copy of the following text.
String helloWorldURL= "text: Hello World! ";
// The :: notation is used by Deesel to denote the start of a dialect,
// the identifier prior to it is used to find the Parslet which will parse
// the following code. In this example we're passing over control to
// the Einstein 'group' parslet. Much like XML namespaces a namespace
// stays valid until the parser hits a new decleration. It's perfectly
// valid to have a namespace within a namespace - and in fact that's
// what is most powerful about this model.
Group group= einstein.group :: {
//So the wait instruction waits until the inner block is complete
//and then continues ignoring the result of the inner block.
wait {
//Get performs a blocking read on the supplied URL in this case
//the java transport, which will return an instance of the bean
//specified.
get "java:org.cauldron.einstein.ri.test.MyBean";
// Here we send the result to standard out with a prefix of 'The Output is : '
send "std:The Output is : ";
};
//We use a top level expression (i.e. no longer in the Einstein namespace)
//to reference our helloWorldURL
get :::(helloWorldURL);
//And send the result to standard out.
send "std:And now I say: ";
};
This resultant output is:
The Output is : org.cauldron.einstein.ri.test.MyBean@dd7bc5[information=My Information] And now I say: Hello World!
If this interests you, then take a look at:
This is mostly a one man show at the moment, if what you see does interest you then drop a line on the dev list: dev@einstein.codecauldron.org.