You may have heard the word ‘componentization’ floating around the open source software community. If you had no idea what it meant, we hope this article serves as a simple breakdown for you. It’s a fantastic concept, and one that the open source community should definitely adopt.
Use a Discount Code to save on Codecademy Pro
Before we dive into componentization, I wanted to let all of our readers know about an exclusive coupon code for 30% off Pro subscriptions at Codecademy. Codecademy is an excellent way to learn how to code online at your own pace. They have many courses that are available free of charge, or with the Pro subscription you can actually work your way towards becoming certified in a variety of coding languages. I highly recommend their services to anybody who is looking to get into software development or who wants to upgrade their skills.
What is Componentization?
Componentization is not a new idea, it was actually introduced in the 1960s when computers were so large they took up an entire room. However it really didn’t start to be implemented until the 1990s at IBM. In its simplest terms, componentization is breaking down software into components or resources, that can then be re-used in other projects. So let’s say you’re sitting down to build a web app, instead of starting the code from scratch you could comb through a repository of open source components and select a few that will fit into your project. Then you stitch them together with workflows and network connections to make a new, unique product. The idea is that you don’t need to reinvent the wheel every time, there are things that are going to come up over and over again. Somebody has already written code that works and is happy to share it, so you can make use of it as well.
Why is Componentization Important to Open Software Development?
Arguably componentization is the most important element of open source software development, the whole idea of open source was to make code transparent and freely available for anybody to use. And to be fair, there is a lot of software that is free to use and you can easily take a look at the code. However, I would also say that open source software is currently quite weak in terms of componentization. Although you can see the code, it’s not always easy to re-use it in your own projects.
Improving componentization in the open source software community would have a big impact in terms of how rapidly new programs could be developed. By cutting down on the amount of time a developer needs to spend writing original code there will be a sharp increase in how much work they can produce in terms of finished software. By using components, developers could create software even in areas they don’t specialize in by borrowing code produced by others. The idea is to make the base code very plug and play, improving componentization in the open source software community could be huge. Even if you just implemented this in your own work, imagine how much time you could save!
How to Move Forward with Componentization
So now that we are all in agreement that componentization is the way of the future for open source development, where do we go from here? Well, a good first step would be to set up a central repository and resource for developers. It can be divided by code language, so if you need something written in PHP, jQuery, or Ruby you can grab it. I think it should be further organized by function, and of course everything needs to be searchable. Who is going to build and maintain this? That’s a great question. It should be an organization such as the Open Knowledge initiative that would be committed to keeping the code open source and the site free of commercial interests. Of course it does cost money to host and serve a repository, but hopefully the project could rely on donations to keep it afloat. I think given the amount of time this would save many development studios and freelancers, they would be happy to pay a small membership fee that would go towards the maintenance costs. As for who would donate the code, since it’s open anybody would be able to. There would need to be some sort of review process in place to make sure that unscrupulous people weren’t submitting malware, but I think it would be doable.