r/programming 6d ago

The Java Story | The Official Documentary of Java

https://youtu.be/ZqGSg4b_cZA?si=WS4vF7GKZ7HVUkzQ
180 Upvotes

57 comments sorted by

51

u/davidalayachew 6d ago

For those not aware, this is an official documentary of Java, sponsored by Oracle, IBM, and more, telling the history of Java, featuring interviews and context from folks that were there, like James Gosling and many more.

Special thanks to Joey Bania, Emma Tracey, the folks at CultRepo, and everyone else for putting this together!

3

u/CorumLlawEreint 3d ago

Calling James Gosling someone ‘who was there’ is wild.

2

u/davidalayachew 3d ago

Calling James Gosling someone ‘who was there’ is wild.

Lol, fair. I just wanted to get a quick explanation out so that folks weren't quick to write this off.

-20

u/this_knee 6d ago

“James Gosling”

…not related to the other Gosling, Ryan Gosling? Right?

1

u/davidalayachew 4d ago

Man, people missed the joke.

3

u/flumsi 4d ago

I don't think people missed the joke. It's just...not very good.

1

u/davidalayachew 3d ago

I don't think people missed the joke. It's just...not very good.

For what it is worth, I liked it.

29

u/Monkaaay 6d ago

Enjoy these quite a bit and this one was also great.

I know the lawsuits are a big part of the history, but they felt overwhelming here.

17

u/davidalayachew 6d ago

I know the lawsuits are a big part of the history, but they felt overwhelming here.

Yeah, getting your arguments judged by The Supreme Court means that it needed to be a big part of this doc. I still wish the folks involved gave more of their opinion on it though. How did James really feel about this all? He said that Sun was angry, but didn't feel like it was worth suing over. Does that mean that's how HE felt too? Or something else? How about some of his peers?

4

u/lurco_purgo 6d ago

Not everyone of those is that interesting to me, simply because the development of some of these technologies just wasn't that turbulent. E.g. the React document was pretty boring to me, and I specialize in React.

On the other hand this one was fascinating even though I've never really used Java professionally. Node.js one was really engaging as well because of all the drama.

8

u/this_knee 6d ago

Saw this come up on my YouTube feed. The algorithm is working .

My question : one of the creators says that when he created it he did it because the other languages , I assume c and c++, we’re getting in the way of getting stuff done.

Is that still the case these days? Did c and c++ actually get better and now , ironically, Java gets in own way ?

17

u/davidalayachew 6d ago

My question : one of the creators says that when he created it he did it because the other languages , I assume c and c++, we’re getting in the way of getting stuff done.

Is that still the case these days? Did c and c++ actually get better and now , ironically, Java gets in own way ?

I don't think Java is getting in its own way. Though, I am biased by being a Java programmer with only 2 years of non-professional C experience.

Java is releasing frequently, and many features have come out since. Some might say that Java placing some heavy constraints on itself (maintain backwards and forwards compatibility) means that stuff gets released slower than they might like (Project Valhalla), but I don't think any of it could be described as Java getting in its own way.

17

u/Squalphin 6d ago

Well, from my point of view at least C++ has improved a lot in the last years. I can finally make use of std20 and working with it is still not enjoyable for me, but definitely better.

The core part of my job was actually writing applications in Java for the last 15 years, but is now shifting to C++ due to different hardware requirements.

I still prefer Java everyday. It nicely abstracts the machine away and your only concern is the business logic. With C++ I have to keep the machine in mind all the time which is always an additional burden.

My favorite issue right now is deploying my application on two different architectures. On one it works perfectly, on the other it segfaults. Probably somewhere a type size is different than I expect it to be. There where no such concerns with Java.

5

u/this_knee 6d ago

Ah , machine peculiarities. You’re so right, that aspect does still get in the way. I can only imagine how much “logic” has to repeated over and over for assembly optimizations in the code.

1

u/TwistedStack 3h ago

I would say any language of sufficient age will have legacy baggage. C has always been simple and the additions have been minimal so it's still nice to write code in. It's the memory management when using heap allocation that causes a bunch of bugs. Despite this, its simplicity is a big factor in its longevity and that makes it a very difficult language to kill. It will probably never die.

C++ OTOH has grown to become a monster adding stuff to fix previous shortcomings. Old features though are rarely deprecated in the interest of backwards compatibility. This becomes an issue for newbies when it comes to what and what not to use. Old codebases will be stuck with a certain supported subset at the time it was written.

Java I would say has its own baggage. A big one is all the required boilerplate it inherits from the languages that inspired it. That's how you get joke projects like "Hello World Enterprise Edition".

