Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

As others have pointed out, this really should be titled "Everything that's wrong with Java culture ..."

For a more technically critical look at Java the language, I recently stumbled on this video while watching a Scala talk Martin Odersky recommended in the first few sessions of his new Coursera class... http://www.youtube.com/watch?v=hcY8cYfAEwU

It's pretty meaty, although it looks only at Java 1.0. Many of the criticisms aren't things I would have necessarily thought of first, and it gave me something to think about in terms of what my own priorities are. (For instance, the lack of first-class functions and closures gets no mention at all)



> As others have pointed out, this really should be titled "Everything that's wrong with Java culture ..."

I think any UI designer would tell you that a culture doesn't happen spontaneously. Why do Quora, StackOverflow, and Yahoo! Answers feel like very different products despite providing essentially the same functionality?

You can say this about any language and its community, too, not just Java. And it works both ways. Perl, for all its faults, provides a very easy way to package libraries and a well-organized repository for doing so, hence the comprehensiveness of CPAN packages[1].

Java's culture is a result of the fact that Java-the-language promotes badly designed pseudoabstractions intended to guard against bad design. Java provides broken abstractions because it is itself a broken abstraction - the class is a very poor abstraction over an object, and an inconsistent one at that (Java supports multiple kinds - in the mathematical sense - a design choice which impacts the way people use it).

[1] This is particularly true if you turn the clock back ten years and compare with the state of programming languages back then.


I agree with you, what I meant by this

> As others have pointed out, this really should be titled "Everything that's wrong with Java culture ..."

was that the OP didn't actually have much technical criticism of the language. If anything it's not "everything that's wrong" because it's missing a lot. I wasn't trying to defend Java.


Yes, my comment was meant more to highlight that any constructive criticism should address the design of the language (which is responsible for the culture), rather than complaining about the end result.

Though sometimes amusing examples do help to illustrate, when used carefully to supplement the main point!

[1] http://stackoverflow.com/questions/186964/java-core-api-anti...


Yeah, actually that's a good point, the talk I linked to with Joshua Bloch really doesn't address the core design of the language so much as a lot of fiddly things on the edges.


What is the Java culture? I don't think there's anything. There are so many Java programmers that there are bound to be bad ones along with the good ones.


You're right, of course. Programming culture can be hard to nail down, if such a thing even exists. But would it be a stretch to argue that there is a Java community? I don't think so, and I don't think it's much more of a stretch to argue that a community will adopt trappings of culture.

Java the language certainly enforces a certain kind of programming, that Steve Yegge so succinctly identified as a "kingdom of nouns". I'm not sure if that constitutes a culture or not but it does strongly influence the kinds of programs you end up writing in Java. I've experienced some shared technical culture between companies I've worked at that used Java heavily, but of course my experience is just anecdotal.

Here's a blogpost from an HNer that argues there is such a thing as "Java shop politics" and that companies that develop certain kinds of large monolithic software written in Java and C++ tend to share something, which is not desirable. I don't really have enough experience to agree or disagree, but it's an interesting read: http://michaelochurch.wordpress.com/2012/04/13/java-shop-pol...


What is wrong with Java encouraging OO style programming? Some people will do very well with it and some will not. Functional programming is not the holy grail and some people are very bad at it. Do those bad functional programmers invalidate the whole functional programming approach?

I found that the whole notion of finding some bad examples of a practice and then offer that as a proof to invalidate the whole practice very distasteful. The lynching mob incited from the blog post's false information just shows how far it can go.


> What is wrong with Java encouraging OO style programming?

There's nothing wrong with it, if you think OO is a good approach to structuring programs. I happen to think it's not that great an approach. But Java gives you no option, you can't have just "some OO" and some of something else. I think that's a serious mistake. You're welcome to disagree.

I didn't say FP is a holy grail. However in my limited experience, OO is definitely not either.

All that said, there's nothing wrong with constructive criticism, which is all I've been trying to provide. I don't think I've participated in any lynch mob, I'm sorry if you construed my light jab at "Java culture" to be offensive.


Sure. If you don't like OO and not found it to be productive, you don't have to use it. And you are more than welcomed to state OO doesn't work for you. However, blanket statement like Java sucks or OO fails (not directed at you) is not constructive criticism. It's just insecure programmers using other languages trying to justify their insecure language choice.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: