How Java Will Make You A Better Programmer

by M. David Peterson

ongoing · Having Done Java

This suggests a hypothesis: Having been a Java programmer will make you a better Ruby or Python or whatever programmer.

Makes sense to me... Start at the bottom, and work your way up to the top of the "Programming Languages that ROCK!!!" stack. :)

I mean it's not like you could get any worse ;)

(Tim: If you think people are going to get mad at you, just wait until some of my more loving and affectionate commentators have their way with me :)


Erica Sadun
2006-05-01 19:49:35
Java may make you a better programmer, but Fortran will put hair on your chest. :) No seriously, any language that introduces new paradigms gives you skills that transfer to other languages because you learn to (ahem) Think Different&tm;. It doesn't matter which language. What matters is adding new ways of looking at problems to your skill set.
M. David Peterson
2006-05-01 19:59:53

Totally agree with you Erica... This was more for fun than anything else (based on Tim's "Ooh, are people ever gonna get mad at me." comment, I figured it was worth the jab ;):D), but you are absolutely correct.

Actually, in all honesty, I don't have any real problems with ANY language. Code is code, and its all about whats puts a smile on your face in regards to what language suits an individual best.

If there is anything in particular that I have a problem with in regards to Java, its not Java, but the Java insiders who have a dislike for anything BUT Java. And this is for the exact same reasons you mentioned. In fact, this particular topic was the subject of this particular rant from yesterday > <

I do wonder how much of what Gosling is quoted as saying is out of context, however... (see the previous link to see what I mean) and wonder if maybe I'm being a bit unfair and over judgemental.

Any thoughts on the matter?

2006-05-02 02:33:49
Since the original article was discussing language libraries, specifically the higher quality of Java libraries vs. Perl, Python, and Ruby, what exactly does this mean? Open-source languages aren't as good as closed-source ones? Scripting languages aren't as powerful as compiled ones? Corporate "sponsorship" creates better code?

I see it more like this (though it's probably quite off the mark): Java was designed to be a "universal" language, improving on C/C++ in the hopes to eventually replace it (same thing as C#), especially as web apps became more popular. Hence Java needs more comphrehensive libraries to allow it to do the job of C/C++.

Scripting languages, AFAIK, are usually designed to do a few things very well (like string manipulation) but will be enhanced during their life, such as Python Server Pages or adding object-oriented features. If the base language is good, then it's easier to make additions, but much of it depends on how much effort people want to expend on a "pet project" (look at TurboGears or Django).

When one person is responsible for a library or feature set, I'd think it goes w/o saying that the library quality could probably be better, especially if that person has a "daytime" job too. But hopefully the "power of open-source" will make up for it.

M. David Peterson
2006-05-02 11:26:15
All good points...

My only real thought on the matter comes from the notion that there are a lot of folks that move to languages such as Python and Ruby because they are looking for more "freedom from the framework" so to speak. The argument that "Java has all of these libraries" when part of the problems that folks have with Java (or .NET for that matter) is that it has "ALL of these libaries." Thus the connection between Tim's post and this one...

Erica Sadun
2006-05-03 08:17:53
And thus we have Unix. Command-line utilities that pipe data between each other. Every language, every library, all working together. Each language doing its part, using its strengths.

Welcome to 1970, everyone.

M. David Peterson
2006-05-03 10:03:32
What's old is new, so true, so true ;) :D
2006-12-15 06:32:40
Lisp Integration Vista Smalltalk is descended from a Lisp interpreter that I started working on several years ago. I switched to Smalltalk syntax when the kernel was finally able to support messaging and dynamic object creation. Now, I have begun
thank you