Introducing Loop – a new JVM language
Yet another JVM language has appeared – Loop is a little language focusing on simplicity and parallelism and armed to deal with concurrency.
Ah the JVM. Whatever your needs are, there’s probably a JVM
language suitable for you, whether Groovy, Scala, JRuby or just
straight up Java. Now it’s time to open arms to another option –
this one being strong, dynamic and duck typed.
Inspired by the likes of Haskell, Scheme and Ruby,
strongly-typed language Loop has arrived to help ease your
woes with parallelism, but also focus on being as simplistic as
possible for concurrent (multi-threaded) programming, which is
often a bugbear for some JVM languages. Mentioning no names of
Developed by former Google employee and JAX-RS specification
co-author, Dhanji R. Prasanna, Loop is still very much a
little research project in progress but shows promise. On its
simple website, its philosophy is clear:
As a programming language, Loop prizes readable,
compact and elegant syntax. Many design choices are made in favor
of clarity over convenience.
emphasizes performance over
purity or theoretical considerations. This means
that practical design choices generally rule the
The overall philosophy is to bring
together the best features of functional programming with the
practical and ease-of-use lessons from modern imperative and OO
languages, but to do so in a consistent, pragmatic and elegant
Although most languages aspire towards these ideals, some get
lost in translation. Just an endless array of tacked-on features
purely acting as superfluous material that says how good this
language is. The problem is that it just makes things more
complicated as you go along. But we’re hopeful here for Loop and
hope it can act upon its mantra and become King of Convenience.
Scripts are compiled on-the-fly to optimized JVM bytecode
thus suffers no performance penalty to interpretation; all while
maintaining the quick, edit-and-run responsiveness of compiled
code. It also states that Loop ’doesn’t have any
of the baggage of the host platform (Java), but interoperates
tightly and borrows semantically from
Java where appropriate.’ So keeping ties close but not too
Here’s the simplest Hello World example:
To check out what else Loop can do in terms of basic expressions
and how strings, operator et al work, check out the excellent
Started documentation provided.
The future roadmap includes plans for a
comprehensive web/app framework and a graphics library, plus
further loop shell work, which will be aided by a community
involvement, should Loop get some backing. So what do you make of
the latest JVM language?