Kawa 2.0 Supports Scheme R7RS
First time accepted submitter Per Bothner (19354) writes "Kawa is a general-purpose Scheme-based programming language that runs on the Java platform. It combines the strengths of dynamic scripting languages (less boiler-plate, fast and easy start-up, a REPL, no required compilation step) with the strengths of traditional compiled languages (fast execution, static error detection, modularity, zero-overhead Java platform integration).
Version 2.0 was just released with many new features. Most notably is (almost) complete support for the latest Scheme specification, R7RS, which was ratified in late 2013. This LWN article contains a brief introduction to Kawa and why it is worth a look."
Version 2.0 was just released with many new features. Most notably is (almost) complete support for the latest Scheme specification, R7RS, which was ratified in late 2013. This LWN article contains a brief introduction to Kawa and why it is worth a look."
Rare to see anyone even thinking about that language outside the context of SICP.
'Kawa is a general-purpose Scheme-based programming language that runs on the Java platform"
Why do language designers shoot themselves in the nether regions like this? Use the Java platform, bring in all the baggage that entails, watch your language get know traction until the need to make some money diverts your interest to productive pursuits. The problem with the Java platform is any niche that can suffer under it is already filled with Java or .net.
A Polish development by any chance? kawa being the polish for coffee, with a java base it seems likely
Blarney Quality Restaurant, Plants
the strengths of traditional compiled languages....zero-overhead Java platform integration
I never thought I'd hear someone say that Java integration is a traditional strength of compiled languages (especially for a dialect of a language invented in the 50s).
"First they came for the slanderers and i said nothing."
What does R7RS stands for?
The Java platform already has a major and mature Lisp-like language with Clojure. Are there any potential advantages of Kawa over Clojure or is this more of a for fun project?
I am working on a research project at well known institution and needed a lispy language on the jvm. Kawa was a god send for my needs and the other lispy implementations just failed horribly. Kawa was a project that I had not heard about until I needed ... kudos. It is certified platinum in my book.
kawa is one of the most performant dynamic language implementations on the jvm.
and it's a lisp, so it has all the advantages of that language family going for it.
the real win is the confluence of these things: a powerful dynamic language with
full access to the jvm ecosystem.
applications can run for months or years at a time with continuous hot updates.
no doubt that this is possible with other language runtimes, but i haven't seen one
that makes it easier than kawa.
compared to clojure: performance is probably the most persuasive advantage for most folks,
though for me it's that kawa is scheme
It's like Old Ben Kenobi told young Luke Skywalker:
"If you're trying to run it on a JVM you've already lost to the darkside."
Star Wars Quotes (that never happened)
E
It combines the strengths of dynamic scripting languages (less boiler-plate, fast and easy start-up, a REPL, no required compilation step).
Let's see whether the great dynamic scripting language Haskell also fulfills these points.
Now we see Haskell has all the advantages of dynamic scripting languages. How about the advantages of compiled languages?
with the strengths of traditional compiled languages (fast execution, static error detection, modularity, zero-overhead Java platform integration).
Which proves that Haskell has all the advantages of dynamic scripting languages, and most of the advantages of traditional compiled languages.
Btw., you can do the same using any other modern compiled language. This post wants to show the "advantages of dynamic scripting languages" have nothing to do with the languages being "dynamic" or "scripting", whatever that means.
Most software developers will take one look at the excessive parentheses required for Kawa and Scheme and say "nuke it from orbit". Even Lisp advocates like Paul Graham admits that syntax like "(* (+ 1 2) (- 5 4))" is painful to deal with.
Thankfully, there *are* solutions for Scheme: SRFI-105 and SRFI-110 (which I co-authored). These are extensions to Scheme that let you keep meta programming (and syntax tree editing in an editor) with readable syntax. To my knowledge Kawa doesn't implement them, but they could be added.
- David A. Wheeler (see my Secure Programming HOWTO)