Live data from Hacker News

Don't Make Students Use Eclipse

nora.codes

151–160 of 255 posts

Re: Don't Make Students Use Eclipse

#151
"Software Build Processes" is now a field in its own right. There's not just a compiler. There's a build process, a dependency manager, a package manager, a source control system, tools for updating the files those use, etc. It used to be just "make", but now each language has some kind of package management system. Crates, wheels, eggs, containers, boxes inside of boxes - it's complicated.

This is all trade-school stuff, really. It's like learning how to wire electric power, with wire size, type, and color rules, fixtures, grounding, and in the US per the National Electrical Code. There's little academic content there; it's just a mass of detail. Not too hard if it's written down and the documentation is current. Which it won't be at many companies.

An argument against teaching the details in college is that students will need to know the one they're using in great detail. Knowledge about unrelated build systems doesn't transfer much.

Then there's the machine learning parallel universe, with notebooks and YAML.

Re: Don't Make Students Use Eclipse

#152
post #77

I feel like people upvoted this because it said don't use eclipse but didn't read the article. Now I'm questioning my sanity - given a choice, do professional developers choose to use eclipse? The question is somewhat loaded given the previous statement based on my own biases but I've never written java professionally so excuse my ignorance.

Eclipse seems to have carved out a popular niche in the field of embedded C and C++. (JetBrains, please take note.)

Re: Don't Make Students Use Eclipse

#153

"Software Build Processes" is now a field in its own right. There's not just a compiler. There's a build process, a dependency manager, a package manager, a source control system, tools for updating the files those use, etc. It used to be just "make", but now each language has some kind of package management system. Crates, wheels, eggs, containers, boxes inside of boxes - it's complicated. This is all trade-school s…

I basically agree with this. This is why, at the end of the post, I recommend Python in a Ubuntu environment, where the "build process" is a single step (`python my_program.py`), and packages can generally be managed with `apt`, which is a standard tool representative of a large class of tools, which are likely to be used at some point by a large fraction of CS students.

Re: Don't Make Students Use Eclipse

#154
post #107
post #41

Earlier quoted context omitted.

> And to this day I find junior devs struggle with the same things unless they have a maven/gradle project all set up for them. Personally I’m still shocked that learning the common build tools for whatever language is used for a CS course is not the standard. If you’re teaching Java you should be teaching Maven, if you’re teaching C++ you should be teaching CMake. Not to the “I can write my own plugins/macros level”…

> If you’re teaching Java you should be teaching Maven no you shouldn't, because the premise is invalid. A university student shouldn't be "learning java". They should be learning programming, and theory of computing (and algorithms etc), and perhaps use java as the language. None of this requires maven, build tools or any tool chains beyond some unit testing framework (and GUI framework if displays are necessary). D…

> Don't teach "industry standard tools" to a uni student learning CS.

This is the critical point. By the time a curriculum is in place around one set of "industry standard" tools, new tools will have come out, in a lot of fields (see, for instance, `npm` and `yarn`.)

> They should be learning programming, and theory of computing (and algorithms etc), and perhaps use java as the language.

I would argue that using Java as the language for introductory CS courses is not a good idea. We have better, simpler languages to teach foundational functional (Racket, Scheme) and imperative (Python) languages.

There's nothing wrong with Java in general, but if your goal is teaching "programming, and theory of computing (and algorithms etc)", there's nothing that Java can do that Python can't that helps with that goal.

In fact, I'd give my optimal progression of languages as starting with Python for basic imperative and OO programming, or Racket for basic functional programming, then switching to the other one, and then looking at Kotlin (or Java if you really must) for advanced OO programming and C (or, in a few years, maybe Rust) for systems programming.

Re: Don't Make Students Use Eclipse

#155
post #111

Earlier quoted context omitted.

I don't really care whether or not other people use IDEs, but I lament not learning to drive on a manual transmission.

Why? I would expect manual drives to diminish in popularity over time. It's harder to use, and does not give any benefits at all, other than a slightly cheaper price, and a slightly higher performance if the user is knowledgeable. An auto transmission is so much better in every respect, and the performance improvements in manual hardly comes into play during every day use.

