Friday, August 7, 2009

My desired Java technology stack.

This blogpost will be continually updated to list my favorite application stack for various projects. I welcome any comments to help me choose the best tools that will make me most productive.

Web Container
Currently I'm biased for tomcat its easy to setup and administer and I haven't had any problems with it.

I'm having good success with also using apache with mod_proxy_balancer as a load balancer mechanism. Still need to investigate how to make the apache instance not be my single point of failure.

I do not like glassfish. For a project a couple years ago we went with that and the app is still buggy and crashing a lot. Granted its probably more of the apps problem EJB 2.0 without a lot of other kruft but glassfish didn't impress me.

To consider:
I want to investigate JBOSS again. I used it in college and I wonder if features of JBOSS would be compelling enough for me to move off of Tomcat.

Possible reasons to consider JBOSS
  • uses tomcat, and you can configure it to run with almost no features but tomcat, but still have the ability to use enterprise class features at a later date.
  • Heard about their shard memory cache, this could be useful for some of my applications

Display Technologies
I don't know. I've tried GWT, JSF, JavaFX, JSP/JSTL. Nothing seems like the best technology here. I seem to spend most of my time writing the front end of the application which is the part i least enjoy.

What I'm looking for ideally is an easy to use set of components to layout without much fuss. Any suggestions? Note I'm not looking for something like struts, which as far as I understand it, helps with navigation.

Configuration
Spring, looks like a good standard way of handling application configuration.

Javascript Libraries
Need to investigate and choose between:
  • tablekit
  • jquery
  • fabtabulous
  • anything else?


Database
Mysql enough said, although I would use MSSQL in a heartbeat again but you can't beat the price of Mysql.

Need to investigate scaling, and replication of Mysql that is the next big task I need to tackle at work.

ORM
After EJB 2.0 hell I swore off ORM's, but using the Google Appengine I've grown found of JPA. Just started looking at Hibernate JPA. Early impressions: I like it!

Anyone else want to recommend something?

Current ordering of choices:
  • Hibernate JPA- using javax.persitence classes to not tie into a vendor.
  • Straight JDBC

XML Parsing
SAX/DOM/JAXB? I don't really know yet

No comments: