IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Java Annotated Monthly – October 2019
Wow, what a bumper month! Summer is well and truly over and we are Being Productive! This month’s edition is absolutely huge and I didn’t even do any particular research for the newsletter, there was just a lot of interesting stuff kicking around. Of course we have Java 13, and I’ve added two new sections, career advice and testing. Not testing your career, although that would be really useful too. There are also a lot of Spring Boot tutorials because I’ve been leaning on Google a lot this month for my live coding demo for Spring One Platform in Austin next week. Set aside some serious time for this edition!
Java News
Java 13 came out in September. It’s another short term release, but it does mean that if you were on Java 12 your JDK is no longer supported and you should upgrade to 13. If you’re on Java 11 or 8 watch my video (last link below) to understand some of the questions you should be asking in order to decide whether to upgrade,
-
JDK 13 General-Availability Release – download the (Oracle) OpenJDK build here
-
The arrival of Java 13! (from Oracle)
-
81 New Features and APIs in JDK 13 (from Azul)
-
Definitive Guide To Java 13 – as usual, Nicolai provides a thorough look at the latest release
-
JDK 13 Security Enhancements – security is often a good motivator for upgrading
- IntelliJ IDEA 2019.2 prepares for the release of Java 13 – or: IntelliJ IDEA 2019.2 is ready for Java 13. Of course you can also try out the 2019.3 EAP for more features.
-
Pattern matching for instanceof (Preview) – Coming Soon?
-
JEP 361: Switch Expressions (Standard) – ready in Java 14?
-
Annotation Type Serial – @Serial “Indicates a field or method is part of the serialization mechanism defined by the Java Object Serialization Specification”. Java 14.
-
TIOBE predicts Python will replace Java as top programming language – blah OK whatever
-
The Future of Java Is Now: Oracle Code One Keynote 2019 – featuring my colleague and Java Champion, Mala Gupta.
-
Oracle Code One 2019 – nice summary of the conference
-
Life After Java 8 (video) – my talk summarises the political and technical landscape in Java now. The summary of the upgrade path is covered in this article (which I have linked to before).
Java Tutorials & Tips
-
Getting started with Java Programming – helpful advice with links, for genuine beginners
-
Running IntelliJ IDEA in Jenkins – did you know you could run the IntelliJ IDEA inspections in your continuous integration environment?
-
The Trouble with Memory (video & transcript) – highly recommended: Kirk is an expert in this area and explains JVM memory usage in an understandable way
-
All Things Java 8 [Tutorials] – a list of links to DZone articles on Java 8 topics. Java 13 is out but let’s be honest, Java 8 is still the most used version.
-
How to Master IntelliJ to Boost Your Productivity – not from JetBrains! Tips from on-the-job experiences.
-
Using Java to Orchestrate Robot Swarms – Quite Interesting. Extra points for mentioning LMAX, where I used to work!
Languages, Frameworks, Libraries and Technologies
I’ve been researching my new live demo for Spring One Platform which is all about reactive Spring Boot with RSocket, and JavaFX. As such, this Frameworks & Libraries section is heavy on Spring and Spring Boot topics. Many of these are not new, but if you’re interested in getting started there’s a lot of good stuff here.
-
All About Spring Boot [Tutorials and Articles] – by a nice coincidence, DZone has just published a summary of all their best Spring Boot tutorials.
-
Using RSocket with Spring Boot – note the 2.2.0 API is still under development and I found it has changed from milestone to milestone
- R(eactive)Socket: Bootified – a good tutorial. Same caveat as above.
- Spring Tips: RSocket Messaging in Spring Boot 2.2 (video) – a visual version of the same type of thing. Again, API version caveat applies. Yes, I did get burnt by a changing API, how did you guess?
-
Give REST a Rest with RSocket – an article about why RSocket (not code, but rationale)
-
RSocket Using Spring Boot – yes, I am putting RSocket into my new live demo, why do you ask?
-
Spring Boot 2.2.0.M6 – because it contains, guess what? An API for RSocket.
-
Build Reactive APIs with Spring WebFlux – a step by step tutorial
-
Jakarta EE 8 is Released – Jakarta EE is alive and well
-
Fulfilling the Vision for Open Source, Cloud Native Java (eBook) – Jakarta EE
-
Dependency verification: checksum vs PGP – because security is important
-
The rise of Kotlin – I’m also using Kotlin in the new demo. It’s… pleasing.
Testing
This month I’ve collected a whole bunch of testing articles for some reason, so it gets a section of its own.
- Test Driven Development Is Dumb. Fight Me. – I will, thanks. But not here.
- A Set of Unit Testing Rules – or: when is a unit test not a unit test? This is old but has been referenced a few times lately.
- Selenium WebDriver with Java (free online course) – Selenium can be an extremely effective tool not only in testing the UI, but in creating end-to-end integration/acceptance tests.
- 3 ways to get test automation done within your sprints – by the author of the course in the previous link. This is pragmatic advice and I have seen it work well in real organisations
-
AdoptOpenJDK Introduces Quality Assurance Program – oh look, testing is a Good Thing
Career and Development
There’s too much great career advice to go into the “and all this was interesting too” section that is Culture and Community this month, so it also gets its own section.
Listen to #DevJourney Episode #60 with @trisha_gee. Trisha spoke about being an outsider, being pushed, taking a leap of faith, not burning bridges, taking control of her career and much more! Listen here https://t.co/IYJ85mbxaI and subscribe on the platform of your choice! pic.twitter.com/taYbrenf7B
— Tim Bourguignon 🇪🇺🇫🇷🇩🇪 (@timothep) July 30, 2019
-
How to become a good programmer? 13 tasks you should practice now – apprentice-level developers should try to do as many of these as possible, but let’s not forget that programming shouldn’t dominate our whole lives.
- Become a +10% engineer – love this post, but only because I agree with everything in it
- We are 10x engineers – whoever invented the idea of a 10x developer has a lot to answer for.
- How to Be a Good Senior Developer – I was ready to sneer at this article before even reading it, but then I actually agreed with it. Not just click bait.
- Becoming A Fully Buzzword Compliant Developer (video) –yes I did put this in last month’s, but since this month has a whole section on career, it seemed relevant
-
How Architecture Improved My Coding Skills – really interesting insight into how working in non-coding roles can improve your coding ability.
- 17 Reasons NOT To Be A Manager – this is a very, very important list to read. Many points apply to seniority in general too.
- Managing Platform Teams: How to Structure and Run a Great Platform Team – and some great tips on how to be a manager
-
How To ‘Manage Up’ And Gain Real Influence At Work – not sure how I feel about this piece. I agree with all of it yet I’ve found some of these techniques a) not effective in all organisations and b) of decreasing use the more senior you become.
- [MP]aternity Stipend – Free training for mothers or fathers on parental leave. A nice idea, I particularly like that it’s offered to parents of any gender to combat the assumption that it’s just the mother’s responsibility to take a career break
-
Help and Inspire. Interview with Hadi Hariri, Team Lead in Developer Advocacy at JetBrains – what do developer advocates like me do at JetBrains. Oh, and we are hiring.
I officially have my very own #podcast 🙀, eeeeek!
After A LOT of procrastination, I published the first EVER episode of #BusyBeingHuman. @trisha_gee, I couldn’t have asked for a better human to interview.Have a listen 🎧 https://t.co/fGVJmIgjKy pic.twitter.com/QhGrmnCQcN
— Sam Hepburn (@SammyHep) September 10, 2019
Culture & Community
I delivered my Reading Code talk last month and have some more resources from the research of that to add to this month’s issue. I’ll be giving the talk again in London this week, so I should be able to post the video of it soon.
-
In praise of developers who delete code – I’m a big fan of deleting code. Provided the tests all still pass of course!
-
Code Quality vs. Your Sanity: Coping with Bad Code on the Job – pragmatic advice
-
De-teching my calendar – I… am not going to do this. But this article is good for making you consider whether your calendar needs an overhaul.
-
Men now avoid women at work – another sign we’re being punished for #MeToo – well this is depressing.
-
A woman’s greatest enemy? A lack of time to herself – if you’re a woman reading this article you may agree strongly. If you’re a man, you might not understand what the problem is in the so-called modern world.
- If You Can Use a Fork, You’re “Technical” – how thinking of people as “technical” or “not technical” is limiting us
-
4+1 Code Review Tools and Linters to Help Your Team Write Better Code – with a nod to Upsource. Linters are probably less applicable to a language like Java
-
Google Engineering Practices Documentation – I was asked to speak to the Java developers at Google in September, which was exciting. Right now I honestly don’t remember if this is why I was looking at this documentation or not, but it might be relevant for some organisations.
- In The Flow: How To Master Your Brain’s Peak Productivity – the state of flow: what it is, and how to get it. Note: flow is much more difficult to achieve if you’re burnt out
-
Case studies: How to handle developer burnout/CTO burnout? – know the signs
- How Decision Fatigue Steals Your Productivity (and How to Take it Back) – have you noticed I read a lot about how to be more productive? But I’m not sure I actually am more productive yet. I just feel exhausted.
- How Toxic Habits Steal Your Productivity (and How to Take it Back) – I have successfully used habits and routines to Get Stuff Done. For example, I’ve been running every week in September, yay me!
And Finally
A chance to catch up on the other IntelliJ IDEA blog posts from this month. Note that the big thing for us at the moment is the upcoming 2019.3 release, which is focused on performance and quality. I love that we’re working on a quality marathon, because marathons require quite a different mindset to sprints.
- What’s New in IntelliJ IDEA 2019.3 EAP3?
- Preview the Performance Improvements in IntelliJ IDEA 2019.3!
- Register for our October Webinar on React+TypeScript+TDD in 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.