Java sucks !... Only Java Sucks.

Started by
27 comments, last by Mithrandir 16 years, 3 months ago
Nice.. actually very true http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html
Advertisement
The only reason Java ever got so much attention in post-secondary education was because almost everyone guessed wrong back in the 90s about the future of software development. Of course, as we all know, Java applets didn't become our primary applications, especially since we didn't make the move from the desktop to the internet the way all the trade rags screamed we would from 1996 to 1999. Rather, it's still same old, same old. (Thank goodness for that, too.)

Unfortunately, those ivory tower idjits never bothered to fix their mistake of switching everything over to Java, and to this day many potential great programmers have been ruined by having to learn that joke of a language, only good for spinning cubes and cell phone apps.

Chris 'coldacid' Charabaruk – Programmer, game designer, writer | twitter

So he's proposing having lower-level languages as first languages instead of higher-level ones.

I don't get it. Are we looking for the "software engineers of tomorrow" or "the C hackers of tomorrow"? I think learning to program, solving problems, is priority number one, not learning how "software programs map to hardware" or the semantics of pointer(die already!).

I think the problem is the way programming is tought. With low-level languages like C, we spend half the semester until everyone semi-understands pointers. With higher-level like Java, we learn to use some fancy compoments to implement retarded toy applications involving back accounts,libraries and similar. When do we learn to device algorithms, to solve more involving problems, to design better? That's what we want, regardless the language. My opinion is, the higher, the better. Scew Java, I'm all it for Python.
With the lower level languages you need to think more about what you're doing, and build up those baseline creative skills. Higher level languages, especially ones with these click'n'play methods of building software, are like building a Lego set; lower level ones where you need to build something from scratch, is like baking a cake.

You can't make cake with Lego.

Chris 'coldacid' Charabaruk – Programmer, game designer, writer | twitter

Reinterpreting "Java is not the best choice for a first language" as "Java sucks" is just being dumb. Thanks for dumbifying our world.

Also I disagree with the article's claim that CS education was any better before Java. I took CS at a fairly decent institution and they barely taught me a damn thing about programming. Any programming skills I gained were either from me coding in my spare time, or were a side effect of the course material. Almost none of my professors (who were all very smart people) were any good at writing code.

So yeah, I agree that a typical CS degree doesn't prepare someone to be a software engineer. But I don't see any reason to blame Java for that.
I doubt that a CS degree has ever prepared someone for being a software engineer. Of course, now that there are dedicated SEng programs popping up, is that really a concern?

The problem with Java in CS is that it does dumb things down. Whereas with a lower level language, a student would have to be more creative and thoughtful about how to do a task (if only because there were five ways to do any given thing right and a million to do it wrong), Java generally has one or two ways to do something, period, and even a zombie could figure out which one. It destroys critical, creative thinking.

Never mind that it's a toy language, and somewhat BDSM (although, not as bad as Pascal -- then again, what language could be?).

Chris 'coldacid' Charabaruk – Programmer, game designer, writer | twitter

There is no best language.

Start with a high level language, and the skill set required to work in a low level one may not develop (whaddaya mean variables can be unintialised?). Start too low, and the programmer will often continue programming in a low level manner even in high level languages where better methods are available (the infamous "C with classes" as one example).

The less said about the middle ground, languages like C++, the better.

You just have to hope that the programmer will move beyond their initial language. I started with BASIC and I would like to believe that I certainly have. Some of my classmates I would guess haven't moved too far beyond Java, despite the best efforts of our course, which included C, LISP, Prolog and Smalltalk in various amounts.
Quote:Original post by coldacid
The problem with Java in CS is that it does dumb things down.


I don't see why that's any reason that Java is a bad first language. If anything I think that's why it makes Java a great first language. Programming is frustrating and discouraging for beginners. People who are just starting out really do need something dumbed down.

If you're saying that it would be bad for Java to be the only language a school ever uses, then yeah I am in total agreement. But I'd say the same thing for any single language.
The author is right on some points, and surprisingly, I was discussing the same topic with a co-student yesterday. We see the same thing at our college.

Most of the people in these classes can't program. They're like dumbass code monkeys banging on their keyboards in the hope it compiles and works. Most of these guys aren't considering what languages would be best for the solution. On one hand, we have the Linux hippies. They believe every software should be written in C(Because Linus Thorvalds hates C++. And yes, that's actually a reason I've heard. I've also heard that git was better because Linus wrote it) and run on Linux.

On the other hand, we have the clueless morons who use whatever they have at hand and just learned. For instance, my co-student pointed out that a few of his classmates wrote a simple roster program for their work. They wrote it in .NET(Not a bad choice there, it suits the job: Windows PC with GUI app), but instead of storing the rosters in a database, they used XML. They never considered using MS JetDB or SQlite, because they didn't know how to use it.

In the middle are a handful of skilled people, who analyze the problem before implementing it. They consider the options on technologies, think further than a bag of cash and carefully construct a system that's fast, simple to maintain and does what the client want. I consider myself part of these people. I've written a lot of (bad) projects before I started college, I learned design principles, analyze my projects before hand and I got a 2 days a week job as C++ programmer.

What needs to be changed is more focus on programming(Scale down projects and instead of grading by percentage of implemented features, grade on used coding practices, source layout and structure, etc.), more design principles(I see nothing of that in my degree, I have to learn them myself), more math, no more Java and more focus on effectively solving problems, instead of hacking together the labs in the shortest amount of time.

Toolmaker

Toolmaker's got it.

Personally, I think that CS/SEng education should begin in high school or earlier, and begin by blasting the students with a metric assload of languages and technologies. Those that can cope have a career ahead of them; the rest can go be artsies ('coz someone's got to make the pretty graphics for our games or Apple's GUIs).

I started with BASIC 2.0 on a C64 when I was just a little kid, and I taught myself 6502 assembly a year later. Today I know a bunch of languages, trying to pick up more, and never starts without thinking about what is the right tool for each job.

It's a shame that all those people who went through and learnt Java at university are no good, but when all you have is a hammer... (Actually, Java's probably more like a star-head screwdriver. Great for taking apart and assembling toys, but never used anywhere else.)

Chris 'coldacid' Charabaruk – Programmer, game designer, writer | twitter

This topic is closed to new replies.

Advertisement