Hello guys, how are you doing? I've had in my mind a topic for a while now and I'd love to share and hear from you about it. It's not quite technical but it's important in any techie job, I think.
Not long ago, DEV went open source and it was pretty exciting for the ones who were following the development of the site. Some of us are very used to creating free and open content and happily joins Linux discussions, events and such. But, what's the point on this, why are we in this train? I'd like to start explaining the difference between free and open before going further, if I may.
Essentially, the freedom of the software is defined by four rules stated by Richard Stallman in the 80's. As explained in the GNU manifesto, the four rules are:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help others (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
And yes, it starts at zero, because we all know how arrays work ;) And it sounds great! It talks about improving, sharing, learning...
Open source is a term, as described in the official source that hands the methodology for code distribution following the legal requirements in order to make it accessible to the community. Both have enriched the software development, it's said tho that freedom of the software takes a deeper meaning, more like a lifestyle or a way of thinking.
Now, I'd love to introduce some doubts, thoughts and question that have been in my mind for a while.
As I see it, we live in a very quick, frenetic routine that makes us enroll in a fast-thinking dynamic. Your opinions has to be sum up in a fast-readable tweet (best with a picture!) a fast-readable article, an elevator pitch... which is kind of a normal output out of a massive information society, but it has a dangerous trap; Fast culture shorten our deliberations, too. Why am I pointing at this now? Well, sometimes, in certain situations I've seen Freedom of software being used as a tag in order to make something fancier, or make it look like coder friendly, community friendly, without actually applying the basic spirit behind the concept. I want to make it clear, I'm not stating freedom of software is some kind of boys scouts badge or something like that, but do we really mean it when we work on it?
The entire movement of freedom of the software bases its points in the community awareness, the evolution of code as something not individual. But also something that should not be owned. The distribution of contributions aims for the code and the development instead for the personal scope. Making every single commit worth a review create greater, wider projects. This requires a pulse, a live community that not only create, but improve and critic all the time. Critics are needed in order to not fall in the conformity of the absolute rightness, improvement is impossible when there's no criticism. What happens when freedom of the software is used as a label of rightness, a mere adjective, doesn't it lose its entity?
This same concept broke the virtual wall, and arrived in the hardware community. Freedom of the hardware, leaded by those so called Makers, made possible amazing things, projects and ideas which are exciting and allow almost anyone to take part in electronics, something not as easy years ago. Actually, I've seen something in the makers communities that I haven't found that easily in software communities: greater multidisciplinary members. Has this happened to any of you? Many artist involved in tech are enrolled in maker community for example, also educators, even psychologists.
I firmly believe in tech as something any kind of professional should be able to take part in, actually why not? We all already took our role as users, and took part in the digital world, why stay away from its development? Do you think any kind of professional is able to enrich the developers community?
Hope to hear from you, guys!
Top comments (6)
It's because free software is more about the freedom of others. And GPL does not prohibit making money out of GPLed software. Making money in software is not equal to restricting the freedoms of the people that use that software. That's a single model, and a mostly obsolete one at that.
Thing is, you can still make money out of it if you give the sources back. It totally changes your relationship with the person you're giving the sources to, be it your customer or the whole wide world. That's what Paula's post is about.
RMS probably doesn't understand lots of things, but he understands what freedoms is all about. It's about agency and empowerment, yours and the others. Giving freedom to others is no prohibition for you. You keep all your freedoms as an author (including making money, only not by restricting others' freedoms), but you share some of them with others.
I believe in the value of sharing code and solutions publicly. It can create a virtuous cycle of improvement for everyone. However I do not view it as a moral imperative. Because releasing open source software creates a sort of implicit unpaid job for someone (probably yourself) to maintain it. It simply does not make sense to me to be rewarded with a huge burden for trying to help out. Passion could be another reason to take an unpaid job, but I tend not to be passionate about specific solutions to problems -- I would happily switch to a better solution if one came along. So I try to keep the things I release simple or where they can be easily extended without source code modification. But just in case, I also used permissive licenses. I would rather companies internalize the source instead of asking me to add features. Or better yet, I'd rather them make their own open source version that they maintain.
I also think that full products are especially difficult to build as open source, at least until after the core vision for the product has been solidified. Because as humans, when we discover something new we naturally try to use it in every possible way. So you get that person who wants the CRM app you are building to also play music and do time sheets. It's human nature for people to ask. This is already a challenge just working privately with customers/users. So building in public makes it more likely for features to sneak in which dilute the core focus of the product. IMO.
It’s nice to be able to offer the option, for those who want it, to use our code.
When they disagree with a community policy, they’re free to look at what we’ve done and build on it in a different direction.
And if they’re very happy with what we’ve done, they’re welcome to do the same, more out of friendship than disagreement.
It’s a general net win for everyone involved. And it’s a lot of fun!
This is a really thoughtful article. Thank you for writing it.
Looking forward to ruminating on it. Slowly... ⛛
thank you for appreciating!