So is Java the "best tool" for the job because it's the one you happen to know best?
I am just trying to understand the logic.
In my experience, when people say "best tool for the job", they have a set of very diverse jobs in mind.
So is Java the "best tool" for the job because it's the one you happen to know best?
I am just trying to understand the logic.
In my experience, when people say "best tool for the job", they have a set of very diverse jobs in mind.
My conclusion is based on my experience with learning these languages. I'll pick on ruby since that is the one brought up the most. I built several web sites using Ruby (mainly CRUD stuff) and my conclusion after having built around 5 web sites with Ruby (versus 7-8 at the time with Java) was that Ruby wasn't any faster or better at solving problems then Java. In fact, usually it was worse, multitudes of libraries with poor documentation and in many cases no clear standard. The language syntax was novel, but language syntax isn't a step function in productivity, at least not for me.
So I continued using Java as my main language, and didn't feel like I was missing anything by not using it. I learned a few philosophies which helped my efficiency a bit, including the "convention over configuration" ethos from Ruby/Rails (my Java code generally has zero XML files), but the niche features each language was selling wasn't enough to counterbalance the deficiencies in productivity which came from using them.
And I should say Java may not always be the best tool for every job, but I've worked on a wide variety of problems (scalable web services, high traffic content sites, ecommerce) and in each case Java, the language and the platform, in my opinion - delivers the goods.