Você está na página 1de 4

12/22/13

Java or Python or Ruby for Web Application? - Stack Overflow


sign up log in tour help careers 2.0

Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

Take the tour

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 )S t a c k so ft h i c kb o o k s 2 )L a r g e s td e v e l o p e rc o m m u n i t y 3 )T y p e dl a n g u a g e s ,w h i c hp r e v e n t ss u b t l eb u g s 4 )A u g m e n t e dw i t hg r o o v yi n t e r p r e t e dl a n g u a g e Pro-python: 1 )C o n c i s ec o d e 2 )T h i nb o o k s 3 )C a nl a u n c hw e ba p pf o rf r e eo nG o o g l eA p p s Pro-RoR: 1 )C o n c i s ec o d e 2 )T h i nb o o k s 3 )R u b ym a yb es l i g h t l yb e t t e rp r o g r a m m i n gl a n g u a g et h a np y t h o n ,b u tt h e ya r ec o n v e r g i n g . 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)?
web-applications

edited Jun 7 '12 at 16:25 Mansfield 3,135 6 18 46 add comment

asked Jan 14 '09 at 7:47 phaedrus 7,255 12 49 88

closed as off-topic by Tim Medora, HansUp, torazaburo, Drew, Carl Veazey Sep 7 at 5:16
This question appears to be off-topic. The users who voted to close gave this specific reason: "Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." Tim Medora, HansUp, Drew If this question can be reworded to fit the rules in the help center, please edit the question.

8 Answers
Pick which is familiar to you and run with it. Or you can pick Django on Jython to get best of Java libraries and Python's speed-coding. stackoverflow.com/questions/442216/java-or-python-or-ruby-for-web-application

1/4

12/22/13

Java or Python or Ruby for Web Application? - Stack Overflow Or you can pick Django on Jython to get best of Java libraries and Python's speed-coding.
Or pick Java if you need to convince somebody that it is enterprise-y. I would say if you're working alone / in a small team, then just pick the one that requires least resources (hint: Python).
answered Jan 14 '09 at 7:53 Swaroop C H 6,443 5 28 41 add comment

Anti-Java: verbose, sometimes cumbersome poor choice for template scripting (can be mitigated by using a secondary scripting language such as Groovy, Jython etc.) Anti-Python: no particular standard framework, must research and choose (or just use standalone utility modules on top of WSGI) still relatively limited hosting options (other than GAE or own server) Anti-RoR: no native Unicode, in a modern web scripting language? For shame potential performance scaling issues Personally I ended up with Python, but all these options - as well as .NET - are easily defensible.
answered Jan 14 '09 at 8:11 bobince 240k 46 309 520 There also seems to be a python interface for Amazon S3, EC2. So these are valid hosting options for python. phaedrus Jan 14 '09 at 8:18 For java template scripting have a look at Spring/Freemarker. Freemarker is probably the best templating software around. James Anderson Jan 14 '09 at 8:35

Ruby 1.9 includes native Unicode support and Rails has backported it since Rails 1.2. Also "Rails doesn't scale" is a meme in the Rails community: it will scale. Chris Lloyd Jan 14 '09 at 10:04

add comment

Is your app mostly presentation, database (CRUD type maintenance) , or lots of backend logic. For mostly presentation I would go Pythin/Django (or even php). For simple CRUD RoR has it licked. For anything with heavy backend logic, or, which uses an existing legacy database I would go for the java servlets using Spring with Freemarker, Ibatis and Tomcat or Jetty. P.S. Don't worry about scalability performance -- nothing will scale as well as the Tomcat/java solution.
answered Jan 14 '09 at 8:05 James Anderson 17.1k 2 22 45 add comment

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

stackoverflow.com/questions/442216/java-or-python-or-ruby-for-web-application

2/4

12/22/13

Java or Python or Ruby for Web Application? - Stack Overflow


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.
answered Jan 14 '09 at 8:13 Guillaume 7,575 5 24 49 I must agree with you that Django is relatively unstable. jpartogi May 27 '10 at 3:40 add comment

I would recommend Java and Spring framework - it solves all the burden of typical Java web application and provides you with clear way to get what you want. I personally use Hibernate - JPA - Spring framework (or Spring Web Flow) - Tiles - Freemarker stack that gives me ability to create new web applications rather fast, but altogether they impose rather steep learning curve. I would suggest - just give Spring a try for a start.
edited Sep 6 at 23:06 informatik01 3,035 3 11 31 add comment answered Jan 14 '09 at 9:56 miceuz 1,274 1 13 22

If it is going to be in production, use the technology what you know best currently. Learning a new framework, language or technology can cause delays and in the beginning your code quality will be lower.
answered Jan 14 '09 at 7:54 wvb 196 1 2 add comment

Unless you are in a Java/.net shop or there is a specific reason why you would use Java/.net, I would suggest one of the platforms that is more optimized for web development: Python/Django (or Ruby/Rails, PHP/CodeIgniter/Cake). You'll find Python/Ruby/PHP so much easier to learn, deploy, program, etc. There is plenty of literature about them and plenty of support resources. All have been used to produce major web sites (YouTube on Python, Twitter on Ruby, Facebook on PHP).
answered Jun 15 '09 at 2:51 pbreitenbach 3,653 3 16 17 add comment

stackoverflow.com/questions/442216/java-or-python-or-ruby-for-web-application

3/4

12/22/13

Java or Python or Ruby for Web Application? - Stack Overflow


I used to be a Java developer, doing mostly C# now. My arguments against Java are that it is (or at least was) a real pain to get set up and running. It's also better suited for large applications that need a lot of organisation and maintainability. That, however, comes at a cost. From the sounds of your post, I think one of the dynamic languages would be better suited. Plus, they're more fun to play with (IMHO).
answered Jan 14 '09 at 9:54 Travis 5,776 1 15 32

Using maven for building, Java is quite easy to set up (atleast now). phaedrus Jan 14 '09 at 12:56

add comment

Not the answer you're looking for? Browse other questions tagged web-applications or ask your own question.

stackoverflow.com/questions/442216/java-or-python-or-ruby-for-web-application

4/4

Você também pode gostar