It´s time to talk a little about Open Source Software.
If you can remember, we published a post about Software Licenses. This are to ensure software are going to be well distributed/implemented/modified by all of the user that sees it.
Recently I want to comment I assist to a litlle course of Software optimization for Machine learning, this means having all the posible resources of the machine (Yes Hardware level) really beaing used for your algorithm, code or software in general.
Only as a little intro, we used AVX3 and AVX2 to compare time execution and time optimization in code. All of these in Linux using gcc.
I am telling this little history because the topic of today is Open Source Software.
Acording to https://opensource.com/
Open source software is software with source code that anyone can inspect, modify, and enhance.
“Source code” is the part of software that most computer users don’t ever see; it’s the code computer programmers can manipulate to change how a piece of software—a “program” or “application”—works. Programmers who have access to a computer program’s source code can improve that program by adding features to it or fixing parts that don’t always work correctly.
Yes, If you remember i.e. GNU GPL this source code can be implemented, changed and distributed free. This means if you want to modify a part of the source code of a GNU GPL and sell it to another you can´t.
Something to keep on mind:
Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.
Or, less formally, “Given enough eyeballs, all bugs are shallow.” I dub this: “Linus’s Law”.
Some of the benefits of using an Open Source software are:
Control: This means, having more chance to modify or even finding bugs in the code.
Training: Due to tha fact all is open and free, changes are really important to break or win, this gives you practice and teaches patterns.
Security: Anybody can fix, update or upgrade your software, for things you didn´t saw.
Stability: For long term use, this means support is extended practically for all the lifetime the developer is interested in the project.
Something I want to emphazise I think is nit the same Open software than free software.
While the first one has a license to upgrade, change and use, the second one is maye only a software to be used by… well the user.
What are your thoughs about this?