IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Java Annotated Monthly – July 2018
This month’s annotated monthly has a nice wide selection of reading for you to take to the beach, including chunky sections on Community and Culture, since it’s not always about lines of code. Or, if you actually are going on vacation, you could just leave all this alone for a while and recharge your batteries. I suggest the latter, although that’s a more difficult proposition if you have kids. You might already be looking forward to going back to work…
Java
Covering some collections tutorials, some information about working with databases, and some more general news about Java.
- Java’s Magic Sauce – an analysis of sun.misc.Unsafe, what it is and why it’s used
- The Reactive Universe for Java Devs – quick overview of what reactive is and three libraries/frameworks for Java
- Exact Conversion of Long to Int in Java – a look at Math.toIntExact()
- Java 8 Optional: Handling Nulls Properly – a basic intro to Optional
- Java Collections Are Evolving – I (Trisha) wrote an article covering some of the changes to collections in Java 9 and 10
- Iteration Over Java Collections with High Performance
- Refactoring to Eclipse Collections: Making Your Java Streams Leaner, Meaner, and Cleaner – Eclipse Collections used to be known as GS Collections, and provides some features that aren’t available in the Java 8 Streams API
- Deferred Execution with Java’s Consumer – how to use the Consumer interface in lambda expressions
- Unit Testing: Java Streams and Lambdas – TL;DR: keep your lambda expressions short
- Try-With-Resource in Plain Java – basically, what does try-with-resources give us?
- Working with Embedded Java Databases & IntelliJ IDEA (video) – good overview of setting up an in memory database to use in IntelliJ IDEA
- JDBC, What Is It Good For? (video) – how does JDBC fit with trends like Reactive, Non-Blocking APIs, Microservices, CQRS and Event Sourcing
- Should I Learn Java in 2018 – spoiler: yes, but the article contains useful counters to use whenever anyone moans about Java
- Spring REST Docs – Test driven documentation of your REST API – usually the Spring stuff lives in its own section but this month there’s not much else to put it with
- Testing JavaEE backward and forward compatibility with Servlet, JAX-RS, Batch and Microprofile – is it possible to implement a new artifact that uses MicroProfile API within Java EE 7? Can this artifact be used in a Java EE 8 Server?
- Zip Slip Directory Traversal Vulnerability Impacts Multiple Java Projects – security is important, mmmkay?
Java Future
With the shorter, faster releases it’s not so clear which version number certain features will come in, but we can still keep an eye on upcoming features.
- JEPs 181, 315, and 333 Proposed to Target JDK 11 – quick summary of three features in Java 11
- ‘Predicate::not’ Coming to Java 11 – a nice addition to make Stream operations easier to read
- Applying New JDK 11 String Methods – a look at the new methods and what they do
- JEP 325: Switch Expressions – this OpenJDK page has been updated after plenty of discussions on this feature. This feature is a nice idea and may help improve some of the old-fashioned code lying around our code bases
- Oracle Proposes Deprecating the Nashorn JavaScript Engine – although the proposal was (apparently) intended to start a discussion about the future of Nashorn. One suggestion is that GraalVM is a suitable alternative
Community
- Java Community Aims to Quantify Java 9 Adoption – to try to prevent a Java 8/9 split in the community, we’re trying to figure out who’s using Java 9 (please fill in the survey), which libraries have adopted the new module system, which work with Java 9, and which might be falling behind. The goal is to help out popular libraries that might be need resources to move forward
- Oracle has a new Java SE Subscription – if you’re using Java for commercial reasons you (or your management) should understand the New Support Pricing Structure for Java. It reflects the changes in the Oracle Java SE Support Roadmap, and assumes the work to make the Oracle JDK and OpenJDK builds interchangeable will continue
- Q&A with Martijn Verburg on AdoptOpenJDK and Nestmates
- New Details Emerge Regarding Oracle’s Layoff of Java Mission Control Team – Mission Control was Open Sourced, so it doesn’t necessarily mean The End
- Microsoft to Acquire GitHub for $7.5 Billion – and because we love to react immediately 13,000 Projects Ditched GitHub for GitLab Monday Morning
- JAX Magazine is out: All aboard the IDE train! (requires (free) registration to download) – in which two JetBrains developer advocates talk about why their IDEs are amazing
Culture
- Don’t let your ethical judgement go to sleep – developers need to be aware that they don’t operate in isolation, but that their actions have real world consequences.
- Get happy developers to do what you want – or: automate all the things.
- Forget about Clean Code, let’s embrace Compassionate Code – stirred up a bit of noise on Twitter, the point that’s interesting is to not be black-and-white about rules
- Developers Should Abandon Agile – says Ron Jeffries, a famous Agile person. But the point is the same as above – dogmatic approaches to things like Scrum may not be fixing the actual problem
- How to Write Better Code – and the skills needed are not always about coding
- Introvert or Extrovert? Here’s How to Boost Your Productivity – we recharge in very different ways
- Jarrod Overson Offers Advice for Aspirant and Current Technical Leaders (podcast)
- Susan McIntosh on Diversity in Tech (podcast) – covers some of the basics like: why; what are some of the problems; what are some of the possible solutions; how it helps everyone
- Steering around blockchain hype – interesting article about how different groups of people see blockchain and what blockchain may actually be useful for
- Git Vulnerability May Lead to Arbitrary Code Execution – downloading the latest version now…
- The Mistakes I Made As a Beginner Programmer – not the bad code we wrote, but the things we thought were, or were not, important
- What’s the Best Way to Pair? – spoiler: it depends
- Politeness or Bluntness in Code Review? Settling the Matter Once and for All – or: there is no right way, we’re all different and we need to learn how best to communicate with each individual
Events
It’s summer, so there’s not much going on for the next couple of months in terms of big conferences. It’s a good opportunity, therefore, to let you know about the big autumn conferences that we’ll have a booth at.
- 3-5 Oct: KotlinConf, Amsterdam – not only organised by us but featuring a number of our Kotlin experts as speakers.
- 19-20 Oct: JokerConf, St Petersburg
- 22-24 Oct: HashiConf, San Francisco
- 22-25 Oct: Oracle Code One, San Francisco (formally JavaOne) – we have the booth, and Eugene Petrenko, Roman Elizarov and I (Trisha Gee) will be presenting a number of talks and BoFs.
- 12-16 Nov: Devoxx Belgium, Antwerp
- 23-24 Nov: Devoxx Ukraine, Kyiv
- 26-30 Nov: AWS re:Invent, Las Vegas
- 30 Nov-1 Dec: DevTernity, Riga
And Finally
News and topics from the IntelliJ IDEA blog that you may have missed:
- IntelliJ IDEA 2018.2 Beta 2 is available! IntelliJ IDEA 2018.2 features things like additions for Java 11 support, updated inspections and intentions, better data flow analysis, improvements to support for Docker,
- IntelliJ IDEA 2018.1.5 is released!