`Would you tell me, please, which way I ought to go from
here?’
Alice speaks to Cheshire Cat
`That depends a good deal on where you want to get to,’ said the
Cat.
`I don’t much care where–’ said Alice.
`Then it doesn’t matter which way you go,’ said the Cat.
Steve Jobs coined a saying Real Artists Ship during the development of the Macintosh. He was trying to bring the chaos under control a bit and keep people goal oriented.
During any software project, there is a chaotic early period during which the vision is formed and experiments performed to test approaches towards achieving the vision. The code base during this time will be unstable and generally unusable. Eventually, the general principles will get worked out, the architecture will gel, and the rest of the project is spent converging towards a stable implementation. When the software reaches an appropriate level of quality and stability, a release is made.
Releases are forks in the software history. For the supported lifetime of the release, every fix has to be done twice. Once in the mainline code base that continues to evolve, and once in the stable release branch. This is just part of the cost of having users. It is extra work, but without it, you will not attract users.
Software projects without releases are shifting sands and lack the stability required to support great buildings. I think this is part of what is holding back Squeak and I was really pleased to see Ralph Johnson of “Design Patterns” fame offer to take on the management of the Squeak 3.10 release. He is focused on improving the quality of the base system. This is good because over the years Squeak has accreted a lot of experimental code that sort of works, but isn’t really production quality. Now progress is difficult to make because the lack of polish is hindering the development of new capabilities. Time to clean house to prepare for the next great wave of innovation.
Sadly, the Seaside project hasn’t taken the same position. There are a few developers, unpaid who are doing this in their spare time, like all open source projects. They’ve done great things to improve the platform. However they’ve been working on something they called version 2.7a for awhile and recently announced they were starting 2.8a. No release for 2.7 was really declared and the criteria for bumping the versions doesn’t seem well expressed.
Compare this to Ruby On Rails site, where you can find a big red arrow inviting you to download the latest stable release to get started. Seaside has no equivalent, and a newbie coming to the seaside project would likely be paralyzed with indecision with all the various branches, labels, and versions available – nothing clearly labeled ’stable release – start here’.
People are not inclined to bet their livelihoods on software of indeterminate stability. I hope a release culture emerges soon.