

Giles Bowkett turns language elitism upside down - bootload
http://weblog.raganwald.com/2006/12/giles-bowkett-turns-language-elitism.html

======
SwellJoe
I've always felt this way, and have never been able to understand why Java is
thought to be great for "average" programmers. Java is _hard_ , at least for
me. Certainly much harder than Perl, Ruby, Smalltalk, Tcl, and Scheme (I
haven't spent any time with Lisp). I even find it harder than C, in general,
though I suspect that's just a factor of how much code I've read/written in
the languages...and I've never had to build the infrastructure in a C project
that Java removes completely, as I've always been a contributor to an existing
project rather than starting from scratch. But, Java is certainly not a simple
or concise language. There's a lot to learn..."Core Java" apparently requires
two gigantic 1000+ page books. While one can learn most of Scheme from a
single tiny text. Java has so many nooks and crannies that I feel like I'd
never be able to learn it all. Likewise, one can get a pretty good
understanding of C by spending a weekend with K&R. Simple but powerful
languages hold more appeal for me.

But, I guess the thing I (and possibly Reginal and Giles) find hard about
programming is not the thing people usually find hard about programming. I
think of myself as an "average programmer", but the thing that bothers me
about programming is tedium and the fiddly bits. The more scaffolding a
program has, the less I enjoy working with it and the harder it is for me to
grasp. If a piece of code isn't _for_ something, then I don't like it and find
it really ugly, but also hard to understand. So, Java is chock full of stuff
that makes me zone out completely. I've been surprised to find that PHP is
hard for me, as well. I always sort of assumed, "Hey, I've met some really
dumb PHP programmers...how hard can it be?" Until I actually had to work on
some PHP code. It's so verbose. Everything is a function call, even basic data
structures. So, I find PHP much harder than the other languages that I work
in, even though it has a reputation for being easy.

~~~
dhotson
I've had a similar experience to this also. I suspect it's a case of the Blub
Paradox.

A few months ago I was watching a Java programmer write a text processing
program. I found it frustrating to watch as he struggled with even basic stuff
like reading files, regex's and string splitting.

But here's the thing.. I couldn't even remember myself how to match or replace
a string based on a regex.

I consider myself a fairly smart programmer, but I probably couldn't write a
Java program to read a file and match some regular expressions without looking
at the API. Java makes it hard!

Perhaps this example isn't very fair to Java, but this kind of thing comes up
all the time.

I'm sure even the 'average' Java programmer would have no trouble doing this
in Ruby (or Python, take your pick) in 2 minutes.

~~~
SwellJoe
That's a good example...and whenever I've brought up examples along those
lines, a Java developer will say, "But how often do those kinds of problems
come up?" And, then I pause to think about it, and I can't help but respond,
"What programming problems _aren't_ that kind?" When I think about
development, I'm thinking, "get some data, work on it, write it out", and Java
makes those tasks pretty complex.

I know there are problems for which Java is a great choice. Google is not made
up of stupid people, and they have a _lot_ of Java code...it's their go to
language for systems-level development. But I can't think of any task that I
write software for that would be better served by Java than Perl, Ruby, Python
and probably even Smalltalk or Scheme or Lisp (though the latter three are
weak when it comes to interacting with the system, and I build web-based
systems management software--Smalltalk and Scheme and Lisp might be fine for
the web-based part, but not so much on the systems management part, while Perl
was pretty much designed for the purpose).

