Java Annotated Monthly – November 2020
In good news, banning myself from reading the newspapers and scrolling through Twitter on my phone at night means my levels of anxiety are significantly lower this month. In bad news, it means less content for November’s Java Annotated Monthly. The silver lining is that you can have a more relaxed November, with less stuff-you-have-to-read.
Java 16 is due 16 March (that works out nicely), and some features are already planned.
- Proposed schedule for JDK 16
- Finalizing in JDK 16 – Pattern matching for instanceof – this was announced in July, not sure how I missed that both Records and Pattern Matching for instanceof are expected to be “standard” features in JDK 16. So now you know.
- JEP 397: Sealed Classes (Second Preview) – doesn’t seem to be scheduled for JDK 16 right now, but I expect it will be
- Probably the biggest source of Java news was from Microsoft, of all people, this month. They ran JDConf with loads of great talks, check out some of the blogs (day 1, day 2, day 3 keynotes) and the videos (day 1, day 2 (featuring me), day 3 (featuring Mala)).
Here is my writeup: https://t.co/LQAFj3VAwV
— Jim Gough (@Jim__Gough) October 29, 2020
Java Tutorials & Tips
Loads of lovely Java tips this month
- Modern Java toys that boost productivity, from type inference to text blocks – nice article from Angie Jones showing a load of new Java features and how to use them
- LJC Lunchtime Lightning Talks #13 (video) – featuring Helen‘s overview of what Long Term Support releases are and why they matter
- Scripting Java with a jBang – “…provides a way of running Java code as a script, similar to JShell. However, unlike JShell, JBang works great on Java 8”
- Shebang Mechanism Support in IntelliJ IDEA 2020.3 – you might also want to check out how to run single-file Java programs in IntelliJ IDEA 2020.3
- Immutable Collections in Java using Sealed Types – Sealed types are a preview feature in Java 15, this article looks at a use case for them
- Java Modules Cheat Sheet // nipafx – super useful quick reference for building and running Java modules
- Babl High-Performance WebSocket Server – interesting high performance project from Mark Price (full disclosure, I used to work with Mark)
- Why we chose Java for our High-Frequency Trading application – it’s funny that I also came across this article this month, since it reminded me of when I was working with Mark et al. on a low latency, high frequency trading platform (not the one mentioned in the article).
- LMAX – How to Do 100K TPS at Less than 1ms Latency (video) – OK this is old (2010) but I couldn’t talk about high performance Java without pointing to Martin and Mike’s original presentation on the LMAX Disruptor. Also entirely coincidentally I just cleaned up my old Disruptor articles for my new blog site.
- Peter Lawrey Talks about Low-Latency, High-Performance Java – yet another article this month on the same topic.
- How to Deploy a Spring Boot App to AWS Elastic Beanstalk – any tutorial which takes you through AWS stuff step-by-step is entirely welcome here
- Refactoring Java, Part 1: Driving agile development with test-driven development – this features so many of my favourite buzz words: agile, TDD, and, of course, IntelliJ IDEA.
- Refactoring Java, Part 2: Stabilizing your legacy code and technical debt – and honestly, who doesn’t need to this?
- How Java 15 taught me to love virtual hands-on labs – I didn’t know about these online Hands on Labs, I learnt something here.
- Behind the scenes: How do lambda expressions really work in Java? – a low-level look
- You might remember we featured Maria ‘s article from 97 Things Every Java Programmer Should Know earlier this year. I’m pleased to announce she’s a new addition to the Java Champions
— Java Champions (@Java_Champions) October 26, 2020
October is Hacktoberfest, which JetBrains was sponsoring and participating in. So it seems a good time to give Open Source it’s own section in Annotated Monthly, at least for this month.
- Getting Into Open Source for Fun & Profit – an hour of tips from JetBrains Developer Advocates Paul Everitt, Helen Scott, Trisha Gee and Phil Nash.
- Clone a Project from GitHub (video and blog) – want to get started with Open Source?
- IntelliJ IDEA. Share a Project on GitHub (2020) (video)
- My First Hacktoberfest (2020)
I've been a developer for 20+ years; I've been a contributor to both the MongoDB Java Driver and Morphia; and yet I am soooo excited I got not one, but TWO pull requests merged in two different projects this week 🎉
— Trisha Gee (@trisha_gee) October 27, 2020
Languages, Frameworks, Libraries and Technologies
It was quite a big month for Kotlin, and since I’m right in the middle of it all here at JetBrains I can’t help but add a bunch of relevant content to “Java” Annotated Monthly. Well, the JVM is a big place and there’s room for all of us.
- Kotlin Public Roadmap Through Spring 2021 – take a look at what’s being planned for Kotlin over the next six months
- Effective Class Delegation – I’m always interested to see when other languages (in this case, Kotlin) can do things that can’t be done in Java
- Kotlin Coroutines and Synchronisation: An Example of using Mutex – I love articles that explain not just how to do something, but why we might choose to do it this way
- Kotlin Functional Interfaces: Function reference and SAM conversion – potentially useful if you’re relying on Kotlin-Java interop
- Don’t argue with default arguments – when I first learnt of the idea of default arguments I didn’t understand them. But more and more I see how useful this can be in reducing unnecessary lines of code
- Kotlin Team AMA #2: Ask Us Anything – it’s really fun to see loads of the names associated with Kotlin development here
- Live Templates in IntelliJ IDEA – number one most frequently asked question when someone sees a power user with IntelliJ IDEA is “what are those template thingies and how do I get them?”. Well, here you go.
- Native Queries with Spring Data JPA – many developers need to know how to use a “real” query when working with JPA. This tutorial not only covers this, but explains some of the downsides/workarounds
- Hibernate & Testcontainers – A Perfect Match For Your Tests? – something I’d like to try out next time I get the opportunity
Conferences and Events
- 3-7 Nov: DevCon Live – my colleague, Mala Gupta, is speaking – (paid, ~90 EUR)
- 4-18 Nov: Introducing QCon Plus by InfoQ: A Virtual Conference for Senior Software Engineers and Architects – Mala) will be presenting on a Java panel on 17 Nov (paid, 500-600 USD).
- Voting for the 2020 EC Election: 3-16 Nov – JetBrains is up for re-election for the JCP Executive Committee, if you’re a JCP member you can vote for us (or not!)
- 4-5 Dec: jLove – I (Trisha Gee) will be speaking (free event).
Advocacy & DevRel
In October the Java Developer Advocacy team at JetBrains expanded to four members! If you haven’t met us all yet, we are: me (Trisha Gee), Mala Gupta, Helen Scott and Dalia Abo Sheasha. Fortunately I have a bunch of advocacy-related links to post, which gave me an excuse for the introduction.
- What the heck is a Developer Advocate? – Dalia brought this to my attention
- The Reluctant Advocate – interview with me, from last year, about how I got into advocacy
- But What if They Forget Me? Here’s How to Write When Real Life Gets in the Way – particularly relevant this year, with everything getting in the way. I would like to add – it’s OK to take a break, many people won’t even notice.
- Don’t forget to check out all the great content that Mala, Helen and Dalia are producing on the blog and YouTube channel.
Culture & Community
- Interview with Kent Beck – mandatory reading. Some good tips that apply to all programmers, but what was inspirational to me is seeing how a very experienced developer thinks – what has changed in the way they think and what remains the same.
- What advice would you give to a younger version of yourself – some good advice here
- Get your work recognized: write a brag document – we’re coming to the end of the year, and whether or not your review periods line up with the “real” year, we’re probably going to want to reflect on how the year went (2020… yeah…). It’s not too late to start a brag document, and try to remember/research stuff from earlier in the year to add to it
- Tales from the jar side: The loneliness of isolation, My anniversary, and Updating my GitHub Profile – thought the section at the beginning was interesting
- State of Java & Code Review Best Practices – Trisha Gee (podcast) – in which I talk about… pretty much everything
- Managers: what do you do when your teammate shares their grief? – this may be particularly helpful in this extremely challenging year, but it’s valuable for any manager to know at any time
- WOCinTech Chat – people were asking where to get stock photos for tech that weren’t just white guys. Here you go.
- nappy – Ditto
— Trisha Gee (@trisha_gee) October 24, 2020
A round up of blog posts and videos from IntelliJ IDEA and JetBrains:
- Explore Your Program with Static Analysis – static analysis is a real differentiator between IntelliJ IDEA and other IDEs
- IntelliJ IDEA. Scratch Files and Scratch Buffers (2020) (video) – so many people have already commented on how useful this video was at showing them a feature they didn’t know about, or didn’t use much
- Kotlin 1.4 Online Event (video playlist) – if you missed it, all the videos from our Kotlin 1.4 event are now online
- kotlinx.coroutines 1.4.0: Introducing StateFlow and SharedFlow
- DataGrip 2020.3 EAP 3: SQL for MongoDB – I can’t wait to try this out!
- Webinar Summary: Working with SQL and Databases in IntelliJ IDEA – related: now is a good time to check out our summary and recording of October’s webinar on Databases
- Don’t forget to sign up for November’s live webinar, we’re very excited to welcome Josh Long: Live Webinar: Bootiful Kotlin and IntelliJ IDEA
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.