Modern Software Engineer

Here is another fun blog I read, but it was kinda long:

Are You a Modern Software Engineer?

The author develops a picture of different developer types and presents a highway analogy for the number of lanes a developer career can travel.

One case presented is the “Full-Stack” Deep and Broad knowledge developer.  In my many years experience thus far, this person doesn’t fully exist.  They are usually deep on one end (say the back end) and shallow on the other (the front end for instance.)  They can function as an expert in one area and get by in another.

It is a good read and I highly recommend it.  Then put yourself in the matrix and ask yourself where you land.


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


Java 8 uses StringBuilder for Concatenation

An eye opening DZone blog today made me aware Java 8 uses StringBuilder for String concatenation behind the scenes. Remember Strings are immutable and in the past the following would have effectively created 6 different objects for eventual garbage collection. 
new String s = ‘String1’ + ‘string2’ + ‘string3’ + ‘string4’ + ‘string5’ 

Oracle Charging for Java SE Starting in 2017?

I get DZone push content sent to my inbox everyday, as a one stop shop to keep up with Java-World news. Today’s blog list had this interesting heading:

The Sky Is Falling: Oracle (Might) Want Your Money for Java SE in 2017

The Rub of the article is :

Oracle spinning up their License Management Services (LMS) division focused on “chasing down people for payment.”

[UPDATE 2016-12-23]: A blog published in response to any concerns or outrage: Being Wary Does Not Hurt Java
I look at software like music or movies. That group full-on tried to put the up and coming players in a digital purgatory box: Apple iTunes, Real Networks now-defunct Rhapsody, Amazon, Microsoft, now-defunct Tower Records.
The DRM Promoters were were afraid of copy-right infringement, and frankly they are right. This is how the artists get paid.
The same is true of software. My time invested in a product should reflect a reasonable return. I have misgivings about Oracle, but they have a right to seek payment for reasonable use.
Before you think I’ve lost my mind, the blog makes my point – the licensing will probably go after those running embedded Java without paying for it – like Cash Registers. Those of us doing software development will probably run as we always do: download and run so we can make software that can be sold … and ha-ha, Oracle can grab their cut.

There are options:

  • Open JDK – this has the newest development that will go into the upcoming SE-JDK
  • Purchase a license of IntelliJ: my most recent personal license was $89USD for 2 years, and it is a quality tool
  • Shift gears to another language, like, oh, C# (Microsoft is starting to open up a bit), C++, Javascript on Node.JS
My non-prophetic prediction: Anyone getting charged to run SE will be for a product in production, not for those doing development of said tools – which makes Oracle money :). Oracle is on the board of Eclipse (Free OSS), they still have an interest in NetBeans even after shifting it over to Apache – Oracle has tools they sell/provide based on NetBeans.
We, the developers, are the people that make Java a viable tool in the wild. They will take care with this community.