Why Java?

Why is Java emphasized in undergraduate CS programs?

>inb4 Jobs
Would Java have been so popular without the push from academia?
>inb4 Portable
Show me a microprocessor that doesn't have a C compiler

Imagine if you spent 2 of those semesters learning C really fucking well, and then another semester learning the most useful parts of C++. The whole tech world would be so much less bloaty.

Attached: 259535.png (1600x1200, 2.33M)

Because it's statically typed, relatively easy to understand, has a very large standard library, including GUI support, it is object oriented (the most commonly used paradigm in the last 20 years), and because it's crossplatform, so students with every OS can use it.

>and then another semester learning the most useful parts of C++.
C++ is a mixture of huge chunks of obsolete paradigms, inconsistently mixed with new paradigms. It's only still so widely used because there already has been so much written in it.

hey wow look another second year undergraduate CS student with room temperature IQ posting this same thread again

All of those things apply to C.
And as far OOP goes, real Chads pass structs by reference.

The goal is to obscure the hardware from the programmer, which ends up being a disservice to the end user who has to deal with the excessive resource usage.

>Why is Java emphasized in undergraduate CS programs?
Entirely depends on Uni.
My Java education was "here is how Java is different" after an algorithms course in C++.

If I had to guess why you learnt it: boomers

>which ends up being a disservice to the end user who has to deal with the excessive resource usage.
It really depends though, the overhead of the JVM isn't neccesarily massive.

Programming close to the hardware is absolutely vital to learn, but sometimes it might not be the right choice. Languages with really high level features, such as c++ can still be fast.

>Imagine if you spent 2 of those semesters learning C really fucking well
They already do that, which is why there are so many tech geeker retards. They learn it "really fucking well" in the sense of Unix commands doing things "well." Now you have people who think they know how computers work but don't know anything.

Just works. No matter how bad you're writing software, you can make a functioning and somewhat understandable Java backend if you know how to read english.

Please expand on that. I am a Computer Engineer and had to take additional classes for systems programming, but the Java classes I had to take with CS students who did not have to learn C.

I doubt those "tech geeker retards" are learning anything. They think the syntax is similar enough to their onions language, write something, encounter their first segfault, scream at a terminal window and stick with Python.

I have an entire algo trading program I wrote in C. Only 2k lines, multithreaded, and fast as fuck. Heavy ram usage because it's actually tracking a lot of data. You couldn't squeeze the same performance out of Java even with JIT.

>I have an entire algo trading program I wrote in C
Nobody here is going to argue that your pet project that you lovingly massaged to take advantage of every speedup C could offer could be outdone by the JVM.

>You couldn't squeeze the same performance out of Java even with JIT.
If you think I am debating whether you should use the JVM for high performance real time applications, I am not.
All I am saying is that sometimes you are not programming high performance real time software and it might be viable to use a different set of software tools.

Please then, make an argument for Java other than "it just works". If I desperately wanted to use OOP, I would use C++.

>Please then, make an argument for Java other than "it just works".
I don't like it. But the JVM is useful in that it abstracts away real hardware for a virtual one, making you able to guarantee the portability of software.

Abstraction is always useful, the more you can abstract, the better you can express complex structures. This is why C++ is continually introducing very abstract concepts.

>Would Java have been so popular without the push from academia?
Yes you retard. Do you think java got popular because it was pushed by academia? It got popular because it let the same code run on everything, which was important at the dawn of the internet

>Show me a microprocessor that doesn't have a C compiler
Being able to generate code for a platform is not the only bar for portability. You should also ask how easy it is to write a program for multiple platforms using the same source code base. Try writing simple networking code in C that's meant to work on Windows and Linux. It's a pain.

>Imagine if you spent 2 of those semesters learning C really fucking well, and then another semester learning the most useful parts of C++. The whole tech world would be so much less bloaty.
That's basically what we're doing here.

>All of those things apply to C
C has an extremely minimal standard library. C++'s is less minimal, but also widely hated.
Java has a pretty good stdlib including common data structures like PriorityQueue.
It also has good tooling and fewer quirks than C or C++.

>All of those things apply to C.
C doesnt even have standard containers.

Java is retard and pajeet friendly, that's why it's popular

>C doesnt even have standard containers.

It's called an array and a struct. Jesus Christ, what is wrong with you?