Recommendations for choosing a new web development stack

I work in a medium and small team (10 people), developing and supporting several applications for web applications.

We have a dozen of them built using the home structure with asp-classic working against the ms-sql server.

We appreciate the transition to a new development stack.

We would like it to be open (free) and simple.

I looked through the framework of the java network, but they all seem extremely overpriced for our needs (with the possible exception of http://www.playframework.org/ , which I could not study yet ...)

We are thinking about moving our own structure to this new stack, instead of accepting a completely new stack that we don’t know about ...

still we, however, about the following possibilities

  • plain java - jsp - jsf

  • groovy - gsp (no grails at all)

  • jruby (no rails at all)

we feel very comfortable working with dynamic languages ​​(well, as dynamic as the classic asp), and with a thin and understandable infrastructure ...

I do not see small and simple web frameworks for java, for example, for php or ruby ​​...

I really like groovy, but I don’t see web implementations beyond the grail ... Also, the language documentation doesn’t seem quite complete (maybe I look in the wrong place)

php might be an option, but I think it would be hard to uphold this in my current job ...

any other option, tips, pros and cons?

Many thanks

- change

some kind of linked link Can anyone recommend a simple Java web application framework?

+4
source share
7 answers

I can not recommend anything, but I strongly recommend that you consider these things:

  • Fast development. Basically you want to save the page file and reload it in the browser. Instantly! This can be done, do not settle for a long deployment time.
  • Plain, readable text files!
  • Coding conventions instead of explicit coding - large XML files will ultimately lead to one or more developers going crazy. Less is better.
  • Good tool support (just syntax coloring can be a big help).
  • Consider the long term support of your choice. You basically remarry with your software - will it be supported after 10 years? By whom? Will you have alternatives (JSRs are great - look at the number of servlets)?

AND WHEN you choose - get the source code for this and make sure that it builds correctly. It will never be easier than now, and someday you need to fix something. As soon as possible! (You can even consider allocating resources for transferring documentation / patches / time to an open source project where you build your business).


EDIT: A few more things:

  • You want to be able to check information at compile time. One of the things that cathedrals can be built in Java is that static type checking prevents a lot of nasty runtime errors. "Oh, this method? Well, it's not here, I'm sorry. Boom!"
  • You need good bug reporting. Built in! Try to throw a NullPointerException deep, deep down and see what 1) the user and 2) the developer talked about. Anything that requires a transition to the log file to get the details will cause calls at 3 a.m.
  • Look at scalability from the start. Any non-trivial client will be needed, and the world will move to multi-codes, so you can think about it now. What will you do when all the dust with a pixel effect is used, and this is simply not enough: an application requires more than one window.

And read this: http://www.pragprog.com/titles/mnee/release-it

+2
source

I suggest you take another look at Grail. It uses hibernate and spring under covers, but for most situations you do not need to know the details of these frameworks. There is a large community and lots of documentation / blogs / mailing lists to support, as well as a thriving plugin community with over 300 plugins that pretty much solves any problem.

If you are still detached from the grail, you can take a look at the play framework . I have no experience with this, but lately there has been some traffic around him on hacker news and the like. I know that he uses groovy for the template language.

+4
source

If you are afraid of Grails and need Java, try Stripes and read the excellent Stripes book ( http://www.stripesbook.com/blog/ ). You can buy a pdf ebook for $ 23. The book covers the framework in amazing detail. Stripes is a very solid and lightweight MVC framework that deals with all common web development issues (patterns, URL mapping, form validation, security, internationalization, testing), but it won’t automatically create a database layer for you if You do not want this using Stripernate. You can also use Groovy with it. You can use it standalone or using Spring.

+2
source

I have had great success in simple web projects using Spring MVC with JSPL JSP. Spring MVC is a framework that can be kept fairly simple (1 additional XML file used for configuration). You can discard all the fancy options and simply specify the set of JSPs that you want to associate with the names of the views, and then forward these views by specifying their names in the controller.

Spring MVC can also easily scale and be as complex as you need, allowing you to switch from JSTL to JSTL using Tiles or Struts or JSF or Wicket. It can also handle complex web streams using the Spring Web Flow project. But for most projects, I just do it simply - create a JSTL JSP, create a controller that provides the objects that the JSP needs, and bind them if the controller returns this view. Once you create a project and you are familiar with its configuration, it may take a couple of minutes to link a new page.

+1
source

You forget about another major player in this field: LAMP stack (linux, Apache, MySQL and mod_perl). All components are free, there are many books on the development of LAMP and each of these components, as well as a huge number of libraries and components.

+1
source

If you like Groovy but don’t like Grails, you can try Gaelyk , which is Groovy's lightweight structure. However, AFAIK you can use Gaelyk only if you host the application on Google App Engine

If your applications will not be hosted in GAE, and you really don't want to use Grails, another option is to use Groovlets , Groovy Template Servlet , GSP.

However, I personally think the biggest mistake is to reject Grails. This is a really great structure, and you can go a long way without knowing about Spring and Hibernate. One of your complaints is the lack of Grails documentation. I think you must have been looking in the wrong place, because in addition to all the books available, there is a very extensive reference document and much more other available documentation on the website . Finally, there is a very active mailing list .

+1
source

My platform of choice is JRuby - Rails (3) because of its very rich and powerful ecosystem, but mainly because:
* very easy to use
* many MANY libraries
* Fast support via IRC
* deep documentation

You can also check out Scala + Lift Web Framework (the best static typed language imho, good infrastructure)

+1
source

All Articles