Hacker News new | ask | show | jobs
by 16s 5453 days ago
It's been my experience that most people who put down Java or C++ or [your language here] have never seriously used the language and are insecure about learning a new language so they make fun of other languages to hide their insecurity.

Edit: I'll also add that this is not limited to the Ruby community.

One last edit: General Patton once said, "Find what a man is cynical about, and you will know his weaknesses." or something like that. I think that quote applies here.

6 comments

Ok, I'll bite. I think insecurity is different than dislike.

If you asked me today what language would I use for a new web project, I don't think I'd pick a C based language. I don't really have much against that class - I use Objective-C every day. But I think it really comes down to the frameworks and libraries.

I spent the better part of the dot com coding in Java and C++. Towards the end of my Java days, the time it took to get ideas from paper to usable screen with JSPs, Spring, Hibernate - for one developer - seemed like forever. To make matters worse (and not so much Java's fault), I normalized the shit outta the database (a dba would have loved it) and having that fine grain of a data model just added insult to injury. So when I look at 'Java hate', I don't per say outright hate it, but I'm adverse to using it - especially for anything web. If you have a nice SOA, then I could see maybe using it for some services.

The last Java coding I did was in 2006 - that was my last Java contract client. After that, I switched to Ruby/Rails and that was that. A typical story I'm sure. Do I go to meetups and bash Java? No. Is the "eww, that would be like Java" heard around our office (current company is a Rails shop)? Yes.

However, my current company is hitting a ceiling with Rails. The fat model paradigm is starting to break down. Like us, as your project/app/company starts getting bigger and bigger, you start to hit growing pains with Rails. So I've been looking back at my Java history to find other patterns that were used to take some of the weight off the models and Modules where people have been putting things. Basically, Rails (IMO) is great to get you to a certain point, but after your system grows to a certain size, you have to start thinking about other ways to architect it. I think this is where SOA comes in and the data exchange is all done via json.

Would we consider using Java for any service? Probably not. Why? Because of the time and resources required to actually deploy the services. Like TFA says, Java picked XML. If someone actually made a simple app server where apps could be setup and deployed via properties (remember those?), then that might take some of the Java deployment sting out. Or, maybe if our team grabbed a dedicated release engineer, that might help.

So in the end, I don't think of myself or anyone I work with insecure about learning a new language. Most of the devs I work with came from a Java background. What makes more sense is being able to iterate very quickly over your ideas and just get shit done. This is why Ruby/Rails has been so successful. I don't find being cynical about Java a weakness at all. What would be worse in my mind is to get someone in who is not productive with the tools they're using. And for me writing web apps, I just don't feel productive using Java and its associated frameworks/libs/tools/servers.

If you ever do want to try out a new app server, what I do is use embedded Jetty. It's not an app server that you deploy your web app to, but rather your web app becomes a runnable application. This makes deployment to something like EC2 completely trivial. Just copy your app there and hit run.
I used to think this when all I knew was C++ and Java, when I defended them feverishly. Then after using them for 5-10 years I am now in the "why do we torture ourselves with these inexpressive languages" group. These language should be criticized, or else your regular joe won't know any better and waste a large chunk of their life going down a painful path.

That's not to say they still don't have their niche for high performance applications. It's just that in most cases other, more expressive languages are usually a better choice.

Since you said "most people," I guess I'm disqualified from saying that I have deep Java experience and dislike the language, you can simply retort that I'm not a True Scotsman, I'm just an outlier. But nevertheless, I press on. I built Java development tools in C++, I led teams of 20+ devs, I built online banking applications, I wrote a Scheme interpreter in Java, yak, yak, yak, and yes I put Java down.

C++ is another matter entirely. My experience is pre-Boost, so I don't consider myself qualified to debate current approaches.

Java and C++ were the first languages I learned, and I used them exclusively for about 5 years (mainly C++). I simply don't like either language. I think they have both have a lot of problems and downsides.

I'm not guaranteeing that this is true in an objective sense, but then again I can't guarantee that anything is true in an objective sense (I'm no philosopher). However, take a lot of people with a similar opinion and the voices tend to add up.

> General Patton once said, "Find what a man is cynical about, and you'll know his weaknesses" or something like that

Abraham Lincoln once said "If you are going to quote a man on the Internet make it accurate", or words to that effect.

Only messing, googled and it seems to be "Watch what people are cynical about, and one can often discover what they lack."

Sorry, I was paraphrasing and tried to make that clear. I think I captured the spirit of the quote.
Definitely, I was only joking.
I think developers like to think of themselves as above dogma, but threads like this show they are just as prone to fashion-oriented thinking as any other group of people.

Intellectual honesty is always in short supply on the Internet, it'd seem.