Fanfare please

Introducing Loop – a new JVM language

Chris Mayer
java-duke

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
course.

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.

Loop also
emphasizes 
performance over
purity
 or theoretical considerations. This means
that practical design choices generally rule the
day

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
form.

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
close.

Here’s the simplest Hello World example:

 

print('hello there')

 

To check out what else Loop can do in terms of basic expressions
and how strings, operator et al work, check out the excellent
Getting
Started
documentation provided.

Loop needs Java 1.6 or later to work, and
is available under the MIT open source
license 
on GitHub. Also
provided on GitHub is the distribution.

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?

Author
Comments
comments powered by Disqus