
Is java dead for startups? - lean_startup
It seems that RoR, PHP &#38; scala are the "hot" languages for startups. I know that java is old, but it lends itself to better engineering
IMO.   Especially in NYC, where there is a robust market for high-
paying java jobs at investment banks, it is hard to find lean
startupers.<p>Are there theoretical or practical reasons to avoid java in lean
startups?  Any ideas where to find folks at the intersection of java +
lean startups + NYC or is it hopeless?<p>Many thanks!<p>Cheers,
Mike<p>PS Here is the job description.  Applicants and feedback on the
description are welcome too:
 http://www.socialfeet.com/2010/05/got-java-chops/
======
10ren
It's funny, one initial selling point for Java was as a rapid prototyping
language. Because back then it was, relatively speaking.

I think in the big picture of a increasing speed supply (courtesy Mr Moore,
for cheap cycle farms and cache; but also JIT compilation techniques), and
comparatively fixed user speed _demand_ (a gui only needs to be fast enough;
network latency swamps many other delays), Java is now much faster than it
needs to be (faster meaning performance, not development time).

Back then, you had compiled languages (C, C++) that were fast, and scripting
languages, like python, that were not. Python was touted as a glue language.
Anyway, Java was mid-way in terms of speed (being partly compiled and partly
interpreted), and mid-way in terms of dynamic benefits (eg. garbage collected
and runtime array bounds checked - but requiring static typing). That
combination of ease of use and performance was a good fit for some tasks, at
that time. As the speed supply moved up, Java became usable for more tasks.
But as speed kept increasing, Python and Ruby and even PHP also became fast
enough - and they had the ease of use of being fully dynamic.

To give a direct answer your question: agile/iterative prototyping is how
startups compete these days (not on performance), and ruby, php etc are better
than Java on this particular attribute. Another aspect is that many cool new
things are happening in languages other than Java - they have more interesting
tools (eg. Sinatra), and more interesting energy in the community, because
they attract those crazy, eager, young, passionate, enthusiastic early
adopters.

