<TITLE>Re: [Haskell] ANN: Efficient, dynamically compiled, lazy functional semantics on JVM, having tight integration with the Java language</TITLE>
<FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'>Just a quick addendum to this. &nbsp;<BR>
In order not to be posting too much (essentially non-Haskell stuff) to this list, I have created a blog at:<BR>
<a href="http://www.quarkframework.blogspot.com/">http://www.quarkframework.blogspot.com/</a><BR>
I intend to post most news there as we get technical material (and the software!) together to share with the community. &nbsp;We&#8217;ll probably still post some Haskell comparison stuff here. &nbsp;This blog is likely to be temporary, but helps us with early discussion and dissemination of news prior to anything more permanent being set up.<BR>
Lwe <BR>
On 9/26/06 9:22 PM, &quot;Luke Evans&quot; &lt;luke.evans@businessobjects.com&gt; wrote:<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'>Greetings denizens of the Haskell mailing list!<BR>
Though this is not strictly an announcement about Haskell, it might be of<BR>
interest to a number of folk here.<BR>
The Research Group here at Business Objects has been beavering away since<BR>
1999 on a suite of technologies to allow us to represent certain kinds of<BR>
business logic as reusable, composable pieces. &nbsp;One of the primary<BR>
requirements was that a general runtime for such objects be embeddable<BR>
within the Java environment (i.e. pure Java). &nbsp;These pieces of business<BR>
logic (which we called &quot;Gems&quot; to give them a nice friendly face) are<BR>
declarative 'functional' objects. &nbsp;So, the side effect of focusing on our<BR>
goals was the creation of a high performance, general purpose functional<BR>
language and runtime for the Java platform.<BR>
Here are a few 'highlights' from our feature list:<BR>
- A lazily evaluated, strictly-typed language called CAL, with many<BR>
similarities to Haskell<BR>
- A compiler capable of generating Java bytecode with efficient schemes<BR>
- Many optimisations specific to targeting a dynamic, OO language platform,<BR>
such as the JVM<BR>
- A graphical language and tooling for interactively developing and testing<BR>
Gems (also a good teaching tool)<BR>
- Debugging features, with value inspection that doesn't force evaluation<BR>
- Eclipse integration (still in progress)<BR>
- Metadata on CAL entities<BR>
- CALDoc (source embedded documentation)<BR>
- Fully multithreaded compiler and runtime<BR>
- Control of evaluation from Java, if required (suspension, resumption,<BR>
exploring different parts of the result)<BR>
- Dynamic compilation - use SDK to create Gems at runtime, or create ad hoc<BR>
compositions that might represent specific data flows in an application<BR>
- Easy integration to use Java types in CAL and to call regular Java logic<BR>
- Exception support<BR>
- Localisation and Internationalisation support<BR>
Over the next few weeks, we will be publishing more technical information<BR>
about our framework (codenamed Quark). &nbsp;As Business Objects is not a<BR>
language or development tools vendor, we are investigating the possibilities<BR>
around open sourcing the general language machinery. &nbsp;As part of figuring<BR>
out the best way to approach this, we would be interested in hearing from<BR>
anyone with a possible interest in this sort of thing (for teaching,<BR>
application development, research, etc.).<BR>
While we gather useful collateral, I have made a couple of videos available<BR>
that we had to hand and could share quickly. &nbsp;Some of the content is<BR>
designed for those new to the functional paradigm, but the videos do show<BR>
quite a range of tool and language features. &nbsp;To take a look at these, point<BR>
your browser at:<BR>
<a href="http://homepage.mac.com/luke_e">http://homepage.mac.com/luke_e</a><BR>
In precis, the videos demonstrate the following:<BR>
Intro to Gems (parts 1 and 2)<BR>
Some of the regular things you expect functional languages to do, created<BR>
interactively in our graphical language designer called the Gem Cutter. &nbsp;We<BR>
find this tool is used quite a bit by developers for experimentation and<BR>
orientation when reasoning from scratch about problems. &nbsp;In the demo you can<BR>
see real-time typing, Intellicut (our system for proposing legal<BR>
compositions), a graphical way to handle partial application and recursion<BR>
and a number of other features that may be interesting.<BR>
CAL and ICE Shell<BR>
This video is a whistlestop tour through some CAL language features as well<BR>
as some of the features of the framework (as exposed through the interactive<BR>
shell, ICE). &nbsp;In this demonstration, you can see some aspects of CAL syntax,<BR>
the interface to Java types and methods, a quick demo of some<BR>
tracing/debugging, a look at CALDoc, records/tuples, refactoring and some<BR>
brief discussion on a range of other topics.<BR>
I may post other videos over the next few days and weeks, along with papers,<BR>
manuals and other artifacts, but I'll spare everyone from further<BR>
announcements here lest that bugs people.<BR>
[Videos are Quicktime/H264, if you aren't in the habit of watching Quicktime<BR>
I believe most browsers will help you to get and install the plug-in. &nbsp;I can<BR>
send people other formats on request, or indeed, at the original resolution<BR>
which is easier to see!]<BR>
Regards to all,<BR>
Luke Evans<BR>
Chief Scientist, VP Research. &nbsp;Business Objects<BR>
Haskell mailing list<BR>
<a href="http://www.haskell.org/mailman/listinfo/haskell">http://www.haskell.org/mailman/listinfo/haskell</a><BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'><BR>