Open Menu
AllLocalCommunitiesAbout
lotide
AllLocalCommunitiesAbout
Login

Java at 30: How a language designed for a failed gadget became a global powerhouse

⁨377⁩ ⁨likes⁩

Submitted ⁨⁨3⁩ ⁨days⁩ ago⁩ by ⁨kirk781@discuss.tchncs.de⁩ to ⁨technology@lemmy.world⁩

https://www.zdnet.com/article/java-at-30-how-a-language-designed-for-a-failed-gadget-became-a-global-powerhouse/

source

Comments

Sort:hotnewtop
  • Cobrachicken@lemmy.world ⁨3⁩ ⁨days⁩ ago

    Fuck Oracle.

    source
    • AtariDump@lemmy.world ⁨3⁩ ⁨days⁩ ago

      One Rich Asshole Called Lary Ellison

      source
      • BoycottPro@lemm.ee ⁨2⁩ ⁨days⁩ ago

        His political contributions are really on brand. He funded election deniers in 2022.

        Also I’ve heard they have a bad reputation when it comes to government contracts, very expensive poor quality software ripping off our taxpayers. I think they ought to be blacklisted or at-least require extra review due to their reputation.

        source
      • kirk781@discuss.tchncs.de ⁨3⁩ ⁨days⁩ ago

        Lary Ellison is one of the richest men in the world right and owns some kind of private island or something that he bought basically after showing his shares of Oracle stock?

        source
  • omgboom@lemmy.dbzer0.com ⁨3⁩ ⁨days⁩ ago

    30 years of pain

    source
  • kirk781@discuss.tchncs.de ⁨3⁩ ⁨days⁩ ago

    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.

    source
    • kescusay@lemmy.world ⁨3⁩ ⁨days⁩ ago

      Python is easy, but it can also be infuriating. Every time I use it, I’m reminded how much I loathe the use of whitespace to define blocks, and I really miss the straightforward type annotations of strong, non-dynamically typed languages.

      source
      • masterspace@lemmy.ca ⁨3⁩ ⁨days⁩ ago

        Most overrated language imho. I actually enjoy Java more.

        source
      • sugar_in_your_tea@sh.itjust.works ⁨3⁩ ⁨days⁩ ago

        You can annotate types in Python, and it’s actually pretty nice when used with Pyright/Pylance.

        source
        • -> View More Comments
      • Enkimaru@lemmy.world ⁨2⁩ ⁨days⁩ ago

        Try ‘Nim’. It is Pythonic language with static typing.

        source
      • TerHu@lemm.ee ⁨3⁩ ⁨days⁩ ago

        use bython, python with braces XD

        source
        • -> View More Comments
      • rottingleaf@lemmy.world ⁨2⁩ ⁨days⁩ ago

        I hated something about Python, and avoided it, until encountering Tcl which for me fulfills the same role that Pythons seems for many people, but Tcl is really much more pleasant. IMHO.

        source
      • LedgeDrop@lemm.ee ⁨3⁩ ⁨days⁩ ago

        Preach it! 🙌⛪

        source
    • gravitas_deficiency@sh.itjust.works ⁨3⁩ ⁨days⁩ ago

      I don’t think weakly- or dynamically-typed languages are a good thing to base computer science curriculum around. Yes, it’s “easier”. But you will genuinely have a FAR better understanding the language and the logic you’re writing in it if you work in the scope of strong and static typing - or, at least have linters that force you to (e.g. mypy for Python)

      source
    • padge@lemmy.zip ⁨3⁩ ⁨days⁩ ago

      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

      source
      • taladar@sh.itjust.works ⁨3⁩ ⁨days⁩ ago

        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.

        source
      • jaybone@lemmy.zip ⁨3⁩ ⁨days⁩ ago

        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.

        source
        • -> View More Comments
    • MolecularCactus1324@lemmy.world ⁨3⁩ ⁨days⁩ ago

      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, and the difference between memory addresses and the memory contents themselves. Java obscures these nuances to a degree, but Python is too friendly and makes it hard to understand them.

      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++.

      source
      • pycorax@lemmy.world ⁨2⁩ ⁨days⁩ ago

        Imo people should start with C first since it is a lot simpler than C++ while still providing a lot of what you mentioned. C++ adds a lot of things like name mangling, templates, L & R value references that can quickly make things a bit more daunting for beginners.

        I also generally find error messages for C a lot more parsable for beginners than C++ ones.

        source
      • jenesaisquoi@feddit.org ⁨2⁩ ⁨days⁩ ago

        C++ is a monster. I’d suggest C instead to learn about these basic ideas.

        source
        • -> View More Comments
    • chakan2@lemmy.world ⁨3⁩ ⁨days⁩ ago

      They did, but it makes me sad. Python is becoming the next JavaScript because of its ease of use.

      The Java guys simply don’t understand how to code without the gang of 4 crutch to lean on.

      source
      • gedhrel@lemmy.world ⁨2⁩ ⁨days⁩ ago

        Some of the GoF patterns over-emphasise inheritance, but by-and-large, you don’t build large systems without either using or rediscovering software patterns, whether they’re OO, FP, or what-have-you.

        source
    • atomicbocks@sh.itjust.works ⁨3⁩ ⁨days⁩ ago

      Python is interpreted where Java is compiled. They aren’t going to be able to be used in the same cases all the time.

      source
      • jenesaisquoi@feddit.org ⁨2⁩ ⁨days⁩ ago

        Not true. They use the same model, executing compiled bytecode. It just feels like directly running a script because Python compiles it to bytecode on the fly, and because it is embarrassingly slow.

        source
    • MrRazamataz@lemmy.razbot.xyz ⁨2⁩ ⁨days⁩ ago

      In a first year computer science course at uni I can say they teach us Python, Java, and C, all with slightly different use cases.

      source
  • nasi_goreng@lemmy.zip ⁨2⁩ ⁨days⁩ ago

    Lol, as Javanese, It’s funny that Javanese ethnic name -> Javanese coffee -> Javanese programming language.

    People still keep thinking that I was a programmer or making a typo of Japanese everytime I mention I speak Javanese.

    source
    • meliaesc@lemmy.world ⁨2⁩ ⁨days⁩ ago

      The language was initially called Oak after an oak tree that stood outside

      Things could have been a lot different!

      source
      • juja@lemmy.world ⁨2⁩ ⁨days⁩ ago

        Oakscript does have a certain ring to it

        source
      • funkless_eck@sh.itjust.works ⁨2⁩ ⁨days⁩ ago

        “fucking oak what the fuck” still works so not that different

        source
  • wolf@lemmy.zip ⁨3⁩ ⁨days⁩ ago

    Java is IMHO one of the most underrated platforms outside of enterprise environments.

    Most people also forget, that Java is not only a language, but also a platform, an ecosystem and active research is applied to many parts of Java.

    Concerning Oracle: OpenJDK is actively supported by very different but big and capable companies (IBM, Amazon, Eclipse Foundation…). The quality of the language, libraries and documentation needs people which are payed to work on this, full time.

    Bring to this the free IDEs one can get for Java - Eclipse and Netbeans are a little bit old school, but offer everything to build/debug and develop complex software.

    Java is not my favorite programming language, but when I want to write interesting software and ensure it will be running for the next decade w/o significant changes, Java is really hard to beat.

    Of course, in hindsight we know how to do a lot of things better as they were done in Java. Still, what other open source Language/Platform/documentation with the backing of capable companies and really independent and interoperable builds are out there?

    One last note to all people which were damaged by Java in university or school: Usually the teachers/professors/lecturers have no real world experience of software development besides the usually university projects, and for the usual university projects which basically means getting small to midsize projects to run Java is total overkill.

    Don’t confuse this with real world software projects in the industry, which are mission critical and need to work a decade from now on. Java was always a bread and butter language, but one which learned from other languages and even the verbosity makes sense, once one dives into code written a few years back by another person.

    source
    • KeenFlame@feddit.nu ⁨1⁩ ⁨day⁩ ago

      My 2 cents is that it would have flourished a lot longer if eclipse wasn’t stretched so thin like using a very thick amorphous log that is somehow still brittle? And ugly? As a bookmark.

      source
  • taiyang@lemmy.world ⁨3⁩ ⁨days⁩ ago

    I keep Java installed for one thing and one thing only… modded Minecraft.

    source
  • neidu3@sh.itjust.works ⁨3⁩ ⁨days⁩ ago

    I liked Java a lot more before Oracle acquired Sun. I’ve used Oracle databases enough to not trust Oracle.

    source
    • deathmetal27@lemmy.world ⁨2⁩ ⁨days⁩ ago

      I think I need to clear a common misconception people seem to have here: Oracle has very little to do with Java.

      At most, Oracle has the following connection to Java:

      • Own the trademark
      • Have a build of the JDK/JRE with commercial support.

      However, Java as a language’s baseline comes from OpenJDK, an open source (GPL 2.0) community project which is upstream to several builds including Oracle’s JVM. It follows a “bazaar” like development model similar to the Linux kernel where you can see their mailing lists and track what’s being worked on. Anyone can contribute and the code is on Github: github.com/openjdk/jdk.

      That being said, you don’t even need to use Oracle’s JDK (it sucks IMO) and use one of the community provided builds of OpenJDK. OpenJDK builds are provided by Eclipse, Amazon, Azul, Bellsoft and even Microsoft provides JDK/JRE builds. These are free of cost and have longer term support than Oracle’s offering.

      source
    • surewhynotlem@lemmy.world ⁨3⁩ ⁨days⁩ ago

      Open jdk is where it’s at

      source
      • JackbyDev@programming.dev ⁨2⁩ ⁨days⁩ ago

        Yep, thanks to the AdoptOpenJDK project which really helped make OpenJDK builds available for all platforms. (It is now called Eclipse Temurin and Adoptium.)

        source
    • sik0fewl@lemmy.ca ⁨3⁩ ⁨days⁩ ago

      Java was stagnating under Sun, unfortunately. I hate to say it, but Oracle probably saved Java.

      source
      • rottingleaf@lemmy.world ⁨2⁩ ⁨days⁩ ago

        But!.. Sun Java included internationalized set of Lucida fonts with proper hinting. Oracle removed that for whatever reason.

        source
        • -> View More Comments
  • chronicledmonocle@lemmy.world ⁨3⁩ ⁨days⁩ ago

    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.

    source
    • toastmeister@lemmy.ca ⁨3⁩ ⁨days⁩ ago

      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?

      source
      • chunes@lemmy.world ⁨3⁩ ⁨days⁩ ago

        “Write once, run anywhere” is a pipe dream but Java came closer than anyone else by far.

        source
      • padge@lemmy.zip ⁨3⁩ ⁨days⁩ ago

        It can help with standardization and some security benefits to run things in the JVM, part of the reason it’s so popular in enterprise

        source
      • Enkimaru@lemmy.world ⁨2⁩ ⁨days⁩ ago

        JIT compiling and byte code morphing and instrumentation. For instance data base persistence is usually done by instrumentation tools, that add instructions to keep track about transactions and modified objects, or new objects that need persisting. And endless more things.

        source
      • Albbi@lemmy.ca ⁨3⁩ ⁨days⁩ ago

        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.

        source
    • GreenKnight23@lemmy.world ⁨3⁩ ⁨days⁩ ago

      fucking tomcat and jboss…

      source
  • who@feddit.org ⁨3⁩ ⁨days⁩ ago

    I attribute Java’s success to a massive 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.

    source
    • hex123456@sh.itjust.works ⁨3⁩ ⁨days⁩ ago

      Java was the new hotness when I was in the middle of my comp sci degree. The biggest benefit I found was javadocs. Other languages had shit documentation that usually didn’t match reality in comparison.

      source
      • pinball_wizard@lemmy.zip ⁨2⁩ ⁨days⁩ ago

        Yes. JavaDoc was/is good.

        There, I said something nice about Java. I’m giving myself a gold star, and going to stop typingm

        source
    • rottingleaf@lemmy.world ⁨2⁩ ⁨days⁩ ago

      JVM isn’t mediocre. Really-really.

      I don’t like something aesthetically about Java, can’t quite nail what, and don’t like long-long namespace strings, but these are my personal limitations.

      Ah. I also don’t like OOP.

      source
    • PushButton@lemmy.world ⁨2⁩ ⁨days⁩ ago

      I am going to be decapitated for this, but you’re totally right.

      You only have to look at Rust. An horrible language with a massive hype machine and an army of zealots pushing it everywhere.

      I can’t understand how people are complaining about the java boiler plate and its verbosity, while promoting Rust every time they can.

      source
    • JackbyDev@programming.dev ⁨2⁩ ⁨days⁩ ago

      For me it’s the tooling surrounding it that makes it nice.

      source
      • who@feddit.org ⁨2⁩ ⁨days⁩ ago

        Yes, that’s part of the ecosystem. :)

        source
  • YurkshireLad@lemmy.ca ⁨2⁩ ⁨days⁩ ago

    I think Java was first released just after I graduated. I do program Java at my day job though, and I don’t mind it. It has its quirks but I find I can express myself using Java, but I probably try to think towards much in OO paradigms when I design and code.

    source
    • liang@thelemmy.club ⁨2⁩ ⁨days⁩ ago

      thing thing = thing

      gets to be pretty old

      source
      • PushButton@lemmy.world ⁨2⁩ ⁨days⁩ ago

        For your information, since java 10, 2018, 7 years ago, it’s

        var thing = Thing like most languages.

        You should update your java knowledge.

        source
        • -> View More Comments
      • JackbyDev@programming.dev ⁨2⁩ ⁨days⁩ ago

        You can do var thing = new Thing(); now.

        source
  • Zenith@lemm.ee ⁨2⁩ ⁨days⁩ ago

    This dude came to my spouses work to do some sort of work/help (I don’t know the exact details) and someone wrote a doc he needed to review. It was a lot of work not just like a few notes but a proper doc and all he wrote back upon “reviewing” it was a thumbs up emoji!! 👍🏻 everyone was shocked lol, no feed back, no notes nothing just 👍🏻

    source
    • pulsewidth@lemmy.world ⁨2⁩ ⁨days⁩ ago

      👍

      source
  • gamer@lemm.ee ⁨3⁩ ⁨days⁩ ago

    I used Java years ago for Android dev, but stopped when I stopped doing that. Every once in a while I’ll get the itch to work on a new project, and always wonder if Java would be a good idea.

    My hesitance is that I don’t trust Oracle (and don’t know to what extent they’re involved nowadays), I’m not familiar enough with the ecosystem to know what is legacy crap to avoid, and I think it’s generally seen as an uncool language, and I’m way too cool to be taking such risks.

    source
    • MaggiWuerze@feddit.org ⁨3⁩ ⁨days⁩ ago

      If you want to do something java like, try Kotlin. Its a more modern take on java and not developed by Oracle

      source
      • pycorax@lemmy.world ⁨2⁩ ⁨days⁩ ago

        I’m so grateful for Kotlin, it gets rid of so much of the annoyances in Java.

        source
      • Pieisawesome@lemmy.dbzer0.com ⁨3⁩ ⁨days⁩ ago

        Kotlin is very similar to C# in my opinion.

        It’s a happy middle ground for me

        source
        • -> View More Comments
    • jenesaisquoi@feddit.org ⁨2⁩ ⁨days⁩ ago

      Kotlin is now the language of choice for Android.

      source
      • Enkimaru@lemmy.world ⁨2⁩ ⁨days⁩ ago

        Rather Dart and Flutter.

        source
        • -> View More Comments
    • Enkimaru@lemmy.world ⁨2⁩ ⁨days⁩ ago

      Oracle has nearly nothing to do with Java. OpenSDK is developed by the Apache Foundation.

      source
  • ferrule@sh.itjust.works ⁨2⁩ ⁨days⁩ ago

    java was my 5th language, having just missed it as the AP CS language in highschool by a year. oddly i could not get behind such a massive standard library having come from BASIC, Pascal C++, ASM, VHDL. now after 30 years of programing i write Java web services for a living. feels strange.

    source
    • kirk781@discuss.tchncs.de ⁨2⁩ ⁨days⁩ ago

      Oddly, I did know some BASIC and I have vague memories of the numeric line starters like 10 with white text on a black background giving it a retro feel.

      source
  • whotookkarl@lemmy.world ⁨3⁩ ⁨days⁩ ago

    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.

    source
  • Peppycito@sh.itjust.works ⁨3⁩ ⁨days⁩ ago

    Hadouken handshake

    source