Hacker News new | ask | show | jobs
by yock 5453 days ago
All you need to do to experience this first hand is go to one Ruby meetup. The roundtable introductions at my local Ruby brigade are often seasoned with AA-like declarations of soberness such as "Hi, I'm So-and-so and I've been Java-free since 2006." As a Java pro (and someone who really does like Java) it's a little disheartening. On one hand I know they don't really mean to belittle the technology that pays my bills and feeds my family, but there's a definite mindset of superiority among some professional Ruby-ist communities.
4 comments

Java, by design, imposes an upper-bound on cleverness/productivity that can be feel stifling to some. Thus, it becomes a badge of honor to graduate to sharper tools, such as Ruby. Whether they're cutting themselves (and others around them) with them is another story, of course.

We need more devs who are not so emotionally invested in their tools. Not that they shouldn't care about them, but the loud-mouthed, posturing alpha dev stereotype gets too much airtime on the Internet because they instigate drama and drive hits by playing on the audience. It is little more than bikeshedding, ultimately.

I'm totally fine with different strokes for different folks. But I don't buy the productivity argument. For any reasonably sized project, productivity tends to level out regardless of language or platform.
Oh really..... try building a large scale web app in Forth then.

Tools matter, at every scale.

So your counter example is a relatively obscure language? I don't know Forth, but I'd imagine someone well-versed in it could handle the task. In any event I didn't say it was categorically the case. I said tends to be the case. We could go case / counter-case all day.

I can bootstrap a project in Ruby or Python considerably faster than I can in Java. But when it comes time to scale, Java usually -- not always, but most of the time -- wins out. They all can do it. None is really more expressive than any other. It's just the level of effort involved. And the pros and cons of each usually start to even out as a project grows.

If you honestly think there's no expressivity difference between Python and Java, you're still writing Java-in-Python. There are so many differences in expressivity I wouldn't even hardly know where to start describing them. The old 10-to-1 line advantage isn't a myth, line count matters (one of the only solid truths about software engineering we have proved with almost scientific rigor), and I've gotten more than 10-to-1 in some conversions I've done.
I'm not suggesting how you feel comfortable writing code. Like I said, if you just prefer it because it's less verbose, that's fine. There's absolutely nothing wrong with that. But that doesn't mean you can't accomplish the same thing with Java or that verbosity has a long tail impact on productivity. At some inflection point in just about every project, you stop mashing the keyboard and focus on the non-typing aspects of the codebase.
I disagree. There is definitely a difference in expressiveness between languages for example Java and Lisp. Read "Revenge of the Nerds" by PG. But of course, you're right in the sense that I could implement a Lisp interpreter in any language...
I think it's not really the size of the project per se but the proportion of domain complexity.

For problems with low domain complexity but involve a lot of boiler plate code, a more expressive language wins out. Likewise, if you spend the majority of your time thinking about the problem and little time on the actual implementation, then the language may not be your bottleneck.

I work in what is essentially a Java shop and the opposite is true for me. The Java programmers work on the data set and provide me with an API. My responsibility is to present the data using a Rails application in a sound UI and in the fastest way possible.

They often make remarks about how Rails is easy and Java programming is where real men make their mark.

I think this comes down to a need for people to feel proud about the tools they use and the things they make.

The opposite is true for me too.

I've had an Enterprise Java guy telling me once that "programming and Object Orientation got lost with those simpler, easy-to-use language and frameworks", referring to Ruby and Rails.

I dunno about that. Alan Kay would probably say that it got lost with C++ and Java, but YMMV.

Also, one word: speed.

But... I don't really think it boils down to this, it's not like one is better than the other. Proof is that both communities are learning from each other, and there's also JRuby... it's a great thing.

JRuby is actually for projects that have a lot of existing java code. If you're programming ruby and all your existing code is in ruby... it's not necessarily a win, unless you happen to need a particular Java library for performance reasons.
> I've had an Enterprise Java guy telling me once that "programming and Object Orientation got lost with those simpler, easy-to-use language and frameworks", referring to Ruby and Rails.

You did tell him Ruby is roughly as old as Java, Python is older and Smalltalk predates Java by almost 15 years right?

The comment doesn't seem to involve when the languages and frameworks were respectively created, though if you do look at the pairings (Ruby w/ Rails, Python w/ Django as large examples), they are relatively new after all.
Why put "programming" and "object orientation" in the same sentence?
There's a definite stigma attached to Java for where the tool is used most. I'd bet nine times out of ten, a randomly chosen programmer's previous Java experience was a Dilbert job. Proclaiming yourself "free of Java" should probably be worded "escaped from a corporate cube farm". I doubt they care that much about Java, especially with the buzz around JRuby and Mirah.
I recently went on an interview for a Python dev position. I've been a full time Java developer for the last 5 years, working on some cool shit. However I enjoy python more for my hobby projects, having many live python projects, shipped python code, and a github account with my python code.

After some good natured ribbing that he 'doesn't hate Java developers, he just feels bad for them' He finally told me quite directly that he was apprehensive to move forward with me because hes worked with Java devs who made the jump to Python and they wrote Python code that looked like Java and he wasn't certain I'd be any different.

It was quite bizarre as he had access to a lot of my Python code.

... Which he'd not bothered to read. Now ask, would you want to work for a manager who prefers preconceived notions to actually seeing what people produce?
Absolutely. We got a long great otherwise, but that one thing ended the interview on a sour note for me.