Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

A similar question was asked in another thread [1], and I'll repeat that answer: Just about anything on the JVM (Dropwizard, Play, Finagle, Scalatra, Rest-Express, Rest-Easy, Compojure, Unfiltered, Jersey, Vert.x, Spark), Go (Gorilla, Beego, Revel), Lua (Lapis), Haskell, Erlang...

[1] https://news.ycombinator.com/item?id=6402205



Being on the JVM does not automatically turn something into a high performance solution. The JVM itself is plenty fast, but I've seen some pretty slow code on that platform. Of the many things you listed, do you have a specific recommendation that is actually known for being high performance?

I'm not really familiar with all of the choices you listed, but of the ones that I do know, I don't really consider Dropwizarr or Finagle as alternatives to a web framework like Django (neither is Jersey, but that's already a component of Dropwizard).


Fair enough point about the breadth of the framework's services. Dropwizard and Finagle are small compared to Django. If you need specific features of Django, you may not find those in any JVM framework. I'm not certain.

But for many applications, the necessary framework pieces are there in many of the frameworks I listed: routing, database connection pooling, ORM, sessions, cookie support, form validation, JSON serialization, server-side templates, XSS/CSRF countermeasures, email, REST clients, authentication, etc. or some mix thereof. For example, Dropwizard provides a majority of those pieces.

Also agreed that you can write low-performance code on anything, and you're right there are several JVM libraries that perform poorly. But the JVM gives a very high "high water mark," so to speak. As do Go, Haskell, Lua, Erlang, and other platforms.


Dropwizard is a solid framework and would be my first choice for building web services. Recently it has acquired a few components that could work for putting together a user facing website (instead of just the web services it was designed for). Coupled with a JavaScript MVC framework this might even work for putting together a full featured user facing web application.

However, would you attempt to build a traditional multi-page web application (what Django is really built for) in Dropwizard? Is anyone doing that? I'd love to see some examples and patterns for doing that.


Also I know the JVM crowd hates to admit it, but also Node.js. I was able to do 15k rps to our node API (which hit Postgres) on the last application I worked on. And that wasn't even on SSD. Node can be very fast on your own hardware. That was on a 2 server Xeon setup.


From what I've toyed around with, Twisted and Tornado with PyPy have comparable speeds to Node.JS, too.


And that wasn't even on SSD. Node can be very fast on your own hardware

Surely the absence of a SSD and hardware vs virtual hosting is more likely to affect Postgres than Node? Node presumably runs all in memory and is more likely to be CPU bound (or waiting) than disk IO bound.


Indeed; you're right! It's an oversight to have left Node.js off my list above.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: