In Carrière et le Développement Dernière mise à jourated:
Partager sur:
Logiciel Jira est l'outil de gestion de projet n°1 utilisé par les équipes agiles pour planifier, suivre, publier et prendre en charge d'excellents logiciels.

Pour certaines personnes, l'apprentissage d'un nouveau langage de programmation est un excès qu'il vaut mieux éviter. Pourquoi, oh pourquoi, disent-ils, avons-nous besoin d'une autre langue?

N'en avons-nous pas déjà assez?

Les outils existants ne font-ils pas le travail?

Et puis il y a ces chercheurs infatigables qui sautent sur l’occasion d’essayer de nouvelles choses et tombent sur des pépites. L'apprentissage est une finself, et ils n'ont pas besoin de beaucoup de conviction pour passer leurs week-ends à construire un jeu de cartes sur console dans ce nouveau langage obscur.

Quel que soit le camp auquel vous appartenez, il y a quelque chose au-delà de Debate: nous voulons tous consacrer du temps à quelque chose qui aura un brillant avenir.

Pour les personnes du camp de l'héritage, leur langue existante préférée a déjà une tonne d'élan et continuera d'avoir un avenir radieux. Pour eux, je dois leur rappeler que leur chaîne d'outils de développement préférée, désormais mature, était autrefois un "kool-aid" que beaucoup refusaient de boire. Et c'est ainsi aujourd'hui; de nouvelles technologies sont ajoutées pour résoudre de nouveaux problèmes ou pour soulager la douleur du développement.

Si quelque chose fait ce radicalally assez, il y a de fortes chances qu’il continue à s’approprier la part d’esprit et à atteindre le sommet. Lorsque cela arrive, vous ne voulez pas être laissé pour compte. 🙂

Et à ceux qui aiment courir avec des trucs brillants, un avertissement: s'amuser est essentiel en tant que programmeur, mais il faut faire attention à ne pas gaspiller nos énergies sans but.

Bien sûr, brainfuck est un petit langage incroyablement tordu, ressemblant à un puzzle et amusant, mais il est peu probable que vous en profitiez en le poursuivant sérieusement. Vous voulez quelque chose de nouveau, de sensé et qui a une base solide.

Comment ces langues ont été sélectionnées

La sélection de la langue est un travail intimidant, en particulierally lorsque de nouvelles langues sont envisagées pour des avantages futurs en matière d'emploi et de satisfaction. Chaque auteur de langage est fermement convaincu qu'il a construit le langage parfait possible et résolu tous les problèmes auxquels il doit répondre. Comment alors couper ?

Pour cet article, je me suis concentré sur quelques paramètres pour maintenir ma recherche dans des limites raisonnables.

Libération Date

Je préciseally j'évitais les langues très, très nouvelles.

Nouveau, je veux dire les langues de moins de 5 à 6 ans au moment de l'écriture, et particulièrementally ceux qui n'ont pas atteint la stabilité (version 1.0, bien sûr). Mais j’espère y revenir et écrire un jour sur leur succès. 😀

Pour moi, 5 à 12 ans est le point idéal, c'est-à-dire lorsqu'une langue s'est stabilisée et que d'autres raffinements sont en cours d'élaboration. Maintenant, bien sûr, il existe des exceptions à cette règle, et celles-ci seront prises en compte le cas échéant.

Intérêt communautaire fort

Celui-ci est une évidence, mais est souvent ignoré lorsque nous sommes enthousiasmés par quelque chose de nouveau. Maintenant, pour beaucoup de gens, le soutien d'une grande entreprise est un précédent suffisant pour réussir, mais ce n'est pas toujours vrai.

Oui, l'Objective-C d'Apple et maintenant Swift ont prospéré parce que c'étaient les seules options dans un environnement hautement contrôlé. ecossystème, mais celui de Facebook D et le entaille (une interprétation moche sur une langue déjà moche, à mon avis) ne restent guère plus que des expériences.

La combinaison idéale serait un langage soutenu par une grande entreprise stable et explosant en popularité (comme React).

Mais le cœur du problème reste la communauté. Si un langage ne crée pas de buzz et qu'il n'y a pas assez de développeurs pour l'éduquerate et popularisé, il ne va pas sortir de sa tombe GitHub.

Pour moi, cela exclut les langues matures et fascinantes comme Raquette et le Erlang, comme ils sont restés à plat sur le growème courbe.

USP ciblée et bien définie

La third ce que je recherche, c'est un objectif clair pour la langue. Par exemple, une meilleure version de PHP qui corrige les problèmes de nommage et compile en PHP natif ne fonctionne pas pour moi.

Les avantages sont tout simplement trop faibles pour justifier les fissures si tout le monde essaie de s'y mettre. À cet égard, je ne peux m'empêcher de rejeter des tentatives telles que CaféScript, et de nombreux autres langages de compilation vers JavaScript similaires.

Honnêtement, je suis obligé de rejeter immédiatement les améliorations liées uniquement à la syntaxe.ately. L'histoire a montré que l'utilité l'emporte sur la convivialité lorsqu'il s'agit de langues, donc si toutes les nouvelles langues se concentrent sur une expérience plus agréable, j'ai bien peur qu'elles ne figurent pas sur cette liste.

Syntaxe claire et cohérente