Exceptions: where more performance is required (eg. Google uses a lot of Java;
and it's the basis of the Android platform and others); and for the
Enterprise; and also where type-safety (for reliability) is more important
than agility (though ML-based languages have some of this market).

Note: a startup can tackle _any_ problem, not just consumer-facing webapps. I
think webapps get disproportionate publicity (because they're on the web); and
web forums (like this one) favour them.

btw: I remember Java's younger years, I'm still a fan, and I'm using it in my
product development. Java... some one still loves you.

~~~
TeHCrAzY
I was under the impression that much of googles code base is python.

~~~
michaelfairley
Most of the core code is C++ or Java, though there is plenty of Python.

~~~
jonah
I mentioned Java to a high level googler friend and his instant response was:
Java == Slow.

~~~
SkyMarshal
By the standards of a high level googler, probably all languages but C and
Ocaml are slow.

------
jdietrich
Java is an avowedly corporate language. It isn't built to be fun or elegant or
beautiful or especially powerful - it's built to be robust, idiot-proof and
flexible.

For startups, it just seems very poorly suited for the task. I think most of
us would agree that the main advantage any startup has is speed and agility.
Java isn't that well suited to rapid development, at least not compared to
Python or Ruby. It doesn't offer any potentially game-changing technical
advantages over the mainstream like Scala, erlang of JavaScript might. Java is
a sturdy, reliable language that is very well suited to fairly boring
corporate work. It's just not rock and roll though, is it?

Think about the standard startup rhetoric - do one thing and do it well, start
small and iterate rapidly, split the market with something unique. If you're
going into battle against an incumbent, you need to change the rules of the
game - you don't want an AK47, you want an IED. If you're trying to build
disruptive technology, it seems obvious that you'll be better off using tools
that are themselves disruptive.

~~~
strlen
> If you're trying to build disruptive technology, it seems obvious that
> you'll be better off using tools that are themselves disruptive.

OTOH, tools themselves don't how disruptive your product is. The iPhone and
Android are disruptive, even though Java and Objective-C are as boring as
tools get (although the Dalvik VM is quite wicked).

Find the best developers you've worked with and let them choose whichever
tools they like. That being said, some of today's best Java developers will
likely end up choosing Scala for a project they're building from scratch.

------
anatari
If you're a web shop, IMO, none of the Java web frameworks are ideal for the
fast prototyping that most startups need to do on a regular basis. I've hated
every Java web framework I've ever worked with and I've used most of the
popular ones. Always felt like I was fighting the framework for one reason or
another; too verbose, not expressive enough or too tightly structured.

There are some decent platforms for the JVM though.

~~~
silkodyssey
The play framework sounds like something you'd be interested in. It abandons
the Java conventions for a more rails like experience.
<http://www.playframework.org/>

~~~
mnml_
playframework is way better than rails in my opinion

~~~
buddycasino
Watched the screencast. First thought when I saw 'SomeClass extends
Controller': this will be hard to evolve.

Tapestry 5 has done away with this and does not require interfaces or
superclasses anymore in order to avoid breaking the API in future releases,
they should have learned from that.

------
shiftb
I use Java primarily in my day job, but usually RoR in my side projects
(unless I'm using something else just to pick up the language/skill).

I think the reason you don't see Java in startups as much anymore is that it's
neither rapid nor enjoyable to code in. It's also more difficult to deploy in
production and more expensive (it requires more RAM to run well in my
experience). Continuous deployment is more difficult with Java. Ruby and PHP
you can just push code and restart the server almost instantly, Java takes
longer.

Java is getting better, but not fast enough, and it's still not a fun language
to write in. If I'm going to spend 12 hours coding, I'd like to enjoy it. I
can think faster than I can write Java. I'm just able to get more done with
other languages.

~~~
kiwidamo
You should look at the Play Framework (www.playframework.org) if you'd like to
see rapid Java.

Agree that Java is verbose though. Java7 will improve things only slightly.

~~~
shiftb
I've seen that before. Interesting technology. Spring Roo shows some
improvement in that regard too (although not the compiling after changes
part).

I've actually gotten to use groovy/grails for a lot of new
projects/enhancements and that is making my job much nicer.

------
yesimahuman
Born again Java fan here. I took a diversion into languages like Python (which
I still heavily use), but now I wish I had just used Java in the first place.
Once you turn a program from a 2 hour long run-time down to < 10 minutes (my
Lucene vs PyLucene experience), you don't really see the benefit of using
Python anymore. Plus I've realized that I prefer static typing.

~~~
Zak
Speed is a bad reason to choose Java or other less expressive languages. There
are many more expressive languages with speed comparable to Java, including
but not limited to Haskell, Common Lisp, Scheme, Clojure, Scala and several ML
variants. Some of these run on the JVM and some offer static typing. It looks
as though Psyco and LuaJIT compare well to Java in microbenchmarks as well.

~~~
elblanco
>* including but not limited to Haskell, Common Lisp, Scheme, Clojure, Scala
and several ML variants *

Any non-FP languages?

~~~
Zak
Most languages that I would designate as "expressive" allow FP, but not all
require it. Common Lisp isn't very functional; it doesn't even do tail-call
elimination by default. It's idiomatic to use a fairly imperative style in CL.
Scala allows FP, but also has OO that's fairly similar to Java with less
boilerplate. Lua allows FP, but an imperative style is idiomatic (it doesn't
even have map/reduce/filter built-in).

Edit: BigForth is an implementation of Forth that seems to be pretty close to
Java in speed. Forth is not a functional language. D is a fast language
intended as a C++ replacement. Despite looking a bit like C++ or Java, it can
be quite a bit more terse than either. D 2.0 adds quite a bit of FP support to
make concurrency and parallelism easier, but you can still write C in D if you
so choose.

~~~
elblanco
I was not aware that D and Lua had the JVM as targets.

~~~
Zak
You only asked for non-FP languages, not non-FP languages with the JVM as a
target. There's a Lua implementation for the JVM called kahlua. It appears to
be in a fairly early stage of development and may not be fast or suitable for
production use. As far as I know, there is not a D compiler for the JVM.

Groovy appears to be potentially as fast as Java. It can call Java easily,
which means you always have the option to rewrite something that's too slow in
Java itself.

~~~
elblanco
Thanks again. Apologies if my terseness meant a loss in clarity. I thought the
JVM was implicit in the thread and that you were listing languages with the
JVM as targets (also my mistake as I see that you were not exclusively listing
those, guess I should refrain from posting till I've had more sleep).

------
plinkplonk
I once wrote some blogposts [1] titled "Why do Startups still use Java? ". I
would have thought people who wanted the Java libraries/JVM would have used
Scala or Clojure. I understand why people would choose Java over say Python
(the need for specific libraries like say Hadoop which have no direct
equivalent in Python/C land), but I've not yet understood why they won't use
Clojure or Scala once they choose the JVM.

I wasn't (and am not) running a startup so I asked some friends who were (and
were using Java). I never got a satisfactory answer (but I got some
_surprising_ answers including "If I were 5 years younger I would be using
Scala or Clojure but I am very productive in Java and don't have the energy to
learn new languages"(!!)). Another interesting answer I got was that their
startup focused on business value but needed only average programmers (I am
just reporting what people said) and could very well work in Java. All answers
tended to "Sure Java is inferior but there are mitigating factors."

Fwiw, If I were to ever start a business where software was a differentiator I
would use (a) Scala (if JVM/libraries were important) (b) Haskell + C or (c)
use a custom Scheme variant I've been hacking on for many years + C.

I personally think the fears of not getting good programmers if you build in
unusual languages is overblown. Even in Bangalore, good programmers would jump
at an opportunity to work on interesting systems and interesting languages. I
am not looking for work but I would _still_ consider a job offer from a
startup using interesting languages very seriously.

[1] I was trying to figure out stuff by writing and so these posts are not
polished, but if anyone wants to read, here they are

[http://pindancing.blogspot.com/2009/07/why-do-startups-
still...](http://pindancing.blogspot.com/2009/07/why-do-startups-still-use-
java.html)

[http://pindancing.blogspot.com/2009/07/why-do-startups-
still...](http://pindancing.blogspot.com/2009/07/why-do-startups-still-use-
java-part-2.html)

[http://pindancing.blogspot.com/2009/07/why-do-startups-
still...](http://pindancing.blogspot.com/2009/07/why-do-startups-still-use-
java-part-3.html)

[http://pindancing.blogspot.com/2009/07/why-do-startups-
still...](http://pindancing.blogspot.com/2009/07/why-do-startups-still-use-
java-part-4.html)

~~~
strlen
Almost all of the best Java developers that I know (including many who ran
Java user groups, podcasts, started well known projects) would choose to use
Scala on a new project rather than Java. Given Scala's present state (many
performance problems were ironed out in 2.8.0), I simply don't see a single
reason not to do so.

It's quite puzzling why the author of the parent article lumps it in with Ruby
as the two aren't very similar.

On the other hand, I've seen a friend who's a good (but not great - and he's
well aware of it) developer, but is rather entrepreneurial (quit a very well
paying job to work on his own project with no external funding) was very
surprised after I told him Scala is statically typed. Apparently Java
developers almost develop a sort of a Stockholm syndrome that leads them to
believe that "if it isn't verbose and limiting, it must be dynamically typed
and slow".

~~~
al_james
But you are forgetting that its much easier to hire experienced Java
programmers than experienced Scala programmers, simply because there are not
that many of the latter.

~~~
strlen
If a Java, C#, C++ (or F# or OCaml) programmer isn't able to pick up Scala (or
any other typed object oriented language) quickly on the job, they aren't that
great of a programmer (even if they are experienced).

Same for knowing any of {Perl, Python, Ruby} and being able to easily pick up
the other. Some of the more advanced idioms may take longer to learn, but it's
a fact of life that you'll have to learn new languages as you go.

On the other hand, if you need to hire average but experienced programmers
(e.g., if you're doing outsourced CRUD app development) then you might have an
argument.

~~~
al_james
I dont want to pay people to 'pick things up on the job'. I want people with a
proven track record in the language we use.

~~~
strlen
> I dont want to pay people to 'pick things up on the job'.

Google would disagree. As would Microsoft (they were very interested in
interviewing me, even though I've never done Windows or C# programming and
made that clear on my resume), Facebook, Amazon
(<http://groups.google.com/group/mi.jobs/msg/d81b6c1fa8f361fc>) and other
serious software successes.

Sounds like you want coders, not developers. What reason would talented
developers (the ones with offers from all of the above, plus start-ups
competing with you) to join you?

------
scheff
I'm going to go against the grain by saying I have created a startup in Java.
Why Java? Mostly because it's what I'm competent in, not because it's the best
"startup" material.

But what I have done is built a framework for a website which I can easily
extend. The framework is robust and easy to adapt, so once I get my first
startup up and running, I can punch out more in a much quicker turn-around.

I refrained from using a bunch of existing java frameworks/technology to speed
up development because I didn't know what the end product would look like and
don't like the way frameworks railroad you into a particular solution and
prevent you from "thinking outside the box".

So it's very old school - Servlets and JSP.

I achieve agility by now just focussing on delivering new services, and
calling those services from either JSP or AJAX calls. This gives me some
flexibility in the UX.

I prototype very rapidly to prove that I can do what I want to do, then round
off the edges if I'm happy that it's functionality that I want to include in
the pool.

I can turn around new functionality in a matter of hours for the most part.

Pete.

------
stratospark
Java the language is stagnating, but the JVM ecosystem is stronger than ever.
Attract some smart folk with Scala or Clojure, chances are good that they know
Java as well.

~~~
angelbob
If you lure people in with Scala or Clojure, then mostly make them program in
Java, there's a decent chance they'll feel betrayed and leave sooner.

At least, that's been my experience in places that lure with something
glamorous and then do only a very small amount of it.

~~~
stratospark
Right, the idea is to transition newer JVM languages in. A lot of legacy code
would be in Java, so the Scala or Clojure interop would let them build on top
of all that. Maybe start with a more or less self-contained component, like a
web services API or something could demonstrate the advantages of developing
with newer languages.

------
Keyframe
Maybe, as others have said, it's due to the nature of most startups talked
about here are web-centric. I had to write something in Java two days ago (not
web related, but image processing) - it was my first real intro to java, sort
of a crash and burn intro.

Not only did I write the stuff, it worked, it was FAST (unlike I expected,
because you know "java is slow" - I found out it isn't)... and I was damn fast
in changing code around, toying with it basically. All of that from zero to
hero in a single day (not even an 8hr session).

I'm impressed, and I'll probably look into prototyping work with java in the
future. I especially like zillion of libraries out there - great stuff if you
are trying to make something fast, prototyping for example.

I've been driving python for the last couple of years for prototyping (I
develop in C later), but I found out that python code of any reasonable scale
is really REALLY hard to manage (at least for me), not to mention speed issues
(which I sometimes need in prototypes due to the nature of image processing).

------
wlievens
Can we _please_ get over all this and just go with the one mantra: use the
tools you're productive and comfortable with. End of story.

I'm a Java developer, but I also recognize the amazing influence that more
dynamic languages have had on my way of thinking. I'm hugely indebted to the
SICP train of thought. That makes me a better Java programmer too, to get
around some of the stupid practices many other use.

------
rbanffy
IMHO, Java lends itself to overengineering. I am not sure why, but Java makes
it very tempting to try to nail the design right before you know what you are
designing.

~~~
10ren
Maybe the static typing - harder to change, so you try to get it right.

~~~
rbanffy
Not sure if it's only that - the static typing is more or less cared for by
the IDEs and their refactoring tools.

I would like some Java developer to chime in on this.

~~~
strlen
I think it comes from a too-literal understanding of design patterns. E.g.,
for the factory pattern the common practice (outside of some well designed
APIs e.g., google collections) the common practice is:

    
    
      public class Image {
        public Image(byte[] data) {
          // create the image from byte array 
        }
      }
     
      public class ImageFactory {
        public Image createImage(File file) throws IOException {
          // read data then create an image
        }
      }
    

vs.

    
    
      public Image {
        // the same constructor, but then ...
        public static Image open(File file) throws IOException {
          // Do the same thing as factory would do
        }
      }
    

What's the advantage of the first approach, provided there's no per-instance
state (and thus reason not to just use a static factory method) within the
ImageFactory class?

~~~
prodigal_erik
At runtime you can provide a different implementation of ImageFactory. For
example, a unit test can define MockImageFactory which ignores the filesystem
and just returns a canned Image object. If code everywhere calls the static
Image.open method, there is no way to redefine it short of editing the source
or the bytecode.

~~~
strlen
Good answer. That actually makes sense with the Image example, but OTOH
there's still cases where a separate factory class is used where a static
method would work.

~~~
rbanffy
I think that's one of the reasons.

It's so nice to be able to provide a different GadgetFactory during tests or
at different moments that some developers decide it would be cool to have the
possibility to provide different factory implementations for every class, just
in case they need it afterwards.

------
_delirium
I think Java's pretty popular at startups that focus on things other than the
web. For example, pretty much everything at Palantir is in Java.

~~~
jing
Exactly. Unfortunately, since Palantir is in the enterprise space, few people
on HN immediately know of the how 1) cool and 2) difficult the problems and
solutions in the space are. And of course, this post hast immediately
degenerated into Java vs. X as to be expected.

------
mindcrime
I agree with what a number of others have said here: Java isn't ideal for
front-end web stuff, but it still has a lot of uses for low level data
processing and back-end work. Also, the JVM is a great platform, and you can
target it with any number of languages: Groovy, Clojure, Scala, Nice, JRuby,
Jython, etc.

Personally I'm using Groovy on Grails for the web front-end part(s) of my
current project, and even using Groovy for some of the "backend'ish" parts
just to get through the initial prototype. Grails and Groovy are amazing in
terms of developer speed - compared to Java anyway. But since it's all still
on the JVM, I can just drop in existing Java libraries and - if, or when - I
need to, it'll be fairly easy to transition bits to Java. For my money, it's
the best of both worlds at the moment.

Then again, the stuff I'm doing is somewhat "enterprisey" so being on the JVM
will probably actually be a selling point down the road.

~~~
minalecs
another groovy on grails fan here... I wish more people would give it a try..
its surprisingly expressive like ruby or python , scales with the JVM, backing
of all currently java libs, and great web framework like rails.

~~~
strlen
This may sound ignorant, but if you're going to use another JVM language, why
not use JRuby (if you want to stick with a Smalltalk/Modula-3 derivative),
Clojure (if you like Lisp and want STM) or Scala (if you want the static type
checking, speed, built in support in IntelliJ)?

This is a serious question: several people I respect (who are smarter than me
and thus well capable of learning new languages) are using Groovy for their
projects and I am wondering why?

~~~
minalecs
well the main reason I wouldn't use JRuby is because .. by programming in just
Ruby, you get benefit of all the c extensions that you aren't able to use in
JRuby and not sure about rails support on jruby. I would just use it without
jvm. The other reason to go with groovy/grails is the grails plugins community
is very active.

------
amalcon
It seems to me the big benefit of Java is interoperability with other JVM
languages like Scala and Clojure (or Jython or JRuby). This is much like the
benefit you get from learning C when you work in a language with a good
C-based foreign function interface (Python, Ruby, OCaml, etc). You can build
most of your application in the more dynamic language, but fall back on the
static language for the elements it works better for (high-performance,
system-related, or interfacing with a library designed for the other
language).

The advantage Java has over C is that, in that comparison, Java is really nice
to work with.

------
krschultz
Bug Labs primarily uses Java for their product and Ruby on Rails for their web
stuff.

If you are assuming startup == web app, then sure Java is probably dead, in
other contexts not so much. Using Java was advantageous for Bug Labs for a
number or reasons - among them available open source libraries, widest
adoption among customers (their business almost requires customers to touch
source code and while Python would have brought in more enthusiasts, Java
brings in more enterprise customers and thats where the money is), performance
of the JVM, and portability across both the ARM platform and x86 stuff.

(Oh and BL is in NYC)

------
scumola
I work at a startup that's 5 years old and the main app is written in java,
but smaller utility pages and apps are written in different languages. I think
that the language should fit the problem.

------
keefe
Plenty of startups in silicon valley use java. If you want to talk about text
editor coding performance, yeah java is the worst language of all time.
However, when you have eclipse which features super efficient source code
generation, code navigation and autocomplete tools? It's actually nice to have
a verbose language. imho this facilitates merging documentation with code,
whereas a more mathematical programming style tends to be more cryptic.

------
rufugee
If you want a java-based framework coupled with Rails' productivity, go
through the play framework's screencast and documentation
(<http://www.playframework.org/documentation/1.0.2.1/home>). It's the only
java framework I've found that excites me about development, and if you know
Rails, you really know play. It's that similar.

Edit: oh, and also many, many times faster.

------
rbanffy
Just a minor nitpick: you can use Java the runtime without using Java the
language. There is plenty reason to go with Clojure (I am personally dying to
try it), Jython, JRuby, Scala and so on.

------
bootload
_"... Are there theoretical or practical reasons to avoid java in lean
startups? ..."_

good programmers can probably program in java but given the choice would they
use it at home or on side projects?

~~~
RodgerTheGreat
I'm well aware I'm in the minority, but I consider myself a good programmer
and I frequently write Java in my free time. It's flexible, fast, and
available on a wide variety of interesting platforms- I'm considering picking
up a Kindle to fiddle with the Java-based SDK. It has a rock-solid (if
occasionally rather baroque) set of standard libraries that make it suitable
for competitive programming ala TopCoder and JoGL provides a delightful way to
experiment with OpenGL. Really, if you're the sort of detail-oriented coder
who enjoys the sturdy feeling of Java's explicit typing and interface-based
modularity idioms, what's not to like?

------
strlen
Java is dead for front-end heavy web apps, but it's (along with other JVM
languages) a good option for other parts of a product.

Much of the site is frequently focused on web development. Keep in mind,
however, that the web is just a UI layer. What is the UI _for_? It really irks
me to see Ruby mentioned _only_ with Rails next to it, as if it wasn't an a
very interesting language even without it (the combination of ideas from Perl
and Smalltalk).

Statically typed languages feel awkward for web development (but then again, I
haven't done much web development, so perhaps I am missing some of the better
options e.g., Lift), but there's all sorts of interesting libraries for
Java/JVM when it comes to:

* Middleware/services (Jersey/JAX-RS, Grizzly)

* Socket communications (Netty, Mina, Grizzly)

* Distributed coordination and communication (JGroups, ZooKeeper)

* Search and data processing (several "NoSQL" systems, Hadoop, Lucene and Katta for search)

* Threading and concurrency: actor libraries like Killim and Jetlang, java.util.concurrent and jsr166y/fork-join framework.

It should be noted that you could also use them with Scala. If liked using
Java, you'll like Scala even more. Unless, of course, you've already got a
predominantly Java project and have a specific reason against mixing/matching
Scala (e.g., don't want to have a require having another jar in a servlet
container which may be incompatible with the existing Scala jar in that
container).

Clojure is yet another example of something very interesting that's happening
on the JVM, but to me the big pull of Clojure isn't related to it being on the
JVM: I like the fact it's a Lisp-1, its STM approach, first-order data
structures - with syntactic sugar - beyond lists. Even if you viscerally hate
Java and the JVM, you should give Clojure a try.

Of course there are a couple of JVM specific issues that _are_ annoying and
knee-cap _all_ the JVM languages (in comparison to C, C++, Scheme/CLisp, OCaml
and Haskell): lack of unsigned types, lack of ability to create user defined
"primitive types", erasure with generics (mitigated through work arounds like
Scala's implicit) and other artifacts of the JVM imposing a type system on
you.

Personally I was dismayed by Java's smell (associated with the enterprise CRUD
web development that went on in Java in the late 90s/early 2000s, Java's
design by committee, etc...) and didn't even touch it until a few years ago; I
squarely believed that all _real_ programming could only be done in C or C++
(while Lisp could be used for prototyping algorithms). I found that despite
Java's _many_ annoyances, it's a language that could be practical for many
non-trivial programs (rather than the usual "enterprise" apps which crash when
you click the wrong button). Subsequently, I also discovered the same about
Erlang, OCaml, Scheme, Common Lisp and languages I previously ignored as
toys/glue languages (Python, Ruby, Perl).

------
baddspellar
Is there really an aversion to using Java in a lean startup, or is this just
an example of Voluntary Response Bias?

That is, are you simply observing that startups who make a big deal about the
language they're using are more likely to be using one of the "hot" languages
than a stodgy old language like Java?

~~~
lean_startup
I raised this issue because I am currently having trouble attracting java
engineers, and when I queried the developers in my social network, they raised
this potential issue as a source of my problem. From the tenor of most of the
comments here, it sounds like there may be a bit of a cultural issue as well
as some substantive reasons why java is not more prevalent in startups.

------
runT1ME
Uh, how is java better at 'engineering' than scala. Do you know what Scala is?

------
dstainer
I agree with a couple of the posters, I think the JVM is the core piece of
technology to take away from the Java ecosystem. Especially as more languages
can compile byte code to run on it.

That being said Java still plays a very big role in backend systems and don't
forget that some important backend tools i.e. Hadoop and Cassandra are written
in java. So I wouldn't write it off just yet.

Derek

<http://nosqldatabases.com>

~~~
DenisM
I frown upon your drive-by self promotion

