Live data from Hacker News

Universities finally realize that Java is a bad intro programming language

thenextweb.com

41–50 of 132 posts

Re: Universities finally realize that Java is a bad intro programming language

#41
I may be in the minority here on hacker news, but I think Java is a great language. It was intuitive for me to learn, and it is highly extensible/customizable.

Telling college kids to learn javascript first is a terrible idea. Teach them a static language first. Anybody who knows what they're doing in a static language will have no trouble picking up non-static languages like javascript.

Re: Universities finally realize that Java is a bad intro programming language

#42
post #27

I'm not sure I'd consider a decision to move from Java to JavaScript an improvement. They are going from a bloated syntax to a bad-habit goldmine. Why not go Java -> Python instead?

Agreed. Java was my intro language, and probably my favorite (those are probably related); conversely, I still haven't gotten the hang of Python, and it's one of my least favorite languages, but I still recognize that Python is a massively better first language than Javascript of all things.

Actually, Java was my first language too. And I still don't regret learning programming using Java. How much ever I love JS, I wouldn't have traded it for Java.

Re: Universities finally realize that Java is a bad intro programming language

#43
post #18

I'm not sure I'd consider a decision to move from Java to JavaScript an improvement. They are going from a bloated syntax to a bad-habit goldmine. Why not go Java -> Python instead?

Because you only need a browser. When you're just a beginner, setting up an environment can be extremely painful.

I've gone through a couple online courses and some percentage of people obviously really struggled to get setup. It's probably significantly less of an issue at schools where "Intro to Programming" mostly assumes that you already have at least the basics of hacking around with a computer down. But it's probably hard for most people here to appreciate how daunting "never seen a command line before" is for many beginners.

Re: Universities finally realize that Java is a bad intro programming language

#44

I'm showing my age here, but in my first year of CS we used Pascal and COBOL. My second year was the first year they taught Java, and back then it seemed incredibly easy and powerful by comparison!

Mine wasn't quite as 'aged', but not sure it was the best choice.

First programming language my school taught was C++.

Re: Universities finally realize that Java is a bad intro programming language

#45

I'm not sure I'd consider a decision to move from Java to JavaScript an improvement. They are going from a bloated syntax to a bad-habit goldmine. Why not go Java -> Python instead?

I agree. Although JS is a powerful language, it is not suitable to teach in an introductory environment. How about C? It makes the student grasps not only logical constructs but also introduce a portion of computer organisation and architecture.

JS is a powerful language for a narrow domain. That makes it totally unsuitable as an introductory language because if the domain you wish to move to is not web development you now have to restart all over again with another language. Python would be better, java wasn't all that bad as a universal language it is applicable to many domains. But the ECT cycle of java could be seen as a drawback, python would remedy that to get the instant gratification factor.

Re: Universities finally realize that Java is a bad intro programming language

#46
I think it's a lot easier to understand OO, for instance, when you know what structs and functions are ("oh, a class is basically a struct with functions [methods] in it with an implicit argument pointing to itself, and some sugar on top? Cool, that was easy.") versus trying to jump straight in, which is what makes Java so painful to n00bs.

I don't see moving to JS helping with that problem much, though. If anything prototypal OO is more confusing without that foundation, and loosey-goosey nothing's-really-defined-for-real-until-runtime languages might be fast to get started in but will quickly lead students into a big ol' swamp of WTF.

I'd think a semester of C as an intro, despite its warts, would make everything that followed much clearer. But maybe it'd turn off too many students because everything they'd do in that semester'd be kinda boring.

Re: Universities finally realize that Java is a bad intro programming language

#49
The title is bit clickbaity: the article is mostly about Stanford's intro course. It's also misleading. Educators have known for a while that Java is not a good language for introductory education. The Greenfoot project attempted to work around some of its limitations, while other curriculums like How to Design Programs (using Racket in an environment designed for teaching) have used entirely different---and in my opinion much better---approaches.

The thing that seems to get skipped in these discusses is that curriculum is hugely important. I believe it's more important than language choice, though a good language for teaching certainly helps.

My own teaching is very much influenced by How to Design Programs. I think this paper is pretty good: http://www.ccs.neu.edu/racket/pubs/jfp2004-fffk.pdf

Re: Universities finally realize that Java is a bad intro programming language

#50
post #18

I'm not sure I'd consider a decision to move from Java to JavaScript an improvement. They are going from a bloated syntax to a bad-habit goldmine. Why not go Java -> Python instead?

Because you only need a browser. When you're just a beginner, setting up an environment can be extremely painful.

Especially once you get into managing dependencies. Virtual environments (whatever this year's flavor is, venv I think?) are a mess. I was trying to get VS Code to execute a python project in its virtual environment but gave up and just went back to running it in a terminal. There's probably a way to do it, but I poked at it for a while and didn't figure it out.

Javascript might have its hassles, but even when you get to dealing with npm it's still more of a self contained thing.

Post reply on HN