X
Langages informatiques
Alain Clapaud / lundi 26 novembre 2018 / Thèmes: Développement, Dossier

Langages informatiques

Quoi de neuf ? Connaissez-vous Julia ?

Chaque année, une flopée de nouveaux langages informatiques est proposée par les chercheurs et les éditeurs de logiciels. Chacun d’eux vise à être plus simple, plus efficace, plus élégant que les langages actuels, mais bien peu séduisent les développeurs. 2018 n’échappera pas à la règle.

Les chiffres de GitHub Archive and GHTorrent compilés par Ben Frederickson montrent l’érosion des JavaScript, Java et C en termes d’utilisateurs actifs par mois (MAU) alors que la communauté Python semble désormais stabilisée.

À la fin de l’été, le MIT annonçait la release 1.0 de Julia, un nouveau langage sur lequel les chercheurs travaillent depuis 2009. Avec plus de 700 contributeurs, 1 900 packages enregistrés et déjà 2 millions de téléchargements, ce langage démarre avec une communauté plutôt dynamique. Julia est un langage dédié aux data sciences sur une niche déjà occupée par le langage R, MatLab et surtout Python, un langage créé il y a une trentaine d’années mais qui bénéficie d’une popularité sans failles auprès de millions de développeurs.

Aujourd’hui, les développeurs sont habitués aux annonces de nouveaux langages tous plus révolutionnaires et meilleurs les uns que les autres et beaucoup de ces langages peinent à assembler des communautés de développeurs réellement significatives. Pierre Murasso, co-fondateur de C17 Engineering explique : « Très peu de langages parviennent à émerger et être adoptés de manière massive et pérenne. Il faut avoir des raisons légitimes de passer sur un nouveau langage sachant que l’aspect legacy pèse beaucoup. Les entreprises doivent maintenir les codes existants et donc veulent le pérenniser en embauchant des développeurs maîtrisant ces langages parfois assez anciens. En parallèle, pour pouvoir s’imposer, un langage doit pouvoir s’appuyer sur une communauté énorme. »

xxx

Le dernier classement de popularité des langages de Tiobe le montre, les vieux langages ont la vie dure : Java, C/ C++, Python trustent les premières places devant… Visual Basic. En tête de classement, les langages des années 90 côtoient le langage C, dont la première version remonte aux années 70 !

L’étude de Ben Frederickson montre que les Go, TypeScript, Kotlin et Rust sont les langages qui connaissent la plus forte progression ces derniers mois. La taille des communautés pratiquant le langage Go et TypeScript se rapprochant désormais de celle pratiquant les C et C#, sachant toutefois que cette étude exclut mécaniquement tous les projets qui ne sont pas hébergés sur GitHub.

Nouveaux usages, nouveaux langages

Certains nouveaux usages rebattent les cartes. C’est le cas du Big Data qui a suscité de multiples initiatives, dont ce Julia du MIT, mais qui a aussi remis en course le langage R, dont l’origine remonte à 1993. Pour créer ce langage, des chercheurs ont repris les travaux d’un certain John Chambers, alors qu’il travaillait dans les laboratoires Bell sur l’analyse des données entre 1975 et 1976. Depuis, le langage R s’est imposé dans le Big Data grâce à une forte communauté universitaire et un nombre de packages statistiques assez unique. Pourtant, le R n’est pas exempt de tout défaut, comme l’explique Didier Verna, enseignant-chercheur au laboratoire de recherche et développement de l’Epita : « Du point de vue langage, il est difficile de faire pire que R, un ovni basé sur Lisp extrêmement mal conçu et peu performant. C’est une aberration que R ait gagné autant de notoriété auprès des statisticiens, et cela peut s’expliquer d’une part parce que beaucoup d’entre eux ne sont pas à la base des informaticiens, donc peu sensibles aux aspects de conception et de génie logiciel. » Pour le traitement des données, Microsoft a proposé le F#, un langage fonctionnel bien adapté à la manipulation de données qui pourrait se placer entre les C# et R. Ce langage de développeur peine à s’imposer dans les communautés Data Science en dépit d’atouts indéniables comme sa simplicité, comparé à Haskell, ou encore son intégration à l’écosystème Microsoft. « Le F# est intéressant d’un point de vue syntaxique, mais n’offre pas une rupture assez importante pour rallier à lui une communauté suffisante pour en faire une référence », estime Pierre Murasso.

