Over a million developers have joined DZone.

In Defense of the Lazy Programmer

Open source libraries are freely available and have had a lot of work put into them. Why not be lazy and take advantage?

· Agile Zone

Reduce testing time & get feedback faster through automation. Read the Benefits of Parallel Testing, brought to you in partnership with Sauce Labs.

According to Larry Wall, the original author of the Perl programming language, there are three great virtues of a programmer; Laziness, Impatience and Hubris. Fortunately for the lazy developer today, it is often easy to forgo writing code yourself in favour of reusing existing open source solutions.

In fact, I’d go so far as to say that a developer's familiarity with open source libraries is one of the predictors of their likelyhood in successfully reaching production. But it is not just lazy developers seeing the benefits:

Almost all—95 percent, in fact—of companies will be using open source software by 2017 and the adoption of third-party open source code is increasing steadily.

I remember the first time I decided to look through the project lists for organisations like Apache, JBoss, Spring and Google, simply to see what they had available. I was blown away by the sheer number of established, tested, supported and production ready libraries. And I was humbled by the number of projects that I found that I could (should) have used instead of writing custom code.

The availability of open source code is often credited as a reason for a language’s popularity:

Case in point: the Java programming language. A decade ago, Java was a language primarily used behind closed doors, something that big banks and other “enterprise” companies used to build all sorts of very geeky, very private stuff. But as GitHub’s data shows, it’s now at the forefront of languages used to build open source software.

Yet in my experience though, knowledge of open source libraries and projects is still something that is handed down from developer to developer, without any real recognition of the significance of this field. Like a master artist passing on the secret of mixing paints to an apprentice, the use of open source libraries often starts with a conversation like “in my last job we used [x] to solve this problem”.

I was recently tasked with writing up some guidelines for the selection of good open source libraries, and I thought I would share some of the selection criteria here:

  1. Has the code been developed under the guidance of a reputable organisation (Apache, JBoss, Spring and Google are good examples)?

  2. Does the project have the option of commercial support?

  3. Is the project active?

  4. Does the project have a good level of community participation on sites like StackOverflow?

  5. Is there training available in the form of online documentation, books, courses or online tutorials with sites like Udemy?

So don’t be afraid to be a lazy programmer. With so much high quality code out there just begging to be used, why not save yourself some time and move the discussion about open source code from the water cooler to the board room?

The Agile Zone is brought to you in partnership with Sauce Labs. Discover how to optimize your DevOps workflows with our cloud-based automated testing infrastructure.

Topics:
open source

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}