Spotlight on: Quorum, the scientifically-simplified JVM language

Having just released its second iteration, we decided to a look at the heavily-researched programming language for newcomers.

The sheer number of JVM languages is impressive, with the
platform now host to about 90 or so different dialects, according
to Wikipedia.
We have Java 7’s introduction of invokedynamic to thank for this,
since it introduced first-class support for other languages on the
Java Virtual Machine.

This easy access to the JVMhasmeantkeeping
trackofnew languages isn’t easy.
Clojure, Groovy and Scala might have generated a strong
community following, butsome are often pet projects
that don’t go much further.

One language that is missing from the above list
isQuorum, which
hit a 2.0 release this past June. The backstory to the project is
particularly interesting. Quorum was founded by professor Andres
Stefik, who had been part of the team working onSodBeans
IDE, a NetBeans variation specifically tuned to
help visually impaired and blind developers. The project was one of
the winners of theDuke’s Choice Award
in 2011.

While working on the project, Stefik and the
team wondered if their experiences whendesigning an
IDE for the blind were transferrable when creating a JVM languages.
SodBeans required a tremendous amount of thought, in making it
intuitive to a blind user, so could this stripped-down theory be
applied to a language designed for novices?

The general purpose object-oriented language compiles to Java
bytecode and designed from the outset to be easy to understand and
beginners to pick up. The 2.0 release contains static-type
checking, with a smattering of type interference and a plug-in
system, making it extendable with C++ and Java.

But what makes a language easier for developers
to learn?Being an academic at the
University of Nevada, Stefik is dead set on using empirical
methods, regularly conducting experiments with small sample groups
and compiling regular analysis of new evidence from scientific
literature. This is then regularly implemented and incorporated
into the language. For example, in Quorum 1.7, the statement syntax
was tuned more towards the design used in Ruby, as novices felt
more comfortable with it.

This level of linguistic analysis differs hugely
to any other JVM language out there, where the community’s feedback
is used as the universal indicator.In an interview
withDZone,
Stefik explains more:

While it should be obvious to most people that
programmers have different needs, work in different environments,
and are trying to solve different problems, academics studying
usability issues carefully are finding that some designs really do
lead to more productivity over others under common
circumstances.

Birthing a programming language isn’t an easy process
and this project will take years of data collection to really hone
the language to be as easy to use as possible. With that said, when
people actually use it, we overwhelmingly get positive feedback. I
think most reasonable people recognize that there are tradeoffs in
language design and that no design is perfect, including that of
essentially all commercial programming languages.

Stefik adds that most of the evidence on
Quorum’s design is accessible through publicly available source and
that he welcomes others to join the process, by submitting their
own data. They can even refute the team if they feel strongly
enough that their analysis is off the mark. As well as having a
limited web version where you can run code, Quorum also has a
‘Netflix-style’ ratings system for voting on the standard
library.

The professor realises that getting the perfect
Quorum design is a pipe dream that would take several decades, but
is undeterred. He hopes that Quorum is at least useful for those
learning domain-specific languages, in understanding the syntax and
semantics.

“If they expand the language further, then all
the better, as it gives our lab something new to test to see if
it’s helpful, while providing them a solid foundation of evidence
for changes they probably don’t want to think about anyway,” he
added.

While the JVM language won’t be for everyone and
won’t likely see a production-use, it’s an interesting experiment
and new approach into creating a language. Why not give it a whirl
on theQuorum
site?