Les développeurs ont à leur disposition de nombreux langages de programmation fonctionnelle plus ou moins directement inspirés du langage Lisp, tels que les Haskell, Scala, Erlang, OCml ou encore F#, plus particulièrement destiné à la communauté Microsoft.

Les « vieux » résistent

De facto, lorsqu’on regarde les chiffres d’activité de GitHub, sur les 337 langages de programmation représentés, le JavaScript génère la plus grosse activité, avec 2,3 millions de pull-request, devant les Python (1 million), Java, Ruby, PHP et C++. Ben Frederickson s’est livré à une analyse des données d’activité publiées sur GitHub Archive et GHTorrent et en termes de nombre d’utilisateurs actifs par mois, JavaScript, Python et Java dominent les débats, devant les C++, C et PHP. Néanmoins, sur la durée, la domination du JavaScript s’érode depuis 2013/14, de même que celle de Java depuis 2015/2016. Seul le Python conserve une dynamique de croissance parmi ces « grands langages », sachant que les PHP, Ruby, Objectif-C et CoffeeScript connaissent des fortes baisses en proportion du nombre d’utilisateurs de GitHub. La hausse presque exponentielle du nombre d’utilisateurs de GitHub relativise ces baisses d’intérêt car en valeur absolue, le PHP plafonne à son zénith et les baisses subies par les Ruby et Objectif-C les ramènent à leur niveau de 2015.

Côté mobile, le langage Objectif-C a passé le relais au Swift chez les développeurs iOS tandis que le CoffeeScript cède sous la pression du TypeScript. Ce phénomène de passation de pouvoir est d’ailleurs en train d’avoir lieu sur le langage R. La star de la grande vague du Big Data des années 2012 à 2016 est en train de voir les Data Scientists se ruer sur Jupyter Notebook, un outil de calcul qui supporte une quarantaine de langages mais lui-même issu de la communauté Python. Dans les chiffres traités par Ben Frederickson, ce sont les données relatives aux plus grosses croissances enregistrées qui sont les plus intéressantes. TypeScript connaît une croissance fulgurante depuis la fin 2015, de même que Go, le langage mis au point par Google en 2009 pour ses besoins internes. Si les experts ont immédiatement souligné la simplicité du langage, cette simplification s’est faite au prix de la suppression de concepts importants de la programmation objet tels que l’héritage et les génériques qui sont passés à la trappe. Ses concepteurs ont pensé le Go pour l’automatisation des tâches et multitâche et la programmation concurrente sont ses points forts. Autre langage qui mérite le détour, le Kotlin connaît une grosse vague d’adoption depuis 2018, lorsque Google a annoncé son support  sur la plate-forme Android. Pour Laurent Daverio, chercheur à l’école des Mines ParisTech, « le Kotlin est soudainement devenu très populaire chez les développeurs Android, l’an dernier. Car on se rend compte que c’est un “ Scala lite ”, développé par une société de St-Petersbourg qui veut mettre en opposition le monde réel et les “ savants cosinus ” déconnectés des besoins des développeurs. » Si le Kotlin a attiré à lui bon nombre de développeurs, reste aux librairies et framework à gagner en qualité afin de faire de Kotlin un langage de référence pour les applications mettant en œuvre la JVM.

Un succès d’estime pour Rust, un langage orienté sécurité

