Il est devenu impossible de parler de Data sans mentionner l’open source. Il vous suffit de jeter un oeil aux différentes plateformes qui proposent des solutions Big Data, la grande majorité est orientée open source. Pour cause, les technologies telles que Cassandra, Hadoop, Apache Spark, Talend et beaucoup d’autres offrent désormais des services de grande qualité en ce qui concerne la construction de projets data et sont donc rapidement devenus les choix les plus adoptés par les entreprises. Découvrez donc ce qu’est l’open source et la raison de son avènement.
Définition du concept
Commençons par les bases avec un rappel de la définition de l’open source. L’open source a démarré dans les années 90 et a depuis connu énormément d’évolutions. Mais Wikipedia le décrit ainsi : “open source, ou « code source ouvert », s’applique aux logiciels dont la licence respecte des critères précisément établis par l’Open Source Initiative, c’est-à-dire les possibilités de libre redistribution, d’accès au code source et de création de travaux dérivés.”
Mais l’essence même de l’open source va bien plus loin qu’un simple accès au code source d’un logiciel.
Open source vs propriétaire
Contrairement aux technologies propriétaires, l’open source est un modèle dans sa conception même. Il s’agit de personnes qui ont collaboré pour un objectif, celui de construire une technologie qui pourra servir à tous. Cela montre la capacité des gens à coopérer dans un but commun, pour lequel ils ne tirent pas forcément de bénéfices personnels. Pour y voir plus clair et faire son choix entre le modèle open source et le modèle de technologies prioritaires, intéressons nous à leurs principales différences :

