How to Build Java Applications Today: May 17, 2021
Microsoft shuts down Azure Blockchain Service, Stack Overflow switches to system fonts, GitHub allows video uploads, Angular 12, and Keycloak 13.0.0.
This is issue 36 of my weekly newsletter, “How To Build Java Applications Today”. I read all the Java newsletters, so you don’t have to! And I try to put a smile on your face, occasionally, while presenting Java news.
Quote of the Week
Sometimes I lie awake at night, and I ask, “Where have I gone wrong?” Then a voice says to me, ”This is going to take more than one night.”
It’s been a slow news time in the Java world for a couple of weeks now. I guess people are working on the big releases, like Java 17 and Spring 6/Spring Boot 3. But it’s developer conference season, so we’ll get plenty of news over the next four weeks: Google IO May 18–20, Microsoft Build May 25–27, and Apple WWDC June 7–11.
For me, it’s been “same old, same old”: Working on my Angular web app and Flutter mobile app.
Frameworks & Libraries
Microsoft Shuts Down Azure Blockchain Service
Remember the blockchain hype from a few years ago? Blockchain as in the “decentralized, unchangeable, trusted list of transactions” that powers Bitcoin and other digital currencies? Even companies like Mercedes-Benz were in on it.
Well, blockchain technology just suffered a setback in the enterprise: Microsoft shuts down its Azure Blockchain Service this September and recommends migration to offerings from ConsenSys.
That leaves the other two big enterprise clouds to supply blockchain technology: Amazon and Google (I think - didn’t find a good starting page, only this blog entry). But we Java developers mostly work in typical Azure customers - big ol’ boring companies. And there it’s just gotten harder to use Blockchain: “Microsoft doesn’t see Blockchain as a priority in the enterprise, so why should we?”
Of course, Microsoft being Microsoft, frequently gets its priorities wrong. Just last week, they axed Windows X, “Yet Another Windows Reboot”. You know, like Windows RT or Windows S before. And now they’re running out of letters - only “Windows Y” and “Windows Z” are left!
Stack Overflow Switches to System Fonts
Yes - that’s new: Instead of good ol’ Arial, the “Stack Sites” now use built-in operating system fonts. That’s San Francisco on macOS and iOS, Roboto on Android and Chrome OS, and Segoe UI on Windows. Linux being Linux, the fonts didn’t work as planned: They tried the Ubuntu font first, then Arial, and now (May 17) landed on Liberation. As a cherry on top, they also picked the best emoji fonts. 🤗
Why did they do this?
Because the system fonts look & work better: “Apple’s San Francisco and Microsoft’s Segoe both look great on retina displays, have more expressive weights, and improve readability across all contexts.” These are the same reasons that lead GitHub to switch.
Naturally, this switch was announced on Meta. As expected, it led to a long discussion. And it definitely wouldn’t be Stack Overflow without some outdated code: The font stack in the “What?” section of the post neither matches the updates at the top of the announcement nor the
font-family values that Microsoft Edge shows on my Mac. 👌🏻
GitHub Allows Video Uploads
Talking about tools that we Java developers use all the time: We can now attach videos on GitHub!
.mov files are allowed. So goodbye animated GIFs, hello proper videos!
And don’t hold back: After all, Microsoft foots the bill for GitHub’s storage costs…
Over the Fence
There are three big web frameworks these days - React Native in the lead, Angular in second place, and Vue.js coming in third. How do I know? Because I investigated this for my talk “How Should Java Developers Build Front-Ends for Web, Mobile, and Desktop Today?” - how many jobs are there, how many people learn on Udemy, what do people ask on Stack Overflow, and so on. You can find my results from March in this time-coded YouTube video (6.5 minutes).
Enough self-promotion: What’s new in Angular 12? For mere mortals like us, not a lot: With “bullish coalescing”,
age !== null && age !== undefined ? age : calculateAge() turns into
age ?? calculateAge(). Typescript 4.2 is in, building with Webpack 5 is now production-ready, and Internet Explorer 11 is deprecated (and hopefully gone next year with Angular 13).
Let’s say we need authentication in our Java project. But we don’t want to use cloud solutions like Okta or Google Firebase. So then the best option is Keycloak: We get OAuth 2.0 and OpenID Connect for authentication, LDAP and Active Directory support for that “enterprise feeling”, and “social logins” for Google, Facebook, GitHub, Twitter & more.
Keycloak also helps if our Java application uses LDAP or Active Directory in our organization: However, we probably can’t test well against those live servers. Then Keycloak is an excellent LDAP/Active Directory stand-in that runs on our development machines.
What’s new in this release? Things like “OAuth 2.0 Device Authorization Grant (RFC 8628)” or “OpenID Connect Client Initiated Backchannel Authentication (CIBA)”. If that floats your boat, then dive into the release notes. But only if you know how to get back into your boat! “Float your boat”, “dive into” - see what I did there? Not being funny, I guess…
Karsten Silz is the author of this newsletter. He is a full-stack web & mobile developer with 22 years of Java experience, author, speaker, and entrepreneur. Karsten got a Master’s degree in Computer Science at the Dresden University of Technology (Germany) in 1996.
Karsten co-founded a software product start-up in the US in 2004. He led product development for 13 years and left after the company was sold successfully. He co-founded the UK SaaS start-up “Your Home in Good Hands” as CTO in 2020.