In this article:

Universities finally realize that Java is a bad introductory programming language

Matthew Hughes notes that universities are beginning to transition away from teaching Java as an introductory programming language. He references ACM research that python is now the most popular language for introducing students to computer science. Those of you who know me, know that I'm a huge python proponent. Python, like any programming language, has some drawbacks that people will be quick to point out (not the subject today).

I'm not sure I could accurately list the number of programming languages I've used since I started coding. When I started learning python (not so long ago), I was excited that this was a language that a complete novice could learn. It's also a very powerful language that expert programmers find will suit their needs. Combined with an incredibly rich set of libraries, it's really a wonderful environment for anyone to use for software development.

There's something else other than the intimidation factor (pointed out by Mr. Hughes) that's always bothered me about Java: the use of big, complex IDEs. When I learned Java, I wrote code "the old fashioned way": in a text editor. Then came Eclipse (and there's others, I'm going to pick on Eclipse but the same can be said for any big, complex IDE). It was (and remains) an incredibly complex thing; it's an amazing tool, but like any tool, it only works well when properly used. People building small programs, like they're going to encounter in an introductory programming class, will not use 5% of Eclipse's features. Students will spend more time figuring out Eclipse than the will learning the basics of programming; that's an absolute waste of time. It's the equivalent of teaching kids to drive in a Formula 1 race car.

Python works just fine with a text editor and the command line. If you want an IDE, they're out there, and there's Jupyter, which is a quasi-IDE that works well for certain uses. Mr. Hughes is correct, Java does have some scary things that may intimidate people who have never written a line of code, but it will work just fine without an IDE. I would recommend that educators focus on the basics of programming in the simplest environment possible, and introduce an IDE later, when the student is more experienced, and perhaps ready to take advantage of the advanced features that the IDE provides.