IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Java Annotated Monthly – May 2019
This month we have a guest section on security, since there were so many relevant security articles to include. We have the results of two developer surveys, and a huge culture and community section that explores some of the factors that might contribute to the results of those developer surveys. Of course, May’s Annotated Monthly also includes your regular fix of Java news, tutorials, and tips.
Java News
Big news everyone! Java EE is dead. Again. What year is it? Why are the same headlines popping up again and again every year?
-
Update on Jakarta EE Rights to Java Trademarks – so Jakarta EE can’t use or change anything in the javax package namespace, which might have an impact on seamless transition from Java EE to Jakarta EE. But Jakarta EE is still very much alive and relevant.
- Java EE to Jakarta EE and the javax trademark decision – a summary of the situation from the London Java Community
#JakartaEE namespace discussions will start shortly on the jakartaee-platform-dev list, please make sure to subscribe asap! https://t.co/AZzidfyUw3
— David Blevins (@dblevins) May 6, 2019
-
Java is not Dying (Yet) – sigh
-
RedHat Becomes Steward of Java 8 and 11 – this is Good News.
- Leadership of OpenJDK 8 and OpenJDK 11 Transitions to Red Hat (press release)- “Transition from Oracle addresses need for continued support of the technology and community”
Java Tutorials & Tips
As usual, articles and blog posts with detailed information about how to do stuff in Java. This month we have a few articles investigating edge cases and gotchas, for those “oh that’s quite interesting” nuggets of information.
- Processing Large Files in Java – an interesting exercise in optimisation
-
Java Stream API Was Broken Before JDK 10 – worth reading if you want to understand a little more about how Streams work
-
Upgrading from Java 8 to Java 12 – I wrote an article about why upgrade, the concerns to consider, and tips for upgrading
-
Beyond Java 8 – a related article I wrote covering the six monthly release cadence, long term support releases and updates to licencing.
-
Java Garbage Collection – recent versions of Java have added three new garbage collectors, understand what they are and what they’re good at.
- Both the above articles are from the new DZone Java Guide.
-
The Complete Guide to the Java SE 12 Extended Switch Statement/Expression – a nice case study using JShell.
-
Call for feedback — switch expressions in JDK 12 – if you do experiment with switch expressions and have thoughts on how it works (or doesn’t!) give your feedback to the developers.
-
10 Books Java Developers Should Read in 2019 – yes, people still read books. This list is a nice variety, if you haven’t already read one or two from it, pick one and go.
-
How Many Type Parameters Can a Java Method Have? – I was torn between two opposite responses to this: who cares? and oh that’s quite interesting!
-
Designing Bulletproof Code – a nice, worked example of how to create safe domain objects. The name is a little bit click-batey but the principles are sound.
-
Applying Concurrency Cookbook Recipes to SPEC JBB (video) – Monica always has great insights into JVM performance.
-
Speaking of benchmarks: JEP 230: A New Microbenchmark Suite for JDK 12 and Renaissance Suite: A modern benchmark suite for the JVM
-
Variance in Java – seems like a good topic to understand for interview questions or maybe certifications
- My Experience taking the new Java SE 11 Programmer I 1Z0-815 Exam – speaking of certifications…
-
Top 20 System Design Interview Questions for Java Programmers – speaking of interviews. I’m a) an experienced developer and b) very experienced at interviews, and these questions gave me cold sweats. Useful to review if you are, or are considering, interviewing for new roles, but sometimes questions like these are a sign the company doesn’t actually know how to interview and hire developers. We know the answer is “it depends”, we know development is a collaborative exercise not a solo exam, and we should know that it’s more important as a developer to ask questions of the users/business, not know the answers (note: there are more career-related links in the culture/community section below). Our industry is horrible at interviewing developers.
Software developer interviews, in a nutshell. pic.twitter.com/LHB0PtNHaP
— Jaime Lopez (@DevWithTheHair) May 5, 2019
- While we’re on the topic of my opinions: Learn from Java Champions: Trisha Gee
Languages, Frameworks, Libraries and Technologies
Covering: automated testing, Kotlin (no bias here then), branching vs trunk-based development, code reviews, protocols and improving performance of Spring Boot.
-
Easy integration testing for Java EE and MicroProfile applications with Testcontainers – anything that improves our ability to create robust automated tests is a Good Thing
-
27 Tips for Finding Bugs on Your Website – yes let’s do this
-
Why Kotlin is my next programming language – by the way, Kotlin 1.3.30 was released, and you might be interested in the Kotlin Census 2018 Infographics and Report
-
Automating Your Java Project Workflow with a Modified Gitflow Branching Model – a thorough look at how to work in a Gitflow way
-
From Git Flow to Trunk Based Development – or you could do the opposite
-
Code Reviews in Trunk Based Development – I like this approach to code reviews, they are less of a barrier to the feature reaching production and a code author is more likely to be receptive to suggestions for changes during development of a feature than when the feature is finished.
-
Code Review Best Practices – Speaking of code reviews, this month I wrote an article summarising how to create a code review process that doesn’t suck
-
Interaction Protocols: It’s All About Good Manners – really interesting, particularly the section on evolutionary biology. Disclaimer: Martin is my ex-boss and mentor, so I’m super biased about how good his stuff is.
- Spring Boot & JVM — improving performance and memory footprint as easy as it should be – a look at some configuration that might help
Security
There are so many security articles and tips this month they merit their own section. So far 2019 is very much proving to be a year for developers to embrace security as a first class part of their job.
-
HTTP access to repo1.maven.org and repo.maven.apache.org is being deprecated – you should use HTTPS
-
DevSecOps: Faster Feedback with Security Unit Testing in CI / CD (video, slides, & links) – automating security testing seems like a Good Idea
-
Open-Source Vulnerabilities — Will They Ever End? – and this is why
-
Add Secure Token Authentication to Your Java App – with Spring Boot
-
Hacker Eva Galperin Has a Plan to Eradicate Stalkerware – it feels like this article should have a trigger warning, I certainly found it disturbing. It’s important to understand the real impact technology can have on human beings.
-
Malware for IoT: When Bad Code Gets Even Worse – this is terrifying
Culture & Community
We have a lot of articles on the impact of gender on developer careers which are particularly interesting to read after reading the results of the Stack Overflow developer survey. There’s also some more general advice around burnout, work-life balance and career.
-
Rethinking Software Testing: Perspectives from the world of Hardware – really liked this article, it is a really useful view on the value of automated testing.
-
Quick Introduction To Software Architecture – What, Why and How? – so… being a software architect is all about boxes and arrows then.
-
Why Self-Care Is The Secret To Becoming A Productivity Powerhouse – I have two small children so the combination of terms “self care” and “productivity powerhouse” in this title make me want to groan. Self care for a parent is having 2 minutes to yourself without having someone screaming at you, and productivity is being able to remember what you started trying to do 5 minutes ago. However this article has good advice whatever your personal or professional situation, and I should follow it.
-
Stack Overflow Developer Survey 2019 – loads of interesting things in here about developer backgrounds, jobs, technology use and preferences. Most interesting to me, as usual, are the results around gender. And remember, although this survey was completed by developers, it’s developers who use Stack Overflow (OK fine that’s almost everyone) and of those, developers who could be bothered to fill in the survey.
- If you think women in tech is just a pipeline problem, you haven’t been paying attention – a good summary of the problems that face under-represented groups in technology, and some solutions. Note that one conclusion that could be drawn from the above Stack Overflow survey that suggests women inhabit more junior roles than senior, compared to the men, is that women leave the industry.
- I’m quitting engineering: An exit interview – again on retention: a first hand look at why one individual has chosen to leave. And yes, before you say it, of course even straight white men can feel this way too. So surely that means changing our attitudes will help everyone, not just a small demographic
-
I Am the Girl That STEM Lost – another personal story
If you’ve ever rejected a conference talk that was “too soft,” rejected a candidate who was too good at communication to possibly be “technical” enough, or discouraged people from writing about “soft skills,” you’ve contributed to this problem.
It’s not too late to change.
— April Wensel (@aprilwensel) September 18, 2018
-
Programmatically Blonde – and a counter example of how one can get into programming even from a very different background
- Computer says no – I loved this article because it reflects a lot of my own experiences as a woman developer, and gives a nod to my favourite book of 2018.
- Women Did Everything Right. Then Work Got ‘Greedy.’ – not specifically about tech, but an interesting look at how employers are taking for granted your ability to work ridiculous hours, and that is widening the gender gap. Note for men: it’s actually an article about how you guys (and I mean “guys“) are being exploited by employers.
-
It is perfectly OK to only code at work, you can have a life too. – yes, but if the above article is to be believed, if you get a life you will have disproportionately less money than someone who invests more time into their career.
-
Preventing Busyness from Becoming Burnout – related: we’re all so busy all the time, but are we actually productive? And ultimately it’s up to employers to change what behaviours they think ideal workers should demonstrate
-
Agile and The Two-Minute Rule – this is kinda the other end of the spectrum – how to be productive by just doing the little things.
-
The Biggest Bias In Tech That No One Talks About – apparently if you’re over 40 and a developer you’re past it. Um, probably shouldn’t say that to our advocacy team…
-
What is the career path for developers in your company?
Which tech companies have published their engineering career ladders publicly?
— Christie Koehler (@christi3k) April 16, 2019
- This Is the Resume That Will Get You Hired at Google – do people still aim to work for Google? Regardless, the advice in here about phrasing your resume is solid should apply to any company you want to work for.
- Coffee not essential for life, Swiss government says – well, they’re wrong.
And Finally
Here’s a chance to catch up on the IntelliJ IDEA and other JetBrains news that you might have missed. This month saw the culmination of a lot of hard work from the team here so there’s quite a lot.
- We had to reschedule our Java 12 webinar to Tuesday May 21st, but that gives you a chance to register for it now in case you missed the announcement last month.
- The extract variable refactoring was updated in IntelliJ IDEA 2019.1. Check out Mala’s blog post on extract variable for an overview of the existing functionality and an introduction to some of the changes, and / or her screencast on the topic.
Choose the winners of the IntelliJ Theme Contest 2019! Vote for the theme you love the most! https://t.co/vLUKOOsFO5 pic.twitter.com/KIOMchdYuk
— IntelliJ IDEA (@intellijidea) May 4, 2019
- Debug your Java applications in Docker using IntelliJ IDEA.
- New screencasts:
-
The State of Developer Ecosystem in 2018 – interesting reading if you compare and contrast with the Stack Overflow survey
- If you’ve ever found it hard to justify your subscription fee for IntelliJ IDEA Ultimate, you might want to look at this report about the ROI.
- We’ll also be hosting a webinar on Security very soon. Keep an eye on the blog!
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.