IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Java Annotated Monthly – June 2020
May saw the 25th birthday of Java! And if you’re into silver linings, one of the positives about lockdown/no travel is that all events were online, and not limited to the few people who could attend a handful of conferences. In fact, this whole “situation” (as people keep seeming to call it) has provided opportunities to create content that’s much more accessible to a wider range of people.
In other news, 2020 is the year that keeps on giving </sarcasm>. Be kind to those around you.
Java News
Java turned 25! And, never one to skip out on a party, I got to attend a whole bunch of online events. Also there was a lot of other news around the (bright) future of Java.
Congrats to @Java and all Java fans on 25 years of Java! There are so many reasons why we 💖 Java! Check out the 25 things we love most about Java in our blog https://t.co/V92SG03htu#Java25 #JetBrainsLovesJava #MovedByJava pic.twitter.com/1Q4f5jxQqB
— IntelliJ IDEA (@intellijidea) May 23, 2020
- Java’s 25th Birthday Kickoff Event – featuring me, and a bunch of people who actually know what they’re talking about. Also featured the announcement of:
-
Inside the Java Platform Group – a new central place to find JDK news.
- LJC Virtual Meetup: Java at 25 Panel (video) – featuring me and a number of well known names from the London Java Community, discussing the past and future of Java.
- InfoQ: Java at 25
- InfoWorld: Java programming language celebrates 25 years
-
Weekend Reading List – 21st ed – covers a bunch of ongoing Java projects which will shape the future of Java
-
State of Loom – an update on Project Loom, which you might have heard mentioned in a few of the 25th Birthday events. Here you can find out something about the future of Java concurrency.
-
JEP 378 – Text blocks leave preview in JDK 15 – text blocks have been a preview features since Java 13, and in Java 15 they’ll be a “real” part of the language.
-
Jakarta Messaging, Jakarta EE9, and MicroProfile and Jakarta EE relationship (video) – vital to watch if you’re a Java EE/Jakarta EE developer
-
The Best of the JDK Face-Off – a bit of fun
-
Celebrating Java’s 25th birthday with a 25-hour stream on Java (video) – yes, a whole 25 hours of video hosted by Nicolai and featuring a bunch of interesting people, and me.
- Announcing: JetBrains Technology Day for Java 2020 – 10 July 2020. We’re going to have some great presentations from some great names!
We’re excited to kick off the Best of the JDK Feature Face-Off! We’ll be posting matchups below and letting you vote for your favorite JDK features. Let’s get started with Round 1. #MovedbyJava
And if you want to read up on more info, check our blog: https://t.co/Z4lJlv2dBD pic.twitter.com/SoKIt0Qopc
— Java (@java) May 26, 2020
Java Tutorials & Tips
-
Bach.java – Intro 1 – Greetings! – this is a tutorial about getting started with Bach, an alternative build system, but the majority is actually about how to create an application in IntelliJ IDEA that uses the Java Module System, which is interesting in its own right.
-
Test Automation Beyond Java 8 (webinar recording & slides) – by Angie Jones. This is an overview of changes to Java since 8 – not just applicable to testing.
-
Eager is Easy, Lazy is Labyrinthine – interesting look at why maybe we might want both eager and lazy operations on our collections.
-
Deserializing API Responses Into Java Records – seems like a very valid use of records (note: records are still a preview feature).
-
Java & Files – a tutorial walking through modern IO in Java. It’s surprising how few tutorials you find with modern examples, well worth a read.
-
Restore IntelliJ IDEA settings – I struggled with this too! I often have to reset to defaults before recording a new screencast, and I discovered that the settings have moved in 2020.1.
-
Intellij IDEA Tips – Multi Cursors – short video demoing a great example of when multi-caret is useful in IntelliJ IDEA, plus a few other nice features.
-
The Unsafe Class: Unsafe at Any Speed – you may have heard of Unsafe in the context of Java 9 changes. This article covers what it is, and what’s being done about it.
-
Pattern Matching for instanceof in Java 14 – Mala Gupta‘s excellent article explores not only what this feature is, but where and how it might be useful.
-
Java Feature Spotlight: Text Blocks – this is coming in Java 15
-
Understanding Classic Java Garbage Collection – useful to know, vital if you’re going to those Java interviews where they like to grill you on this sort of thing.
- The Home of the Java Almanac – shows Java API changes between versions.
- In case you didn’t know, IntelliJ IDEA supports pasting from the clipboard history (Cmd+Shift+V / Ctrl+Shift+V).
Today I learnt that the clipboard history in @intellijidea is now unlimited (since 2019.3) pic.twitter.com/rWtfrzSCo5
— Trisha Gee (@trisha_gee) May 26, 2020
Languages, Frameworks, Libraries and Technologies
-
Should I Test Private Methods? – an unambiguous answer!
-
Gradle 6.4 Released with Support for Java Modules – I’ve been trying to upgrade my Java 9 project to work correctly with Gradle and saw this updated support. It means changing my build file a lot, but I’m hoping this will prevent a lot of the workarounds I was using before.
-
JavaFX 14 enhances API, mobile support – this is also interesting to me since the project I just mentioned is a JavaFX one.
-
Selenium for Games: Automating Tic Tac Toe – a live stream video, plus code for you to play along.
-
How do you help people embrace TDD? – “Especially if they don’t want to do it”. A good personal-experience blog post about how they got started with TDD and its benefits. I discovered cyber-dojo via this post which looks extremely interesting.
Culture & Community
2020 seems to be getting worse, not better. While lock-down seems to be easing in many countries (rightly or wrongly), attention now is on the inequality black people (in particular) face in the States and elsewhere. Yes, this is a technology newsletter but those of us who write software are humans, and these issues are human issues. I know readers of the newsletter are from all over the world, and we all face a different blend of issues in our different cultures, but understanding what’s going on in one culture can help us widen our viewpoint.
- Creating predictability and stability in times of rapid change – I just posted this back in April but it’s more important than ever.
- Managering in Terrible Times – this was an earlier post by the same author as the piece above. Managers, particularly CIS white male managers, should be reading about what they can do to help their team members.
- My White Boss Talked About Race in America and This is What Happened – again, I posted this back in April, but it is more important than ever to read. This is basically a story of the result of a manager doing the things mentioned in the first two articles.
- Why you have to ruin dinner sometimes – “we have to take responsibility for action, the responsibility of speaking up…. I also believe those of us with privilege must speak up and stand up for those who cannot speak or stand up for themselves.”
- 75 Things White People Can Do for Racial Justice – there’s a US-slant to some of these items, but there’s plenty in there for those of us who want to do something, wherever we are.
- Follow #BlackTechTwitter – we’re software developers, not machines, empathy and understanding will allow us to come up with better solutions.
-
What Matt Hancock’s remark to Rosena Allin-Khan says about tone policing women – Also nothing to do with technology, but I have seen plenty of tone policing of women in the workplace, and this was a classic example of it. Don’t do this.
-
Conflicting Reports on Remote Worker Productivity and Contentment – a lot of this analysis of “working form home productivity” has to be clear that working during COVID-19 is not the same as normal working from home
-
Are standup meetings designed for remote teams? – we (Java developer advocates at JetBrains) use two main standup techniques: a confluence page (updated via Slack bot) which tracks what we’re working on this week/what we’ve completed; and a daily chat message between ourselves at the start of the day to talk about what we’re planning to work on. The first is useful mostly for giving ourselves a (usually positive) view on what we’ve achieved this week; the second is useful to force us to think about the day’s priorities and also to provide that personal touch-point which is important for a remote team. TL;DR: standups should have a clear goal, and remote teams might find a different approach meets that goal better
-
Tips and Tools for Improving your Remote Meetings and Presentations on a Budget – I’ve worked from home for 8 years, and I present stuff from my computer for a living, and even for me some of these are a little too… keen. But there are plenty of good tips here to help you connect better with people during remote meetings.
-
Code less, engineer more – really love this. We can’t be effective developers if we’re not thinking about what we’re actually trying to achieve. Spoiler: the goal is not “more lines of code”
-
Keynote: Real Software Engineering (video) – interesting talk about why Software Engineering doesn’t mean what we think it means. The video references “Masterpiece Engineering” which seems relevant even now.
-
Secure code review: 8 security code review best practices – I also collaborated with Snyk on this too
- Feynman Bytes Ep 2: Release Management (video) – solid advice on how to improve the release process. I used to work with Dave (who co-authored the Continuous Delivery book) and I can tell you his advice absolutely does lead to better practices / less pain.
- Let’s finish with some good news. JetBrains’ own Tagir Valeev has been made a Java Champion!
Congratulations to new Java Champion @tagir_valeev!
— Java Champions (@Java_Champions) May 29, 2020
Conferences and Events
Back in the Olden Days (like, last year) I used to put a list of all the Java/JVM-ish events JetBrains was going to be at. In the New World, I’m going to try to remember to post upcoming free online Java/JVM events. Now “real life” conferences aren’t a thing, it’s a good opportunity for people to attend an event who wouldn’t normally get a chance to.
- JNation (2 June) – featuring a whole bunch of great speakers
- JSpring (23-26 June) – featuring James Gosling! And me (Trisha Gee), probably.
- JPoint (June 29 – July 2) – featuring me and Tagir Valeev from JetBrains.
- JetBrains Technology Day for Java (July 10) – register now!
Let’s celebrate 25 years of Java together! Join us on July 10th for the first ever JetBrains Technology Day for Java. Topics: Modern Java, Spring, Eclipse Collections, Automation Framework, and more
Register now: https://t.co/SRTYyq1S9L#JBTechnologyDayJava #JetBrainsLovesJava pic.twitter.com/sGJLtLDtvP— IntelliJ IDEA (@intellijidea) May 23, 2020
And Finally
A chance to catch up on the other IntelliJ IDEA videos and blog posts from this month. Goodness me, Mala and I creating a load of new blog posts and screencasts showcasing IntelliJ IDEA features, check them out!
#IntelliJTopShortcut: ⇧⌘⏎ or Shift+Ctrl+Enter. “Complete Statement” sometimes just adds a semi-colon to the line. It can be used to create the outline of for loops or if statements. It moves the cursor to the next place we’ll need it#TheDriveToDevelophttps://t.co/UEYle01RnY pic.twitter.com/HDTSySysqM
— IntelliJ IDEA (@intellijidea) May 5, 2020
- IntelliJ IDEA 2020.2 Early Access Program Is Starting! – yay! I love a new EAP. Be aware there is a tiny issue with it though!
-
Debugger Basics in IntelliJ IDEA (blog post with video)
- Code Completion in IntelliJ IDEA (blog post with video)
-
Code Generation in IntelliJ IDEA (blog post with video)
-
Write Code Faster Using Live Templates (blog posts with video)
-
25 Things We Love About Java – I pulled together a lot of input from the community to write this, and I created a video covering the language features we love too.
#Java turns 25 things this month. What’s your favourite thing about Java or the JVM? Features (e.g. Streams API) or “other” (e.g. Community), both types of answers encouraged!
— Trisha Gee (@trisha_gee) May 13, 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.