Live data from Hacker News

Don't Make Students Use Eclipse

nora.codes

31–40 of 255 posts

Re: Don't Make Students Use Eclipse

#31
post #16

I'm not sure I agree much with this. When I first started learning Java I had six or seven years of programming experience and I still found dealing with matters of classpath and javac remarkably complicated. I had things down well enough with the tools I used before, but it all seemed so foreign in the Java world. And to this day I find junior devs struggle with the same things unless they have a maven/gradle projec…

Actually I agree for the Java world here. Thanks to the design of Java and many Java libraries you cannot write a little more complex Java code from your mind. Even importing all this nested OOP libraries is complicated without an IDE. For me Java is really a language which is impossible or too time consuming to master without a good IDE.

Working for many years in the python world professionally some people are still amazed that I'm essentially using more or less a normal text editor. IDE is optional for many languages but for some languages it's a strong requirement.

Re: Don't Make Students Use Eclipse

#32
post #5

> ... it insulates the student from the javac command line program, and the command line environment itself Such a misguided article. The Java language has (quite literally) nothing to do with `javac`. In fact, there's a lot of other compilers out there. Taking a Java class should not focus on the intricacies and weirdness of Java compiler command line interfaces. It seems pretty amateurish to argue in favor of it. C…

The point of the article is the very concept that the compiler and the Java runtime environment are not the same thing (which an IDE obfuscates to some extent) is what he wants students to learn early on. (And details like that). This leads into a lot of important concepts around how programming languages are seen by the computer.

Re: Don't Make Students Use Eclipse

#33
post #21

Wait, I shouldn't make students learn the tool they will be forced to use when they get a job? Um, no.

People who learn the tool alone are substantially unhireable.

When you hire a developer you usually need them to also be at least be something of an expert computer user, especially if they're going to be working on a small team without 20 other experts to micromanage them.

Over-reliance on the IDEs leaves people appliance operators that are lost when there isn't a magic button to press.

It isn't just an issue in the job market. "Programmers" who aren't sufficiently advanced computer users can't advance their own projects in academia either-- they're stuck working on precooked assignments. I suspect this is one of the forces that has resulted in academic research being utterly starved for competent software engineering (though the main one remains that competent software engineers can get stable high paying jobs, and academia provides them with neither).

Re: Don't Make Students Use Eclipse

#35
> What they can’t do, unless they’ve figured it out on their own, is operate a computer outside of the confines of the IDE they’ve been taught.

Understanding what a file is and what a text editor should be prerequisites for entering a computer science department. Someone who doesn't understand these concepts has no business learning to program.

At my "not MIT" school, it was expected that most incoming CS students understood some basic programming before they entered school.

A CD department that tolerates students who don't know what a file is probably has other problems.

Re: Don't Make Students Use Eclipse

#36
>Using Java or Python in a professional IDE like IntelliJ IDEA, NetBeans, PyCharm, or Eclipse is not a good first introduction to programming for computer science students, whether they’re in the field to become web developers, systems software engineers, or academic computer science researchers. //

So "for computer science students".

Which seems like too major a thing to miss out of the title.

Also, how does webdev fit in here: seems like webdevs should probably be using IDEs from lesson 2. And I say that as someone who started their web content production path writing HTML in pico.

Re: Don't Make Students Use Eclipse

#37
post #5

> ... it insulates the student from the javac command line program, and the command line environment itself Such a misguided article. The Java language has (quite literally) nothing to do with `javac`. In fact, there's a lot of other compilers out there. Taking a Java class should not focus on the intricacies and weirdness of Java compiler command line interfaces. It seems pretty amateurish to argue in favor of it. C…

The point of the article is the very concept that the compiler and the Java runtime environment are not the same thing (which an IDE obfuscates to some extent) is what he wants students to learn early on. (And details like that). This leads into a lot of important concepts around how programming languages are seen by the computer.

> ... how programming languages are seen by the computer

Learning a programming language has nothing to do with how it's seen by a computer. That's a different class (a class on compilers, maybe). You can even turn Java into Javascript if you want to[1]. The fact that the compilation/transpilation flow here is Java -> Java Bytecode -> JS is meaningless in the context of learning Java.

[1] https://github.com/google/j2cl

Re: Don't Make Students Use Eclipse

#38
post #11

Earlier quoted context omitted.

UCLA has a class that does this, you have 10 weeks to learn 5 languages and write a non trivial assignment in each: http://web.cs.ucla.edu/classes/spring20/cs131/syllabus.html http://web.cs.ucla.edu/classes/spring20/cs131/homework.html The languages change over the years, but the goal is to have them touch different programming paradigms.

Thats a different argument, and a much stronger one. "Universities should offer a class on comparative programming languages and language tooling." is much different than "Intro-to-programming classes should not have a strongly-recommended IDE"

I was referring to the second part of his post. Also this class is not introduction to programming it is upper division and considered one of tougher classes in terms of workload.

The assignments aren't trivial. Take look at them:

http://web.cs.ucla.edu/classes/spring20/cs131/homework.html

Re: Don't Make Students Use Eclipse

#39
The author brings this up as a reason for using an IDE:

> This is valuable in an introductory course, as it avoids wasting class time and lowers the barrier to entry

and then proceeds to argue why other things are more important than that.

I don't like Eclipse or other IDEs, having watched my fellow students get stymied by basic issues that I could resolve with one or two relatively simple instructions on the command line. I think IDEs can be a crutch that programmers ought to learn to do without. Learning what the "real" tools are will pay dividends—quickly too.

That being said, I think it's important that the barrier to entry be low. Java almost necessitates the use of an IDE. There's so much "enterprise" cruft involved in doing the simplest things that, unless you have an IDE to hide it, you're going to confuse beginners.

A better choice of language and tooling can help here. I think starting off with something like Racket would be best. Those who need an IDE (out of laziness, familiarity, whatever) can use DrRacket, and then switch to running their programs from the command line shortly thereafter with next to no transition overhead.

Re: Don't Make Students Use Eclipse

#40
post #2

I completely agree. IDEs obscure the behavior of tools and languages. It's the last thing a student needs. I've been talking for a while about writing a course that teaches programming in 2 or 3 languages side by side to basically so the opposite of this. The specific quirks of languages or the things they obscure with magic melt away when you look at languages side by side. I wish university would teach in this way.

University programs exist to prepare workers for the industry, as a general goal. A subset of students are either already hardcore or will become hardcore developers , cum computer scientists . How should a university 'optimize' their pedagogical approach so that all students are maximally rewarded by their education? There is no question in my mind that you are correct, in principle. But I wonder if what you propose…

> University programs exist to prepare workers for the industry, as a general goal.

I don't think that it's true that the general goal of University of CS programs is to prepare students for the software dev industry.

Post reply on HN