2 ms·
Giles Bowkett turns language elitism upside down
- SwellJoe 18y agoI'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 18y agoI'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 18y agoThat'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).