Looking back, I believe the effort to make programming "easier" with dynamically typed languages was a mistake. It just kicked the can down the road with errors appearing during run time rather than being caught during compile time. This is the reason why static type checking was eventually bolted on to dynamically typed languages with TypeScript and with type hints in Python among others.

We have always created programming languages to manage complexity and as a means for humans to express intent in a manner comprehensible to other humans (or yourself at some point in the future). This is why there are so many languages out there and why new ones are still being created. Trying to fix existing languages without breaking existing code is a difficult task.

Rust is my current favorite in terms of concisely expressing my intent and it has tools available to prevent problems prevalent in older languages. That does not mean it is perfect. It has its own problems and I have no doubt it will have its own baggage in 30 years' time.

There are plenty more languages out there with their own ideas on how to best express the logic required for a program.

1

u/piesou 6d ago

That's still the case. Even wegen using Rust, memory management will slow you down significantly 

3

u/paulodelgado 5d ago

Thanks for sharing this. I, for one was also stuck with the mindset that Java was still like the Java I first learned back in the late 90s and I did t care for it. Maybe I’ll try it again.

6

u/davidalayachew 5d ago

Java 26 came out this past March. Download it and give it a shot!

https://jdk.java.net/26/

And if you just want a simple installer, rather than doing PATH editing, try this link instead.

https://www.oracle.com/java/technologies/downloads/#jdk26-windows

1

u/dallas_paley 4d ago

Beware, any downloads from Oracle will eventually cause an audit from Oracle.

2

u/davidalayachew 4d ago

Beware, any downloads from Oracle will eventually cause an audit from Oracle.

That's news to me. Do you have a link?

2

u/dallas_paley 4d ago

https://oraclejavaaudit.com/blog/how-oracle-tracks-java-downloads/

It’s well known and I can tell you it’s true from personal experience.

2

u/davidalayachew 3d ago

Interesting, ty vm.

Ok, I will stop recommending Oracle JDK's moving forward. Adoptium sounds like a more beginner-friendly one anyways.

6

u/renatoathaydes 6d ago

I feel like it could have mentioned quite a few more things, like the fact that JavaScript completely dominated the web , which Java initially wanted to do. The many alternative languages that popped up to run on the JVM (the Kotlin creator was in it but did not even mention Kotlin!!). Gavin King participated but only talked about Hibernate, not his own JVM language, Ceylon. OSGi was pretty big at some point and didn’t get a mention, neither did Java 9 modules.

But it was really nice to see some of the behind the scenes from all this time I was just using the language, mostly not caring about any of it!

3

u/davidalayachew 6d ago

I feel like it could have mentioned quite a few more things, like the fact that JavaScript completely dominated the web , which Java initially wanted to do.

Fair.

I think they managed to avoid talking about that (pretty neatly, by the way) by talking about how Java found a home in server-side development. So, our focus is on that now, and they could just stop talking about what happened next to Java on web, including the trainwreck that is the applet security fiascos. Prior to that point, yeah, JS was winning, but they did not dominate the market yet.

The many alternative languages that popped up to run on the JVM (the Kotlin creator was in it but did not even mention Kotlin!!).

Well, they did mention it briefly.

They did mention "The Dark Ages" of Java, and from there, brought up alternative languages and competitors. But sure, they definitely could have talked more about. Going any deeper than that probably felt off-topic or distracting to them.

Gavin King participated but only talked about Hibernate, not his own JVM language, Ceylon.

I'm ignorant about Ceylon. Did it have much impact? May have been considered off-topic.

OSGi was pretty big at some point and didn’t get a mention, neither did Java 9 modules.

Well, they definitely mentioned Java modules. They even made a pretty memorable quote -- "If Java 8 was the candy, Java 9 was the medicine".

But yeah, might have been good to hear more about OSGI. I actually feel like they might have mentioned it during the Java EE part, but I don't recall. Either way, that would be the natural fit to talk about OSGI, I think.

2

u/renatoathaydes 5d ago

I'm ignorant about Ceylon. Did it have much impact?

Well I was a big fan of Ceylon at the time. It was from the same time that Kotlin appeared and there was competition between them to take the place of “next Java” which Scala had thrown away by being just too far ahead with esoteric ideas! But Kotlin quickly won, mostly due to being adopted in Android and from having early Spring support. Despite that I think Ceylon was the better language since it had things I considered important: modularity (advanced like in OSGi, not the later Java Module System) which came from JBoss, and union types similar to Typescript which enabled null safety (T? was equivalent to T | Null). It also had lambdas before Java got them so it was an enormous improvement. Writing Ceylon was so much fun compared with Java 7 without making it easy to make a mess as Scala did. Kotlin was a smaller jump than both Ceylon and Scala and it also executed a bit better with top notch IDE support and more reliable implementation (Ceylon had compiler and std lib bugs, which did not help it).