> and does not give any benefits at all,

I consider the ability to use manual transmission vehicles, of which there are many, a benefit. Last year I visited my aunt for a week and traveled around the state with her in her car. I couldn't share in the driving, because she has a manual transmission.

Re: Don't Make Students Use Eclipse

#156
post #124
post #106

Earlier quoted context omitted.

Isn't eclipse a piece of tooling? I mean I think the best argument against teaching eclipse is IntelliJ is much better, imo, and is more widespread than eclipse at this point. Student should have a module/class whatever about command line tools as well. I this comparison is comparing two things that aren't comparable, an IDE vs learning the CLI. I also think you contradict yourself in your last sentence. Teaching an…

> but at some point they might need to know what the tool is doing under the hood. The problem is the IDE makes it so easy to never have to look under the hood, to the point when people take a peek the get overwhelmed and quickly return to the comfort of the IDE. However, in real world of production environments there will be no IDE holding your hand and as such you can't get away without a good understanding of the…

Yeah they’d probably be using some build system or framework or script and still wouldn’t need to know the invocation for javac.

Re: Don't Make Students Use Eclipse

#157
post #85

I can't help but feel like this article is less a condemnation of IDEs in introductory teaching and more a condemnation of java in introductory teaching. It feels like the use of Eclipse or IntelliJ in intro CS courses is so common in large part because Java has such relatively complex tooling and language conventions. I've never seen someone intro Python with an IDE, because it's extremely easy to use Python without…

I don't see how java tooling is any more complex than any other language, they all have learning curves. Even Python has complexities around venv, requirements, pipfile etc. C's tooling in particular is probably the worst. You have to learn the compiler, the linker, or a 3rd party tool like cmake or meson. Using an IDE in Java is a choice just like picking PyCharm is for python.

I agree with you in general, but here I am discussing introductory CS programs. It's very hard for an intro CS student to build and run a Java program without an IDE, even with help from the professor. It's completely trivial for that same student to write and run most of the Python programs they'll be doing in their intro class after having installed _just Python_.

Re: Don't Make Students Use Eclipse

#158
post #18
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.

I can see the merit of this, but as an anecdotal counterpoint my first programming class was Fortran 77 using gedit (in the late 2000s). The delayed feedback of whitespace and syntax errors at compile time was painful, slowed down my learning process and distracted from the principles we should have been learning.

Perhaps the problem is that Fortran 77 is, like Java, not the best introductory programming language?

Re: Don't Make Students Use Eclipse

#159

Earlier quoted context omitted.

Java is great for exactly that reason. It gives students an introduction to compilation, runtimes, stacks and heaps etc. Perhaps you had a poor learning experience due to who/what was teaching you rather than Java? My second comp sci course in college (first if you count high school AP credits), taught me all of this, and prepared me for the "full details" of MIPS and C.

The point is, it's a terrible first language because it's impossible to actually understand what's going on even in a basic "hello world" program until halfway through the semester. So inevitably you have to start them off by saying "here's a bunch of noise that you don't understand, but that's OK, just copy and paste it" which is a terrible habit to reinforce. You need to understand * access modifiers (public/privat…

  > * access modifiers (public/private)
I think you can omit the "public"s in the Java hello world (thereby making everything package protected, and sneakily sidestep the issue), but I don't want to ruin this machine by installing Java on it to make sure.

To be super thorough, you would also have to understand:

- semicolons (and the related issue of newlines being semantically equivalent to normal spaces)

- naming conventions (to explain why it's not "System.Out.Println" and "Main")

Re: Don't Make Students Use Eclipse

#160
post #34
post #4

Suggestion: in the submission title, replace "Eclipse" with "An IDE".

yep.. I came here to read why Eclipse sucks compared to IntelliJ or something. Turns out, he hates _all_ IDEs.

I really need to tell you: Eclipse really rocks against other IDEs
Post reply on HN