Java Lore 2026: What happened between Java 8 and 25?

Ok, I am finally up-to-date with Java lore. It came with the simple question: Why does Oracle still distribute Java 8 at java.com per default to clients (the latest is Java 25)🤔!

TLDR: Currently recommended: Adoptium Temurin (Java 21 LTS), https://whichjdk.com/

What happened? A bit of context: Oracle changed Java licensing around 2019. Around Java 11, Oracle introduced a subscription-based licensing for many production use cases. They changed the free use again for “internal business operations”, but since then, it seems like Oracle JDK is no longer the obvious free default for many use cases.

Also, Java 8 is still the default download on java.com because it is the last version that Oracle shipped as an end-user JRE. Since Java 9, they no longer distribute the runtime separately and applications are expected to ship their own runtime with tools like jlink.

But then in 2021: The AdoptOpenJDK project moved to the Eclipse Foundation and became Eclipse Adoptium, which now distributes the Temurin OpenJDK builds. (They btw distribute separate JDK and JRE environments again: https://adoptium.net/de/news/2021/10/jlink-to-produce-own-runtime !)

In fact, a lot of alternative OpenJDK builds grew:

  • Eclipse Temurin (Adoptium)
  • Amazon Corretto
  • Azul Zulu
  • Microsoft Build of OpenJDK
  • Red Hat OpenJDK, etc.

They are all based on the same OpenJDK source code, mainly differing in build pipelines, support policies, and packaging.

So what is the current state of Java?

Current Java release cycle:

  • New Java version every 6 months
  • LTS releases roughly every 2 years

Current important versions:

  • Java 17 (LTS, widely deployed)
  • Java 21 (current LTS, recommended)
  • Java 25 (latest release)

And a lot of cool features since Java 8, like modules, var, records, switch expressions, pattern matching, and the new fancy virtual thread system (Project Loom). Concluding: Unless you have constraints, Java 21 LTS is the safe default with Adoptium. The distributions Amazon Corretto, Azul Zulu and BellSoft Liberica are also fine.

A lot has happened since Java 8, from Oracle licenses, Adoptium, the jlink tool, and more. I am thinking about writing a blog post with the best-of new features between 8 and 21/25. Would that be interesting :)? Is Java still cool in 2026?

Unity 6.2 NGO 2.8 Control Spawn Positions

In the new Unity for GameObjects netcode, there’s no way to control the spawn position directly via the NetworkManager. The simplest way I found was to write a “SpawnManager” with a list of possible spawn positions, and it spawns the prefabs after OnClientConnected.

using UnityEngine;
using Unity.Netcode;
using System.Collections.Generic;

public class SpawnManager : MonoBehaviour
{
 public static SpawnManager Instance;
 [Header("Player Prefab")]
 [SerializeField] private NetworkObject playerPrefab;
 [Header("Spawn Points")]
 [SerializeField] private List<Transform> spawnPoints;
 private int spawnIndex;

private void Awake()
 {
 Instance = this;
 }

private void Start()
 {
 NetworkManager.Singleton.OnClientConnectedCallback += OnClientConnected;
 }

private Transform GetNextSpawnPoint()
 {
 var spawn = spawnPoints[spawnIndex];
 spawnIndex = (spawnIndex + 1) % spawnPoints.Count;
 return spawn;
 }

private void OnClientConnected(ulong clientId)
 {
 if (!NetworkManager.Singleton.IsServer)
 {
 return;
 }
 Transform spawn = GetNextSpawnPoint();
 NetworkManager.Singleton.SpawnManager.InstantiateAndSpawn(
 playerPrefab,
 clientId,
 destroyWithScene: true,
 isPlayerObject: true,
 forceOverride: false,
 position: spawn.position,
 rotation: spawn.rotation
 );
 }
}

Create a GameObject called SpawnManager, give it this script and then drag the prefab and the spawnpositions into its variables:screenshot of the SpawnManager

Make sure that in the NetworkManager, the network prefabs list is not empty. The default player prefab however is, because the SpawnManager spawns the prefabs:
prefab NetworkManager screenshot

Jump to / Search specific dates in Signal (+Telegram, WhatsApp)

For tldr, go to the screenshots at the end of the post.

Lately, I have been asked by my dad if you can search in the chat of the Signal messenger not only by words but also by date. So, the first thing I did was look in the app, and after not finding anything, do a bit of research:

How can i Search for specific dates?
byu/yeomania insignal

