Open up your phone. Your social media, your news, your medical records, your bank: they are all using free and public code.
En pratique, énormément de logiciels reposent du code libre et public. De même que pour les routes et ponts, que tout un chacun a la possibilité d’emprunter, ce type de code peut être utilisé par n’importe qui - à titre professionnel ou individuel - afin de construire de nouveaux logiciels. Cependant, toute cette infrastructure logicielle nécessite de la maintenance et de l’entretien.
En 2014, deux tiers de tous les serveurs Web utilisaient OpenSSL, afin de s’échanger des données sensibles de manière sécurisée. Ceci signifie que deux tiers de tous les serveurs Web reposaient sur une librairie de chiffrement maintenue par un seul développeur à temps plein, jusqu’à ce que la faille HeartBleed soit découverte et que les grosses multinationales se rendent compte qu’il était peut-être (un peu?) nécessaire de subvenir aux besoins des développeurs dont elles profitent du travail.
Utiliser du code libre est plus efficace (même pour une entreprise comme Facebook) que de bâtir soit-même chacune des pièces nécessaires par elle-même. Ceci est rendu possible grâce à l’utilisation de licences permissives, qui autorisent l’utilisation ou la modification de blocs de code déjà écrit, sans avoir à payer de frais. En d’autres termes, le temps et la quantité de code nécessaire à une équipe pour arriver à un résultat ont été drastiquement réduits rien qu’à pouvoir réutiliser du code et des librairies disponibles en open source.
- Frameworks: Software frameworks provide basic scaffolding and structure. Think of it as the blueprint for the entire application. Like a blueprint, a framework lays out how the application might look on mobile, or how information gets saved into the database. Examples include Rails and Django
- Languages: Programming languages are the communication backbone of software, like construction workers on a building site using English to communicate. Languages help different software components perform actions and talks to one another. For example, if you create an account on a website and click “sign up”, that application might use the languages JavaScript and Ruby to tell the database to save your information. Popular examples of languages include JavaScript, Python and C.
- Libraries: Libraries are “prefabricated” pieces of code that make it faster to write software, just as a construction company might buy prefabricated windows instead of building them from scratch. For example, instead of a developer writing their own user login system for an applicatoin, they can use a library called OAuth. Instead of writing their own code to visualize data on a website, they can use a library called D3.
- Web and application servers: Web and application servers facilitate various requests that users make on the Internet? They can be brought of as dispatchers or telephone operators. For example, if you type an URL into your browser bar, a Web server will send back the associated page. If you send a message to a friend on Facebook, your message first goes to an application server, which determines who you are trying to contact, then routes your message to your friend’s account. Popular examples of Web servers are Apache and Nginx.