Les grands principes et sa culture
Retournons donc à l’open source en se penchant sur ses grands principes :
La collaboration : dans le contexte de l’open ou de l’inner source, elle ne connaît pas de frontières. Les développeurs du monde entier partagent leur travail à une audience large, et non seulement avec leur manager ou leur équipe. Tout le monde est le bienvenu et les décisions sont basées sur le mérite et non imposées.
La communication : elle est écrite et ouverte à tous. Le but est que chacun puisse prendre part au projet et y contribuer, sans contrainte de formation préalable.
Le gage de qualité : cela consiste à mettre en place des process visant à assurer un niveau de qualité. Le code est disponible à tous et par conséquent, optimisé, testé et vérifié par des centaines si ce n’est des milliers de contributeurs.
Ce qu’on appelle “inner source” n’a de différent que le fait qu’il ne s’applique qu’au sein même de l’entreprise. La notion d’ouverture n’est pas perdue mais ne s’étend ici qu’à l’ensemble des équipes, ce qui permet à la société de profiter de la créativité et des idées de ses salariés sans pour autant compromettre l’aspect privé de son activité.
La technologie open source
Il n’y a pas que chez Saagie que nous croyons en l’open source. De nombreux spécialistes comme le créateur de Kafka Jay Kreps désormais chez Confluent ou Mike Tuchen, ancien CEO de Talend, voient le future du Big Data dans les technologies open source.
L’open source est presque devenu le choix par défaut dans certains domaines comme le “big Data stores”, la Data Science avancée ou encore les langages et frameworks liés au Machine Learning.
Les logiciels open source ont toujours été en compétition contre les logiciels dits propriétaires qui ont le désavantage du “lock in”, c’est à dire la difficulté d’en changer si vous le souhaitez.
Le livre blanc d’Ovum souligne ce risque et conclut que la pratique la plus adaptée aux entreprises serait une sorte d’hybride avec le bon équilibre entre open source et propriétaire. De nombreuses entreprises se disent d’ailleurs prêtes à se tourner vers l’open source, à condition d’avoir un support à la hauteur.
Pourquoi a t-elle a le vent en poupe ?
L’open source est plus qu’une tendance, c’est désormais indéniable, et ne touche plus uniquement le développement de logiciel. Cela ouvre les perspectives d’une société davantage portée sur la collaboration et et la transparence, un sujet au coeur des problématiques de nos sociétés actuelles. Mais si tout cela est bien beau, il existe des intérêts bien plus concrets que ceux cités ci-dessus.
Le critère des prix
La première raison – et la plus évidente – est le coût, puisqu’il est nul. L’open source est, par essence, gratuit. Il n’y a pas de coûts de licence, d’abonnement, ni de copyright lié au code source. L’entreprise peut donc réduire de façon significative ses dépenses mais aussi le temps passer pour sortir un produit.
Moins vous dépensez en temps et coûts sur votre produit, plus vous faîtes économisez à vos clients.
Plus vous économisez en temps et coûts, moins le prix de votre produit sera élevé.
Mais même si l’open source peut sembler complètement gratuit, il implique tout de même des coûts liés à l’intégration, au support et aux différentes mises à jour. Ces quelques contraintes sont souvent gérées par l’IT ou via des souscriptions annuelles mises en place par les fournisseurs de ces technologies eux-mêmes. Selon la maturité de votre projet open source, des coûts de sécurité ou de mise à l’échelle peuvent s’ajouter.
Malgré ces quelques contraintes, son coût reste donc le premier avantage de l’open source. Mais au-delà de cet enjeu, il y a d’autres raisons qui pourront vous amener à vous tourner vers l’open source.
L'accès à une large communauté
Il y a derrière chaque technologie open source une communauté unie autour d’un objectif, celui d’arriver à la solution la plus performante, fonctionnelle, fiable et sécurisée.
Les développeurs ce ces communautés sont passionnés par ce qu’ils font et sont motivés par la reconnaissance que les autres membres montrent envers leur travail. Les solutions qui en résultent – même s’ils passent moins de temps à les développer – sont donc souvent de meilleure qualité.
Pour exemple, la librairie Python scikit-learn est gratuite et utilisée partout dans le monde pour répondre à des problématiques de Machine Learning. Elle offre un large choix d’algorithme pré-packagés qui font le bonheur de nombreux projets de Data Science. Lancée en 2007 comme un projet de stage d’été de Google par David Cournapeau, la librairie telle qu’on la connaît aujourd’hui est le fruit de nombreuses heures de travail de la communauté.
La liberté
L’une des différences de l’open source, c’est aussi qu’on peut décider de changer de technologies quand bon nous semble.
Un autre avantage est aussi le fait de pouvoir “construire” directement sur le travail des autres puisqu’on a accès à l’architecture de la solution en question. On peut donc réutiliser du code et économiser en temps, compétences et donc à nouveau, en coûts.
La réactivité du support
Grâce à la taille des différentes communautés, il est facile de trouver une solution à son problème puisque de nombreux outils, plugins ou morceaux de codes y sont disponibles. Il n’y a plus à attendre l’annonce d’une release pour ajouter ou avoir accès à de nouvelles fonctionnalités.
De plus, il n’est pas rare de vouloir ou d’avoir besoin de nouvelles fonctionnalités et de se rendre compte qu’elles existent déjà.
Cependant, certains se plaignent encore du fait qu’il n’y a pas de numéro à appeler en cas de besoin ou de problème. Même si les technologies open source profitent d’un accès important à de la documentations, des wikis, des forums ainsi que de communautés actives, il est toujours possible d’opter pour le support payant. Ce type de support peut s’avérer plus personnalisé et pourra donc répondre plus rapidement en cas de besoins précis.
Il est maintenant temps de jeter un oeil aux langages de programmation open source Python et R qui sont très utilisés en data Science et s’intéresser à leurs différences majeures.
Quel langage de programmation choisir lorsqu’on se lance dans un projet de Data Science ?
Python et R sont des langages gratuits dont le code est entièrement basé sur la communauté.
Ces deux langages sont très utilisés parmi les data scientists, les développeurs et les data miners. Python a été élu langage de l’année dans l’index Tiobe (un indicateur de popularité des langages de programmation) et R est classé à la 12ème place.
R
Ce langages se concentre sur l’analyse de données, les statistiques et les modèles graphiques. Il se présente comme user-friendly. Il est très utilisé par les universitaires et les chercheurs, mais aussi de plus en plus par les statisticiens.
“Plus vous êtes proche des statistiques, de la recherche et de la Data Science, plus vous irez vers R.” Theuwissen
Python
Python aide à être productif et avoir un code lisible. Il est plus apprécié des ingénieurs qui ont davantage de contraintes de déploiements. Son adoption par les développeurs est très importante.
“Ceux qui travaillent dans un environnement proche de l’ingénierie auront tendance à préférer Python.”
Chez Saagie, nous avons opté pour le choix de l’open source. Notre solution a été conçue pour intégrer le plus large panel de technologies open source possible (R et Python dont nous avons parlé, mais aussi Spark ou Scala – et bien d’autres !), toujours à jour afin de développer et déployer facilement des applications à l’usage des métiers.