The sad truth is that most of you - javaists - are pretty crappy coders. Most software you create is pretty much garbage. Of course, by being ignorant you won't destroy your own self-confidence...
You're ignorant af.
1. Java isn't fast. It's ok, though.
2. Smalltalk and pascal is used in the industry. If it weren't for the expensive license of delphi and its one-platform policy, java wouldn't be here today.
3. Garbage collection was present DECADES before java - starting with lisp. Java does have a good gc for performance but at latency it sucks.
4. Java did NOT popularized interpreted languages since it is NOT and interpreted language. Java doesn't even have an interpreter. Scala has.
5. Python isn't ignored by the industry(sadly).
6. Sadly, Scala is on the JVM. But Scala is present on other platforms too: native(as scala-native) and node.js(as scala.js). Python and Ruby isn't - the first even predates Java. The second has NOTHING to do with it.
7. First, educate yourself before trying to educate others. You - javaists are just showing here how ignorant you're.
"The chains of code that bypass in nulls, aka Lamdas, monads etc. are just shit programming. Deal with the error where you made the error."
What if you - javaists take this advice and deal with your errors? One of the reasons it sucks to be on the jvm because javaists throw exceptions EVERYWHERE. Java IS shit programming.
If you want to achieve better code quality then you'll benefit from Scala by referential transparency, safer code and more restrictive type system - if you aren't just a mediocre coder. These things aren't present in java. Most of the java projects used to turn into slow and ugly spaghetti buried in millions of lines of xml. It doesn't matter what domain we're talking about because java isn't the best choice for it.
The type system isn't more "complex" but more "powerful" or more "effective". With a better typesystem you can restrict your program's behaviour more effectively and at the case of Scala exploit the power of category theory. Scala is a functional language and it's easy to achieve referential transparency in it - which makes concurrency and testing easier. The language is rich enough to express flexible and nice DSLs(ex. http://www.scalafx.org/). If you use scala as a better java then you'll miss most of its power, but otherwise you'll write smaller modules which will be more readable.
The fact is that most companies today despise java and the jvm. The average java shop is a good place for burnouts thanks those talentless javaists who follow the advice/books of mediocre coders. Anyway, java isn't a productive language, especially if you need concurrency.
Oh yes, Kotlin - poor man's Scala. I had high expectations... I hoped that they'll make a smaller subset of Scala but instead they've made a C# copy(just like Apple did what made Swift and how Gnome did what made Vala etc.). On a range if Java is 1 and Scala is 10 then Kotlin is a ~4. Dotty will clean Scala anyway...
Yep, every language have flaws but java has more than the average - this is the first problem. The second problem is the average quality of java projects - which is low. The third is the javaists' mentality - they throw buzzwords on the problem they're facing and hope it'll solve itself.
The sad truth is that most of you - javaists - are pretty crappy coders. Most software you create is pretty much garbage. Of course, by being ignorant you won't destroy your own self-confidence...
Is rewrite the only thing you can think of? Use your imagination ;)
You're ignorant af. 1. Java isn't fast. It's ok, though. 2. Smalltalk and pascal is used in the industry. If it weren't for the expensive license of delphi and its one-platform policy, java wouldn't be here today. 3. Garbage collection was present DECADES before java - starting with lisp. Java does have a good gc for performance but at latency it sucks. 4. Java did NOT popularized interpreted languages since it is NOT and interpreted language. Java doesn't even have an interpreter. Scala has. 5. Python isn't ignored by the industry(sadly). 6. Sadly, Scala is on the JVM. But Scala is present on other platforms too: native(as scala-native) and node.js(as scala.js). Python and Ruby isn't - the first even predates Java. The second has NOTHING to do with it. 7. First, educate yourself before trying to educate others. You - javaists are just showing here how ignorant you're.
Popularity is the weapon of mediocre coders. And sorry, but most java libraries are so bad they need to be rewritten.
"The chains of code that bypass in nulls, aka Lamdas, monads etc. are just shit programming. Deal with the error where you made the error." What if you - javaists take this advice and deal with your errors? One of the reasons it sucks to be on the jvm because javaists throw exceptions EVERYWHERE. Java IS shit programming.
If you want to achieve better code quality then you'll benefit from Scala by referential transparency, safer code and more restrictive type system - if you aren't just a mediocre coder. These things aren't present in java. Most of the java projects used to turn into slow and ugly spaghetti buried in millions of lines of xml. It doesn't matter what domain we're talking about because java isn't the best choice for it.
I guess you're just an average stupid fanboy then. Keep living in the land of ignorance ;)
The type system isn't more "complex" but more "powerful" or more "effective". With a better typesystem you can restrict your program's behaviour more effectively and at the case of Scala exploit the power of category theory. Scala is a functional language and it's easy to achieve referential transparency in it - which makes concurrency and testing easier. The language is rich enough to express flexible and nice DSLs(ex. http://www.scalafx.org/). If you use scala as a better java then you'll miss most of its power, but otherwise you'll write smaller modules which will be more readable.
If you want to sew in the battle...
The fact is that most companies today despise java and the jvm. The average java shop is a good place for burnouts thanks those talentless javaists who follow the advice/books of mediocre coders. Anyway, java isn't a productive language, especially if you need concurrency.
Then don't chase "new" languages. Chase "better" languages with proactive and honest communities.
Oh yes, Kotlin - poor man's Scala. I had high expectations... I hoped that they'll make a smaller subset of Scala but instead they've made a C# copy(just like Apple did what made Swift and how Gnome did what made Vala etc.). On a range if Java is 1 and Scala is 10 then Kotlin is a ~4. Dotty will clean Scala anyway...
Yep, every language have flaws but java has more than the average - this is the first problem. The second problem is the average quality of java projects - which is low. The third is the javaists' mentality - they throw buzzwords on the problem they're facing and hope it'll solve itself.
Java8 for Scala is like a needle compared to a sword. If you want a needle...
Still can't figure out why java exists... It is not just that the JVM is bloated but the language itself is terrible.