Business Objects Quark - Haskell meets Java

This looks very interesting:

(Luke also posted an announcement to the Haskell mailing list)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Hate to complain, but...

It'd be nice if I had some idea what this was or if it was interesting without having to install quicktime.


If you're on a Mac or Windows, odds are you already have QuickTime installed (that is, odds are you have iTunes installed, and on Windows, iTunes installs QuickTime). I'm actually happy to see QuickTime finally making a few inroads vs. WMF and Real.

Not for Linux users, though...

Could anyone QuickTime-equipped summarize the contents of the page ?

Quark/CAL/BORG announcement

Hmm, actually, I doubt that they use that acronym for "Business Objects' Research Group". Anyway, I don't know whether the Quicktime I have on my Mac OS X system can run Luke's videos, because I didn't have the patience to wait for the server. However, I did locate a direct link to Luke's Quark/CAL announcement.

Of interest to LtU are

  • CAL, their "functional language and runtime for JVM";
  • their focus on reusable, composable business components (unfortunately named "Gems", in collision with Ruby's module distribution system); and
  • the "graphical language designer called the Gem Cutter".

For LtU archival purposes, here is an excerpt from Luke's announcement:

Here are a few 'highlights' from our feature list:

  • A lazily evaluated, strictly-typed language called CAL, with many similarities to Haskell
  • A compiler capable of generating Java bytecode with efficient schemes
  • Many optimisations specific to targeting a dynamic, OO language platform, such as the JVM
  • A graphical language and tooling for interactively developing and testing Gems (also a good teaching tool)
  • Debugging features, with value inspection that doesn't force evaluation
  • Eclipse integration (still in progress)
  • Metadata on CAL entities
  • CALDoc (source embedded documentation)
  • Fully multithreaded compiler and runtime
  • Control of evaluation from Java, if required (suspension, resumption, exploring different parts of the result)
  • Dynamic compilation - use SDK to create Gems at runtime, or create ad hoc compositions that might represent specific data flows in an application
  • Easy integration to use Java types in CAL and to call regular Java logic
  • Exception support
  • Localisation and Internationalisation support

windows@work &&

windows@work && !qt


i'd rather see good ol' mpgs.

a blog about it

On the subject of QuickTime...

I'll try to make the videos available in another format in due course. The current situation is temporary, but I'm hoping it serves the purpose of getting some material out quickly to help us connect with interested parties, start discussions etc.

Actually, the video format was a challenge. I cut these down to 640x480 from much larger sizes (resolution and data) and this was the only format I tried that seemed readable at that size. Unfortunately, it also requires the latest QuickTime (7+) as it's H264.

I'll post some screenshots up I think for those that can't see the videos. Doesn't quite do the same job of course, but it's better than nothing. I'm also told the .mac server has very variable performance (so it's possible that too much patience is required at times).


It's worth pointing out that there are other H.264 plugins for, e.g. Firefox on other platforms. Google is your friend here.

Posted a comparison of CAL and Haskell

Earlier, I posted the first technical doc on the Quark framework: a comparison of CAL and Haskell. This can be found here.

...or bounce through the blog site (which should now have commenting turned on):
Quark Framework Blog.

We're working on posting the CAL "User Guide" soon. Probably the next doc to go up.

purity, or lack thereof

I'm not cluefully enough to know enough to grok such things, but would it be possible for CAL to use something like Monads to wrapper the foreign Java stuff to keep the mutable/imperative things clearly deliniated? It seems a shame if that aspect of Haskell is lost, or there isn't something in CAL from the get-go that is a similar alternative.

[Edit: Ah, I see the text about explicit sequencing and execution context, neat.]

CAL User's Guide is posted

Per the blog entry.

DivX videos posted for download

See the blog entry.

I'm hoping this works for Linux users and others where QuickTime won't work. The downloads are large, but the videos are of reasonable quality.

CALDoc for browsing or download

We have made some CALDoc available for folks to check out the contents of modules that we expect to be including in our initial release.

See the blog, as usual.

Quark Framework software now downloadble

We have just announced the availability of our initial software download, hosted at the Business Objects Labs site.

Also available at this location are a few new documents (a Gem Cutter Manual to help people get oriented in our graphical language tool, and a document to advise on best practises for CAL programming entitled "Effective CAL"). We also have a new forum for discussing CAL and the Quark Framework for Java.

The blog will continue to be updated with news for the time being.

CAL Eclipse Plug-in now available

We have made an initial version of our Eclipse plug-in available at the Business Objects Labs site.

This version includes a CAL Editor, and an early version of the CAL Builder. See the release notes in the Software Downloads section of the page for instructions on installation and set up.

Comments/feedback are very welcome on our new discussion forum