Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java or Python or Ruby for Web Application? [closed]

If I were to implement a web application from scratch today, which app stack should I go for? Three main candidates are java, python and Ruby on Rails (RoR). There is also .NET, but its biased towards M$.

Pro-java:

1) Stacks of thick books 2) Largest developer community 3) Typed languages, which prevents subtle bugs 4) Augmented with groovy interpreted language 

Pro-python:

1) Concise code 2) Thin books 3) Can launch web app for free on Google Apps 

Pro-RoR:

1) Concise code 2) Thin books 3) Ruby may be slightly better programming language than python, but they are converging. 

Overall, there is not much choice between python/RoR. The choice I have to make is between Java and Python. I slightly favor java because it is a typed language, but my good friend favors python because it is more concise. Does thick java books means its solutions are more comprehensive (and I have to write lesser code myself)?

like image 315
amit kumar Avatar asked Jan 14 '09 07:01

amit kumar


1 Answers

Background : I'm a professional Java developer that does Django on the side.

Java

Java is used mainly in the enterprise, and there are very good reasons for it. Java is a good solution if you need a language that is mature, has good support for concurrency, transactions, access to multiple databases ... Java is also a very stable platform. And by stable, I dont mean that it has fewer bugs than Python or Ruby, I mean that it doesnt change as much.

There is wonderful tool support for Java. Great IDE, great refactoring tools, great static analysis tools ... You probably wont find as many tools of that quality for any other language.

There are a lot of slow Java applications, but in my opinion it comes more from developers using an architecture that they dont understand, trying to do things more complicated than they need to. You can develop high performance, very fast websites with Java.

Django

Django is more light weight, more fun to work with. You can have an application running in a very short time. The admin interface is magical for simple CRUD operation and can be used for even pretty complex logic. You can find a lot of "reuseable apps" that will implements some of the functionalities that you need.

Even if Django is now in version 1.0, it is far from stable. If you need to be still developing your project in 1-2 years, you can expect a lot of changes just to follow the state of Django.

Conclusion

Use Java if you already know it and if you have needs for complex architecture and long term support.

Use Django (or RoR) if you want rapid development and dont care if you need to rewrite a lot of the app in 1-2 years.

like image 75
Guillaume Avatar answered Sep 18 '22 08:09

Guillaume