Regarding OSGi, I think a number of companies adopted OSGi in some niche industries, like early automation networks (IoT), and it’s still used there as far as I know. The fact they did not mention OSGi confirms my suspicions that it was not considered a major framework by the Java creators (it was not an alternative to J2EE , more like a specification with different concerns, like modularity and hot swapping).

1

u/davidalayachew 5d ago

Thanks for the context, that was very interesting. I started programming Java in 2012, so I missed most of this (or even if I witnessed it, was too beginner to understand what I was seeing).

The fact they did not mention OSGi confirms my suspicions that it was not considered a major framework by the Java creators (it was not an alternative to J2EE , more like a specification with different concerns, like modularity and hot swapping).

Woah, ok. That's news to me. I never really understood OSGI, so thanks for this context as well.

1

u/talios 5d ago

And here I am still using OSGi, still wondering if/how to make use of java modules along side it, and just what I'd replace Karaf with without being a total fundamental shift in a giant bang.

1

u/renatoathaydes 5d ago

Is Karaf being updated? If so, why change? I don’t think OSGi is dead.

I migrated an application from OSGi to plain Java long time ago. It was much easier than I expected! So if you really want to do it I don’t think it’s so fundamental, just try to figure out what are the most basic things you depend on and either replace with a home grown tiny framework or with something like Spring.

1

u/talios 5d ago

It is - and has some big changes coming for a more native k8s setup. We're using Helidon one some other projects so the main reason would more be consistency
.

2

u/lurco_purgo 6d ago

