Java 8 Optional

My shop is considering development paths and frameworks.

One Framework path I am evaluating is a homegrown library, small and specific in nature, built on top of Google Guava.

Here is a quick GitHub writeup explaining the issue around null, and how the Guava framework developers avoid it:

https://github.com/google/guava/wiki/UsingAndAvoidingNullExplained

Reading my DZone blogs today the top article was this very topic, demonstrating the use (in code) of ‘Optional’, which has made it’s way into the Java 8 VM.

https://dzone.com/articles/java8-optionals-overview-with-examples?edition=272883&utm_source=Daily%20Digest&utm_medium=email&utm_campaign=dd%202017-02-23

And beware of those NULLs!

 

 

IntelliJ, Java 8 Refactoring, and Lambda/Stream Performance

My Twitter feed served up this delicious blog:

IntelliJ IDEA Inspection Settings for Java 8 Refactoring

My shop is using IntelliJ and we are converting our Java 6 projects (Inherited from an outsourced vendor 2 years ago) to run on Java 8.  Jetbrains built in some great IDE functionality every developer needs to check-out.

That also generated this question to mind: what about performance?  Lambdas and the Stream API make the code oh-so awesome to read, but is it efficient compared to verbose Java?  I found this nifty blog:

Benchmark: How Misusing Streams Can Make Your Code 5 Times Slower

Benchmarks tend to be pretty treacherous and it’s super hard to get it right.

… it showed {Lambdas and Stream API } … can be around 5 times worse {performance}

The operative words here are “misusing” and “can be” … 

Happy Coding

  • Fshtank