Un autre langage qui connaît une croissance significative, bien que plus modeste, le Rust. Ce langage est une création de la fondation Mozilla dont la vocation initiale était d’être plus sûre que le C/C++. L’objectif final de ce langage de bas niveau était bien de remplacer le C++. Rust 1.0, première version stable du langage a été publié en 2015 et c’est en 2016 que le langage a suscité le plus d’échanges, en lien avec la faille de sécurité DNS affectant la librairie glibc de Linux. Robert O’Callahan développeur chez Mozilla a lancé l’idée qu’il était temps de redévelopper tous les logiciels critiques développés en C/C++ en Rust. Un billet qui a beaucoup suscité de discussions à l’époque et mais est bien évidemment resté lettre morte dans les faits tant il serait coûteux de redévelopper l’existant C/C++. La communauté Rust continue néanmoins de croître, parviendra-t-elle à atteindre une masse critique pour en faire le langage sécurisé de référence ? Bien difficile de l’affirmer.

Si une entreprise jeune comme Criteo a su évoluer, passant du .NET au Java pour s’intéresser finalement aux langages fonctionnels et au Scada, pour finalement créer un improbable mix de Java et Scale baptisé ScaVa, les entreprises plus traditionnelles cherchent généralement à capitaliser au maximum sur le ou les quelques langages que leurs équipes maîtrisent déjà. Les développeurs eux-mêmes restent attachés à leur langage de prédilection, même si celui-ci accuse le poids des ans. « Personnellement je suis resté au Python, et je n’ai rien trouvé de mieux pour l’instant », reconnaît Laurent Daverio. « J’ai toujours été très impressionné par les essais de Paul Graham, qui place le Lisp au sommet de la hiérarchie des langages. À ce point de ma carrière, à 51 ans, si je devais apprendre un langage pour détrôner le Python dans le développement web, autant viser haut et choisir un langage de la famille Lisp. »

Dernier rejeton de la riche famille Lisp, Racket, un langage à suivre pour de nombreux experts.

Démos bluffantes et effets de mode

Peu d’entreprises comme Netflix peuvent se payer le luxe de laisser à leurs développeurs le soin de choisir le langage qu’ils jugent le mieux adapté à leur projet. Pourtant, beaucoup de langages créés par des chercheurs présentent d’évidentes qualités techniques et les démonstrations sont souvent bluffantes. Pourtant, leur adoption peine à dépasser certaines niches. L’exemple d’OCaml, le langage créé par l’Inria est parlant. Créé par les chercheurs français en 1996, ce langage de programmation fonctionnelle a connu quelques succès. Il a notamment été utilisé pour développer Astrée, l’analyseur de code qui a été utilisé sur les logiciels de commande de vol des Airbus A340 et A380, développé en Caml et le langage a donné naissance à Reason, une nouvelle syntaxe de OCaml qui est aujourd’hui utilisée dans la nouvelle version web de Facebook Messenger. Autre descendant d’OCaml, Ocsigen, un framework dédié au développement web notamment utilisé sur le site Be Sport.

Le fossé entre les langages appréciés des chercheurs – où Lisp et ses nombreux dérivés font figure de modèle incontournable – et les langages réellement exploités par les développeurs en entreprises semble bien difficile à combler. On se souvient il y a quelques années de l’effervescence des développeurs autour de Clojure, un langage compilé inspiré de Lisp et pouvant s’exécuter sur une JVM, ce qui a particulièrement trouvé écho dans la communauté Java. Le soufflé semble être un peu retombé sur ce langage qui présentait d’incontestables atouts, notamment dans le développement d’applications multitâches. Aujourd’hui, c’est Racket qui fait beaucoup parler de lui. Anciennement nommé PLT Scheme, ce descendant du langage Scheme – lui-même issu de la lignée Lisp – avait initialement une vocation pédagogique et, de fait, il rassemble à peu près tout ce qui se fait de bien autour des langages aujourd’hui.