Oui je sais. Je viens de dire que la syntaxe n'a pas d'importance. Eh bien, pour être précis, j'ai dit que les «améliorations de syntaxe uniquement» importaient peu. Mais cela dit, la syntaxe reste l'un des facteurs importants de la productivité et de la maintenabilité des programmeurs, c'est donc quelque chose qui doit figurer dans mes calculs ici.

Avec la syntaxe vient l'idée de cohérence. La dénomination des fonctions, la structuration des modules, etc., sont des éléments clés qu'un langage ne peut pas se permettre de se tromper. Nous sommes en 2018, pour l'amour de Dieu, et une autre conception de langage de type PHP serait une honte pour nous tous. Alors, sans plus tarder, commençons avec nos cinq principales recommandations.

Julia

Pour les gens du MIT, les langages disponibles pour la science des données étaient au mieux un compromis. Python, malgré tout clarity et sa popularité, manquaient de constructions natives pour traiter les objets de données. De plus, étant un langage interprété, Python était lent pour eux (pas pour les bibliothèques, remarquez, car elles sont principalement écrites en C).

Mais le plus gros problème était peut-être le caractère maladroit concurmodèle de réence et l’absence d’un modèle de calcul parallèle, ce dernier étant un élément essentiel du super-informatique.

En conséquence, Julia est né.

Julia a atteint sa sortie stable le 29 septembre 2018, à peine quelques jours avant la rédaction de cet article (parlez de timing!). Voici ce que le site officiel a à dire sur ses capacités:

Julia excelle en calcul numérique. Sa syntaxe est idéale pour les mathématiques, de nombreux types de données numériques sont pris en charge et le parallélisme est disponible directement. box. La répartition multiple de Julia est un choix naturel pour définir des types de données de type nombre et tableau.

Syntaxe-wise, Julia peut être considérée comme une combinaison de Python et de C. Oui, c'est probablement la première fois qu'un langage vise ces deux qualités et réussit.

Pour simplifier les choses, Julia est extrêmement rapide et n'impose pas de saisie stricte. Voilà quelque benchdes notes:

Comme vous pouvez le voir, Julia est légèrement pire que C mais fait sortir Java et Python du water. Et quel genre de régal pour les yeux Julia propose-t-elle ?

Eh bien, voici l'implémentation d'une fonction de calcul de l'hypoténuse d'un triangle rectangle:

finally, alors que la plupart des Julia risque numérique est fortement incliné vers mathematical travail, je pense qu’il a un brillant avenir à des fins générales.

C'est le premier langage, à ma connaissance, qui offre un support de premier ordre pour le calcul parallèle, ce ne sera donc pas une surprise.rise pour le voir gagner en popularité dans les domaines du Web et de l'IoT.

Calme

Si vous avez essayé le nouveau Firefox browseuh, les sorties, tu sais que c'est finally, après des années de travail, il semble qu'ils pourraient être en mesure de retirer une part de marché à Chrome.

Si le browseuh, c'est léger et vif et le rendu est rapide, tout cela grâce au langage Mozilla specially développé: Calme.

Dire que Rust a un avenir radieux serait un mensonge ; le langage connaît déjà un énorme succès, et si vous n'en avez pas encore entendu parler, c'est parce que son domaine d'application est spécialisé, et son objectif fait peur : remplacer le C++ ! Oui, nous finissonsally avoir un langage qui non seulement est capable de le faire, mais qui le fait déjà.

Pour les gens frustrésateCompte tenu des défis de conception et de gestion de la mémoire surchargés du C++, Rust est une bouffée d'air frais.

Voici à quoi ressemble un programme Rust:

Concis et élégant, à mon avis. Rust suit l'approche de programmation fonctionnelle, ce qui rend votre code plus compositesable, et il n'y a pas de hiérarchies orientées objet avec lesquelles lutter.

Alors, qu'est-ce qui donne à Rust le courage de s'attaquer au C ++? C'est le nouveau modèle de mémoire. Plutôt que de s'appuyer sur l'ancienne danse new () / delete (), Rust introduit l'idée de propriété.

Plutôt que d’allouer et d’accéder directement à la mémoire, les variables Rust « s’empruntent » les unes aux autres, avec des restrictions strictes imposées par le compilateur. Le concept global est trop compliquéated pour vous expliquer en quelques mots, alors n'hésitez pas à consulter le documents officiels pour en savoir plus.

Le fait est que cela se traduit par une sécurité de la mémoire à 100% sans avoir besoin d'un ramasse-miettes, ce qui est un gros problème.

Rust a pris d'assaut le monde de la programmation système. Il est déjà pris en charge sur certains platformes, pouvoirs browsLes logiciels et les moteurs de rendu remplacent rapidement le code C/C++ sur les systèmes de production et sont utilisés pour écrire des systèmes d'exploitation.

Bien sûr, ce n'est pas la tasse de thé de tout le monde de créerate un autre browser ou pilote de périphérique, mais Rust le diffuse déjàself vers d'autres domaines. Nous disposons déjà de plusieurs frameworks Web entièrement fonctionnels et ridiculement rapides dans Rust, et de plus en plus de bibliothèques d'applications sont en cours de développement.

Honnêtement, si vous êtes intéressé par un avenir passionnant, Rust est le langage parfait, et maintenant est un moment parfait. Rust est un avion qui a décollé, mais il est encore temps de monter à bord alors qu'il se dirige vers les étoiles!

