7

My question is based on the following question: Choosing a Java Web Framework now? ..only one year later.

The reason for my question is that plenty has happened in one year, play framework has matured etc., and I want to know whats the hot thing today. What are the advantages and disadvantages of todays frameworks.

Community
  • 1
  • 1
Skurpi
  • 930
  • 1
  • 11
  • 22
  • 1
    -1 I am guessing your reference question is being kept open for historical purposes but it shouldn't be used as an example of a good question. There is no correct answer here and this is really just starting a discussion. I would vote this be closed (if I had enough rep). – Jesse Webb Jun 06 '11 at 19:12
  • Voted to be moved to programmers stackexchange – canadiancreed Sep 03 '11 at 03:48

2 Answers2

3

JSP is a legacy tech, JSF is like a dinosaur, it's stateful and component based. If you want to develop high traffic distributed apps that can scale tens, hundreds, thousands of nodes, prefer stateless frameworks over component based stateful ones. Stateless frameworks can scale easily. Wicket, Tapestry and Lift are stateful, too. There is Click framework but it doesn't have an innovation nor velocity. Struts was good but it's an old framework now, Spring mvc 3 is better than struts. Yes, Spring mvc was good, but now there is much more better Play! Spring become like Java EE in time, on the other hand Play is dead easy framework with a great community and documantation. It's future is bright. It has lots of features in the core (and its very light) and also there are lots of modules written for play (like rails gems). In the last release, it got websockets, depenency management, db version management, far better scala module,...

Especially, new play scala templating is dead easy, type safe with a state of art syntax (like asp.net mvc razor) with a great performance as you can see in the test http://www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/ (play is fastest in the test)

You can use both java and scala with play, but in my opinion scala is a better language than java and compete with C#, Ruby, Python with new generation features (java cannot), so I prefer scala with play. Lift is a scala framework, too, but it's more and more complicated than play and highly stateful.

Also, your platform and language selection is great. As an experienced .net developer I don't recommend asp.net webforms nor asp.net mvc, always prefer platform independent open source technologies. Python/Django and Ruby/Rails are slow and not type safe. PHP and Perl are legacy techs. The best platform today is jvm (.net works only on windows and mono killed by attachmate), so you're on the right path.

Tom Zych
  • 12,329
  • 9
  • 33
  • 51
sirmak
  • 3,717
  • 4
  • 28
  • 34
  • 1
    Please put it through a spell checker. And back up "mono died last month" – Raynos Jun 06 '11 at 18:53
  • After reading it mor thoroughly it's far too opinionated. ASP.NET MVC is solid. Python, Ruby and PHP are fine. Perl CGI scripts are legacy but there are modern (less popular) perl frameworks. I do agree that Play is solid but it's not "the best". – Raynos Jun 06 '11 at 19:16
  • thanks again, from the language perspective php is ugly but python and ruby are fine. the problem with python ruby and php is they haven't got a solid platform like jvm or .net clr. there are some implementations for jvm but they are far from to be better than java or scala. in asp.net mvc, you have to use windows, that is not a preferred os for most startups nor top sites like google, ebay, amazon, facebook,... – sirmak Jun 06 '11 at 19:28
  • 1
    "scala templating is dead easy" - How is it better than old velocity, not to mention HybridJava – Dima Jun 07 '11 at 02:21
  • ... commercial tech and taste legacy. ... - did not get what you mean. – Dima Jun 07 '11 at 06:04
  • Ah, I see. As a matter of fact it is given for free. The license is only about registration. I am not sure if there is such a thing as "ideal language for templating". Maybe PHP? - ha ha. Or JSTL? Can you give an example? Do you mean functional in the sense of LISP? This is probably a wrong place for such a discussion, so I would appreciate if you write me to dima@hybridserverpages.com. – Dima Jun 07 '11 at 07:44
3

focusing on Java frameworks, it depends on your aim (as everything in IT!)

  • On products for big companies, you either go with Java EE or the standard Struts/Spring/Hibernate. They are proven stacks, the scalability needs in that environment are meet by those stacks and being stateful can be relevant in that environment. Besides, they apply a new version of "No one was fired by buying IBM" with the apps (Play, Scala, what's that?)

  • For your personal projects, no commercial aim, just or fun, any framework you like. Lift, Play, whatever.

  • For a startup, I would recommend either Lift or Play. I personally like Play more, but YMMV. Both are agile frameworks that simplify development and give a quick turnaround. Perfect match for a startup. The differences (stateless vs stateful, etc) are what you should check before deciding.

On Scala vs Java, again it depends. Unless you are lucky, you won't be allowed to use Scala in a corporate environment (slowly being spread though). For your own project, it doesn't matter. For startup, choose the one you know the best. I know, learning is appealing, but if you have 6 months experience as hobbyist in Scala and 5 years of commercial Java experience, the time and pain on creating your project in Scala won't be worth it.

Arjan Tijms
  • 36,666
  • 12
  • 105
  • 134
Pere Villega
  • 16,379
  • 4
  • 59
  • 99
  • Why do corporate businesses not use Play or Scala, which are valid options? – Raynos Jun 07 '11 at 11:00
  • @Raynos most companies (specially consultancy) prefer to stay with "proven and spread" tech, as it's easier to sell to customers (they are behind the curve of knowledge) plus it's easier to find cheap employees with the knowledge (cutting edge is usually more expensive). At least in Java world :) – Pere Villega Jun 09 '11 at 14:41
  • I like being at the early end of the technology wave though. It's more fun. I can sell Play and Scala just as easily to customers. – Raynos Jun 09 '11 at 14:54
  • @Raynos Can you sell HybridJava too? – Dima Aug 27 '11 at 22:24
  • @Dima that website looks like it came from 1992. I refuse to use a web framework with a shit website because the web framework must be shit :) – Raynos Aug 28 '11 at 02:45
  • @Raynos I agree the site could be better. Sites about HTML and JavaScript should look best of all - this one is about the server side. Regarding the shit though - if you are looking for a real one be aware that it is usually in the most bright envelope. – Dima Sep 03 '11 at 03:45