With this thread, I thought that this feature does not exist. As a happy open-source fan, the next thing I did was clone the repository of the official Signal Android app (https://github.com/signalapp/Signal-Android), and then I started to add a new option to the three-point menu of conversations. While reading the code for a few hours, I suddenly found functions for jumping to a specific date and validating that date (e.g. JumpToDateValidator.kt). Then I realized, that the app already had the feature I was about to implement 😆.

So how do you search in a conversation by date? You first have to activate the normal search. Then, nearby but undetected to the left above the keyboard, there is a button which opens a calendar selector!

signal step 1 signal step 2 signal step 3

And there you have it! You can select a date (if it exists) and the conversation will jump to that date!
I afterwards asked myself, do the other messengers have that feature? And yes, both Telegram and WhatsApp can do that too!
screenshot of telegram

Telegram has the button in the same position as Signal…

screenshot of whatsapp

and Whatsapp has it beside the search bar. Fascinating!

And that’s it. If you came over to this post by looking for this specific feature, I hope I could have helped you, and if not, maybe you learned something new! 😀

Bachelor’s Thesis: Efficient Evaluation of the Fourier Transform of Multipoint Correlation Functions

Fi-na-lly! The last academic work I committed myself to. Of course, I was fairly motivated in 2019 and enrolled in Business Informatics and Technical Physics at the Technical University of Vienna. While I learned a lot of fascinating theories and principles, what was really suffering was my time and energy for my game projects. As far as my studies go – I am now finished, and I do not plan any more of them in the next time. I might finally be able to finish the games.

Regarding the thesis, I used the Julia programming language and Jupyter to find efficient ways of calculating correlation functions, which are physical entities which can for instance describe the probability of electrons jumping from atom to atom. These functions are quite useful, as they can be used to derive several important physical quantities. The work contains the analytical derivation of the Fourier transform of those functions, as well as descriptions of the numerical computation. Download it here:

http://seismic.myftp.biz/index.php?page=3

Micro-Project: Magnetic Holder for my Phone in my Car

Who doesn’t like micro-projects? I am in the process of finishing my last degree – the bachelor in technical physics. During my time on working on my thesis, while I was desperately searching for a new smartphone cover for my S21 on Amazon, I had the idea to combine a magnetic smartphone cover, a neodymium magnet and the holder spot of my old car into something handy!

So I ordered the stuff (https://www.amazon.de/dp/B09D388G35?psc=1&ref=ppx_yo2ov_dt_b_product_details & https://www.amazon.de/dp/B0BCQHQSZD?ref=ppx_yo2ov_dt_b_product_details&th=1) and went on to tinkering during a writing break!

parts
The three initial little parts

I only needed one neodymium magnet, one scew which fitted and I took down the old holder of the car. It was broken, so I used some instant glue. With a 3D printer, I could have printed the black part. Due to not having a lathe, I had to file the screw to my needs 😂!

After some filing I quickly put those together and mounted them on the car holder:

 

I tried to add the phone with the case, but it seems that the neodymium was too strong!

screw broke out of plastic
RIP!

Seems like the threaded sleeve broke out of the already damaged plastic!

The solution was to use a longer screw and a nut, simple as that:

parts assembled with new screw and nut
New screw with nut

With that, it worked! I tested it already for tracks with ~40km. Yeah!

my phone on the car vertically

my phone on the car horizontally

In my opinion, the perfect micro-project! Refreshing for in between. And hopefully soon, physics will be finished and the game projects will continue. Which micro-project will be YOUR next one?

Master’s Thesis: Explainability in Hate Speech Detection

Finally! After a lot of work and especially a lot of stress during this summer, I was able to finish my master thesis and with it my master’s degree in business informatics. At the Technical University of Vienna, you do not get “MSc” as a title but “DiplomingenieurIn”, in short Dipl.-Ing. or DI.

The thesis itself compares modern deep-learning hate speech detection systems with rule-based hate speech detection systems, and analyzes the performance and also the explainability of those. I chose the topic because I am also pretty interested in chatbots (awesome what OpenAI’s ChatGPT can do!) but I did not have a lot of NLP (Natural Language Processing) experience beforehand. Thankfully, I learned a lot during this thesis and now I understand state-of-the-art NLP! Download it here:

http://seismic.myftp.biz/index.php?page=3

 

Telegram bot permission suggestion

Today I want to share a little side idea which would need your help:
We are the T&M group, six people who want to build the best Telegram meme-voting bot. However, the current bot permission system of Telegram is not sufficient. Therefore, we sent a suggestion to Telegram:
bugs.telegram.org/c/16695 We would need your support with a like! Thank you!

Migration From HTTP to HTTPS and a new Domain

Websites with user input should definitely use HTTPS. Since 2014, Google uses HTTPS as a ranking signal. Therefore, even with static websites like the one from my uncle, a migration pays off. We took advantage of the situation to also switch to a more meaningful domain, and with the help of World4You, this was done in two days. After that, I was able to get the full old website http://ernst-reichel.at running with HTTPS on https://autospengler-ernst-reichel.at. Now, users are calmed down because Browsers display the site as secure, and nobody can spy on the customers looking for spare parts or repairs. Each legacy site can be migrated!