
Java: Execution in the Kingdom of Nouns  - Garbage
http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html
======
netmau5
I will agree that Java encourages some poor modeling around nouns, moreso than
many other OO languages. That being said, most of us have "been there done
that" with Java and current best practices do not encourage what Yegge fears.
I do wish that we had more first-class language support for functions,
however, as several lines of boilerplate to achieve them is straight up
insanity.

------
io
If you're at least 25 and you weren't reading Yegge in 2006, it's time to
seriously examine your priorities. ;)

------
watt
(2006), please.

~~~
fleitz
Which would be a relevant point if the Java language had changed since 1994,
1958 called it wants it's lack of closures back.

~~~
Tiomaidh
Java 8....we can always hope.

~~~
StrawberryFrog
C# 3 had lambdas with closures. It's only three and half years old now. What
kept you?

------
hello_moto
Most startups that deal with large data processing eventually becomes a Java
shop one day. Get over yourself with the whole language war.

~~~
eneveu
(disclaimer: I'm currently a Java web developer)

If startups choose Java for performance reasons, which I believe was your
point, couldn't they instead focus on alternative JVM languages, such as
Clojure / Scala?

With these languages, you get the best of both worlds. You can use a more
"powerful" language, while keeping the benefits of the JVM (performance,
portability, tooling). And you can very easily use Java libraries (Lucene,
Hadoop...) if needed.

Jython and JRuby also look interesting. And JDK7 will bring invokedynamic (JVM
instruction to better support dynamically typed languages).

~~~
hello_moto
Start-ups use non-Java for their main apps. But the other "infrastructure"
stuffs that they developed after 5 years of existence usually required Java
somewhere.

Hadoop, HBase, Hive Cassandra, JMS are all Java solutions.

Maybe it's for performance, maybe just because Java has more libraries for
that particular domain.

Google (pre-dominantly Java), Amazon (Java shop), ITA (they also use Java EE
to my knowledge), Facebook (HBase, Hadoop, Hive, and maybe even haystack?),
Zynga, Flickr (small part of back-end), Twitter (back-end stuffs), LinkedIN
(Java shop), Last.FM (back-end stuffs), PowerSet (they came up with Hadoop)?

I don't know why Twitter uses Scala for some part of their systems when
eventually they need to write some Java code (and probably make that Scala
code talk to Java infrastructure). If you're not writing bajjilion code for
that particular portion of your systems, I don't see why you need to have
both. Just pick one. Perhaps they have other reasons (personal or not).

