Why you should stop teaching Java or C#. Now.

Ivan (Jonan) Georgiev
3 min readJun 20, 2023

--

Unless you believe your students will be lucky enough to become like one of those 128 COBOL/Fortran¹ developers that are extremely well paid, albeit being deep in their pension days, you better present them with something more future proof.

Why Java and C#? Why excluding C++ and Python, for example?

Well, as mentioned in a previous article — I see the software development industry having a sobering shower with the advancement of LLM systems, but language like C++ and Python are on the edge, so to speak. The former is used exclusively to deal with the world of hardware, and the latter — with the world of data. Any data, not just software-related. Both are used to deal with problems/tasks from a realm outside of coding itself.

Java and C# and related platforms, are “inland” animals — they serve the software industry itself. And as being such, (almost) everything they deal with is an easy target for AI automation. Not that existing systems will be replaced quickly, but… remember — COBOL and Fortran are still around, and not the top choice in the textbooks.

Photo by SwapnIl Dwivedi on Unsplash

What about JavaScript?

It’s quite a mixed animal. On one hand it does serve the UI world, which is much closer to humans, than the back-end parts, but on the other hand — it’s not a high bar for AI. And also — the web is abundant of existing JS code that AI can learn from. However, the ecosystem around that language is already very easy to use, very quick to add value, and try common tasks. In other words —

like PASCAL — easy to teach, easy to try, and not entirely useless from production point of view.

Photo by Jeffrey Hamilton on Unsplash

One may ask — Why teaching any software language at school — as AI will write all the code?!

Just within the last few months, ChatGPT provoked an explosion of new areas of learning and development — prompt engineering, (efficient) model fine tuning, context selection, reinforced learning with human feedback, chain-of-though techniques, new infrastructure challenges for scalability, data protection and management, and so on, and so on. And just like we’ve been teaching students in programming classes to code linked lists in Java — over and over, and over again, regardless of the fact that it has better built-in implementation (of course!), introducing them to Python will give a bit deeper understanding of what the core of all these AI systems, actually is based on.

If you ask why I keep mentioning C++… I believe this will stay the language of industry “backbones” for quite some time — embedded devices, operating systems, networks, actual AI engines, robotics, etc.

But what should be taught to students regarding the software industry ?

In order to answer that question, we first need to elaborate on the consequences of emergence of such smart tools capable of solving clerical tasks with ease — like ChatGPT — on the whole software industry. But that’s a topic for another few minutes article. Coming soon.

[1]: Of course, this number “128” is made up, but you’ve got the idea.

--

--

Ivan (Jonan) Georgiev

Socially concerned, moderately optimistic, indie software developer & researcher.