Python est temps de faire de la place. À propos des perspectives de Julia

Bonjour, Habr!

Le clip de notre littérature Python est constamment renouvelé avec des livres de différents niveaux. Cependant, aujourd'hui, nous aimerions présenter cet article aujourd'hui, dont l'auteur considère Julia comme une alternative viable et prometteuse à Python. Lisez, suivez les liens et n'oubliez pas de voter.



Si Julia vous semble encore mystérieuse, ne vous inquiétez pas. Photo de Julia Caesar sur Unsplash



Ne vous méprenez pas. La popularité de Python est toujours garantie par le soutien inébranlable de la communauté, qui comprend des spécialistes en informatique, en science des données et en intelligence artificielle.

Cependant, si vous aviez la chance de vous asseoir à un dîner en compagnie de ces gens, vous verriez à quel point ils étaient indignés par les défauts de Python. Non seulement ce langage est très lent, il nécessite également des tests approfondis et donne toujours des erreurs d'exécution, malgré les tests précédents. Cela suffit pour faire de Python une impression déprimante.

C'est pourquoi de plus en plus de programmeurs passent à d'autres langues, parmi lesquelles Julia, Go mérite une mention spéciale.et la rouille. Julia est parfaite pour les problèmes mathématiques et techniques, optez pour des tâches modulaires et Rust est indispensable dans la programmation système.

Étant donné que la science des données et l'intelligence artificielle doivent faire face à une multitude de problèmes mathématiques, Julia est une aubaine pour eux. Même avec un examen très critique, il s'avère que Julia a des avantages tels que Python ne peut pas s'y opposer.

Zen contre la gourmandise de Julia

Inventant un nouveau langage de programmation, ses auteurs s'efforcent de préserver les points forts et d'éliminer les lacunes des langages plus anciens.

C'est dans cette veine que Guido van Rossum a agi à la fin des années 1980, créant Python: il a cherché à améliorer ABC. Le dernier était trop parfaitpour un langage de programmation - et à cause d'une telle rigidité, il s'est avéré qu'il est facile à apprendre, mais difficile à utiliser dans de vrais projets.

Python, en revanche, est très pragmatique. Cela ressort du code Zen de Python , reflétant les intentions de ses créateurs:

Le beau vaut mieux que le laid.
Explicite vaut mieux qu'implicite.
Simple, c'est mieux que complexe.
Complexe vaut mieux que confondre.
Déployé est meilleur que imbriqué.
Clairsemé vaut mieux que dense.
La lisibilité est importante.
Les cas particuliers ne sont pas si particuliers qu'ils enfreignent les règles.
Dans le même temps, l'aspect pratique est plus important que l'impeccabilité.
[...]


Python a conservé de nombreux avantages de l'ABC: par exemple, la lisibilité, la simplicité et la clarté pour les débutants. Mais Python est beaucoup plus fiable qu'ABC et bien mieux applicable dans la vie réelle.

Dans le même sens, les créateurs de Julia voulaient garder le meilleur des autres langues et se débarrasser de tous les mauvais. Mais les ambitions de Julia sont loin de se limiter à cela: le but n'est pas de remplacer une seule langue, mais de dépasser toutes les langues.

Voici ce qu'en disent les créateurs de Julia:

: . . C Ruby. Lisp, , Matlab. , Python, R, Perl, , Matlab, , shell. , , . , .


Julia cherche à combiner tous les avantages des langues existantes, mais pas à faire de compromis, ce qui nécessiterait de prendre ces langues et leurs lacunes. De plus, bien que Julia soit une langue jeune, il a déjà atteint bon nombre des objectifs fixés par ses créateurs.

Ce que les développeurs Julia aiment La

variété Julia

peut être utilisée pour tout, des simples applications d'apprentissage automatique aux simulations colossales de superordinateurs. Python est également capable de cela dans une certaine mesure, mais Python s'est en quelque sorte adapté à ces tâches.
Au contraire, Julia a été créée juste pour un tel travail. Depuis le tout début.

Vitesse

Les créateurs de Julia voulaient rendre un langage non inférieur en vitesse à C - mais la création qu'ils ont obtenue s'est avérée fonctionner encore plus rapidement. Même s'il est devenu plus facile d'accélérer Python ces dernières années, ses performances sont encore très loin de Julia.

En 2017, Julia est même entrée au Petaflop Club , un petit club de langues qui, avec des performances de pointe, peut fonctionner à des vitesses supérieures à un pétaflop par seconde. En plus de Julia, ce club comprend désormais uniquement le C, le C ++ et le Fortran.

La communauté

Python, qui a plus de 30 ans, a une communauté colossale et très fiable. Il n'y a pratiquement pas une telle question sur Python, dont la réponse ne se trouve pas dans une seule requête de recherche sur Google.

Au contraire, la communauté Julia est très petite. Oui, cela signifie que vous devez creuser beaucoup plus activement pour trouver la réponse, mais avec de telles recherches, vous pouvez aller encore et encore vers les mêmes personnes. Et les relations de programmation professionnelle si précieuses sont liées.

Conversion de code

Pour écrire du code en Julia, vous n'avez même pas besoin de connaître une seule commande dans cette langue. Non seulement vous pouvez utiliser du code Python et C dans Julia, vous pouvez même utiliser du code Julia dans Python !