Parviendra-t-il à sortir du cercle des labos de recherche et des hobbyistes pour séduire les entreprises ? La balle est dans le camp des développeurs... et de leurs DSI.


Julia, un langage très intéressant pour le calcul scientifique à haute performance

Didier Verna, enseignant-chercheur en informatique au laboratoire recherche et développement de l’Epita (LRDE)

« Julia est une tentative de repartir plus ou moins de zéro pour concevoir un langage à haute performance en vue d’applications scientifiques, notamment pour les statistiques, qui cherche à récupérer les communautés Python et R. Bien que cela ne soit pas forcément très visible, le noyau de Julia est un petit Scheme, ce qui pour moi – en tant que « Lisper » – est déjà un point de départ attractif. Je pense que Julia est effectivement un langage performant et peut, de ce point de vue, conquérir les utilisateurs du Python ou du langage R. Le langage Julia bénéficie d’une base de bibliothèques « prêt-àporter » déjà importante et il réussit à mélanger les paradigmes statiques et dynamiques. Le typage dynamique est bon pour des tas de choses, mais pouvoir aussi typer statiquement quand on a besoin de très hautes performances est également important. Le système de typage optionnel de Julia permet un tel mélange, et le support des types paramétriques lui confère une grande expressivité

D’une manière générale, j’apprécie de voir l’influence de Lisp dans Julia. Ce langage est homoiconique, ce qui lui confère une capacité de réflexivité et de méta-programmation importante. Toutes les fonctions du langage sont polymorphes (multi-méthodes), ce qui pousse le concept plus loin qu’en Lisp. Le Julia dispose également de co-routines dont je regrette l’absence en Lisp. Cependant, il y a aussi des choses qui me semblent moins reluisantes. Les règles de scoping laissent beaucoup à désirer, Julia est très verbeux syntaxiquement et il lui manque une couche objet complète – sans parler d’un protocole méta-objet – et j’aurais aimé avoir un système de gestion des exceptions plus évolué. Je conclurai en disant que c’est un langage très intéressant pour le calcul scientifique à haute performance. »

7911

x
Rechercher dans les dossiers
Les derniers dossiers...
Réduire

Actuellement à la Une...
Apple grand défenseur de la confidentialité de ses utilisateurs ? Oui, mais… par le biais de son option, activée par défaut, signalant les sites malveillants, la marquer à la pomme transmet des informations de navigation au géant chinois Tencent. Sans s’en vanter, sans même communiquer sur le sujet, alimentant spéculations et paranoïa.

Le groupe M6 a été victime ce weekend d’une attaque informatique. L’entreprise de Nicolas de Tavernost ne donne que peu d’informations sur cette cyberattaque, qui n’a eu aucun effet semble-t-il sur la diffusion des programmes TV.

Rien ne va plus du côté de Libra. Quelques jours après la défection de Paypal, c’est au tour de cinq autres membres fondateurs de l’initiative de quitter l’association. En perdant notamment Visa, Mastercard et Mercado Pago, Libra se voit privée des principales plateformes de paiement qui devaient faciliter la conversion de devises réelles en cryptomonnaie.

Nutanix fêtait ses dix ans. Un bon moment pour faire le point avec les dirigeants de l’entreprise mais aussi de voir les nouveautés que l’éditeur avait dans son sac.

On a maintenant l’habitude qu’à chaque semestre, Microsoft sorte l’artillerie lourde avec une grosse mise à jour pour Windows 10. Pour autant, la 19H2 ne suit pas ce chemin : elle ne comprend aucune grande nouveauté en termes de fonctionnalités, seulement quelques optimisations et correctifs. De fait, elle sera distribuée via le circuit des mises à jour cumulatives.

Ce n’est guère une surprise : à la veille d’un nouveau tour de négociations commerciales entre Washington et Pékin, Donald Trump aurait déclaré la semaine dernière être sur le point de donner son feu vert à la délivrance de licences permettant aux entreprises américaines de poursuivre leurs affaires avec Huawei.

