Java is definately a viable choice, no matter how unpopular it currently is. It has some real advantages over Ruby, the most important being speed, which translates into productivity if the alternative is mixing C and Ruby. Another advantage is proper unicode support.
I still decided against Java because I feel that meta programming could be that great enabler of the next productivity revolution. A revolution that smarter people than me have experienced ages ago. Having explored Java to some extremes, I know that many of the complexities of something like J2EE are down to the lack of powerful language internal meta programming facilities.
Why not JRuby? Because right now JRuby is even slower than C based Ruby and Ruby 2 will have a virtual machine too, which doesn't have to concern itself with anything other than serving Ruby.
Yes, Java has a lot of libraries. But how many of those am I really using in my startup? Quite a few, and it does take me some time to figure out good alternatives for Ruby. But at the end of the day the library issue doesn't make a big difference in my case.
The only thing that really concerns me about the popular dynamic languages is raw speed for algorithmic stuff. Yes I do need that for what I'm doing. If lisp had any momentum whatsoever I'd gladly jump onto something like sbcl because it has all the metaprogramming facilities and it's as fast as C.
I still decided against Java because I feel that meta programming could be that great enabler of the next productivity revolution. A revolution that smarter people than me have experienced ages ago. Having explored Java to some extremes, I know that many of the complexities of something like J2EE are down to the lack of powerful language internal meta programming facilities.
Why not JRuby? Because right now JRuby is even slower than C based Ruby and Ruby 2 will have a virtual machine too, which doesn't have to concern itself with anything other than serving Ruby.
Yes, Java has a lot of libraries. But how many of those am I really using in my startup? Quite a few, and it does take me some time to figure out good alternatives for Ruby. But at the end of the day the library issue doesn't make a big difference in my case.
The only thing that really concerns me about the popular dynamic languages is raw speed for algorithmic stuff. Yes I do need that for what I'm doing. If lisp had any momentum whatsoever I'd gladly jump onto something like sbcl because it has all the metaprogramming facilities and it's as fast as C.