Reaching Version 1 is Hard to Do

DZone 's Guide to

Reaching Version 1 is Hard to Do

Finally deciding to take the plunge and announce the first 1.0.0 version of any product can be nerve racking, but doing it can be a big relief.

· Web Dev Zone ·
Free Resource

A joke that never gets old around an office with a split between Java and JavaScript developers is Java class names like SimpleBeanFactoryAwareAspectInstanceFactory. “JavaScript would never include such ridiculous class names!” my colleagues exclaim with much glee.

“But at least that class is part of a library that has reached version 1,” is the standard reply.

A quick look through any package.json file shows just how few libraries have made the jump to a 1.y.z version number, instead preferring the safety of a zero-based major release. It is one of my pet-peeves about the JavaScript ecosystem. Just commit to a version 1 release already!

And then I looked at my own project, Iridium, and was forced to admit that I had not even released a minor version above zero. Each release was a minor release, and there were nearly 100 of them...

What was I waiting for? Someone to come along and tell me it was OK to finally hit the big 1.0.0?

It is surprisingly difficult to say that some software you have written is worthy of the 1.0.0 version number. It is the nature of software development to always be consumed by the problems that remain to be addressed instead of appreciating the solutions that you have successfully implemented. Doing a 1.0.0 release feels like accepting a gold medal when you know you could have done better.

Still, at some point, you have you just have to commit to a final release. So today I proudly announce that Iridium has reached version 1.0.0!

So I have to say that it feels good to finally hit the big 1.0.0. It only took me 10 years to release a final version of something.

testing ,web dev ,java ,javascript

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}