The title might really sound like another "this is beaten to death" topic but bare with me please.
I've been a Java Web Developer for 6 years now. I don't see Java just as a profession. I'm really into the language its related technologies and OO principles and methods. I really love coding in Java.
However as freelancer, I feel like is really an overhead (boilerplate code, over configuration, a hassle to deploy, etc) to support the needs of SMBs. In addition to that, hosting and maintenance of a Java Web App seems like a nightmare. Even Google's App Engine doesn't seem to play with it nicely (see all the limitations on Java and the restrictions on web frameworks).
I was thinking of learning a RAD (or so called) language. Ruby (Rails) or Python (Django). Ruby due to its pure OO design (coming from a Java background I believe I'll relate better to it), Python due to its Google App Engine support.
I'm into a dilemma whether learning a new language is really worth the time for the given use case or just stick to Java which I feel really confident/comfortable with.
The type of needs I'm looking to address for SMBs are really day to day operations. Stock management, accounting, reservations, etc. Nothing on the enterprise side. Though some would argue on what enterprise really means or if Java EE 5.0 is really heavyweight or not.
I really don't want to turn this post into a flame war on which language is the best. I believe I've stated the simple reasons on why I'm considering each.
I'm really looking for any personal experience that you might have.
PS. I wouldn't jump to C# since Java already covers that. PHP although tempting due to its heavy demand, isn't that appealing to me for some reason.