Logo Zéphyrnet

Science des données et langage de programmation Go – KDnuggets

Date :

Contenu sponsorisé

Commentaires de Tom Miller, directeur de la faculté de l'Université Northwestern et MSDS .

Il y a des années, en tant qu'étudiant en statistiques appliquées à l'Université du Minnesota, j'ai appris une leçon sur la programmation dans le milieu universitaire. Au début du cours, le professeur a déclaré :

« Peu m'importe la langue que vous utilisez pour vos devoirs, du moment que vous faites votre propre travail. »

J'avais de l'expérience avec Fortran mais j'apprenais moi-même le Pascal, en essayant d'adopter un style de programmation structuré.

Prenant le professeur au mot, j'ai programmé le premier devoir en Pascal pendant que mes camarades utilisaient Fortran. La première mission arrive à échéance. Je promène mon papier (une liste de programmes) devant la salle et le remets au professeur. Il le regarde d'un air interrogateur et demande : « Qu'est-ce que c'est ? »

J'explique : « C'est Pascal. Vous nous avez dit que nous pouvions programmer dans n’importe quelle langue, à condition que nous fassions notre propre travail.

Ce à quoi le professeur répond : « Pascal. Je ne lis pas Pascal. Je ne lis que Fortran.

Leçon apprise : les universitaires ne sont pas particulièrement ouverts aux nouveaux langages de programmation.

Fortran

Fortran a été développé par John Backus chez IBM et introduit en 1957. Lorsque vous entendez son nom, pensez à « traduction de formule ». Fortran est bien adapté aux calculs numériques, nécessaires aux applications scientifiques et techniques. Fortran a récemment connu une résurgence, peut-être en raison des exigences informatiques liées aux grands ensembles de données et au calcul intensif.

PASCAL

Conçu par Nicholas Wirth, un informaticien suisse, et introduit en 1970, Pascal est un dérivé d'ALGOL. Pascal s'est aligné sur un mouvement vers une programmation structurée dans de nombreuses universités dans les années 1970 et 80. Des variantes de Pascal ont été utilisées pour la programmation système chez Apple et Microsoft.

 
Aujourd'hui, les étudiants en science des données de la plupart des universités vivraient une expérience similaire s'ils soumettaient des devoirs en Go, Rust ou tout autre langage contemporain plutôt qu'en Python ou R.

Avec les applications d’apprentissage automatique et l’IA, Python règne en maître. Les data scientists pourraient se sentir satisfaits de naviguer dans un bateau Python avec des gilets de sauvetage tels que Numpy, Pandas, Scikit-apprendreet TensorFlow à leurs côtés.

Mais attention. Les océans de données d’aujourd’hui sont instables. Les requins approchent.

Rappelez-vous les paroles du chef Brody à Quint dans le film Mâchoires: "Tu vas avoir besoin d'un plus gros bateau." Je suggérerais qu'un bateau plus grand et plus rapide soit construit avec Go.

ALLER (GOLAN)

Go a été développé par trois informaticiens de Google : Robert Griesemer, Rob Pike et Ken Thompson. Il conserve les avantages en termes de performances du C, tout en étant plus facile et plus sûr à utiliser que le C. Go a été introduit en 2009 et est le principal langage de programmation système de Google. Pour les systèmes critiques de nombreuses organisations, Go remplace C/C++, C#, Java et Python. Go est parfois appelé « Golang » pour le distinguer du jeu de société Go et pour fournir un terme plus fiable dans les moteurs de recherche.

Carrières en science des données : le pourquoi de Go

Dans une présentation intitulée «Le pourquoi du Go", Carmen Andoh a retracé le développement des langages informatiques de 1980 à 2017. Elle a présenté un argument convaincant en faveur de l'utilisation de Go dans les grands projets de programmation. Son argument sonne vrai aujourd’hui.

  • Go est efficace en machine. Il bat les langages interprétés ainsi que les langages qui dépendent de machines virtuelles.
  • Python a rejoint la scène informatique il y a plus de trente ans, avant l'avènement des processeurs multicœurs. Python est un langage interprété à thread unique, mal adapté aux systèmes exigeant un traitement simultané.
  • Les data scientists écrivent peut-être en Python, mais pour les tâches gourmandes en calcul, c'est C ou C++ qui fait le travail. Python n’est que la « colle » qui maintient ensemble les pièces du bateau d’apprentissage automatique.
  • Il ne faut pas longtemps pour trouver des exemples de benchmarks démontrant les avantages de Go par rapport à Python et R, les langages phares de la data science.

