-
MVEL 1.2 Final Released (16 messages)
- Posted by: Christopher Brock
- Posted on: September 07 2007 12:10 EDT
After lots of hard work, we are pleased to announce MVEL 1.2 final. We’ve been very pleased by all the positive feedback from our early adopters and beta testers. This newly released version includes a plethora of features over the last official release including: * Improved, low impact, low overhead runtime to reduce need for caching. * Improved type conversion API * Inline, transparent JIT (Just-in-Time) Bytecode compiler * New, super fast, reflection-based optimizer for systems where code generation is a memory concern. * New, improved, non-compiling interpreter for maximum execution efficiency without pre-compile or caching. * Improved syntax including, WITH block operator, FOREACH operator. * Line debugger API (Implemented in the JBoss Rules IDE) * Optional static typing, with optional strict mode, type verifier and analyzer. * Type inferencing * Type casting * Python-style class and function referencing * Static method importing * Language Capability Level API for disabling aspects of MVEL that are undesirable in certain integration scenarios. * Many compiler code optimizations, such as safe type detection to remove dynamic typing runtime callbacks, etc. ... And all for less than 500kb :) We think we’ve succeeded at creating what is quite simply, the best lightweight expression language for Java, covering the broadest cross section of integration concerns. Not only is MVEL small and nimble, but its syntax is easy-to-read and much more java-like than EL or OGNL. Static methods and fields are referenced the same way they are in Java, assignments are just like java, including the syntax for static typing. Check it out and download it at: http://mvel.codehaus.orgThreaded Messages (16)
- Drools and MVEL by Mark Proctor on September 07 2007 12:50 EDT
- Re: Drools and MVEL by Mark Proctor on September 07 2007 13:38 EDT
- Re: MVEL 1.2 Final Released by Tim Morrow on September 07 2007 13:23 EDT
- Re: MVEL 1.2 Final Released by Christopher Brock on September 07 2007 13:53 EDT
- This is wonderful... by Will Hartung on September 07 2007 13:26 EDT
- Re: This is wonderful... by Mark Proctor on September 07 2007 13:50 EDT
- Re: This is wonderful... by Henri Karapuu on September 07 2007 13:58 EDT
-
Re: This is wonderful... by Joseph Ottinger on September 07 2007 02:18 EDT
- Re: This is wonderful... by Henri Karapuu on September 08 2007 02:24 EDT
- Re: This is wonderful... by Jacob Hookom on September 10 2007 12:14 EDT
-
Re: This is wonderful... by Joseph Ottinger on September 07 2007 02:18 EDT
- Re: MVEL 1.2 Final Released by Ashwin Jayaprakash on September 07 2007 13:52 EDT
- Use in Servlets/JSP by Michael Dynan on September 07 2007 15:46 EDT
- Re: Use in Servlets/JSP by Christopher Brock on September 07 2007 15:56 EDT
- Re: Use in Servlets/JSP by Mark Proctor on September 07 2007 16:10 EDT
- Re: MVEL 1.2 Final Released by Dhanji Prasanna on September 10 2007 22:27 EDT
- buggy? by K S on September 11 2007 19:07 EDT
-
Drools and MVEL[ Go to top ]
- Posted by: Mark Proctor
- Posted on: September 07 2007 12:50 EDT
- in response to Christopher Brock
We've fully integrated MVEL into Drools as one of our two currently available dialects. We also use MVEL to do all our code generation for the Java dialect. I did a blog a few months back on "Why MVEL": http://blog.athico.com/2007/05/why-mvel-scipting-language-for-jboss.html You can see what mvel templates look like here: http://anonsvn.labs.jboss.com/labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/ You can see the Eclipse IDE debugging a rule file with both a Java and MVEL dialects. http://labs.jboss.com/file-access/default/members/drools/images/helloworddebug.png We've worked with Mike to ensure that MVEL has great integration points for the host environment, and provides adequate performance in reflection mode. Without a doubt the fastest reflection based scripting language out there, and only adds about 20% overhead to the Drools environment. Flat JIT, currently it's spot JIT, will allow Java like performance in MVEL 2.0. One of the things that really makes MVEL stand out though is it's type safety mode with full type inference, so you get the benefits of a non-verbose language with tape safety. Mark http://blog.athico.com -
Re: Drools and MVEL[ Go to top ]
- Posted by: Mark Proctor
- Posted on: September 07 2007 13:38 EDT
- in response to Mark Proctor
Other nice features of MVEL are Macro and Interceptors. These allow you to create customised extensions, we use these in Drools to have a special 'modify' keyword that uses a Macro to replace 'modify' with an Interceptor and the 'with' keyword, 'modify' becomes '@Modify with'. We then use the interceptors to execute some before and after code on the 'with' statement. See links for more details: http://mvel.codehaus.org/Macros http://mvel.codehaus.org/Interceptors Mark http://blog.athico.com -
Re: MVEL 1.2 Final Released[ Go to top ]
- Posted by: Tim Morrow
- Posted on: September 07 2007 13:23 EDT
- in response to Christopher Brock
IIRC you mentioned that it would be placed in the Maven repository around the time of the 1.2 release. Is this still on your roadmap? Thanks, Tim -
Re: MVEL 1.2 Final Released[ Go to top ]
- Posted by: Christopher Brock
- Posted on: September 07 2007 13:53 EDT
- in response to Tim Morrow
Tim, we'll get the Maven artifacts out to ibiblio next week. -
This is wonderful...[ Go to top ]
- Posted by: Will Hartung
- Posted on: September 07 2007 13:26 EDT
- in response to Christopher Brock
But, what is it? For someone (like, say, me) who doesn't know what MVEL is, I read this post and...I still don't know what it is. I shouldn't have to surf the clicks to at least get a grasp of what the project does. Even a one or two line summary would be nice. Doesn't need to be a thesis. "MVEL 1.2 has been released. MVEL is an embededded expert system designed to make fruit smoothies more efficiently. Our new release includes..." -
Re: This is wonderful...[ Go to top ]
- Posted by: Mark Proctor
- Posted on: September 07 2007 13:50 EDT
- in response to Will Hartung
But, what is it?
It's a scripting language that can execute in three modes: interpreted, compiled reflection and spot JIT (bytecode). It allows for optional type safety, using type inference for reduced verbosity. It supports Macros and Interceptors and also has a good templating capabilities. Primitives, Primitive Object Wrappers and BigInteger and BigDecimal can all be used in the same seamless way in mathemetical expressions. The syntax supports for inline maps and lists and arrays and lists can be used in the same seamless manner. It's syntax is minimal and uses the graph accessor notation as used in languages like Groovy or javascript. All for about 400kb (including an inlined ASM) MVEL is not trying to compete against Groovy or JRuby, or claiming to be more powerful. Its focus is on an embedded scripting and easy of integration and doesn't try to be a platform. As mentioned in a previous post it's other differentiator with those platforms is it can also operate in 100% reflection execution, which is often necessary for embedded environments, and provides optional full type safety via inference. Mark http://blog.athico.com
For someone (like, say, me) who doesn't know what MVEL is, I read this post and... -
Re: This is wonderful...[ Go to top ]
- Posted by: Henri Karapuu
- Posted on: September 07 2007 13:58 EDT
- in response to Will Hartung
But, what is it?
It's an expression language, like the EL and OGNL. But you do have a great point, and it also applies to way too many other articles in here. Editors should take note of this.
For someone (like, say, me) who doesn't know what MVEL is, I read this post and...I still don't know what it is. -
Re: This is wonderful...[ Go to top ]
- Posted by: Joseph Ottinger
- Posted on: September 07 2007 14:18 EDT
- in response to Henri Karapuu
Editors *do* take note of this. That said, we're not perfect. It'd be nice if people realised that, when they write stuff for TSS, they're writing for a wide audience, and gave the editors just a little bit o' help. That said, though, I do need to write up some better guidelines on writing for TSS...But, what is it?
It's an expression language, like the EL and OGNL.
For someone (like, say, me) who doesn't know what MVEL is, I read this post and...I still don't know what it is.
But you do have a great point, and it also applies to way too many other articles in here.
Editors should take note of this. -
Re: This is wonderful...[ Go to top ]
- Posted by: Henri Karapuu
- Posted on: September 08 2007 02:24 EDT
- in response to Joseph Ottinger
Editors *do* take note of this. That said, we're not perfect.
Joseph, I think you are doing a great job overall. I didn't mean that _you_ would need to do the editing. By "taking note" i meant more along the lines of raising bar for news item content and rejecting / sending back for fixes the news items that cannot be comprehended by average Java EE developer.That said, though, I do need to write up some better guidelines on writing for TSS...
Just a personal opinion of course, but i'd also prefer more emphasis on 'benefits' of the framework/product, rather than just 'features'. /Henri Karapuu -
Re: This is wonderful...[ Go to top ]
- Posted by: Jacob Hookom
- Posted on: September 10 2007 12:14 EDT
- in response to Joseph Ottinger
You should add tagging to your content news. Under the title, display all of the tags and then allow people to click on those tags to explore related content. -
Re: MVEL 1.2 Final Released[ Go to top ]
- Posted by: Ashwin Jayaprakash
- Posted on: September 07 2007 13:52 EDT
- in response to Christopher Brock
Congrats! It's a commendable accomplishment. Ashwin (http://www.StreamCruncher.com). -
Use in Servlets/JSP[ Go to top ]
- Posted by: Michael Dynan
- Posted on: September 07 2007 15:46 EDT
- in response to Christopher Brock
Any documentation on using MVEL as a templating engine in a web app, similar to Velocity? Or is that not a suitable use for MVEL? -
Re: Use in Servlets/JSP[ Go to top ]
- Posted by: Christopher Brock
- Posted on: September 07 2007 15:56 EDT
- in response to Michael Dynan
It is in fact possible, and I'm aware of some people who have done it. There is a method in the TemplateInterpreter class called parseToStream() that can take a file as a parameter, and an OutputStream. This can be used to wire-up serving MVEL templates through a Servlet. -
Re: Use in Servlets/JSP[ Go to top ]
- Posted by: Mark Proctor
- Posted on: September 07 2007 16:10 EDT
- in response to Michael Dynan
Some basic docs have been done: http://mvel.codehaus.org/Templating+Guide Mark http://blog.athico.com (The Drools Blog) -
Re: MVEL 1.2 Final Released[ Go to top ]
- Posted by: Dhanji Prasanna
- Posted on: September 10 2007 22:27 EDT
- in response to Christopher Brock
This is awesome! good stuff--MVEL is the best expression lang. Now hopefully you can do the same thing with your docs =P Dhanji. -
buggy?[ Go to top ]
- Posted by: K S
- Posted on: September 11 2007 19:07 EDT
- in response to Christopher Brock
x.abc = 1 doesn't work