No video

Ranking Java Features Added from Versions 8 to 21!

  Рет қаралды 1,556

Tales from the jar side

Tales from the jar side

Күн бұрын

Ranking Java Features from Java 8 to 21 | Ken Kousen's Ultimate Tier List
Join Ken Kousen in 'Tales from the Jar Side' as he ranks the biggest Java features introduced between versions 8 and 21. With over two decades of experience in the Java ecosystem, Ken gives his personal take on functionalities like functional programming, records, text blocks, sealed classes, and more. He categorizes them into tiers ranging from 'Pure Awesomeness' to 'Seriously? No.' Discover which features have transformed his coding practices and which ones fell flat. Whether you're a seasoned Java developer or a curious newbie, this insightful breakdown is not to be missed!
0:00 Java Tier List
01:26 Tier List Introduction
02:34 Functional Features
03:27 Collection Factory Methods
04:31 LVTI
05:49 HTTP Client API
07:57 JShell
09:30 Single File Code Execution
11:34 Switch Expressions
12:51 Text Blocks
14:04 Records
15:23 Pattern Matching
16:53 Sealed Classes and Interfaces
18:38 Virtual Threads
21:35 JPMS
25:08 Conclusions

Пікірлер: 24
@michaeleaster1815
@michaeleaster1815 Ай бұрын
20:19 IMHO such a benefit in the platform is a big deal, even if I don't use the feature directly! The big story with the system-level features like virtual threads (and somewhat, with modules) is that Java is looking beyond feature-parity with C#: they are looking at Node/Javascript for areas to improve. This is true with respect to throughput metrics, start-up times, binary footprint, and release cadence (IMHO modules and cleaning up the JDK facilitates faster feature development).
@LukasSmith827
@LukasSmith827 Ай бұрын
looking at the changelog of anything is a huge stepping point into mastering it and this helped a lot, although I did have to take a lot of notes lol
@billfly1
@billfly1 Ай бұрын
Great job. I agree with assessments. JMS is good for JavaFX to adding the Java FX components on the Java statement.
@kappaj01
@kappaj01 Ай бұрын
Great summary - agree big time with the shell rating. Never used it and not missing it either. tbh I work 99% in Spring env, so the HTTP client is pretty much optional for me. TextBlocks is a major feature in my world. Building a lot of rather large json payloads and then testing the app with that - text block is pure magic!
@cariyaputta
@cariyaputta 29 күн бұрын
Nice overview of Java changes.
@omnipoten8
@omnipoten8 Ай бұрын
Your videos are adventurous and informative at the same time . Thanks for sharing!
@michaeleaster1815
@michaeleaster1815 Ай бұрын
super-fun video: thank you! Some comments: (a) I also encourage everyone to read Brian Goetz' article on data-oriented programming, which combines several features into a unified idea. (b) The history of modules, as Ken surely knows, is more complicated, as the OSGi initiative (re: bundles) was getting traction circa 2010, and there were other competing ideas as well. The Java team decided to do their own spec, and _then_ start with the JDK, which took a long, long time. There was serious debate in the community over this; pundits wondered if it would ever be complete (and the OSGi camp was incensed that their work wasn't being used). Java 9 was _finally_ the end result. If the Java team had waited longer, it would have only extended the uncertainty and acrimony. I do agree that adoption and impact seems to be quite low.
@talesfromthejarside
@talesfromthejarside Ай бұрын
Right. The way I remember it, there were members of both the OSGI and the JBoss modules teams on the committee. I think the result was good. It's just that most devs didn't realize they could upgrade and safely ignore modules if they wanted to. Thanks for the comment!
@koncz314
@koncz314 Ай бұрын
Making jigsaw instead of adopting the already existing OSGi solution (not the whole spec) was a mistake.
@Mig440
@Mig440 Ай бұрын
​@@koncz314 well that would have meant no virtual threads. Java modules for the JDK is absolutely essential for that as has been pointed out on numerous occasions. The JDK from before was an unmaintainable mess that got reined in by modules. Modules outside the JDK needs to speed up but luckily it is happening albeit slowly. Try out avaje inject for example. No need for reflection magic to have DI. Now spring adopting moduels can hoepfully speed things up a bit. 😊
@attainconsult
@attainconsult Ай бұрын
great summary thanks
@MattPayneOrg
@MattPayneOrg 25 күн бұрын
Great video! Please do a video about data oriented programming introduced by brian getz
@talesfromthejarside
@talesfromthejarside 25 күн бұрын
I have an app ready. I'm working on a title and thumbnail that describes it without getting way too wordy
@Savatore83
@Savatore83 Ай бұрын
well done, could you do a video for this data driven programming? It could be interesting seeing it together with java 21
@talesfromthejarside
@talesfromthejarside Ай бұрын
One is in the works :⁠-⁠)
@adambickford8720
@adambickford8720 Ай бұрын
I find records to be an anemic and insufficient replacement for lombok. Sure, once you consider pattern matching it's now useful, but otherwise? Nah. Virtual threads are huge. Even if you are just doing a request/response (with no meaningful concurrency control between requests) you'll scale far better. Getting the benefits of reactive w/o the learning curve shouldn't be overlooked. Its one of the rare things i think java's solution is *better* than async/await, co-routines, etc. Its essentially transparent (everything in java has an asterisk) Modules are so you can now treat logical boundaries the same as physical. i.e. all the separation of microservices but with the low price of a monolith. I'd agree it was a dollar short and a day late, but i love the idea. Kind of obnoxious things like spring modulith don't even leverage it.
@farrukhahmedsid
@farrukhahmedsid Ай бұрын
Sequenced Collection? Where you put it?
@talesfromthejarside
@talesfromthejarside Ай бұрын
Oof. I knew I overlooked something. I'm not sure what a good icon would be for that, too. :) Mostly I use the getFirst() method out a lot on lists, so I would put sequenced collections at the "Okay" level, because it does exactly what I expected. Thanks for noticing.
@farrukhahmedsid
@farrukhahmedsid Ай бұрын
@@talesfromthejarside thanks for sharing that.
@emaayan
@emaayan Ай бұрын
another thing about jigsaw is that although it supports modules AFAIK it does not support version numbering, meaning you can't specify what version you require which is one major minus, and still might give you jar hell, oracle killed java 9 as soon as they decided with their dumb money grabbing scheme of release versioning of every 6 months, no one would upgrade to a version which would be killed in 6 months, and they probably knew that.
@talesfromthejarside
@talesfromthejarside Ай бұрын
Yeah, version numbering in modules is definitely an issue, which I think OSGI handles. I don't mind the six-month release schedule, though, or maybe I'm just used to it by now. Most companies only care about the LTS releases anyway.
@emaayan
@emaayan Ай бұрын
@@talesfromthejarside you need to remember that when 6 months schedule was released there was NO free LTS TCK jvm's available, and java 8 LTS was declared to be end of life in a year (and afterwards it would paid) , so you had to pay up, when i saw this, i've figured it would be the end of java as no company would risk trusting them again, corretto literally saved this. not to mention breaking backwards compatibility, consider that jaxb was removed from the jvm because it was thought of as j2ee technology , buy then they went and inserted HTTP client on java 11? cause that's not j2ee? for the record i've thought about replacing our commons http client for that, but then i remembered we also used http server in our j2se server, so what's the point .
@witlessworm
@witlessworm Ай бұрын
What you might call... Java script 🥁
@talesfromthejarside
@talesfromthejarside Ай бұрын
😊
Harnessing Java 21 for Data Oriented Programming
17:07
Tales from the jar side
Рет қаралды 865
Java 21 Pattern Matching Tutorial #RoadTo21
23:28
Java
Рет қаралды 26 М.
Fast and Furious: New Zealand 🚗
00:29
How Ridiculous
Рет қаралды 48 МЛН
Fortunately, Ultraman protects me  #shorts #ultraman #ultramantiga #liveaction
00:10
Java 21 new feature: Virtual Threads #RoadTo21
33:35
Java
Рет қаралды 61 М.
WHY did this C++ code FAIL?
38:10
The Cherno
Рет қаралды 246 М.
The Real Reason Why Music Is Getting Worse
12:42
Rick Beato
Рет қаралды 3 МЛН
The World Depends on 60-Year-Old Code No One Knows Anymore
9:30
Coding with Dee
Рет қаралды 736 М.
The Worst Programming Language Ever - Mark Rendle - NDC Oslo 2021
1:00:41
NDC Conferences
Рет қаралды 1,3 МЛН
Master Golang with Interfaces
21:54
Kantan Coding
Рет қаралды 10 М.
God-Tier Developer Roadmap
16:42
Fireship
Рет қаралды 7 МЛН
Java Virtual Threads - Reactive Programming Killer?
13:57
Viraj Shetty
Рет қаралды 17 М.
The 3 Laws of Writing Readable Code
5:28
Kantan Coding
Рет қаралды 470 М.
Java 21 - Language Features and Beyond
29:20
Java
Рет қаралды 19 М.
Fast and Furious: New Zealand 🚗
00:29
How Ridiculous
Рет қаралды 48 МЛН