Après 17 ans au sein de SAP, dont 9 en qualité de grand patron de l’éditeur allemand, Bill McDermott annonce quitter l’entreprise et sa fonction de CEO, avec effet immédiat. Deux membres du conseil d’administration assureront la codirection de SAP.

Leader sur la partie DevOps, GitLab tient à garder un coup d’avance sur son concurrent GitHub, qui multiplie les initiatives dans ce secteur. C’est pourquoi GitLab veut être un guichet unique de tous les outils DevOps possibles. Mais aussi DevSecOps, l’entreprise fondant de grands espoirs sur la sécurité.

Devant l’abondance de solutions de cybersécurité sur le marché, les deux entreprises s’associent pour lancer l’Open Cybersecurity Alliance, afin de faire émerger des standards communs et de promouvoir l’open source et l’interopérabilité dans le secteur.

Pendant des années, l’éditeur allemand a été un contributeur assidu d’OpenStack, aussi bien en termes de développement que de soutien financier. Une histoire désormais terminée : SUSE a décidé de ne plus produire de nouvelles versions et de cesser la commercialisation de sa solution SUSE OpenStack Cloud, préférant se concentrer sur ses offres basées sur Kubernetes.

Toutes les News
LIVRES BLANCS
Les entreprises et les organismes publics se focalisent aujourd’hui sur la transformation numérique. En conséquence, les DevOps et l’agilité sont au premier plan des discussions autour des stratégies informatiques. Pour offrir ces deux avantages, les entreprises travaillent de plus en plus avec les fournisseurs de services de cloud public et développent désormais des clouds sur site à partir d’une infrastructure qui répond à trois exigences de base:
1. Agilité sans friction des ressources physiques
2. Systèmes de contrôle optimisant l'utilisation des ressources physiques et offrant un retour sur investissement maximal
3. Intégration des divers composants de l'infrastructure pour un provisionnement et une gestion des ressources automatisés.


Pour fonctionner, votre entreprise doit pouvoir compter sur une solution de sauvegarde efficace, essentielle dans un monde marqué par une croissance exponentielle des données. Vous devez à la fois accélérer vos sauvegardes et pouvoir y accéder plus rapidement pour satisfaire les exigences actuelles de continuité d’activité, disponibilité, protection des données et conformité réglementaire. Dans cette ère de croissance effrénée, les cibles sur bande hors site et autres approches traditionnelles sont simplement dépassées.


L’Intelligence Artificielle promet de révolutionner la perception de la cybersécurité au coeur des entreprises, mais pas uniquement. Ce changement de paradigme engage, en effet, une redéfinition complète des règles du jeu pour les DSI et les RSSI, ainsi que l’ensemble des acteurs de la sécurité.


Lorsque l'on déploie des postes de travail, ils ont généralement tous la même configuration matérielle et logicielle (avec certaines spécificités selon les services). Mais on ne peut pas toujours tout prévoir et il arrive par exemple que de nouveaux programmes doivent être installés ou n’aient pas été prévus. L’accumulation de logiciels « lourds » est susceptible de provoquer des lenteurs significatives sur un PC allant jusqu’à l’extinction nette de l’application. Ce livre blanc explique comment optimiser les performances au travers de 5 conseils rapides à mettre en place.


Ce guide est conçu pour aider les entreprises à évaluer les solutions de sécurité des terminaux. Il peut être utilisé par les membres de l'équipe de réponse aux incidents et des opérations de sécurité travaillant avec des outils de sécurité des points finaux sur une base quotidienne. Il peut également être utilisé par les responsables informatiques, les professionnels de la sécurité, les responsables de la conformité et d’autres personnes pour évaluer leurs performances. les capacités de l’entreprise en matière de cybersécurité, identifier les lacunes dans la sécurité des terminaux et sélectionner les bons produits pour combler ces lacunes.


Tous les Livres Blancs