Yesterday I open-sourced Storm at Strange Loop. Storm is a distributed
and fault-tolerant realtime computation system hosted at
https://github.com/nathanmarz/storm
Just want to preempt a few questions that I know people are wondering
about the project:
"Is Storm mostly written in Java?"
If you look at the languages graph on Github, it says that Storm is
"64% Java". However, this is inaccurate because those numbers include
the Java code generated by the Thrift compiler. If you exclude the
generated code, you'll find that Storm is over 50% Clojure in terms of
line count. In terms of functionality though, Storm is around 98%
Clojure. The Java code I wrote is mostly interfaces and small classes
that a user of Storm would encounter in the public API (Java is, ahem,
verbose).
"Why isn't Storm written completely in Clojure?"
I want Storm to be as accessible to as wide an audience as possible. A
user's language preference or constraints shouldn't prevent them from
being able to use Storm to solve their realtime computation problems.
This is why I chose to define Storm's main interfaces in Java, and
this is also why Storm supports using any language (including non-JVM
ones) on top of Storm. That said, Storm has a Clojure DSL for
programming topologies which is what I personally use for developing
topologies.
Clojure was a magnificent language to use to build Storm. Storm is a
complex, intricate system, and Clojure helped a great deal in managing
the complexity of the implementation.
If you have any questions, I'd be happy to answer them.
On Tue, Sep 20, 2011 at 8:35 PM, nathanmarz <nathan.m...@gmail.com> wrote: > Yesterday I open-sourced Storm at Strange Loop. Storm is a distributed > and fault-tolerant realtime computation system hosted at > https://github.com/nathanmarz/storm
I would like to congratulate you on the release. Storm seems to be very interesting and apparently it has certain advantages that no other existing system seem to offer.
> ones) on top of Storm. That said, Storm has a Clojure DSL for > programming topologies which is what I personally use for developing > topologies.
It would be great if the Clojure DSL is documented on the wiki (or did I miss it?). I am really keen on taking it for a test drive and I am sure others in the Clojure community would like to do so as well.
> Yesterday I open-sourced Storm at Strange Loop. Storm is a distributed
> and fault-tolerant realtime computation system hosted athttps://github.com/nathanmarz/storm
> Just want to preempt a few questions that I know people are wondering
> about the project:
> "Is Storm mostly written in Java?"
> If you look at the languages graph on Github, it says that Storm is
> "64% Java". However, this is inaccurate because those numbers include
> the Java code generated by the Thrift compiler. If you exclude the
> generated code, you'll find that Storm is over 50% Clojure in terms of
> line count. In terms of functionality though, Storm is around 98%
> Clojure. The Java code I wrote is mostly interfaces and small classes
> that a user of Storm would encounter in the public API (Java is, ahem,
> verbose).
> "Why isn't Storm written completely in Clojure?"
> I want Storm to be as accessible to as wide an audience as possible. A
> user's language preference or constraints shouldn't prevent them from
> being able to use Storm to solve their realtime computation problems.
> This is why I chose to define Storm's main interfaces in Java, and
> this is also why Storm supports using any language (including non-JVM
> ones) on top of Storm. That said, Storm has a Clojure DSL for
> programming topologies which is what I personally use for developing
> topologies.
> Clojure was a magnificent language to use to build Storm. Storm is a
> complex, intricate system, and Clojure helped a great deal in managing
> the complexity of the implementation.
> If you have any questions, I'd be happy to answer them.
Yea, I have it on my todo list to document this (which seems to be
getting longer by the minute). Hopefully I'll do that within the next
few weeks. In the meantime, I pasted some example code showing usage
of the Clojure DSL, if that helps at all in the meantime:
> On Tue, Sep 20, 2011 at 8:35 PM, nathanmarz <nathan.m...@gmail.com> wrote:
> > Yesterday I open-sourced Storm at Strange Loop. Storm is a distributed
> > and fault-tolerant realtime computation system hosted at
> >https://github.com/nathanmarz/storm
> I would like to congratulate you on the release. Storm seems to be
> very interesting and apparently it has certain advantages that no
> other existing system seem to offer.
> > ones) on top of Storm. That said, Storm has a Clojure DSL for
> > programming topologies which is what I personally use for developing
> > topologies.
> It would be great if the Clojure DSL is documented on the wiki (or did
> I miss it?). I am really keen on taking it for a test drive and I am
> sure others in the Clojure community would like to do so as well.