Java at 30: How a language designed for a failed gadget became a global powerhouse
-
Java was also my first introduction to programming as it was included in Computer Science in final year of school (at college, we did the trusty C).
I think they have replaced Java with Python now in schools because of the latter's popularity and also because many would argue, Python is slightly easier to learn than Java.
The argument I agree with is that Python is the best language to learn if it's your only language, and Java is the best first language if you're going to learn others. The syntax from Java is shared across so many other languages and it forces you to learn about things like objects and types. You could make an argument for C or C++ but Java's handholding is more beginner friendly imo
-
This post did not contain any content.
It's been interesting seeing the changes as they happened over time working with java pretty often for a good chunk of that time. The jvm and jit performance improvements, syntax changes and additional jep features added vs what was left out, tools for running and managing jvms, Sun & Oracle shooting themselves in the foot repeatedly, new jvm languages with scala, groovy, clojure, etc and their impact on java. I prefer other languages and tool chains for some cases, but java has been pretty good for building reliable, upgradable, extendable systems that get the job done & have a good large stable library.
-
That makes more sense in context. Another Gang of Four (that I err, know more deeply for some reason) is(read:was) a political grouping in mid 70s in China.
-
There's always Kotlin. Of course I never understood the desirability of a VM language in the first place, why not just compile for different architecture?
There's also Groovy. A data execution pipeline program I use called NextFlow uses Groovy based scripts.
And compiling for different architectures can be very difficult. I've done a lot of work Power9 computers and it's not as simple as having the right compiler flags. Often the dependencies aren't built for your platform either so you have to go and compile those too. It can be quite a hassle.
-
A language I wish would die already, but there are still vendors that program in it, along with freaking Tomcat hosted applications. EduTech is still stuffed to the gills with it.
fucking tomcat and jboss...🤮
-
I'm still wondering what Java's niche is, it seems like it does everything, but nothing particularly well. I guess it found a home on Android, but I don't think that's because it's particularly well-suited for it.
The point of Java is to be a language for 90% of programmers. The vast majority of software development is not sexy, doesn't require a PhD. Java was intended to be a commoditising language and in that it succeeded wildly.
-
Java was also my first introduction to programming as it was included in Computer Science in final year of school (at college, we did the trusty C).
I think they have replaced Java with Python now in schools because of the latter's popularity and also because many would argue, Python is slightly easier to learn than Java.
Python is interpreted where Java is compiled. They aren’t going to be able to be used in the same cases all the time.
-
Unlike other older languages, such as Cobol and Fortran -- which are still used, but almost always in legacy projects -- Java has constantly evolved to meet new demands while maintaining backward compatibility.
can't speak on the FORTRAN claim but with COBOL this couldn't be less true. last i checked the newest Enterprise COBOL LTS is newer than Java's
The difference is people still write Java, regardless of whether it's a dated pos or not, so the use cases have evolved
Then there's the use of the JVM/JRE which have evolved even more due to Scala, Clojure & Kotlin
-
And Java is very much considered legacy in the vast majority of projects that use it.
-
It's a cycle all popular languages go through. First only experimental applications and super opinionated programmers use it. Then everyone wants to use it for everything. Then it finds a niche where it excels and settles.
I remember Java, C++, Python, and JavaScript going through those phases as well. Currently, everything is Rust.
Java is nothing like Rust. Java was always sold as a low skill programmer language, Rust has a steep learning curve. Java tooling has always sucked where Rust has excellent tooling pretty much since 1.0, Java is extremely verbose and needs a lot of tools to generate code to be productive at all, Rust is very expressive and most people write the code by hand or just use built-in language features. Java has a culture of "who care about that backtrace in my log as long as the app does what it is supposed to" while Rust has a culture that very much cares about correctness more than performance. Java was always driven by CEOs pushing it on people from the top while Rust is very much a language programmers try to push into their companies from the bottom.
Also, none of the languages you listed have a very particular niche that differs from what they were used early on apart from Java which is now mostly used on the server and used to also be used in GUI applications more.
-
The point of Java is to be a language for 90% of programmers. The vast majority of software development is not sexy, doesn't require a PhD. Java was intended to be a commoditising language and in that it succeeded wildly.
it succeeded in holding back the entire field of programming for a decade via that mindset by having people blindly apply stupid Java design patterns to everything.
-
The argument I agree with is that Python is the best language to learn if it's your only language, and Java is the best first language if you're going to learn others. The syntax from Java is shared across so many other languages and it forces you to learn about things like objects and types. You could make an argument for C or C++ but Java's handholding is more beginner friendly imo
Python isn't really strict enough to be a good learning language and Java has too much accidental complexity that literally matters in no other language.
-
There's always Kotlin. Of course I never understood the desirability of a VM language in the first place, why not just compile for different architecture?
"Write once, run anywhere" is a pipe dream but Java came closer than anyone else by far.
-
Java is nothing like Rust. Java was always sold as a low skill programmer language, Rust has a steep learning curve. Java tooling has always sucked where Rust has excellent tooling pretty much since 1.0, Java is extremely verbose and needs a lot of tools to generate code to be productive at all, Rust is very expressive and most people write the code by hand or just use built-in language features. Java has a culture of "who care about that backtrace in my log as long as the app does what it is supposed to" while Rust has a culture that very much cares about correctness more than performance. Java was always driven by CEOs pushing it on people from the top while Rust is very much a language programmers try to push into their companies from the bottom.
Also, none of the languages you listed have a very particular niche that differs from what they were used early on apart from Java which is now mostly used on the server and used to also be used in GUI applications more.
You hate Java, you love Rust, noted.
Also:
SAP,
Graphics,
Data science,
Web.
Good day.
-
Java was also my first introduction to programming as it was included in Computer Science in final year of school (at college, we did the trusty C).
I think they have replaced Java with Python now in schools because of the latter's popularity and also because many would argue, Python is slightly easier to learn than Java.
I learned C++ as my first language and it was a great way to understand the core issues of a programming language — like memory allocation, memory freeing, the difference between memory addresses and the memory contents themselves, threads, system calls, etc. Java obscures these nuances to a degree, but Python is too friendly and makes it hard to understand them at all.
I believe if you learn C++ you can easily learn any other language. After C++, I learned Python, JavaScript, and Java in a few days each without formal instruction. If you learn Python first, you’re probably going to struggle learning those other languages because you haven’t grasped the lower level concepts yet and may never if you’re not in a formal setting that forced you to learn them.
No one disagrees that Python is easier, but if your goal is to get a foundation in programming that allows you to easily pick up other languages, you should start with C++.
-
The difference is people still write Java, regardless of whether it's a dated pos or not, so the use cases have evolved
Then there's the use of the JVM/JRE which have evolved even more due to Scala, Clojure & Kotlin
COBOL is still being updated because, believe it or not, people are still writing COBOL
-
This post did not contain any content.
I attribute Java's uptake to a large amount of marketing and support, which led to a massive ecosystem. Even a mediocre language like this one can find success when propped up like that.
-
You hate Java, you love Rust, noted.
Also:
SAP,
Graphics,
Data science,
Web.
Good day.
Yes, I have Java and love Rust but the point is that if you say they all go through the same cycle there need to be some commonalities between the languages and the way they rise to popularity and there just aren't. If any modern language resembles Java's rise to popularity it would be Go.
-
The argument I agree with is that Python is the best language to learn if it's your only language, and Java is the best first language if you're going to learn others. The syntax from Java is shared across so many other languages and it forces you to learn about things like objects and types. You could make an argument for C or C++ but Java's handholding is more beginner friendly imo
First learn C, then learn C++, then learn Java. In that order, each will make you appreciate what the previous one lacks. From there, you should pretty much be able to learn anything.
-
It's a cycle all popular languages go through. First only experimental applications and super opinionated programmers use it. Then everyone wants to use it for everything. Then it finds a niche where it excels and settles.
I remember Java, C++, Python, and JavaScript going through those phases as well. Currently, everything is Rust.
JavaScript kind of had a weird path though, with like a rebirth on server side, and then all these trendy libraries and frameworks and other bullshit.