Live data from Hacker News

Is java dead for startups?

news.ycombinator.com

31–40 of 101 posts

Re: Is java dead for startups?

#31

"... 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?

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?

Re: Is java dead for startups?

#32
post #7

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…

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/

You can use Play! with scala as well, so you get a good framework AND a more interesting language at the same time ;)

Re: Is java dead for startups?

#34
post #16

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 fas…

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

Re: Is java dead for startups?

#35

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.

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.

Re: Is java dead for startups?

#36
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).

Re: Is java dead for startups?

#37

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.

I guess this is the reason why Scala gets a lot of attention: same speed as Java (on JVM), fully compatible with Java, it has static typing, and it's productive like RoR or Python.

BTW, both the Java (javac) and Scala compilers were written by the same person.

Re: Is java dead for startups?

#38
post #6
post #3

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 difficul…

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.

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.

Re: Is java dead for startups?

#39
post #16

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 fas…

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

Most of the core code is C++ or Java, though there is plenty of Python.
Post reply on HN