Apprendre Rouille de Dmitri Nesteruk.

Élixir

Parmi les langages axés sur le bonheur des développeurs, la première place est définitivement réservée à Ruby. C'est un langage qui se lit comme de la poésie et qui a suffisamment de raccourcis pour réduire les frictions mentales par ordre de grandeur.

Il n’est donc pas étonnant que le framework Rails continue de dominer.ate développement full stack pour les développeurs et startups sérieux. Mais tout le monde n'était pas satisfait de Rails, en particulierally l'un de ses principaux développeurs - José Valim. Je pense que le créateur luiself explique le mieux la genèse de cette langue dans un interview:

C'est une longue histoire, mais je vais essayer de la rendre courte et agréable. En 2010, je travaillais à l'amélioration des performances de Rails lorsque je travaillais avec des systèmes multicœurs, car nos machines et systèmes de production sont livrés avec de plus en plus de cœurs. Cependant, l'expérience a été plutôt frustrante car Ruby ne fournit pas l'outil approprié pour résoudre les problèmes. concurproblèmes de réence. C'est à ce moment-là que j'ai commencé à m'intéresser à d'autres technologies et j'ai fini parally Je suis tombé amoureux de la machine virtuelle Erlang.

J'ai commencé à utiliser Erlang de plus en plus et, avec l'expérience, j'ai remarqué qu'il me manquait certaines constructions disponibles dans de nombreux autres langages, y compris fonctionnels. C'est à ce moment-là que j'ai décidé de créerate Elixir, dans le but d'apporter différentes constructions et d'excellents outils au-dessus de la VM Erlang.

Et voici, Élixir est né!

Tout comme Scala améliore le langage Java mais cible la même machine virtuelle en dessous (la JVM), Elixir tire parti de la machine virtuelle Erlang, vieille de plusieurs décennies et éprouvée au combat.

Maintenant, une discussion sur Erlang dépasse le cadre de cet article, mais le minimum que vous devez savoir est que c'est le secret le mieux gardé de l'industrie des télécommunications: si nos réseaux téléphoniques sont beaucoup plus fiables que nos systèmes basés sur le Web, tout cela grâce à Erlang.

