I think that this is mixing up two different skills.
The first skill is learning to program, and in particular learning to program data structures, or algorithms, or whatever. For this you don't care at all how your code builds, you care about correctness and easy to use testing infrastructure, and an IDE like IntelliJ or Eclipse is going to be almost frictionless for that. Teaching command line necessities together with this provides nothing of value for this skill. If I'm trying to get an algorithm right, I don't care at all about how my code builds, I care that it is easy to hit the "recompile and run tests" button. I also think that Java is a decent choice of language for this.
The second skill is learning how to build, version control, package and distribute software, and for this you really need to learn the common tools used in the industry. Which in addition to the IDE, is use of the Unix/Windows command line, git, compilers, Makefiles and build systems, and so on. Here you really need to care about the details - for example, such a project could be to take a previous project and package it so that it runs on a computer without Java/Python/etc installed.
I think the problem is that many universities never have a course on this second skillset, and so while for teaching the first skillset they choose appropriate tools (in my opinion), they leave this second skillset behind completely. But I think the debate is more nuanced than IDE = Good or IDE = Bad, I think we should carefully figure out what skills should be taught, and what the best way to teach those skills are, keeping in mind that for a lot of first-year university students this may be their first introduction to using anything other than a web browser, office programs, and video games on a computer.
> I think we should carefully figure out what skills should be taught, and what the best way to teach those skills are, keeping in mind that for a lot of first-year university students this may be their first introduction to using anything other than a web browser, office programs, and video games on a computer.
This is absolutely spot on. I used IDE Good/IDE Bad mostly as a way to get people to think about this, and clearly it worked :)
Yes, I’ve thought about it before, since at my university they started on an entirely-eclipse sort of syllabus, and then overcorrected massively to command line. A bunch of new CS undergrads were driven off because they thought that programming was mostly memorising arcane command line invocations just to get simple code to run, and that just doesn’t seem right to me.
Out of interest, your original article pointed out the potential use of repl.it as an alternative to Eclipse and friends, but isn’t it still the whole build-in-a-box experience?
The first skill is learning to program, and in particular learning to program data structures, or algorithms, or whatever. For this you don't care at all how your code builds, you care about correctness and easy to use testing infrastructure, and an IDE like IntelliJ or Eclipse is going to be almost frictionless for that. Teaching command line necessities together with this provides nothing of value for this skill. If I'm trying to get an algorithm right, I don't care at all about how my code builds, I care that it is easy to hit the "recompile and run tests" button. I also think that Java is a decent choice of language for this.
The second skill is learning how to build, version control, package and distribute software, and for this you really need to learn the common tools used in the industry. Which in addition to the IDE, is use of the Unix/Windows command line, git, compilers, Makefiles and build systems, and so on. Here you really need to care about the details - for example, such a project could be to take a previous project and package it so that it runs on a computer without Java/Python/etc installed.
I think the problem is that many universities never have a course on this second skillset, and so while for teaching the first skillset they choose appropriate tools (in my opinion), they leave this second skillset behind completely. But I think the debate is more nuanced than IDE = Good or IDE = Bad, I think we should carefully figure out what skills should be taught, and what the best way to teach those skills are, keeping in mind that for a lot of first-year university students this may be their first introduction to using anything other than a web browser, office programs, and video games on a computer.