Parfois décrit comme le « C du 21e siècle », Go est un langage fortement typé qui se compile directement en code machine. Il compile beaucoup plus rapidement que C et s'exécute presque aussi vite que C.

C, C++ ET C#

C a été développé par Dennis Ritchie aux Bell Labs et introduit en 1972. Parce qu'il fournit un accès de bas niveau à la mémoire et qu'il correspond facilement aux instructions machine, C est un langage de programmation système populaire depuis de nombreuses années. C présente des avantages en termes de performances par rapport à la plupart des autres langages de programmation. C++ et C# fournissent des extensions orientées objet du C, tout en conservant les avantages de la structure et des performances du C.

Le traitement simultané (jamais une tâche facile) est une fonctionnalité intrinsèque de Go

Go propose un riche ensemble d'outils pour tirer parti des ordinateurs numériques multicœurs d'aujourd'hui. La science des données a besoin de langages et de systèmes capables de répondre aux exigences du monde actuel, axé sur les données et à forte intensité de données. La science des données a besoin de Go.

Go est un programmeur efficace. Python est souvent présenté comme étant facile à apprendre. Mais je dirais que Go est plus facile à apprendre que Python. Go est simple par conception, un langage avec seulement vingt-cinq mots-clés. Go est facile à lire, facile à utiliser et facile à entretenir au fil du temps.

Réjouissons-nous que les dirigeants de la communauté Go soient réticents à ajouter de nouvelles fonctionnalités. Donald Knuth eu la bonne idée. Lorsqu'il est arrivé à la version 3.14 de Texas, il a déclaré qu'il n'y aurait pas de nouvelles versions du langage, pas de nouvelles fonctionnalités, seulement des corrections de bugs. Et à chaque correction de bug, il empruntait un autre chiffre à π (pi).

Un mantra des programmeurs Go : « Restez simple. Continuez à fonctionner.

Go a une structure bien définie avec des utilitaires de formatage pour garantir un style commun entre les programmeurs, un style parfois appelé « Go idiomatique ». Go dispose d'une gestion automatisée de la mémoire (garbage collection), protégeant les programmeurs contre les fuites de mémoire et les erreurs. Go est plus sûr que C et C++.

Les développeurs principaux de Go s'engagent en faveur de la compatibilité ascendante, et le système de modules de Go favorise la sécurité, en garantissant que les bons packages sont incorporés dans chaque build au moment de la compilation. Go assure le suivi des versions de logiciels à mesure que la pile logicielle se développe.

Considérez le développement logiciel comme un jeu de Jenga. Nous voulons accéder aux blocs en bas de la pile, tout en nous assurant que la pile entière ne s'effondre pas. Allez, laissez-nous faire ça.

Go simplifie la pile logicielle. Qu’en est-il de la pile logicielle, de l’infrastructure ?

Lorsque Python (même renforcé par le C ou le C++) n’est pas à la hauteur, les data scientists se tournent vers d’autres langages et systèmes. Voici une soi-disant solution aux problèmes de performances de Python :

 
Science des données et langage de programmation Go

Science des données et langage de programmation Go
 

Pour mettre en œuvre des solutions performantes, les data scientists se tournent vers Spark, qui est construit sur Scala, qui dépend de la machine virtuelle Java. Et pour faciliter l’accès, ces data scientists bien intentionnés ajoutent PySpark à l’ensemble. Est-ce la meilleure façon de résoudre les problèmes de performances de Python ? Non.

Considérez une pile logicielle plus simple. C'est parti, allez-y :

 
Science des données et langage de programmation Go

Science des données et langage de programmation Go
 

Avec des exemples de code issus des conférences GopherCon dans 2021 ainsi que 2023, Daniel Whitenack montre comment mettre en œuvre des solutions d'apprentissage automatique et d'intelligence artificielle dans Go. Nous pouvons utiliser Go pour créer des applications Web intégrées et intelligentes, y compris celles qui font appel à l’IA générative et à de grands modèles de langage.

