Ask HN: What's Java used for?
What can it be used for on the web, though? What big companies use it primarily?
What can it be used for on the web, though? What big companies use it primarily?
Blackberry and Android got mini Java sdk for developing movile apps.
Or if you want to develop over Cloud Computer systems you might want to give it a try to Hadoop, that is also written in Java.
So, yes, there are tons of real implementations in Java, even though is not a language I could say I love...
Enterprise Java is referred to as Java 2 Enterprise Edition (J2EE). In this case, the web output a user sees in a browser is generated on an application server using a mix of Java code and templated HTML/CSS/Javascript/etc.
- there are plenty of reliable open source libraries (see Apache)
- it is easy to learn and to maintain
- the IDEs are good (IntelliJ IDEA !)
So, yes, this is still a valid answer, IMO.Neither it's true for python/ruby/perl etc.
"What should it be used for?" is a different question and depends at least somewhat on your preferences.
I go to Java when I want a desktop application that should be portable, doesn't need to be lightning fast, doesn't depend on any low level operating system stuff and that I don't mind losing pointers and memory management for. In other words, most of the time I'm writing a non-web application, I go to Java.
I personally don't like using it for web stuff except where small applets are concerned. I've had issues with it (it including Java, JSP, etc) and generally find it to be too heavy and not practical for web development. But that's just my opinion.
Banks - their back-end processing is often in Java.
But anyway: one of the biggest companies in the U.S. uses Java to do some really cool stuff.
When it first came out it was an absolute dog. Then Sun kept promising "faster than C" performance because of VM optimisation. The reality was that desktop apps were barely usable and the HotJava web browser was scrapped.
However, after over 15 years of VM optimisation and heavy use, Java is nice and fast. Its not quite up to C++ levels of performance but it is very respectable.
The plus I see, is not having to worry too much about errors (wrt C++). Makes working with large codebases / multiple collaborators easier. Great IDEs too.
Still, coding in Java is quite boring (overdeclaration, lack of pointers/unchecked sections, ...).
Lucene and SOLR for search are behind lots of websites -- public and intranet.
Hadoop and related tools -- MapReduce, HDFS, HBase, etc. -- are big in large-data, big-calculation systems, even when front ends are implemented in other dynamic languages.
Looking over all the open source Java projects at the Apache foundation may give a sense of range of uses on the net. And with the growth in alternate JVM languages -- like Groovy, Clojure, and Scala -- a bit of Java, or some Java libraries, may be part of projects in those languages as well.