Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

9 nouveaux langages de programmation à connaître

Langages de programmation
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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 de tomber sur des joyaux. L'apprentissage est une fin en soi, 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.

nouveau langage de programmation

Quel que soit le camp auquel vous appartenez, il y a quelque chose au-delà du débat: nous voulons tous passer du temps sur quelque chose qui aura un bel 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 cela assez radicalement, il y a de fortes chances que cela continue de capturer l'esprit et d'atteindre le sommet. Lorsque cela se produit, 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

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

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

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

Date de sortie

J'ai spécifiquement évité 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 surtout celles qui n'ont pas atteint la stabilité (version 1.0, c'est-à-dire). Ceci, malheureusement, exclut certains vrais joyaux comme Cristal, Mais j'espère revenir sur ce sujet et écrire sur son succès un jour. 🙂

extrait de crystal-lang
Un extrait de code dans Crystal ("Fast as C, Slick as Ruby")

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'était les seules options dans un écosystème hautement contrôlé, mais Facebook D et entaille (une interprétation moche sur une langue déjà moche, à mon avis) ne restent guère plus que des expériences.

Intérêt communautaire fort

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 une langue ne crée pas de buzz et qu'il n'y a pas assez de développeurs pour éduquer et vulgariser, elle ne sortira pas de sa tombe GitHub.

Pour moi, cela exclut les langues matures et fascinantes comme Raquette et Erlang, car ils sont restés stables sur la courbe de croissance.

USP ciblée et bien définie

La troisième chose que je recherche est un objectif clair pour la langue. Par exemple, une meilleure version de PHP qui corrige les problèmes de dénomination 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 CoffeeScript, et de nombreux autres langages de compilation vers JavaScript similaires.

se concentrer

Honnêtement, je suis obligé de rejeter immédiatement les améliorations de syntaxe uniquement. L'histoire a montré que l'utilité l'emporte sur la convivialité en matière de langues, donc si toutes les nouvelles langues se concentrent sur une expérience plus agréable, j'ai bien peur qu'elle ne fasse pas partie de 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.

Syntaxe claire et cohérente

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é sa clarté et sa popularité, manquait de constructions natives pour traiter les objets de données. De plus, étant un langage interprété, Python était lent pour eux (pas les bibliothèques, remarquez, car ils sont principalement écrits en C).

Mais le plus gros problème a peut-être été le modèle de concurrence maladroit et l'absence de modèle de calcul parallèle, ce dernier étant un élément de base 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 dans le 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 immédiatement. La répartition multiple de Julia est un ajustement naturel pour définir des types de données de type nombre et tableau.

Sur le plan de la syntaxe, Julia peut être vue comme une combinaison de Python et C. Oui, c'est probablement la première fois qu'un langage vise ces deux qualités et réussit.

Pour garder les choses simples, Julia est extrêmement rapide et n'impose pas une frappe stricte. Voici quelques repères :

julia-benchmarks
Les benchmarks officiels de Julia

Comme vous pouvez le voir, Julia est légèrement pire que C mais souffle Java et Python hors de l'eau. Et quelle sorte de friandise offre Julia?

Eh bien, voici l'implémentation d'une fonction pour calculer le hypoténuse d'un triangle rectangle :

extrait de julia

Enfin, alors que la plupart des Julia risque numérique est fortement orienté vers le travail mathématique, je pense qu'il a un bel avenir polyvalent.

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

Rust

Si vous avez essayé les nouvelles versions du navigateur Firefox, vous savez que finalement, après des années de travail, il semble qu'ils pourraient être en mesure de prendre une part de marché à Chrome.

Si le navigateur semble léger et vif et rend rapidement, c'est grâce au langage spécialement développé par Mozilla: Calme.

Dire que Rust a un bel avenir sera un mensonge; le langage est 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 effrayant: remplacer le C ++! Oui, nous avons enfin un langage qui non seulement est capable de faire cela, mais qui le fait déjà.

Pour les personnes frustrées par les défis surchargés de conception et de gestion de la mémoire de C ++, Rust est une bouffée d'air frais.

Voici à quoi ressemble un programme Rust:

extrait de rouille

Concis et élégant, à mon avis. Rust suit l'approche de programmation fonctionnelle, ce qui rend votre code plus composable, 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 «empruntent» les unes aux autres, avec des restrictions strictes placées par le compilateur. Le concept global est trop compliqué à 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 certaines plates-formes, les navigateurs puissants 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 pour créer un autre navigateur ou pilote de périphérique, mais Rust se propage déjà à d'autres domaines. Nous avons déjà 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.

Elixir

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.

Pas étonnant, alors, que le framework Rails continue de dominer développement full stack pour les développeurs sérieux et les startups. Mais tout le monde n'était pas satisfait de Rails, en particulier l'un de ses principaux développeurs - José Valim. Je pense que le créateur lui-même explique le mieux la genèse de ce langage dans un entretien:

C'est une longue histoire, mais je vais essayer de la rendre courte et douce. En 2010, je travaillais à l'amélioration des performances des Rails lorsque je travaillais avec des systèmes multicœurs, car nos machines et nos systèmes de production sont expédiés avec de plus en plus de cœurs. Cependant, toute l'expérience a été assez frustrante car Ruby ne fournit pas l'outil approprié pour résoudre les problèmes de concurrence. C'est à ce moment que j'ai commencé à regarder d'autres technologies et que je suis finalement tombé amoureux de la machine virtuelle Erlang.

J'ai commencé à utiliser de plus en plus Erlang et, avec l'expérience, j'ai remarqué qu'il me manquait certaines constructions disponibles dans de nombreux autres langages, y compris les fonctionnels. C'est à ce moment-là que j'ai décidé de créer Elixir, dans le but d'apporter différentes constructions et un excellent outillage 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 200,000 connexions simultanées peut facilement gérer 2 XNUMX lors de l'utilisation d'Elixir et avoir encore assez de RAM pour exécuter des jeux XNUMXD !

extrait d'élixir
Extrait de code Elixir

En termes de syntaxe, Elixir copie sans vergogne Ruby, et son framework Web dominant, Phoenix, copie sans vergogne Rails. Je dirais que c'est une bonne chose aussi, 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 m'en plains pas.

Enfin, É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 concurrence et serait bientôt remplacé par Elixir. Je dois dire que je suis d'accord avec eux. 🙂

Kotlin

En 2017 I / O, Google a lancé une bombe sur la foule sans méfiance. La société a officiellement annoncé Kotlin comme langage principal pour le développement Android, envoyant des ondes de choc à travers l'industrie.

Maintenant, que Google cherche activement à remplacer Java n'est pas une surprise après avoir été mordu par un procès Oracle; cependant, l'adoption de Kotlin était quelque peu inattendue, et il y a encore de bonnes chances que Google sortira bientôt sa machine virtuelle. Pour le moment, cependant, Kotlin connaît une poussée.

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 travaille très dur pour éliminer toutes les exceptions de pointeur nul qui sont si courantes dans le monde Java. Cela réduit également un peu la verbosité proverbiale de Java, ce qui soulagera beaucoup de gens.

Voici une merveilleuse comparaison de code entre Java et Kotlin:

java-vs-kotlin
Crédit d'image: hype.codes

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!

TypeScript

Dieu sait que j'ai dû me retenir pour cet endroit ! Tout en moi criait « Elm ! Elm !", mais peu importe à quel point ses idées sont révolutionnaires ou à quel point la syntaxe est divine, Elm n'est pas encore considéré comme une alternative grand public pour le travail frontal. 🙁 Quoi qu'il en soit, 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 WebAssembly 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, il est enfin 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: Enfin, 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.

✓ Asynchroniser / attendre: Les mots-clés et modèles async / await sont fondamentaux, donc plus de déconner 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.

extrait de texte dactylographié
Extrait de code TypeScript

L'impact de TypeScript est indéniable. Il a poussé des tentatives similaires comme le Dart de Google hors du terrain (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 histoire de concurrence et corriger sa mauvaise gestion de la mémoire, il durera éternellement).

Vous pourriez être surpris de savoir que le créateur de Node.js, après avoir publié regrettant sa création, 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 avantages considérables à l'avenir. Si vous êtes un développeur JavaScript intermédiaire, vous récupérerez suffisamment de TypeScript en deux jours pour porter tout votre code existant !

Elm

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éé par Evan Czaplicki en 2012.

On dit qu'Elm n'a pas d'exceptions d'exécution - c'est là qu'il brille. En tant que langage typé statiquement, le compilateur valide toutes les erreurs au moment de la compilation (wow !) avec des messages conviviaux (les messages sont des textes complets et non des codes jetés bizarrement).

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.

Comme Elm est basé sur des modules, vous pouvez facilement créer des composants réutilisables. Elm compile en JavaScript que vous pouvez exécuter sur le navigateur. 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 ensuite vérifier si Elm est correctement installé en utilisant le –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, alors !

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 une zone de texte et d'imprimer le même 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 :

image 85
Premier écran

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

image 84
Écran final

Bien que ce programme puisse sembler exagéré pour son objectif, à mesure que la complexité du programme augmente, vous apprécierez à quel point il devient facile à déboguer et à entretenir.

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

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.

Pony

Poney est compilé et suit un modèle de calcul d'acteurs conçu pour un comportement asynchrone, c'est-à-dire des applications hautement concurrentes.

Les langages de programmation traditionnels fournissent une fonctionnalité de « verrouillage » pour gérer la concurrence, ce qui a un impact sur les performances. 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.

Des notions telles que la mutabilité et l'isolement sont basées sur ces capacités. Cette fonctionnalité de « refus » rend Pony libre de la course aux données.

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

Pony assure la sécurité du type pour le traitement des données. Il n'y a pas d'exceptions - seules les erreurs doivent être gérées pour compiler le code. La principale raison en est que Pony est typé statiquement. 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éer des constructeurs. Supposons que vous ayez une classe d'employés avec nom et âge :

class Employee

  let name: String

  let age: U64

  new create(name': String) =>

    name = name'

Les développeurs Java peuvent remarquer 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éer des fonctions :

fun get_emp_name(): String => name

amusement pour écrire des fonctions, hein ?

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

Les acteurs Pony ont des comportements - similaires aux fonctions - mais seulement asynchrones - ils sont exécutés à un moment donné dans un futur proche mais pas nécessairement immédiatement lorsqu'ils sont appelés. 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 également être rejetées - si l'acteur ne peut pas répondre à la demande asynchrone envoyée. Vous pouvez créer 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 grande caractéristique de Pony est qu'il est sécurisé en mémoire - pas de NULL ou de dépassement de mémoire tampon. Tout code susceptible de renvoyer null ne sera jamais compilé à moins qu'il ne soit 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 zéro, et le résultat est zéro. Il y a preuves mathématiques 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 contrat intelligent basé sur Python. Comme Python, il est lisible par l'homme, facile à coder et sécurisé. Vyper compile jusqu'au bytecode Ethereum Virtual Machine (EVM). EVM identifie l'état de 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.

Ce sont des contrats automatisés auto-exécutables qui ne nécessitent aucune intervention humaine. Cependant, les contrats intelligents sont sujets à des vulnérabilités.

Par exemple, des contrats intelligents peuvent être conclus pour libérer de l'éther à des adresses arbitraires ou tués par des adresses arbitraires, ou ils peuvent ne pas être en mesure de libérer de l'éther. Ces vulnérabilités sont généralement introduites via le code - involontairement ou intentionnellement.

Vyper élimine ce problème en fournissant un code sécurisé, ce qui rend difficile l'introduction de code vulnérable ou trompeur. Bien que Vyper soit 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'assemblage en ligne, ce qui signifie que les programmes ne peuvent effectuer aucune action directement sur l'EVM, évitant ainsi les attaques.

Ces fonctionnalités rendent Vyper assez sûr pour écrire du code pour les contrats intelligents utilisés dans les blockchains.

Pour vous entraîner à écrire des programmes dans 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 Page de documentation Vyper.

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 toutes les mathématiques complexes, les statistiques et les calculs scientifiques, les algorithmes d'apprentissage automatique et les représentations visuelles.

R est open source et très populaire pour son interface utilisateur graphique riche. Il a une communauté dynamique et stable et peut facilement s'intégrer à 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 de données, l'informatique, les graphiques et bien d'autres.

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)

boîte à moustaches

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 qui contenait une liste de nombres. Semblable à Python, nous créons une trame 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, créer un bloc de données et le manipuler en fonction du nombre de variables et du type d'analyse dont nous avons besoin.

Disons que nous avons des vecteurs de nom, de compétence et d'âge des employés. Nous pouvons créer 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 des matrices à 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éer la matrice et de la donner 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

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.

Elm est idéal pour une séparation de code plus nette et une programmation modulaire. Pony est l'un des meilleurs pour la programmation asynchrone.

Bien que Vyper soit assez nouveau dans le monde du langage des contrats intelligents, il offre une alternative prometteuse à Solidity. Vyper obtient particulièrement de bons résultats en matière de définition de contrat et de gestion des erreurs. R, d'autre part, 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 emprise de fer sur son écosystème, et Swift est le seul langage disponible là-bas. Auparavant, l'objectif C était à la mode, tout comme Swift l'est maintenant. Je considère que c'est de la triche et je 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.

Enfin, lorsque vous essayez d'évaluer une langue, ne vous laissez pas submerger par l'effort, car ce n'est pas tant que ça. Si vous connaissez déjà quelques langages de programmation, vous pouvez apprendre n'importe lequel d'entre eux en deux mois maximum, en passant 5 à 6 heures par semaine. Alors que le bonheur et les rendements monétaires qui peuvent être générés à l'avenir seront plusieurs fois supérieurs.

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

Merci à nos commanditaires
Plus de bonnes lectures sur Carrière
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • 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
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • 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