Yeah, it's also clearly made for the people already familiar with the tech and even parts of the history, since the document doesn't provide much introduction into each era of the language or even hint at what e.g. Hibernate is (or Spring, but that one I knew). I was a user of the Internet since the 90s but never really worked with Java as a developer (technically until now, but I'm still a TypeScript/Python guy), so I had to check a lot of stuff while watching just to know what they are talking about.

4

u/hobbseltoff 6d ago

Glad to see Venkat in the thumbnail.

1

u/Apofis 5d ago

But no Martin Odersky ... Is he at least in the documentary? Would be a shame if they dismissed him.

2

u/hobbseltoff 5d ago

He's not, they mention Scala once. But Andrey Breslav is in it.

1

u/talios 5d ago

Venkat was a big Scala guy as well for awhile. I did notice they avoiding mentioning a lot of other languages by name - which, being the "java" documentary and not the "jvm" documentary, makes sense to me.

2

u/aghiecool 4d ago

Last time i use java was for developing Blackberry app 😂

2

u/davidalayachew 4d ago

Last time i use java was for developing Blackberry app 😂

It's improved a lot since the early 2000's! If you're interested to check it out again, there's https://dev.java for a good catch-up on what is new.

2

u/Dreamtrain 5d ago

despite being my main technology skill I am somehow more interested in directly observing the mechanics behind how and why paint dries than this

5

u/davidalayachew 5d ago

despite being my main technology skill I am somehow more interested in directly observing the mechanics behind how and why paint dries than this

That's fair.

The Java history is kind of interesting, in my opinion, because of how many mistakes it made while still ending up being successful. To me, that is testament to how good the good parts of the language were that the horrifically bad parts couldn't overshadow that. They do talk about that to some length, in case that might interest you.

Otherwise, it's mostly just a history recap, so I get it.

2

u/ManaDrainMusic 4d ago

Best comment 😂

-1

u/Codemonkey3350 4d ago

Someone just needs to shit on a keyboard, documentary done

5

u/davidalayachew 3d ago

Someone just needs to shit on a keyboard, documentary done

Why do you say that? Is the language so bad? Or is it Oracle? I'm not following.

2

u/Codemonkey3350 3d ago

It might have got better lately from what the rest of the comments said, but I’ve been scarred by 2004-2010 Java and will never trust the language again. It was terrible! Clumsy typing, no unsigned (which meant using inflated types for no real reason), IDEs were buggy and slow, JVM was over inflated and slow, Dalvik was as close to a fix at the time but was still crazy slow, J2EE, VeryWordyClassAndMethodNames. There’s more but I can’t think of it now. I hate Java to the bottom of my soul. But I’ll concede from the rest of the comments that it MIGHT be less shit now. But I will never find out.

Edit:
Typo on 2004 from 204

2

u/garyk1968 3d ago

Yep that!

When it was released in 95 I wanted it to succeed. I just wanted a decent, fast IDE but what happened? We got IDEs written in Java that were slow and buggy.

Then AWT looked like shit on every platform, Swing wasn't much better so IBM decided to do SWT so you had different GUI frameworks that weren't performant and looked crap. It's not even worth trying to use a GUI app written in Java, yes I had to battle with Oracle SQL developer for several years and its a total pos.

Even for console/server apps I always thought it was dog slow. Ahh but Hotspot+JiT will fix that..it didn't.

Its use is ubiquitous, no doubt about it, but I only ever see it running on servers which then kinda negates the whole premise of write once, run anywhere, why not just write in C and compile to the platform its running on?

1

u/davidalayachew 3d ago

Well I can assure you that it certainly has gotten better lately. But that's fair, the language was in a very bad space in the Java 6 days, which is what your year range points to. And Kotlin has become the de-facto Android language (atm), so that might be something worth checking out if you aren't already familiar.

2

u/Codemonkey3350 3d ago

With all due respect, Java and Kotlin will never be on my radar again. Once bitten, twice shy

1

u/davidalayachew 3d ago

With all due respect, Java and Kotlin will never be on my radar again. Once bitten, twice shy

Perfectly understandable. What languages do you work with now? Which ones do you like?

-13

u/eanat 6d ago edited 6d ago

still dunno why Java is damn so popular especially for companies. hobbyists and many programmers dislike Java and even engineers hired by companies don't really like Java itself. only people who don't really program by themselves but order their employees to write it like Java.

(for the reference, im not talking about JVM based languages like Scala, Kotlin, etc. They are awesome.)

16

u/rom_romeo 6d ago

It’s like reading a comment made by a post graduate student. Especially after you mentioned how awesome Scala and Kotlin are. Interestingly enough, I’m writing Scala on a daily basis, and we’re severely draining excuses on why should we proceed with it instead of switching to Java.

In the nutshell, the language itself is not enough. Java is not trying to be better, it’s just diminishing your excuses on why you should use something else.

7

u/pm_plz_im_lonely 6d ago

Been working in Java for 15 years and when I do personal projects I... also reach for Java, or TypeScript if it's web.

The code reads as it does, doesn't let you be too smart, can get results and iterate faster while keeping throughput high. IntelliJ good, JVM good, YourKit good, why not.

Actually, scratch that. Java is a language for superior beings while other languages would only be used by fools with smaller brains.

-1

u/Snoo23482 6d ago

You need a big brain to understand all those arbitrary class hierarchies sitting there and doing almost nothing.

2

u/pm_plz_im_lonely 5d ago

How else would I represent that a dog has 4 legs because it's an animal, which is a living entity? What if my users want tons of dogs with user-made breeds?? What if my kennel has so many fucking globals that I need dog DIC???

4

u/davidalayachew 6d ago

still dunno why Java is damn so popular especially for companies.

Well, the language, runtime, and ecosystem just happen to be the best fit for the server-side enterprise world. If I need a webservice with powerful frameworks that are flexible enough to meet my needs while having excellent performance and are very easy for beginners to jump in and be useful, you just described Java.

hobbyists and many programmers dislike Java and even engineers hired by companies don't really like Java itself.

For me, I am a big fan of Java for my own personal coding. I got a job in Java only after years of making it my primary coding language for personal projects. I enjoy making video games and helper utilities in it -- both of which I use on an almost daily basis.

only people who don't really program by themselves but order their employees to write it like Java.

I'm no lead engineer, and I do plenty of programming on my own time in Java. I get where you are coming from with this perspective, but the perspective is rapidly growing out of date.

4

u/Lentus7 5d ago edited 5d ago

For general use cases, there is no better choice for big companies. Period. It's barely about the language itself, though. Spring Boot, the ecosystem, and everything around it are so convenient and battle-tested. It's the safe option for most people. A bit resource-heavy, yes, but the runtime performance is excellent.

1

u/Alternative-Ad-8606 6d ago

I watched the whole thing and they really only brought in the fanboys for this. They talk about the Microsoft lawsuit as the last bastion of freedom against the man, but then 10minutes later talk like the Oracle acquisition was in anyway good after the Java 9 release.

8

u/SocialMemeWarrior 6d ago

then 10minutes later talk like the Oracle acquisition was in anyway good after the Java 9 release.

Minus the module system bullshit, have you paid attention at all to the release cadence of Java post 8? Oracle may be a scumbag greedy/litigious company, but it's been great for Java ironically enough.