Go représente le langage de programmation système par excellence pour les ordinateurs numériques multicœurs d'aujourd'hui. Go est le langage du cloud. Go est le langage de l'informatique distribuée. Les data scientists qui considéraient Python comme le « langage de colle » du passé peuvent désormais considérer Go comme la « super colle ».

Go est largement utilisé dans l’industrie. Les entreprises apprécient la sécurité, la simplicité et les performances de Go. Ils reconnaissent également les atouts de Go en tant qu'environnement de programmation de systèmes back-end. Go est bien adapté au développement de serveurs Web et de bases de données, d'interfaces de programmation d'applications et de microservices. Go est bien adapté à la mise en œuvre de systèmes évolutifs et performants.

À commencer par Google, le berceau de Go, de nombreuses entreprises s'appuient sur Go pour les grands systèmes critiques. Si Go est assez bon pour Google, Netflix, Uber, Dropbox, PayPal, American express, Capital One, Salesforce, Zillow, et bien d’autres, alors Go est assez bon pour le reste d’entre nous.

If Go peut fournir une plate-forme efficace pour construire Docker, Kubernetes, Prométhée, grafana, Pachyderme, Terraform, CrowdStrike, etcd, CockroachDB, Tisser, Milvus, Aérospike, et une gamme diversifiée de systèmes distribués et de microservices cloud natifs, Go peut alors être une plate-forme efficace pour créer des applications de science des données.

Les enseignants en informatique et en science des données devraient apprendre de l’industrie. Ils devraient ajouter Go à leurs cours. C'est ce que nous faisons chez Northwestern.

Trois langages pour la science des données chez Northwestern

Utiliser Go pour la science des données n’implique pas que nous devons renoncer aux bonnes choses qu’offrent R et Python. Nous pouvons être multilingues.

Il n’est pas difficile d’imaginer des projets pour lesquels un data scientist pourrait explorer des données avec R, développer des modèles avec Python et implémenter des systèmes dans Go. Parmi les trois langages destinés à la science des données, Go est le plus récent. Go a une tendance à la hausse et offre des opportunités d'emploi substantielles.

Programme de science des données de Northwestern apprécie les atouts des trois langages pour la science des données dans toutes les spécialisations du programme.

  • R, avec de nombreux packages d'analyse et de modélisation, est très apprécié des statisticiens appliqués. C'est un excellent choix pour la programmation scientifique et la recherche appliquée. R est particulièrement efficace pour explorer et visualiser des données. R est la langue principale de la plupart des cours de la spécialisation Analyse et modélisation de Northwestern.
  • Python est actuellement le langage informatique le plus populaire en science des données. Il est particulièrement performant dans le traitement du langage naturel et sert de client principal aux plateformes d’apprentissage en profondeur. Python fournit un environnement riche en fonctionnalités pour le développement de modèles, et Python est le langage principal de la plupart des cours de spécialisation en intelligence artificielle de Northwestern.
  • Go est un langage de programmation système conçu pour les ordinateurs multiprocesseurs d'aujourd'hui. Il est bien adapté à la mise en œuvre de systèmes évolutifs et hautes performances pour la science des données, notamment des applications Web et des serveurs de bases de données. Go est le langage principal de la spécialisation Data Engineering de Northwestern, comme le montre le Apprendre Go pour la science des données en ligne.

Les étudiants en MS en ligne en science des données de la Northwestern University Le programme développe les compétences essentielles d'analyse et de leadership nécessaires pour analyser et interpréter les données afin de prendre des décisions éclairées et percutantes dans un large éventail de domaines. Les cours sont dirigés par un corps professoral accompli composé d'experts de l'industrie. Les étudiants développent une expertise dans leurs domaines d'intérêt en sélectionnant une filière générale de science des données ou l'une des cinq spécialisations : analyse et modélisation, gestion analytique, intelligence artificielle, ingénierie des données et entrepreneuriat technologique. Les étudiants apprennent à temps partiel, à leur rythme, entièrement en ligne. Les candidatures sont acceptées chaque trimestre.

 
Science des données et langage de programmation Go

Science des données et langage de programmation Go
 
 

spot_img

Dernières informations

spot_img