
Java the SUV of web deveopment tools - budu3
http://blogs.law.harvard.edu/philg/2006/02/26/java-is-fading-as-a-web-development-tool-along-with-the-suv/
======
staunch
I dance on the grave of Java's web prominence. Let it be forever relegated to
its proper role in banks and other large organizations that don't actually do
much.

For years blub programmers have won decision-making arguments against hackers
by convincing the boss "Java is Enterprise" and proper hacker languages are
only for "sloppy work". People are _finally_ realizing how hollow those great-
sounding promises were.

VINDICATION IS NIGH.

~~~
jsjenkins168
3 words for you: Google Web Toolkit

------
edgeztv
Aren't strongly & statically typed languages an evolutionary improvement over
dynamic & loosely typed languages that let you shoot yourself in the foot all
the time?

A Java IDE in a sense "knows" what you're writing and helps you avoid making
mistakes while you're coding.

People complain about too much boilerplate code in java - that's true, but it
can actually be a good thing in the same way comments can be a good thing, and
IDEs generate all the boilerplate for you with just a couple of keystrokes
(whereas comments don't write themselves).

I'm curious whether the Java bashers out there have ever used a good IDE like
Eclipse or IDEA for any extended period of time. Because if you're using a
text editor like emacs, programming in Java can seem ridiculously difficult.
Conversely it might seem ridiculously difficult for a person accustomed to an
IDE to use a text editor for a scripting language.

Coding Java without an IDE is like trying to control the space shuttle with a
steering wheel. Once you've mastered all the features of an IDE, however,
(which can take years, but then again so does learning emacs) programming in
Java becomes a breeze and you get all the benefits of static typing (with the
safety and tools it enables) and the vast Java libraries with no extra
difficulty coding compared to a simpler language.

~~~
jsjenkins168
I agree totally. Coding in eclipse with all of its type safety tools is a
dream. I also wonder if Java bashers have overcome learning curve to see what
Eclipse offers.

Its unfortunate few of the web hacker types see Java as anything but an
"Enterprise" language. Admittedly, JSP (and even JSF) sucks. So the negative
wrap that Java gets as a web development language is understandable.

But I think GWT will change that eventually... Build and build, Unit test, and
never worry about browsers or the nasty stuff typically related with Ajax-
centric development. To me that is worth its weight in gold.

~~~
edgeztv
I've been using GWT extensively, and while it's outstanding, "never worry
about browsers" is not a feature I can ascribe to it :(

It alleviates some of the cross-browser headaches, but doing anything
nontrivial can still hit browser differences, especially with styles and
layout.

The only viable browser-worry-free platform seems to be Flash right now.

~~~
jsjenkins168
Yeah, I can attest to the style quirks.. Damn TabPanels :(

Lets hope the bugs continue to get ironed out. I know 1.4 will fix quite a few
of the minor things.

I think the big deal is the RPC stuff with GWT. While it still has a way to go
in terms of customizability, it is extremly powerful none the less. As far as
Flash + GWT, I think its pretty sweet doing asynchronous calls via JSON
messages between the two. Quite a powerful combination..

------
dpapathanasiou
Java flourishes in large companies because managers love the commoditization
it offers: i.e. since "everyone" knows Java, it's easy to find replacement
programmers.

------
aston
Greenspun's evidence is kind of suspect here. He's noticed a correlation
(successful projects are not done in Java) and decided that there's causation
(Java doesn't lead to successful projects).

My guess is that students who are actually experienced with web apps will
avoid Java like the plague due to the horrible rap it has in the web
development community (from people like Greenspun). Meanwhile, those who are
less clued in are going to choose the language they're comfortable with,
namely Java.

I feel even more confident in that explanation given that he lists C#/.NET as
a good language. Syntax-wise, Java and C# are extremely similar, and
performance-wise C# might have an edge, but not to the point where it would
affect the goodness of apps. The complexity of their respective stacks is
pretty similar as well.

Moral of the story is, good hackers can make good software in any language you
throw at them, and bad coders will not. I suppose there are aspects of stacks,
like RoR, which will make it easy for bad coders to put something respectable
together, but I seriously can't see Java as inhibiting great people from
making great things.

------
parlin
Java kills the creative process. Thats one of the reasons we went with PHP for
things closer to the front end. We do use Java for things that are in the
background that wont change from day to day. Image processing etc..

Dont underestimate the time from idea to a rapid prototype. For a programmer,
at least me, its very rewarding when that is kept short.

------
Goladus
From one of the comments, regarding Java, .NET, and C++. (How do we italicize
on this forum?)

"The challenge for platforms like Ruby is to match these platforms and
establish and develop a strong deployed base so that they become the
entrenched platform of choice."

I'd say the challenge is not for Ruby to match those platforms, rather for
Ruby developers to create products that make all the Java/.NET stuff obsolete.
His comment makes a lot of sense if you start with the assumption that there's
some X amount of code to write and maintain, and that a large corporation
won't want to switch to Ruby. He's right. But that doesn't mean they won't
want to switch to a product that eliminates the need for maintenance
altogether.

The trick is, of course, figuring out how to outsell the Oracle salesman.
<http://www.paulgraham.com/start.html>

~~~
aston
Italics are done with asterisk-word-asterisk (without the dashes, and use the
character, shift+8 on my keyboard).

------
Tichy
Before I picked up Java I was programming in Perl and C. I remember that
amazing feeling with Java that things just worked as I expected them to. A few
years later I worked on another Perl project and spent two days chasing a bug
that I could never even have made with Java (due to default initialization of
variables, weird scopes and stuff like that).

I think Java still has a lot of things going for it, and my most favorite
aspect is the documentation. I never spent a dime on Java books because there
is so much excellent documentation available online (starting with the Java
Tutorial for beginners). Compare that to Ruby, where you can't even get a
specification of the current state of the language for free.

Also it seems most of the new developments in IT are being developed for Java
first these days, like Aspect Oriented Programming, Dependency Injection and
whatever (granted, maybe some of these things would be superfluous in other
languages to begin with, I don't know). You get a really good IDE for free
(Eclipse), and new add-ons and frameworks for Java are almost forced to also
provide plugins for the IDE to work with. For LISP you are still supposed to
use Emacs. What do you use for Ruby on Rails?

That said, it seems to me the problem with Java is not the language but the
people using it. There is a lot of overengineering going on, that just isn't
fun anymore. Many people (especially the bosses in the large corporations)
have become dogmatic about certain ways to design applications, that are often
inappropriate (in my opinion).

I also long for a faster way to prototype, and I am putting a lot of hopes on
Groovy+Grails or even Ruby. But I have the impression that many people who
bash Java don't really know it.

~~~
staunch
Java's big advantages are saving you $50 in books, a crappy bloated IDE, and
fad paradigms?

 _"But I have the impression that many people who bash Java don't really know
it."_

Interesting complaint from someone who just bashed Perl and almost certainly
doesn't know it well.

~~~
Tichy
You mean I should have used "strict" and I wouldn't have had any problems with
Perl? It's true, I am not a Perl hacker by any means. The aspects of Perl I
have seen are sufficient for me to wanting to avoid it like the plague.

I am not saying that there can't be valid reasons for hating Java. I just
think most of the times it is rather the specific frameworks than the language
itself that pisses people off. For example I can't bring myself to write EJBs
- having to create 5 files just to be able to call a method remotely exceeds
my pain tolerance. Yet in many big cooperations someone up in the management
chain has decided that every Java Application has to use EJBs. That I hate,
too. It's misleading to judge Java based on that perversity, though - EJBs are
just a framework written in Java, not the Java programming language.

Anyway, out of curiosity, is Perl still relevant today? Why would people
choose Perl over Python or Ruby?

~~~
staunch
_"The aspects of Perl I have seen are sufficient for me to wanting to avoid it
like the plague."_

From your description it sounds like you were frustrated by coding horrendous
Perl and instead of learning it you moved to a language with training wheels.
I'd rather just fall a few times while I'm learning so I can go much faster
afterwards.

 _"Why would people choose Perl over Python or Ruby?"_

It's fast in productivity and performance. There are great books. It's on
every Unix machine. CPAN still reigns supreme as the ultimate library
repository. These days there's some great frameworks for web development, my
favorite being Catalyst with DBIx::Class and Template Toolkit.

Ruby is mostly just Perl without all the mental baggage of people seeing bad
Perl code for years. The way a restaurant might avoid saying "squid" and
instead say "calimari" -- it sells a lot better.

