JVM Language Job Trends

Posted by rob on August 15, 2009

I thought it would be interesting to see what the job scene looks like for the various JVM languages out there. The languages I chose to feature on my Indeed.com trend chart were Groovy, JRuby, Jython, Rhino, Scala and Clojure. The order in which I listed them is the order I figured they would be in, with Groovy being the highest and Clojure being the lowest. Based on the results below, I was correct on the highest and lowest. However, its the results in the middle that are the most interesting. Jython is neck and neck with Groovy for the top spot. JRuby is second to last and in decline. Scala looks to be on the rise. Can we trust these results as a barometer for the future of these languages on the JVM? Let me know what you think.

You can click on the image below to go to Indeed.com and see a larger version of the chart.


groovy, jruby, jython, rhino, scala, clojure Job Trends graph

groovy, jruby, jython, rhino, scala, clojure Job Trends groovy jobs - jruby jobs - jython jobs - rhino jobs - scala jobs - clojure jobs

Tigers in Southern Missouri?

Posted by rob on June 30, 2007

I visited the National Tiger Sanctuary in Bloomsdale, Missouri today. I wasn’t sure what to expect of the place before I visited, but I left thoroughly satisfied. They have five adult tigers, including a rare white tiger, with the largest weighing in at 700 pounds! While the St. Louis Zoo is awesome, it is no match to this place when it comes to getting up close views of large, playful tigers in an outdoor environment. The National Tiger Sanctuary is about a 45 minute drive south of St. Louis off of Interstate 55. Click on the photos below for a preview.

National Tiger Sanctuary

Tiger 1 Tiger 2 Tiger 3

The Water is Grrrrrrrrrrrrrrrreat!

Posted by Rob on June 18, 2007

Alligators have nothing on this tiger. What a great photo.

Swimming Tiger

Lightning Striking The Empire State Building

Posted by Rob on May 23, 2007

Just a cool picture of lightning striking the Empire State Building.

Lightning

Burn Jet Fuel, Plant Trees

Posted by Rob on January 29, 2007

This weekend I ran across an interesting article about Google business policies in China. However, what I found interesting in the article had nothing to do about China. It was what Sergey Brin, co-founder of Google, had to say about offsetting carbon emissions. It is well know that the Google co-founders fly in a private Boeing 767. Mr Brin is concerned about the impact his jet travel is having on the environment due to carbon emissions. He is taking care of this problem by “offsetting” his carbon emissions.

“What does offsetting his carbon emissions mean?”, you may ask. I had never heard of this concept, so I did a little research. One of the best references I found of course was on Wikipedia. They identify the subject as a “carbon offset”. The Wikipedia article gives pretty good information on carbon offsets and also lists some sources of criticisms in order to give a balanced view. In short a carbon offset is something you do to negate the carbon emissions that you personally create. One such thing is planting a tree. You can read the Wikipedia article for a more scientific definition.

To be fair to Mr. Brin, he is quoted in the article as “not really being sure about the efficacy of such programs”. The article reads as if Mr. Brin is going to release more information on what he is specifically doing at a later time. I’m not going to give my opinion on carbon offsets either. This isn’t a political blog and this subject definitely appears to be in the political arena. And I’m too new to this subject to have a valid opinion anyway. I simply find the entire subject fascinating and think that we will be hearing a lot more about this in the future. The subject is sure to have large political, social and scientific ramifications.

Ice Covered Trees and Software Quality

Posted by Rob on January 26, 2007

I had so much fun writing Temporary Trees and Software Decay, I thought I would write another article comparing trees to software. If you love trees and software, hopefully you can bear with me.

Recently, the St. Louis area experienced two severe ice storms. Not all areas were affected as badly as others, but unfortunately the area where I live was hit hard. The real damage occurred to the trees in the area that had been covered with a half of an inch or more of ice. I was lucky and only had one tree that received any significant damage. Some nearby areas weren’t so lucky and looked like a tornado had torn through the area. It was a shame to see so many beautiful trees damaged or completely destroyed.

In my yard I had three types of trees in relation to these ice storms.

  • I had strong trees like the oak. The oak is very strong and did not give at all to the ice. Too bad oak trees takes so long to grow.
  • I had trees that were not as strong, but very flexible like the maple. Many branches on my maple were touching the ground. I didn’t think my maple was going to make it, but luckily its branches returned to their normal positions a couple of days after the ice was gone.
  • I had trees that were not strong and not flexible, like my willow. My willow lost many large branches. It clearly appears to have been damaged. The damage wasn’t so severe that I’m going to remove the tree, but I have considered it.

