Kilim: Fast, lightweight, cheap message passing in Java.
Why Hacker News recommends it
Pointed to as evidence that Java can do fast, cheap message-passing concurrency, as an alternative to Erlang or Scala actors.
What it is
A Google Tech Talk by the author of Kilim, a Java library for lightweight actor-style message passing. It argues that message passing can replace shared-memory concurrency and claims performance competitive with or better than Erlang for huge numbers of actors.
Recommended by 2 HN commenters across 2 different months, 2009 to 2012.
What Hacker News said
Recommends wynand · 2009-10 · on “Concurrency Patterns: Java, Scala, and Clojure”
Actors are decoupled from the means by which they are executed. Scala has a nice system where you can run thousands of event-based actors in a thread pool. It grows the pool as needed (as threads block). See [LINK] While it may use threads, Scala's actor system effectively allows you to create thousands of actors. Kilim is actually a pure (depending on whether you see a byte-code processing system as pure) Java system that does the same thing (as far as I can tell): [LINK] Kilim's author did a nice Google Talk: [this video] EDIT: Fixed some grammar and added video link.
Recommends lucifer · 2010-02 · on “Why Scala Actors are Slow”
"Asynchronious message passing is old and great idea. Instead of synchronizing objects and dealing with deadlocks we try to isolate objects and let them exchange messages. Erlang proved it to be extremly powerful tool applicable to wide range of highly scalable mission critical applications. In JVM landscape big interest to this approach started after introducing Scala actors. " That statement is so very poorly informed! JMS ("surprise"?) has been a sign of "interest" in "Asynchronious message passing" in the "JVM landscape". I am not up on my Scala, but the author fails to convey (based on what I do know ;) the competence level that would lend weight to his attempt to address (much less sup
Cites tezza · 2009-06 · on “Plurk Comet: Handling of 100.000+ open connections”
SPEED :: In defence of Java, it is very quick when done right. See Kilim[1] for examples. SUPPORT :: On top of the speed Java has a supported hardware stack (Solaris). So if doing 100K connections is important to you, you can find engineers who can diagnose difficult problems on your whole stack. -------------- [1] [this video] at 23:23 . Java is quick without Kilim too, this is just an example with stats.
Cites eternalban · 2012-04 · on “Why Erlang? ”
Erlang is a CSP system, first and foremost, and not actors. [CSP style concurrency on JVM]: [this video] (Kilim, it should be noted, was benchmarked as scaling better than Erlang/OTP.) [LINK] (paper in top comment is worth the read.) Disclaimer: I think Erlang/OTP rocks. But JVM has its moments, as well, and in fairness has earned the "most advanced VM" title.