Java Annotated Monthly – October 2020
Failing to sleep at night, and rediscovering RSS, led to a particularly large backlog of articles to process for this month’s newsletter. As such, expect less annotating and more linking, I don’t always remember what prompted me to add the item to the list at three o’clock in the morning.
Java 15 is one of my favourite releases, inasmuch as one can get attached to something as transient as the new releases. It has finalised some features that were previously preview and experimental, and has some really nice preview and incubating features like Records and Sealed Classes.
- Java 15 / JDK 15: General Availability – Java 15 is out!
- The Arrival of Java 15 – a nice post from Oracle which summarises not only the features, but highlights some of the organisations and individuals who are not Oracle who helped to create Java 15
- Java 15 release with developer productivity enhancements
- Java 15 Released (InfoQ)
- Using Java 15 with IntelliJ IDEA (video) – I always learn something from Mala’s videos
- JDK 15 Release: 64 New Features and APIs – from Azul
- A convenient list of essential Java 15 resources – lots of links and info here
- Java Version Almanac: JDK 15
- ZGC What’s new in JDK 15 – the ZGC Garbage Collector is one of those features which is now a standard (non-experimental) feature in Java 15
- Incompatibilities with JDK 15 CharSequence.isEmpty – backwards compatibility is hard
- Keynote – The Future of Java Is Now (video) – “Celebrating 25 years of Java and beyond”
- Oracle Developer Live : Java (videos) – full playlist of the virtual event that effectively replaced JavaOne/Code One
- Java, Where Are We Now? – a TL;DR of the current release cadence of Java, from my colleague and fellow Java Developer Advocate, Helen Scott.
- GitHub Welcomes the OpenJDK Project! – development on JDK 16 and onwards will be on GitHub
- Microsoft to Contribute to Java on Windows and Mac ARM – this is a Good Thing
- Java InfoQ Trends Report—September 2020 – interesting to see Java 11 at approx 20% adoption now
- A Picture of Java in 2020 – a dive into the data from JetBrains’ Developer Survey as it relates to Java developers
- Announcing the Inside Java Podcast – new podcast from Oracle’s Java Developer Relations team.
- For more Java and Java-related news, check out Foojay.io, a new platform for Java news, as well as reference information like OpenJDK Command Line Arguments.
— Sharat (@Sharat_Chander) September 15, 2020
Java Tutorials & Tips
- Migrating Beyond Java 8 (video) – hour long session from Dalia Abo Sheasha with practical advice on migrating.
- Upgrading from Java 8 to Java 12 – yes this is my article from last year. But people keep asking how to upgrade from 8 and what to upgrade to, this article covers that (covers some of the tools Dalia mentions in the talk above)
- The Things I Love and Use from Java 11 – I learnt about new File methods from this article.
- Sealed Java State Machines – really nice example of an excellent use case for the new Sealed Classes (preview) feature in Java 15
- Using WSL 2 to develop Java application on Windows
- A sample http server using Jetty with Project Loom – Not an article but a reddit post linking to the code, but I include it because Loom looks really interesting.
- How to encrypt and decrypt JSON properties with JPA
- Java Streams By Example – a primer for those less familiar with the Streams API
- Please Test Your Memory – as usual an in-depth piece from Aleksey Shipilёv
- How a 14-year-old Learned Deep Learning in Java using Deep Netts
- Will the code even compile? Preparing for Java Oracle Associate Certification (OCA) / Java basic technical tests – a really good tip for getting through the OCA certification faster/more efficiently.
I want to talk about an underappreciated gem of the JVM ecosystem – async profiler. The common perception is that you only need to use a profiler if you’re a perf eng. So here's a few stories of how fitting a profiler into daily workflows helped me to be a better software eng 1/N
— Sergey Tselovalnikov (@SerCeMan) September 15, 2020
Languages, Frameworks, Libraries and Technologies
- New to IntelliJ IDEA? Me Too – written by my colleague Helen Scott, it’s a helpful set of observations which may help users to get started with IntelliJ IDEA
- How the HotSpot and Graal JVMs execute Java Code – quite low level
- Maximizing Applications Performance with GraalVM (video)
- Spring Boot Docker – a detailed look at using Docker with Spring Boot application.
- Azure + Spring Boot = Serverless – Q&A with Julien Dubois
- Build a Spring Boot Application Using Java Modules – I don’t usually see many tutorials on modularity, particularly with Spring Boot, so this was interesting.
- Composite Repositories – Extend your Spring Data JPA Repository – in the real world, the type of data access we want to do quickly moves beyond the simple cases. Here we see some more complex use cases.
- Helidon SE, another breed of speedy – I liked this detailed tutorial to get started, which includes a summary at the start setting the scene of the microservice framework choices we have in the Java world
- Exception Handling in Eclipse Collections
- Migrating from Hibernate’s to JPA’s Criteria API – pros and cons of both approaches, and steps for migration
- Baseline Sentiment Analysis with Naive Bayes in Kotlin – an interesting Machine Learning example in Kotlin
- A Simple, Real World Example of Nothing in Kotlin. (counts as a “paid” Medium article) – I learnt something interesting about Kotlin
- Value-Based Classes and Domain Modelling in Kotlin – helpful for understanding these features in Kotlin, but also helpful for a Java programmer trying to understand where we might use Records
- Customizing your GitHub profile – Scripting – in Kotlin
- gRPC with Kotlin Coroutines – ooh, I thought RPC was dead, this opened my eyes
- Using Code Coverage As a Review Tool – video and blog, looking at how we can use coverage information in a useful way
- BDD (Behavior Driven Development) | Better Executable Specifications (video) – I learnt BDD from Dave Farley (who hosts this video) and it changed the way I develop software forever.
Conferences and Events
October is a busy month for conferences even though we’re not going to conferences…
- 7 Oct: Webinar: Careers in Java – 25 years of the programming language (Facebook link) – hosted by Times of India. My colleague Mala Gupta is presenting
- 13-14 Oct: J4K Conference – some big names in the Java community are speaking here (free registration)
- 23-24 Oct: JFuture 2020 – my colleague Hadi Hariri is speaking (paid, 25-35 EUR)
- 27-29 Oct: JDConf – Mala and I are both speaking (and a pleasing number of other women techie speakers) (free registration)
- 4-18 Nov: Introducing QCon Plus by InfoQ: A Virtual Conference for Senior Software Engineers and Architects – (paid, 500-600 USD).
- Nominations for the 2020 Executive Committee Elections end on 5 October 2020 – JetBrains is up for re-election for the JCP Executive Committee, if you’re a JCP member you can join the Meet the Candidates call 29 October
Culture & Community
- If everyone hates it, why is OOP still so widely spread?
- Introducing Domain-Oriented Microservice Architecture – so… Domain Driven Design is a Good Thing.
- Reading Code is a Skill – yay, it’s been years since I wrote a personal blog post.
- Are you sure your software is gender-neutral? – I’ve just finished Invisible Women and even though I read a lot around this topic, I learnt a lot. Our world is still nowhere near gender neutral
- API Resilience (podcast) – lots of good stuff in here, but the thing that catches my attention, of course, is when Lorna talks about what developer advocacy looks like for her, particularly how developer advocates are involved in improving the industry as a whole, they’re not just a marketer for a product
- WFH – his working from home is definitely not the same as mine. Clearly he doesn’t have offspring under the age of five running around
- Stanford professor: Working this many hours a week is basically pointless. Here’s how to get more done—by doing less
- On Making Hard Decisions – this year in particular is forcing many of us to make difficult decisions
- How I learned to turn Impostor Syndrome into an Advantage – The Impostor’s Advantage – “The impostor’s advantage was a super power.” Imposter syndrome is real and it grinds you down. It can be used, but it takes experience and an environment with psychological safety
- The Myth of the Equal Opportunity Asshole — Multipurpose Nerdery – really interesting look at why someone who’s awful to everyone is going to have a bigger impact on people from underrepresented groups.
- The Rise of the Monk Mode Morning – I didn’t know this was a thing, but since I read When I’ve been trying to keep two mornings a week for focus time, and I recommend it
- How to estimate time required for an IT project or task as a developer – estimations are hard, but that doesn’t mean we can’t improve
- How I operated as a Staff engineer at Heroku – “Coaching & Culture” a key part of a senior engineer’s responsibilities
- The Official, Authorized List Of Legitimate Reasons For Deciding to Become a Manager – interesting.
- Multipliers – this article talks about multipliers and diminishers in the context of technical leaders. Mandatory reading for anyone who is, or wants to be, a tech lead.
- Executive Psychopaths – an old article, but still relevant – today’s business practices reward people who don’t actually function like real people
- Level Up – Issue #57 – yep, I’m definitely in the “Reactive Hamster Wheel” this month.
- Leading senior engineers: lessons learned – very valuable
- Human Capital: Workers are upset about labor practices, and Amazon and Apple are on the defensive – guess what? Tech firms are always all that ethical…
- A Quick Primer on Robert “Uncle Bob” Martin – I don’t want to tell anyone what to think or who to listen to in this newsletter. I do want to provide some viewpoints for people to make their own decisions. Role models have a very big impact on an industry.
- The Ghost Who Codes: How Anonymity is Killing Your Programming Career – an old article, but aligns nicely with the Career Advice for Programmers keynote I just gave at JavaZone.
- Stress, anxiety and depression levels soar under UK Covid-19 restrictions – who knew?
- COVID-19 Developer Impact Report (requires signup) – I did not sign up, so I haven’t checked it, but I include it in case it’s interesting to anyone
- The COVID-19 Crisis: a Company’s Journey into the Unknown – I liked how this article showed how a crisis like the current one can force a company to think hard about its true values, instead of just bigger-better-more. I also loved the vulnerability on show here.
- This Overlooked Variable Is the Key to the Pandemic – I know we’ve had enough of COVID-related news, but I found this article fascinating. Not just in the context of the pandemic, but also at a meta-level of how important it is to not get fixated on optimising for one particular measurement.
- I agree with everything in this thread:
When I first started my career, I thought being a stellar software engineer means writing correct, performant, and elegant code, having deep understanding of programming languages & frameworks & operating systems & networking & databases, etc.
— Joy Gao (@joygao) September 19, 2020
A round up of blog posts and videos from IntelliJ IDEA and JetBrains.
- Meet Code With Me (EAP) – a tool for collaborative development by JetBrains – our long-awaited collaborative development plugin
- IntelliJ IDEA 2020.3 EAP available now.
- Webinar Recording: Developing Micronaut applications with IntelliJ IDEA – video, blog and additional links and resources.
- Using the Terminal in IntelliJ IDEA – blog and video. The terminal is, in my opinion, underused given how useful it is
- How2Pro: Use the HTTP Client in IntelliJ IDEA for Spring Boot RESTful Web Services
- Tutorial: Reactive Spring Boot (video) – we put together all the steps from my Spring Boot tutorial into a huge hour-long video for those who like to focus in big chunks of time.
- All talks from the JetBrains Technology Day for Java talks now have a summary blog post with further info and an embeded video of the talk.
- Intelligent Code Art – this is fun. Time to update my desktop image.
- October promo: JetBrains’ tools are free for Hacktoberfest participants
- Don’t forget to sign up for October’s live webinar: Live Webinar: Working with SQL and Databases in IntelliJ IDEA
— Lawal (@lawalspeaks) October 2, 2020
If you have any interesting or useful Java / JVM news to share via Java Annotated Monthly, leave a comment or drop me a message via Twitter.