En termes encore plus simples, cela signifie ceci. Si vous construisez un système en temps réel comme le chat, Elixir est beaucoup moins gourmand en RAM et stable que Ruby (ou PHP, Python et Java, d'ailleurs).

Une machine qui exécute Ruby et atteint un maximum de 10,000 XNUMX concurLes connexions de location peuvent facilement gérer 200,000 2 lorsque vous utilisez Elixir tout en disposant de suffisamment de RAM pour exécuter des jeux XNUMXD !

Syntaxe-wise, Elixir copie sans vergogne Ruby, et son framework Web dominant, Phoenix, copie sans vergogne Rails. Je dirais que c'est aussi une bonne chose, car avec Laravel, Grails, Masonite, etc., nous atteignons un point où tous les langages ont des frameworks de type Rails qui peuvent faciliter la transition. Certains pourraient se moquer du « manque d’originalité », mais au moins je ne me plains pas.

finally, Élixir fait partie de ces technologies rafraîchissantes, agréables et sacrément pratiques. Plusieurs boutiques Ruby (et même non Ruby) déménagent vers Elixir, et de grandes entreprises comme Pinterest l'utilisent en production avec des résultats extrêmement satisfaisants.

Beaucoup de gens pensent que Node.js était une tentative improvisée de concurrency et serait bientôt remplacé par Elixir. Je dois dire que je suis d'accord avec eux. 🙂

Kotlin

En 2017, Google a lancé une bombe sur une foule sans méfiance. La forme de la sociétéally annoncé Kotlin en tant que langage principal pour le développement Android, ce qui choque waves à travers l’industrie.

Maintenant, le fait que Google cherche activement à remplacer Java n’est pas une surprise.rise après avoir été bitdix par un procès Oracle ; cependant, l'adoption de Kotlin était quelque peu inattendue, et il y a encore de fortes chances que Google publie bientôt sa machine virtuelle. Mais pour le moment, Kotlin profite d’une forte hausse.

Kotlin a été développé par JetBrains, une société mieux connue pour sa suite d'éditeurs de code incroyablement bons. L'un d'eux, IntelliJ IDEA, constitue le socle d'Android Studio. Les objectifs de conception de Kotlin sont la sécurité, la concision et une interopérabilité à 100 % avec Java.

Plus que toute autre chose, le compilateur Kotlin fonctionne extra difficile à éliminerate toutes les exceptions de pointeur nul si courantes dans le monde Java. Il réduit également considérablement la verbosité proverbiale de Java. bit, ce qui sera un soulagement pour beaucoup.

Voici une merveilleuse comparaison de code entre Java et Kotlin:

Le code Kotlin est nettement plus court et a beaucoup moins de surcharge cognitive à parcourir.

Mais soyons clairs: Kotlin est extrêmement peu susceptible de remplacer Java, bien qu'il devienne rapidement un favori rapide. Je pense que dix ans plus tard, les équipes de petite et moyenne taille ne chercheront pas plus loin que Kotlin, tandis que les grands groupes continueront à utiliser Java uniquement pour des raisons d'héritage.

Cela dit, Kotlin a un avenir extrêmement brillant car il fait tout ce que fait Java, peut fusionner avec le code Java sans que personne ne s'en aperçoive, et c'est beaucoup plus agréable!

Manuscrit

Dieu sait que j'ai dû retenir monself pour cet endroit ! Tout en moi criait « Elm ! Elm!", mais peu importe comment revolutionnaire, ses idées ou la divine syntaxe, Elm n'est pas encore considéré comme une alternative traditionnelle pour le travail front-end. 🙁 Bref, passons à quoi is grand public: TypeScript.

JavaScript est comme des baies sauvages : laid et de mauvais goût, mais vous devez le supporter si vous souhaitez survivre à la jungle du développement frontal. De nombreuses tentatives ont été faites pour le remplacer (et très probablement, le nouveau DÉVELOPPEMENTAssembly standard réussira), mais ce qui a vraiment attiré l'attention de tous, c'est le sur-ensemble développé par Microsoft.

Il y a d'excellentes chances dont vous avez entendu parler Manuscrit: Angular a été le premier framework à l'adopter à partir de la version 2, et les gens n'ont pas tardé à en prendre note. C'est parce que TypeScript ajoute des super pouvoirs indispensables et fantastiques au langage de programmation le plus célèbre au monde.

Oui, c'est bienally possible d'écrire du code JavaScript natif sans souffrir et maudire sa naissance !

Voici les améliorations apportées par TypeScript à la table:

✓ Typage fort: finally, une chaîne n'est pas un nombre, et un nombre n'est pas un objet, qui n'est pas un tableau vide !

✓ Vérification du type à la compilation: Si votre code se compile correctement, il est plus ou moins garanti d'être exempt des verrues du runtime JavaScript.

✓ Classes et modules: Oui, les classes sont standard dans ES6, mais elles sont également incluses dans TypeScript, en plus d'un système de modules soigné.

✓ Inférence de type: Pour les types complexes, le type peut être facilement identifié par le compilateur, vous évitant ainsi des maux de tête.

✓ Unsync/attendre: Le AsyncLes mots-clés et les modèles /await sont fondamentaux, donc plus besoin de jouer avec les promesses et les rappels !

Espaces de noms, génériques, tuples. . . Je pourrais continuer encore et encore, mais il devrait suffire de dire que TypeScript convertit l'une des pires expériences de développement en l'une des meilleures.

La impact de TypeScript ne peut être nié. Il a repoussé des tentatives similaires comme Dart de Google (bien qu'il tente un retour via Flutter, un cadre de développement mobile) et a ouvert les yeux des développeurs JS sur les avantages de types plus puissants.

En conséquence, des bibliothèques importantes comme React, D3, Vue (même jQuery !) ont maintenant une version TypeScript, et dans les meilleures boutiques de logiciels du monde, toutes Le code JavaScript est écrit en tant que TypeScript code. Les en-têtes TypeScript sont désormais également disponibles pour Node.js (honnêtement, si un nœud peut améliorer son concurhistoire de rency et patcher sa mauvaise gestion de la mémoire, ça durera foreveuh).

Vous pourriez être surprisrised à savoir que le créateur de Node.js, après avoir publiquement regrettant sa creation, travaille sur un nouveau runtime (il n'y a pas de site Web officiel pour le moment; juste le dépôt GitHub) qui a TypeScript comme langue principale.

La meilleure nouvelle? TypeScript est un petit langue à apprendre avec des bénéfices considérables à l'avenir. Si vous êtes intermédiaireate Développeur JavaScript, vous récupérerez suffisamment de TypeScript dans les deux jours pour porter tout votre code existant !

orme

orme est aussi rapide que son nom peut être prononcé et est utilisé pour les applications frontales, les graphiques et les jeux. C'est un langage de programmation fonctionnel crééateréalisé par Evan Czaplicki en 2012.

On dit qu'Elm n'a aucune exception d'exécution – c'est là qu'il brille. En tant que statiqueally langage typé, le compilateur valideateIl s'agit de toutes les erreurs au moment de la compilation (wow !) avec des messages conviviaux (les messages sont des textes intégraux et non des codes étrangement lancés).

Quel soulagement pour les développeurs (débuggers) ! Vous pourrez apprendre à coder dans Elm au fur et à mesure que vous obtenez plus d'erreurs - le compilateur vous indique ce qui ne va pas et vous suggère ce que vous devez faire pour le corriger !

Elm se vante d'être plus rapide que Réagir et plus fortement typé que même TypeScript. Le code Elm est très organisé et soigné et fera de vous un meilleur développeur.

Puisque Elm est basé sur des modules, vous pouvez facilement créerate reusable Composants. Elm compile en JavaScript que vous pouvez exécuter sur le browseuh. Ainsi, tout ce dont vous avez besoin pour qu'Elm fonctionne est node et npm, et vous pouvez simplement obtenir Elm en utilisant la commande :

npm install -g elm@<version> 

Vous pouvez mettre la version que vous souhaitez installer, par exemple, 0.19.1.

Vous pouvez alors vérifier si Elm est adéquatately installé à l'aide du –version commande. Si vous ne souhaitez pas encore effectuer toute l'installation et la configuration, rendez-vous simplement sur leur site officiel et utilisez l'éditeur en ligne pour jouer.

Alors jouons un peu bit, puis!

Si vous n'utilisez pas le compilateur en ligne, vous devrez installer toutes les dépendances du programme que nous allons écrire maintenant (c'est assez facile, cependant).

Demandons à un utilisateur de taper son nom dans un texte box et imprimez la même chose sur la page avec un bonjour.

import Browser

import Html exposing (Html, Attribute, div, input, text)

import Html.Attributes exposing (..)

import Html.Events exposing (onInput)

-- MAIN

main =

  Browser.sandbox { init = init, update = update, view = view }

-- MODEL

type alias Model =

  { content : String

  }

init : Model

init =

  { content = "" }

-- UPDATE

type Msg

  = Change String

update : Msg -> Model -> Model

update msg model =

  case msg of

    Change newContent ->

      { model | content = String.append "Hello..." newContent }

-- VIEW

view : Model -> Html Msg

view model =

  div []

    [ input [ placeholder "Type your name", onInput Change ] []

    , div [] [ text (model.content) ]

    ]

Voici l'écran initial lorsque vous construisez le programme :

Tapez un nom, et voici ce que vous obtenez à l'écran :

Bien que ce programme puisse sembler excessif pour son objectif, à mesure que sa complexité augmente, vous apprécierezate à quel point il devient facile de déboguer et de maintenir.

Vous pouvez voir une séparation claire entre le modèle, la vue et le contrôleur (mise à jourate). Semblable à la façon dont nous utilisons HTML tags, nous pouvons créerate formulaires dans Elm en utilisant les balises model div.

Lors de l'événement 'on input' (c'est-à-dire, l'utilisateur entre un texte), le programme appelle 'Change', et le programme imprime le nom d'utilisateur avec 'Hello' en utilisant la fonction String.append.

Poney

Poney est compilé et suit un modèle de calcul d'acteur conçu pour unsynccomportement hroneux – c'est-à-dire hautement concurdemandes de location.

Les langages de programmation traditionnels fournissent une fonctionnalité de « verrouillage » pour gérer concurrence, qui impactperformances. Pony n'a pas de verrou, évitant ainsi toute opération de blocage ou scénario de blocage. Chaque acteur est monothread.

Pony fournit également une sécurité basée sur les capacités, où les utilisateurs doivent utiliser une "capacité de référence" pour accéder à un objet particulier, garantissant une gestion sûre des données. Par exemple, les capacités décrivent quels autres alias sont refusés plutôt que ce qu'ils sont autorisés.

NotionC'est comme si la mutabilité et l'isolement étaient basés sur ces capacités. Cette fonctionnalité de « refus » libère Pony de la course aux données.

Le poney est sûr, rapide et précisate et permet de gagner du temps de développement, ce qui en fait un bon choix pour les applications bancaires et financières.

Pony garantit la sécurité des types pour le traitement des données. Il n’y a aucune exception – seules les erreurs doivent être traitées pour compiler le code. La raison principale en est que Pony est statiqueally tapé. Vous devez spécifier explicitement le type (comme Java et contrairement à Python) d'une variable avant de l'utiliser

let name: String

Semblable à Java, vous pouvez créerate constructeurs. Supposons que vous ayez une classe d'employés avec un nom et un âge :

class Employee

  let name: String

  let age: U64

  new create(name': String) =>

    name = name'

Les développeurs Java remarqueront peut-être qu'il existe des différences subtiles dans la syntaxe (pas d'accolades, wow !). Il y a aussi un ''' à la fin des attributs de classe. Vous pouvez également créerate les fonctions:

fun get_emp_name(): String => name

amusement pour écrire des fonctions, hein ?

Maintenant, la partie principale – des acteurs et des promesses.

Les acteurs poneys ont des comportements – similaires aux fonctions – mais seulement unsynchroniques – ils sont exécutés dans un avenir proche mais pas nécessairement immédiatately quand on l'appelle. Mais ils « promettent » que les comportements seront exécutés à coup sûr.

actor Employee
  // actor has fields, similar to class
  let name: String

  // and of course, constructor
  new create(name': String) =>
    name = name'

  // Note the behaviour 'be' instead of the fun function
  be get_emp_name(promise: Promise[String]) => promise(name)

Eh bien, les promesses peuvent aussi être rejetées – si l’acteur ne peut pas tenir ses promesses.syncdemande hroneuse en cours d'envoi. Vous pouvez créerate une promesse:

// Create a new promise

let promise = Promise[String]

Et invoquez le comportement de l'acteur en transmettant la promesse à tenir (dans notre cas, obtenir le nom de l'employé).

employee.emp_get_name(promise)

Pensez-vous que ce code va compiler?

Une autre fonctionnalité intéressante de Pony est qu'il est sécurisé en mémoire - pas de NULL ou buffer dépassements. Tout code susceptible de renvoyer null ne sera jamais compilé à moins d'être corrigé.

Eh bien, nous n'avons pas encore dit au programme ce qu'est "l'employé" (notre acteur) :

let employee = Employee(“J K Rowling”)

Contrairement à tout autre langage de programmation, Pony permet la division par zero, et le résultat est zero. Il y a mathematical proofs pour toutes les fonctionnalités de Pony.  

Pour écrire des programmes Pony, vous devez installer le compilateur Pony. Puisque Pony est un langage compilé, vous devez compiler le programme en utilisant 'ponyc' avant de l'exécuter.

Une fois que vous avez installé le compilateur, essayez le bonjour le programme du monde.

Vyper

Vyper est un langage de programmation de contrats intelligents basé sur Python. Comme Python, il est lisible par l’homme, facile à coder et sécurisé. Vyper se compile jusqu'au bytecode Ethereum Virtual Machine (EVM). EVM identifie le state of Ethereum pour chaque bloc sur la blockchain.

Pour comprendre pourquoi Vyper est spécial, comprenons les contrats intelligents.

Les contrats intelligents sont des programmes stockés dans une blockchain qui définissent et exécutent un accord entre le vendeur et l'acheteur lorsque les exigences du contrat sont remplies.

Ceux-ci sont self-exécution automatiqueated contrats qui ne nécessitent pas d’intervention humaine. Cependant, les contrats intelligents sont sujets à des vulnérabilités.

Par exemple, des contrats intelligents pourraient être conclus pour libérer de l'étherbitadresses rares ou tués par arbitadresses rares, sinon ils pourraient ne pas être en mesure de libérer de l'éther. Ces vulnérabilités sont habituellesally introduit via le code – involontaireally ou intentionally.

Vyper éliminerateRésout ce problème en fournissant un code sécurisé, ce qui rend difficile l'introduction de code vulnérable ou trompeur. Bien que Vyper est basé sur Python, il ne suit pas beaucoup POO paradigmes, comme l'héritage, la surcharge, la récursivité, etc. Cela évite la complexité du code (avoir plusieurs fichiers, ce qui le rend difficile à des fins d'audit).

Vyper ne prend pas non plus en charge l'inline assembly, ce qui signifie que les programmes ne peuvent effectuer aucune action directement sur l'EVM, évitant ainsi les attaques.

Ces fonctionnalités font Vyper assez sécurisé pour écrire du code pour les contrats intelligents utilisés dans les blockchains.

S'entraîner à écrire des programmes en Vyper, vous pouvez utiliser le remixer oncompilateur de ligne.

Vous pouvez également installer Vyper en utilisant docker ou pip (si vous avez Python) en suivant les instructions sur le Vyper page de documentation.

R

R est l'un des langages de programmation les plus populaires pour l'analyse de données et machine learning. Il dispose d'API pour tous les ma complexesthematics, statistiques et calculs scientifiques, algorithmes d'apprentissage automatique et représentations visuelles.

R est open source et très populaire pour sa riche interface utilisateur graphique. Elle possède une communauté dynamique et stable et peut facilement s'intégrerate avec d'autres langages comme C, C++, etc.

Nous obtenons toutes les fonctionnalités ci-dessus via CRAN (Comprehensive R Archive Network), qui contient plus de 10000 XNUMX packages pour les statistiques, les probabilités, l’analyse des données, l’informatique, les graphiques et bien d’autres encore.

Pour voir la magie de R, essayons un programme simple pour trouver la moyenne (moyenne) de 11 nombres. Pour trouver la moyenne, nous prenons la somme des nombres et la divisons par le nombre total de valeurs (11 dans notre cas). R a une fonction appelée "moyenne" qui fait tout ce calcul pour nous.

mynums <- c(51, 52, 53, 94, 88, 61, 31, 34, 76, 20, 10)

mean(mynums)

La sortie est:

[1] 51.81818

Nous pouvons les tracer en utilisant la méthode plot :

boxplot(mynums)

boxparcelle

Il existe de nombreux packages avancés, tels que ggplot2, dplyr et bien d'autres, pour afficher des graphiques riches dans R.

Nous pouvons également afficher un histogramme rapide avec les valeurs ci-dessus pour voir la plage dans laquelle les valeurs correspondent.

hist(mynums, breaks = 10, col = "sky blue", main = "Histogram of marks", xlab = "Height Bin")

histogramme

Notez que nous avons donné une pause de 10 ; nous pouvons changer cela en n'importe quel nombre en fonction des divisions que nous voulons.

La variable ci-dessus, mynum était un vecteur contenant une liste de nombres. Semblable à Python, nous créonsate un bloc de données dans R pour travailler avec plus de dimensions.

Ceci est très utile pour l’analyse. Par exemple, nous pouvons combiner plusieurs vecteurs, create une trame de données et manipulerate la même chose en fonction du nombre de variables et du type d’analyse dont nous avons besoin.

Disons que nous disposons de vecteurs de nom, de compétences et d’âge des employés. Nous pouvons créerate un dataframe et afficher les données ensemble :

employees = data.frame(Name = c("John","Mac","April","Ron","Matt"),

                        Age = c(23,28,30,43,31), Skill = c("Java", "Python", "C++", "R", "PHP"))

print(employees)

> print(employees)

    Name Age  Skill

1   John  23   Java

2    Mac  28 Python

3  April  30    C++

4 Ron  43      R

5 Matt  31    PHP

Une autre caractéristique intéressante de R est la facilité de manipulation matricielle à l’aide de tableaux. R vous épatera en effectuant des calculs matriciels complexes en un clin d'œil. Tout ce que vous avez à faire est de créerate la matrice et la remettre au Programme R.

M1 <- matrix(c(1, 2, 1, 2), ncol=2)

M2 <- matrix(c(3, 4, 3, 4), ncol=2)

print(M1*M2)

>print(M1*M2)

     [,1] [,2]

[1,]    3    3

[2,]    8    8

Apache Groovy

Après mûre réflexion et évaluation, j'ai inclus Sensationnel dans ma liste des meilleurs langages de programmation. Cette langue est comme le beurre sur un délicieux cake, offrant une saveur et une amélioration supplémentaires à tout projet.

L'une des principales raisons pour lesquelles Groovy mérite une place sur la liste est son large éventail de fonctionnalités, qui ont contribué à son succès. growpopularité croissante dans le monde de la technologie. En tant que langage agile et dynamique pour la machine virtuelle Java (JVM), il offre des fonctionnalités de programmation modernes aux développeurs Java avec une courbe d'apprentissage minimale.

Il convient de noter que la JVM est un abreviation pour Machine virtuelle Java. JVM fait partie intégrante de Java, fournissant un platformulaire pour exécuter le bytecode Java sur n’importe quel appareil. Groovy, construit sur la JVM, offre un large éventail de fonctionnalités qui améliorent ses performances et en font un attractchoix idéal pour les développeurs. 

En termes simples, il fournit un platformulaire pour exécuter le bytecode Java, permettant d'utiliser Java sur n'importe quel appareil. Du point de vue des performances, Groovy peut être statiqueally vérifiez le type et compilez votre code pour une robustesse et des performances améliorées.

L'intégration transparente de Groovy avec les classes et bibliothèques Java existantes le distingue des autres langages de programmation. Il peut également être compilé directement en bytecode Java, ce qui le rend facile à utiliser partout où vous pouvez utiliser Java. Cette fonctionnalité ajoute à la flexibilité et à la polyvalence de Groovy et en fait un choix idéal pour les développeurs cherchant à créer des applications.ate logiciel efficace et fiable.

La nature dynamique de Groovy peut rendre la vérification de type problématique et le code de débogage plus difficile, ce qui est un inconvénient potentiel. Cependant, de nombreux programmeurs pensent que la flexibilité et la simplicité de Groovy l'emportent sur les inconvénients potentiels.

En tant que développeur, il est essentiel de reconnaître la valeur unique que Groovy apporte. Pour illustrerate sur ce point, j'aimerais partager un exemple qui montre comment les puissantes fonctionnalités de Groovy peuvent améliorer votre code.

def greeting = "Hello, World!"
println greeting

// Define a list of numbers
def numbers = [1, 2, 3, 4, 5]

// Use a closure to map the list to its squares
def squares = numbers.collect { it * it }

println squares

Dans cet exemple, nous illustronsate la polyvalence et l'expressivité du langage Groovy en définissant une variable chaîne et en l'imprimant sur la console à l'aide de la fonction println. 

Additionally, nous montrons comment Groovy simplifie des opérations complexes, telles que la transformation d'une liste de nombres à l'aide d'une fermeture pour créerate une nouvelle liste contenant les squares de chaque numéro. Cette démonstrationateDécouvrez comment Groovy peut améliorer votre productivité en tant que développeur en fournissant une syntaxe concise et lisible pour les tâches de programmation quotidiennes.

Par conséquent, il est évident que Groovy mérite l'attention de chaque développeur.

Cristal

Après des recherches approfondies, nous n'avons pas pu nous empêcher d'ajouter Cristal à notre liste. Et non, on ne parle pas de minéraux ! Crystal est un langage de programmation orienté objet à usage général sorti en 2014. Il a été conçu pour avoir une syntaxe ressemblant étroitement à Ruby tout en étant rapide et efficace. Avec son système de type statique et sa compilation anticipée, Crystal offre aux développeurs la rapidité du C et la simplicité de Ruby.

Crystal est un langage de programmation relativement nouveau qui gagne en popularité parmi les développeurs en raison de sa vitesse impressionnante et de sa facilité d'utilisation. Il est souvent décrit comme "Rapide comme C, lisse comme Ruby", soulignant sa capacité à fournir des performances ultra-rapides tout en conservant la syntaxe conviviale et la lisibilité de Ruby. 

Cependant, Crystal atteint sa vitesse impressionnante en sacrifiant certains aspects dynamiques de Ruby et en restreignant certaines constructions de programmation. Néanmoins, ce compromis a fait de Crystal un attractoption ive pour créer des applications hautes performances dans un langage plus convivial pour les développeurs.

# Define a class for a person with name and age attributes
class Person
  getter name : String
  getter age : Int32

  def initialize(@name : String, @age : Int32)
  end
end

# Create an array of Person objects
people = [Person.new("Alice", 25), Person.new("Bob", 30), Person.new("Charlie", 35)]

# Use a block to filter the array by age and map the names to uppercase
names = people.select { |person| person.age >= 30 }.map { |person| person.name.upcase }

# Print the resulting array of uppercase names
puts names.inspect

Ce code démontreates Les avantages de Crystal en termes de syntaxe, de performances et de sécurité des types. La syntaxe de Crystal est similaire à celle de Ruby, ce qui la rend facile à lire et à écrire. Cependant, Crystal compile en code natif, ce qui entraîne une exécution plus rapide que les langages interprétés comme Ruby. 

Additionally, Crystal est statiqueally typé, qui assure la sécurité des types au moment de la compilation et améliore les performances. Dans cet exemple, le code utilise un bloc pour filtrer un tableau d'objets Person par âge et mapper les noms en majuscules, démontrant la flexibilité et l'expressivité de la syntaxe de Crystal.

Raison

Raison est un langage de programmation contemporain avec une syntaxe similaire à JavaScript ou à d'autres langages de la famille C avec le système de type robuste d'OCaml. Grâce à ses puissantes capacités de vérification de type, les développeurs peuvent détecter les problèmes plus tôt et écrire un code plus robuste et plus fiable. 

L'interface conviviale et la conception simple de Reason en font un choix fantastique pour divers travaux de programmation, quel que soit votre niveau d'expérience en programmation.

Reason et OCaml sont des langages de programmation très polyvalents qui peuvent être utilisés dans divers environnements grâce aux nombreux projets qui les prennent en charge. Une façon de les utiliser consiste à créer des exécutables natifs pouvant s’exécuter directement sur votre machine à l’aide du compilateur standard. De plus, plusieurs outils comme « dune » et « esy » qui aident à cela process. 

Une autre option consiste à compiler Reason en code JavaScript compatible avec browsers, ce qui peut être réalisé grâce à des projets comme ReScript (anciennement BuckleScript) et Js_of_ocaml. Ces options polyvalentes rendent Reason et OCaml attrayants pour les développeurs de divers secteurs.

Reason est un langage de programmation contemporain avec une interface conviviale et une syntaxe similaire à JavaScript. Sa polyvalence et sa conception simple en font un choix populaire pour les développeurs de divers secteurs.

Conclusion et avis de non-responsabilité

Eh bien, nous avons tous des favoris différents, mais les langues ci-dessus valent la peine d'être essayées car elles sont livrées avec toutes les nouvelles fonctionnalités et résolvent bon nombre des problèmes laissés par les langues précédentes.

L'orme est idéal pour neater séparation des codes et programmation modulaire. Le poney est l'un des meilleurs pour unsyncprogrammation horaire.

Tandis que Vyper est assez nouveau dans le monde des langages de contrats intelligents, il constitue une alternative prometteuse à Solidity. Vyper obtient de bons résultats en matière de définition de contrat et de gestion des erreurs. R, en revanche, est considéré comme l’un des meilleurs langages d’analyse et dispose déjà d’une grande communauté.

Des langues spécifiques gagnent autant en popularité que celles de cet article, mais n'ont pas été incluses dans la liste pour diverses raisons. Voici un aperçu :

  • Golang : Déjà établi comme une langue courante, sinon très populaire. Je crois qu'à ce stade, Golang a plusieurs concurrents qui maintiendront sa part de marché faible.
  • Swift : Apple a une main de fer sur son ecossystème, et Swift est le seul langage disponible là-bas. Auparavant, l’Objectif C faisait fureur, tout comme Swift l’est maintenant. Je considère cela comme de la triche et refuse donc de l'inclure ici. 😀

L'avenir est toujours incertain, et une façon de faire votre carrière est de vous en tenir à ce qui fonctionne déjà et de refuser d'être «distrait». Si vous faites cela, Java, PHP, Python, Ruby, etc., sont tous d'excellents langages à suivre. Cependant, pour certains d'entre nous, la norme ne suffit pas. Ils veulent sortir et explorer et parier gros sur l'avenir. Si vous tombez dans ce dernier camp, l'une de ces cinq langues devrait figurer en tête de votre liste de choses à faire.

finally, lorsque vous essayez d'évaluer une langue, ne laissez pas le effort vous submerge parce que ce n'est pas tant que ça. Si vous connaissez déjà quelques langages de programmation, vous pouvez les apprendre en deux mois maximum, en y consacrant 5 à 6 heures par semaine. Alors que le bonheur et les rendements monétaires qui peuvent être générésated à l'avenir sera plusieurs fois plus.

Ensuite, vous pouvez consulter langages de programmation à utiliser en science des données.

Partager sur:
  • Ankush
    Auteur
    J'écris sur, autour et pour le développeur ecossystème. Recommandations, tutoriels, discussions techniques — whateAu fur et à mesure que je publie, je fais de mon mieux pour éliminer la confusion et le fluff, et fournir des réponses exploitables basées sur mon expérience personnelle…

Merci à nos commanditaires

Plus de bonnes lectures sur Carrière

Tâche Googleate
Comment gagner de l'argent grâce à Google Task Mate

Vous voulez gagner de l’argent facilement à votre guise ? Êtes-vous intéressé à voyager et à découvrir des endroits passionnants ? Aimez-vous répondre aux questions d’enquête qui améliorent les technologies ? Si oui, vous allez adorer Google Task Mate.

Cours gratuits sur Udemy pour améliorer vos compétences générales
12 cours gratuits sur Udemy pour améliorer vos soft skills

Les soft skills désignent les compétences sociales et les qualités personnelles d'une personne, reflétant sa capacité à interagir avec les autres. Les compétences générales complètent les compétences techniques, notamment les connaissances et les talents professionnels dans leur domaine de travail.

Alimentez votre entreprise

Certains des outils et services pour aider votre entreprise grow.
  • L'outil de synthèse vocale qui utilise l'IA pour générerate des voix humaines réalistes.

    Essayez Murf AI
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.

    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.

    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.

    Essayez Intruder