Live data from Hacker News

Universities finally realize that Java is a bad intro programming language

thenextweb.com

111–120 of 132 posts

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

#111
post #105

Earlier quoted context omitted.

But surely a university environment is the best place to experiment and learn what works and what doesn't. I mean, the majority of these students will have to write JavaScript sooner or later. Better they learn it in a controlled environment.

In the first programming course many students can't judge "what works and what doesn't" yet, or even appreciate the details if you tell them, and are busy enough with the basic concepts behind what they are doing. You also can't really teach only an opinionated subset of the language, since students use all kinds of material to learn. Material about JS is often steeped in environment details (browser, nodeJS, JQuery,…

>>In the first programming course many students can't judge "what works and what doesn't" yet

That's what the instructors are there for...

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

#112
post #105

Earlier quoted context omitted.

In the first programming course many students can't judge "what works and what doesn't" yet, or even appreciate the details if you tell them, and are busy enough with the basic concepts behind what they are doing. You also can't really teach only an opinionated subset of the language, since students use all kinds of material to learn. Material about JS is often steeped in environment details (browser, nodeJS, JQuery,…

>>In the first programming course many students can't judge "what works and what doesn't" yet That's what the instructors are there for...

From my perspective (I've TAed a bunch of intro-level courses, taught in various languages):

You can tell them, yes. But as you rightly say, an important thing is to experiment and (IMHO) to see for yourself what works and what doesn't. And that part works best if it fits their abilities. Experimentation should lead them past what they've learned from you, but not into to much confusion, which for absolute beginners can be incredibly demoralizing.

More talented students will go into different languages and weird stuff anyways, I'll help them when they ask questions or I see something they are doing I can contribute to, but I can't run a course matching their abilities as an intro-course.

Again, I'm not saying you can't do it in JS, but it's not a decision of "let's use JS because I want people to learn JS". And if having JS in there is the goal, nothing wrong with running a course using multiple languages and using JS as one of the later ones. Ideally, after a good set of intro courses your students have seen enough that they can pick up most languages relatively easily, and then, when they need them, learn what current best practices and their ecosystem are.

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

#113
post #68
post #51

Earlier quoted context omitted.

While the Java ecosystem is terribly and unnecessarily painful, working in a browser isn't exactly trivial either. Personally, I think Go wins the "easy setup" award--download the toolchain, `mkdir -p ~/go/src/project`, edit your files with your favorite text editor (they all have Go plugins), and `go build/test/install/etc`. No ANT/Maven/Gradle/etc files, no CLASSPATH, no IDE, no runtime or runtime dependencies, etc…

Go would be another good learning language, I agree. But you still have GOROOT/GOPATH to worry about, I think it's about the same as Java in terms of complexity. Besides, you don't need an IDE for Java, it's just that most people use one. I personally use gradle and vim when progamming Java.

> Go would be another good learning language, I agree. But you still have GOROOT/GOPATH to worry about

GOROOT and GOPATH are set automatically by default, you don't need to mess with these unless you want to.

> I think it's about the same as Java in terms of complexity.

Even if GOPATH/etc weren't set automatically, you still need to learn Maven and Gradle and friends. I've been programming for a decade or so, and every time I try to play with Java I have such a hard time getting projects set up. I don't know if the tooling is really so complex or if the happy path is just poorly documented (perhaps because everyone assumes you're using an IDE?). A few things I had trouble with: - Getting the Gradle server set up so I didn't have to wait for the JVM to boot every time I wanted to compile anything - Configuring Gradle to compile a native dependency like OpenGL - Configuring Gradle to produce a fat jar - Configuring Gradle for unit testing

By comparison, with Go does all of that out of the box (`go build` doesn't have a VM to warm up, and Go's tooling supports native dependencies, static compilation, and testing by default).

I don't think this is a big problem if you already understand Java's ecosystem or if you have someone to hold your hand until you get a project set up, but I had a terrible time finding the right documentation.

> Besides, you don't need an IDE for Java, it's just that most people use one. I personally use gradle and vim when progamming Java.

Last I checked (a year or so ago), there were no reasonable vim plugins for Java. Certainly nothing as mature as vim-go.

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

#114
post #51

Earlier quoted context omitted.

While the Java ecosystem is terribly and unnecessarily painful, working in a browser isn't exactly trivial either. Personally, I think Go wins the "easy setup" award--download the toolchain, `mkdir -p ~/go/src/project`, edit your files with your favorite text editor (they all have Go plugins), and `go build/test/install/etc`. No ANT/Maven/Gradle/etc files, no CLASSPATH, no IDE, no runtime or runtime dependencies, etc…

