dagblog.
← Archive

Nothing in life is free


At least, that was David Grudl's experience developing the Nette web framework. I deliberately left out the words “open source,” even though David equated free of charge with open source and called it communism. I thought long and hard about when we had last paid for a framework we used. The world has changed, and so has what we pay for.

When I started programming in 2001, it was normal to pay for most software. I had Windows, the database was Oracle or MSSQL, and my development environment was JBuilder. Before that I think it was Visual Basic. God knows what license that had or whether you paid for it. I was a student and surely pirated it. Sometime around 2002 I came across Enterprise Java, and the application server business was booming. WebSphere, WebLogic and Oracle Java Server cost hundreds of thousands. If I remember correctly, JBoss was the only free alternative at the time.

The libraries and frameworks used during development were a different story. Practically from the start, they were all available as open-source libraries. The difference between an application server and a framework hardly needs explaining. But one important detail is worth keeping in mind. Back then, the people buying and operating the application chose the application server or other middleware and the database. Developers chose the framework. Whoever ran the software controlled the budget. Developers had an advisory voice at most.

Under the per-processor or per-machine licensing models common at the time, it was not easy to use commercial libraries and bundle them into applications. With cloud computing, software services and DevOps, the software stack we deployed to partly ceased to be a barrier. By about 2010, it did not occur to me that I should or could use anything outside open source.

Open source was a requirement. We always considered the size of the community, how active the project was, its documentation, whether a commercial company backed it and whether other tools formed an ecosystem around it. At some point I stopped seeing open source as the only attribute that mattered. It had to be open source plus something. Today I would call that something a product.

Unlike a library or framework whose sole attraction is being open source, a product gives me something more that I am willing to pay for. It might be support, extensions, training, a combination of hardware and software, or operations, as we see with the cloud. Open source has mattered to me in frameworks and software generally because it guarantees freedom to act and minimizes vendor lock-in. A great framework or library without a product won't put money in your pocket. It can be fun, a hobby, a learning tool, a reference, or anything else that makes sense to you given the time and work you put in. You certainly cannot make a living from it and should not count on doing so.

Medium version

Related articles

Related CZ Podcast episodes