


Addressing your issuesġ) Lack of hosting support - we hire VPS, cloud or dedicated server infra on which we can deploy whatever we want - I don't see how this could be an issue. We use hundreds of Java open source libraries, including HBase, Lucene & OpenJPA. Server side our crawl infrastructure, and other application processes are all Java. As our web framework we use Tapestry5, which is a great framework, with fast development times & minimal coding (Howard Lewis Ship has really put a lot of thought into the development of the T5 framework). We are a London Startup, mainly building products off the back of web crawling & data mining, using Java for all our development, whether web or server-side. Java is fast, encourages good design, and is great for large development teams. However, there is a reason that so many large startups start to lean on Java once they reach scale. A web designer looking to pick up a first backend programming language is probably not going to choose Java, and thus they aren't going to create beautiful documentation repositories, fun open source projects, organize meetups, or create the next revolutionary social app. Java isn't as fun to use as newer languages, and doesn't have the vibrant community that Ruby and Python do (even if you include JVM based languages like Scala and Groovy). There is a lot of overhead involved in setting up a Java project compared to other languages/platforms, and the problems that Java is best at solving aren't usually the problems you run into in a small web app (unless you're dealing with a lot of data). That said, I would have to agree that Java is not the language of choice for small startups. Paul Graham has bashed Java and Java programmers quite a bit in his writings: "The programmers you'll be able to hire to work on a Java project won't be as smart as the ones you could get to work on a project written in Python." If your observation is based on reading HN, likely it's a bit skewed. Our use of Java has definitely been successful. I'm working for a startup that uses a mix of PHP for serving web requests, and Java for backend processing. But just don't believe the majority and try out yourself, if it works for you. This does not mean that Java is appropriate for all use cases. In comparison, the Glassfish app just chucks happily along. Once you increase the concurrency, the requests to the Django app just return error codes or take a long time to complete. For a project I've compared the performance of two simple (comparable) Web apps that I've wrote: One with Python on Django, the other one with Java on Glassfish). Compared to this, with Java (EE) this just works rock stable and has most of the features you'll ever need.įrom a performance perspective Java isn't that bad as either. This starts with simple issues such as Unicode support, where the authors of a library obviously just didn't care if it works, and continues with distributed transactions, where you have to hack up the whole logic inside your application because the framework doesn't support them. With all other frameworks (based on Python, Ruby, etc.) that I've used so far I had to hack around in the framework or in the libraries to make it work the way I want. But on the other hand: It just works - exactly as documented. Yes, it is somewhat bloated (although much less in the recent versions where you can use annotations instead of all those XML files). I've used a lot of different languages so far (from C to Haskell), and I've always avoided Java in the past (at the beginning because it was slow, later because everyone was telling me how bloated it is).īut using Java EE (!) instead of Python for a project a few months ago was really an enlightenment. I'm a long term Python developer (since the 1.5.2 days). IMO there is neither lack of hosting support (just use EC2 or a vserver) nor any serious performance issues.