Inutile de dire que dans cette situation, il n'est pas difficile de corriger les points faibles de votre code Python sur Julia. Ou pour maintenir la productivité pendant que vous ne faites connaissance qu'avec Julia.

Bibliothèques Les



bibliothèques ont été et restent les points forts de Python. PhotoSusan Yin sur Unsplash

C'est l'une des vertus les plus importantes de Python - il a des tonnes de bibliothèques bien prises en charge. Julia n'a pas beaucoup de bibliothèques, et les utilisateurs se plaignent que leurs bibliothèques ne sont pas (jusqu'à présent) bien prises en charge.

Mais, ajusté au fait que Julia est une langue très jeune avec un ensemble limité de ressources, le nombre de bibliothèques existantes est très impressionnant. En plus du fait que Julia est enrichie de nouvelles bibliothèques, nous notons que le langage peut s'accoupler avec des bibliothèques pour C et Fortran, par exemple, pour le traitement des graphiques.

Types dynamiques et statiques

Python est un typage 100% dynamique. Cela signifie que le programme au moment de l'exécution décide, par exemple, si la variable donnée est un entier ou un nombre à virgule flottante.

Malgré le fait que cette pratique soit extrêmement pratique pour les débutants, toutes sortes de bugs pénètrent dans le programme à cause de cela. Par conséquent, le code Python doit être testé dans tous les scénarios possibles, et c'est une tâche assez stupide et longue.

Comme les créateurs de Julia ont également cherché à rendre leur langue facile à apprendre, Julia prend pleinement en charge la saisie dynamique. Mais, contrairement à Python, Julia peut également introduire des types statiques - sous la forme sous laquelle ils sont présents, par exemple, en C ou en Fortran.
Cela peut vous faire économiser une tonne de temps. Maintenant, au lieu de chercher des excuses pour le fait que le code n'est pas testé, vous pouvez simplement spécifier le type le cas échéant.

Données: nous investissons dans le langage alors qu'il est petit



Nombre de questions marquées Julia (à gauche) et Python (à droite) sur StackOverflow.

Malgré le fait que tout ce qui précède semble très optimiste, il faut garder à l'esprit que Julia n'est encore qu'un bébé par rapport à Python.

Il y a un bon indicateur: le nombre de questions sur StackOverflow: Python est actuellement mentionné vingt fois plus souvent que Julia!

Cela n'indique pas du tout l'impopularité de Julia - les programmeurs ont juste besoin de temps pour s'habituer à la nouvelle langue.

Jugez par vous-même - écririez-vous vous-même tout le code dans une langue complètement nouvelle? Non, vous préférez reporter la nouvelle langue jusqu'à ce que vous puissiez l'essayer dans un nouveau projet. Pour cette raison, il y a un délai entre la sortie de la langue et sa mise en pratique généralisée; cela se produit avec tous les langages de programmation.

Mais, si vous maîtrisez Julia maintenant, et c'est facile, compte tenu de la quantité de conversion linguistique prise en charge dans Julia, ce sera votre investissement à l'avenir. Au fur et à mesure que de plus en plus de personnes déménageront chez Julia, vous gagnerez l'expérience nécessaire et pourrez répondre à leurs questions. De plus, votre code s'avérera assez durable.

Conclusion: pratiquez Julia, et que ce soit votre passe-temps

Il y a quarante ans, l'intelligence artificielle n'était rien d'autre qu'un phénomène de niche. Ni les investisseurs ni l'industrie n'y croyaient, et de nombreuses technologies d'IA semblaient maladroites et peu pratiques à utiliser. Mais ceux qui ont étudié l'IA sont même devenus des géants aujourd'hui - aujourd'hui, leurs salaires sont à peu près les mêmes que ceux des meilleurs athlètes.

De même, Julia reste très niche en ce moment. Mais quand il grandira, ceux qui se sont tournés vers lui à l'avance seront les plus grands gagnants.

Je ne promets pas que dans dix ans vous gagnerez certainement de l'argent avec une pelle si vous apprenez maintenant Julia. Mais vos chances d'un tel développement d'événements augmenteront.

Pensez-y: aujourd'hui, la plupart des programmeurs utilisent le langage Python dans leurs CV. Quelques années encore passeront et nous verrons encore plus de programmeurs piton sur le marché du travail. Mais, si la croissance de la demande de Python dans l'entreprise ralentit, les perspectives des programmeurs Python commenceront à se détériorer. Au début, lentement, mais inévitablement.

D'un autre côté, vous pouvez vraiment vous démarquer si vous spécifiez Julia dans votre CV. Depuis, nous serons honnêtes, mais comment vous différenciez-vous de toute l'armée de pitoners avec laquelle vous devez rivaliser? Presque rien. Mais les programmeurs connaissant Julia resteront des spécialistes relativement rares, même à l'avenir pour les trois prochaines années.

Possédant les compétences de Julia, vous ne vous contentez pas de démontrer que vos intérêts ne se limitent pas aux exigences «du travail». Vous montrez également que vous êtes prêt à apprendre et à avoir une idée plus large de ce que signifie être programmeur. En d'autres termes, cela vaut la peine de traiter avec vous.
Vous - et d'autres experts de Julia - pourriez devenir des stars à l'avenir, et vous le savez. Ou, comme l'a déclaré l' un des créateurs de Julia en 2012:

, , . , . , 1.0 . , , Julia. 90% , , . , – , – , .

All Articles