Thursday, July 31, 2008

Ur Doin It Wrng

I'll be forthright: I only skimmed a bit of The 'Anti-Java' Professor and the Jobless Programmers the first time. After going back and giving it the attention it deserves, I agree with the message it's trying to send, though I must admit it's really an echo of similar arguments I see in other respected programming blogs (see: Joel on Software's The Perils of JavaSchools).

So, really, I'm not trying to say or point out anything particularly new. No, the parts of The 'Anti-Java' Professor I wanted to point out were the following quotes:

Dewar stresses that he’s not against Java itself. But the fact that Java is taught as the core language in so many colleges is resulting in a weak field of computer science grads, he says.

The reason: students’ reliance on Java’s libraries of pre-written code means they aren’t developing the deep programming skills necessary to make them invaluable. Colleges, alarmed by falling CS enrollment, have dumbed down the course requirements. Consequently, CS majors sail through a curriculum of Math Lite, earning a smiley-face on their papers for “developing” projects using pre-built libraries.


Followed by:


But wait a second, Professor Dewar...I wanted to ask him, since this list of popular programming languges puts Java at No. 1 – ahead of biggies like C, C++ and Visual Basic – doesn’t that negate his theory?

I mean, if Java is this popular, maybe universities should teach it first. It called “being in touch with the real world,” isn’t it?


Before continuing any further I'd like to point out I don't specifically have anything against Java. I feel like it is a perfectly adequate language that the right people can do great things with, like all languages. This is not about Java (it could just as easily have been about Python, and so many other languages). It's about the ATTITUDE that is being flaunted; Java just happens to draw this kind of attitude. Take or leave that as you wish.

When I first read this, taking it seriously, it infuriated me, mostly because this is the attitude I see at my own school. So many times I have see my fellow students (in my eyes) just give up because a language "is so much easier" than C, C++, Lisp...whatever. When I mention that I am leaning towards doing a video game project in Lisp for my masters work I always get the exact same question: "Why are you using Lisp?", usually followed by, "Why not just use Java?"

It boggles my mind. It's like asking me "Why are you doing computer science?". I'm doing it because I love computer science and want to learn as much as possible, not just sit around and churn out easy code. If I wanted to do THAT I would just do HTML all day and try to convince people I was a programmer. I mean, it's easy, right? Why spend time learning something more complex like Java?

Why is it so weird when you're devoting at least four solid years and thousands of dollars to something that you would want to learn as much as humanly possible? Is this not the point of college? While I do agree there is a place and time for very good tools (such as the ones Java provides), there is also a place and time to learn how exactly these tools work by building them yourself.

Just as a random anecdote, a friend of mine decided to rewrite a built-in Java search and came up with his own search (in Java as well) that was magnitudes faster. He learned something important from that experience, as we all should.

1 comment:

Unknown said...

Hi Carrie,

Your review got featured in Sun Student Reviews site. Check out @ http://www.sun.com/student_reviews.

Keep up your great work! Hope to see you participate in the new GlassFish/MySQL student contest.