As a beginner in java, you really just need java, javac and a text editor. The problem is less the ecosystem and more just the language isn't a good starting point for a beginning programmer in a formal education setting.

Until you depend on anything, like a unit testing library. Manually managing CLASSPATH isn't fun. I think Java is a fine way to learn OOP (it was my introductory computing language), although I'm now of the opinion that OOP is a big distraction.

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

#115
post #78
post #51

Earlier quoted context omitted.

While the Java ecosystem is terribly and unnecessarily painful, working in a browser isn't exactly trivial either. Personally, I think Go wins the "easy setup" award--download the toolchain, `mkdir -p ~/go/src/project`, edit your files with your favorite text editor (they all have Go plugins), and `go build/test/install/etc`. No ANT/Maven/Gradle/etc files, no CLASSPATH, no IDE, no runtime or runtime dependencies, etc…

>mkdir -p ~/go/src/project Where is the mkdir icon on my windows desktop?

I'm not sure what point you're making. It's easy enough to translate my unix shorthand for directory creation into windows instructions...

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

#116
post #78
post #51

Earlier quoted context omitted.

While the Java ecosystem is terribly and unnecessarily painful, working in a browser isn't exactly trivial either. Personally, I think Go wins the "easy setup" award--download the toolchain, `mkdir -p ~/go/src/project`, edit your files with your favorite text editor (they all have Go plugins), and `go build/test/install/etc`. No ANT/Maven/Gradle/etc files, no CLASSPATH, no IDE, no runtime or runtime dependencies, etc…

>mkdir -p ~/go/src/project Where is the mkdir icon on my windows desktop?

[deleted]

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

#117
post #97
post #51

Earlier quoted context omitted.

While the Java ecosystem is terribly and unnecessarily painful, working in a browser isn't exactly trivial either. Personally, I think Go wins the "easy setup" award--download the toolchain, `mkdir -p ~/go/src/project`, edit your files with your favorite text editor (they all have Go plugins), and `go build/test/install/etc`. No ANT/Maven/Gradle/etc files, no CLASSPATH, no IDE, no runtime or runtime dependencies, etc…

"No IDE" is not exactly a plus in my book. Surely, you can write code in vim (or notepad) but doing any proper work requires proper tools, and good IDE is among the first ones you'd need.

I have no problem with `vim-go`. Go works without an IDE because the language has a simple project model which lends itself to good, modular tooling. You can still use an IDE with Go if you like, but no one is twisting your arm.

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

#118

Earlier quoted context omitted.

Javascript is a general purpose programming language and your comment doesn't make any sense.

Hard to decide if your comment is meant as a joke.

How would I be joking? Do you even program with JS or are you basing your opinions on hearsay and a bad introduction you had one time in the past and haven't looked at it since?

Last I checked, Javascript is Turing Complete and has most of the common features you'd find in every other language. Just because it doesn't have OS interaction on the browser side doesn't mean it isn't a general purpose language. Have you ever even heard of Node.js? Have you not seen the wealth of great things implemented in Javascript?

Where does your claim that Javascript is not a general purpose programming language come from is what I'm asking. I can't seem to grok how one could come to that conclusion, which is why your comment doesn't make sense.

Don't get me wrong, Python is a great language as well, but outside of a slightly more preferable syntax, I don't see why you seem to think Javascript is such a bad language.

Javascript (in Node.js 7.9.0) even seems to have better benchmarks performance than Python 3.6.1 [1]

Please elaborate rather than making snide replies.

[1] https://benchmarksgame.alioth.debian.org/u64q/compare.php?la...

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

#119
post #63

From the comments on the site: > If a simple Hello World program in Java frightens you, you might as well forget about learning how to code. Meh at this attitude. It's not that it's 'frightening', it's simply a longer path (and cognitive load) from code to result. You want to pique a student's interest? Let them navigate to JSFiddle.net and begin making magic happen in an environment they spend all day in VS whatever…

>Not everyone who takes an intro to programming class aims to build their own kernel.

And, for that matter, not everyone who takes an Intro to Programming class may want to become a CS major. They may want to do stats in R. They may want to be comfortable working with and running fluid analysis models as a mechanical engineer.

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

#120
when writing code, I like the idea 'fail fast, fail hard'. i.e. my IDE helps me fail fast by showing me bad code. my program crashes and burns with a verbose stack trace when I commit some runtime heinousness

javascript doesn't do that, and the first time they walk into a coding landmine they'll be scratching their heads for hours debugging it

Post reply on HN