What does any of this have to do with software? Let’s see.

  • Strong trees like the oak remind me of software that is designed correctly and according to specification and simply works great. Like the oak tree, high quality software takes longer to create. Sometimes this is OK, but sometimes the business environment doesn’t afford this luxury.
  • Less strong, but flexible trees make me think of software that is designed quickly, but with “best practices” and good leadership. This is often what many of us strive for. Software that can be developed quickly, with quality and meets requirements is in high demand.
  • Less strong trees that are not flexible and often break are similar to programs that are thrown together quickly, without quality processes and do not meet requirements. Unfortunately, some of the most beautiful trees fall into this category. I don’t know if the same can be said for software. Often it is better to throw away weak and inflexible software than to maintain it. However, like temporary trees, sometimes software is written quickly to take care of a short term problem that does not warrant an expensive or significant development effort. If so, its important to know when this is the case.

Be sure to know what kind of software you are building - oak, maple or willow. Hopefully, when you are trying to build an oak or a maple, you don’t end up with a willow. Its also good to know what kind of software you have deployed in the past. You don’t want to wait until an ice storm to find out.

The Rule of Threes

Posted by Rob on December 08, 2006

We have all heard by now the tragic story about James Kim and his family. While browsing the Internet for stories related to this incident I ran across this interesting article about survival in the outdoors. This article has a lot of interesting things to point out, including The Rule of Threes.

A person can live for:
Three minutes without air.
Three hours without shelter.
Three days without water.
Three weeks without food.

Temporary Trees and Software Decay

Posted by Rob on November 25, 2006

Today, I was lucky to get to spend most of the day outside and enjoy a beautiful, autumn day with a high in the upper 60’s. I spent most of the afternoon removing two trees that I no longer wanted in my backyard. As only a good technology blogger would do, I will relate this event to software. Because I am able to blog here about two of my favorite things, the outdoors and software, this may be one of the most enjoyable blog entries I will ever get to write.

The reason I removed the two trees was because there were four trees planted in a row, with about ten feet in between each tree. The trees were most likely all planted by the original owner or builder and are perhaps 13 old, which is the age of the house. The tree types as they appeared in the back yard from left to right were oak, plum, maple and Bradford pear. The trees were growing into each other, so either the first and third or second and fourth trees needed to go. No one in their right mind would have planted these four trees so close together. The plum and pear trees were most likely temporary trees, because these trees are lower quality than the oak and maple. So, I decided to remove the two fruit trees, which should give the oak and maple plenty of room to grow properly. Plus, this is a chance to get the chainsaw out, and one can never pass that up.

OK, here is the part where I relate the tree story to software decay (or software rot). When a new home is built, often many trees are planted around the home for various reasons. Some are for aesthetics, some are to prevent erosion of newly landscaped hills and topsoil and others are for privacy. I’m guessing the temporary trees in my backyard were planted to prevent erosion or to provide privacy between my yard and the yard that backs up against me. With software, we often write temporary code for debugging, as a temporary error patch or maybe as a temporary feature to help the users out until another more complete feature is developed. In addition to temporary code, over time we may also add overly complex features, unwanted features and some not so really needed bells and whistles. Hopefully, from the beginning of the project we added a whole lot of required features that make the software useful.

So, most software contains temporary code, overly complex or unneeded features as well as valid code to implement the requirements. This code now needs to be maintained, updated and reviewed over its lifetime. The temporary code needs to be removed. Unneeded and unused features need to be recognized and removed also. Overly complex features need to be simplified. Existing features need to be improved. New features need to be added. How many times have you worked on a project that was completed and then everyone moved on to something else? Sure, a few developers stuck around to do maintenance on that original program. Did they do only the minimal needed to keeps things rolling along and then move on to something else also. Did they do all of the things I just listed? Maybe just a one or two of them, like adding new features?

I’m the third owner of my house in 13 years. I think the previous owners knew those two trees needed to go. But since they were leaving, why not let the next owner fix the problem? A problem that grew a little bigger every day. Hey, at least I had a reason to get the chainsaw out on a beautiful, sunny day.

Spring Time in August

Posted by Rob on September 01, 2006

birds.jpg
Even though the temperatures were in the high 90’s / low 100’s, these baby birds didn’t seem to mind. This photo was taken a couple of weeks ago in the front yard of my house in Chesterfield, MO. The birds have since left their nest and moved on. Anyone know what kind of birds these are?