Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Dying is maybe a strong word, but I think it's popularity is dropping. Couple of newer backend languages eating it's share of the pie, like Go or Typescript. I believe this trend will as more and more colleges replace Java curriculum with Python I guess.



If a college replaces Java with Python, I wonder what their reasons are. Java's type system is ok (definitely not very good) but still much better than Python's which is almost empty (e.g. in Python we cannot declare an array of students, a dictionary of (ID, Student) pairs).


From my experience, in the early programming classes that have switched from Java to Python, one of the reasons is the verbosity of Java. When you're trying to teach the basics of programming -- variables, some simple text IO, loops, functions, the structure imposed by Java can be a little overwhelming. I recall a lot of other students struggling with getting past all the little things you had to do just to get a "Hello World" written. Python is simpler to gradually introduce those concepts with, especially with very those who are just starting out. And especially when you're dealing with a quarter system, which many schools use, as a teacher you had a very limited amount of time to get through that sort of material.


Python is a great language for the non-professional programmer who wants to put their other skills on wheels. Even if other languages have more pedagogical value, Python is easy to learn and not a waste of time of time for anybody. (At work I code Java/Javascript but wrote a “maintainance droid” in Python that merges changes from git, installs database migrations, runs tests and all that so I don’t have to.)


You are right IMHO. Java 24 introduces a much shorter "hello world" experience with: - no class déclaration - no void, static, public statements - no System.out

Hopefully teachers noticed...


Algorithms as well. Python is close to pseudocode, which makes it a perfect fit.


In Python isn’t that either this, for the first part of your sentence:

    students: list[tuple[int, Student]]
Or the second half and a more idiomatic structure:

    students: dict[int, Student]


IMO - verbosity, typing and compilation all get in the way of teaching a lot of the basics (logic, control flow, scope, functions, objects). With JS/Python, I think students can make small wins faster which helps them stay motivated. I say this as someone who watched 3 people decide CS wasn't for them after taking intro classes that focused on Java.


https://docs.python.org/3/library/typing.html

I don't think its first class support but its something. It might even be better for teaching since its not strictly enforced depending on your runtime.


The missing parte here is a more modern web framework.

I played a bit with Spark/Javalin and it really felt like writing a Flask app, but on a properly multi-threaded runtime.

I don’t need Go or python, i need a frameworks that feels like Django.


JAX-RS is basically Sinatra or Flask for Java. Not excessively verbose at all.


I'm pretty sure Java usage is still increasing, just not as fast as the industry in general.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: