Est-ce Alexander Pope qui a dit: «Hope jaillit éternel dans le sein humain»?Pope était un poète, pas un pirate, mais je crois qu'il comprendrait l'anticipation impliquée dans la découverte d'un nouveau langage de programmation. He would know that software developers are forever hopeful that this language, with its unique conflation of Unicode characters, will finally solve all of our problems, making coding easy with just a few clicks.
Pope surely would understand the desire for a new syntax so intuitive that we need only imagine an answer, and see it rendered into logical rules that are marvelous, elaborate, and above all correct.Il apprécierait le désir de nos doigts pour faire tourner un nouveau code qui a l'air aussi sans effort et élégant qu'un triple axel, un trois vers l'intérieur de la position du brochet, ou une course de slalom géante aux Jeux olympiques.
La plupart des langues modernes ne sont pas conçues pour la fantaisie ou la démonstration de nos prouesses de codage, cependant.Ils sont faits en réponse à un problème commun que les créateurs sont impatients de résoudre.Alors que la plupart des développeurs continueront à faire notre codage quotidien dans une ou plusieurs langues plus anciennes et plus établies, nous sommes à jamais à la recherche de nouveaux outils pour nous aider à résoudre nos problèmes de codage.Nous pouvons voir cette tendance, en particulier, dans la montée des langues spécifiques au domaine, ou DSL.Ces langues sont compactes et ciblées.Ils ne sont pas destinés à une utilisation générale.Mais certains pourraient gagner une place spéciale dans votre boîte à outils pour exactement cette raison.
Voici 11 langues plus récentes qui ont trouvé leur créneau.Certains sont des DSL, conçus pour faire une chose et bien le faire.D'autres, apparemment, aspirent à sauver le monde. Even if they aren’t what you need right now, all of them have something to teach about making our computers do what they do, but better.
Clojure réactive
Lorsque vous épousez Clojure avec React, c'est ce que vous obtenez: un système qui combine toutes les possibilités de frontaux réactifs avec la force fonctionnelle et fonctionnelle de Clojure.Au meilleur, Raactive Clojure vous permet de disposer une collection complexe de composants frontaux et de les enchaîner avec des fonctions.Le cadre réactif remplit les détails et garantit que les données d'application se déroulent en douceur entre vos composants et la base de données.Clojure apporte le fondement fonctionnel pour rendre les cas d'utilisation même hors de la manière possible - et débordant.
Est-ce un match fait au paradis?Le temps nous le dira.Clojure réactive est une bonne option pour écrire le code de colle qui maintient les composants frontaux.Son modèle multithread est une correspondance naturelle pour les tableaux de bord complexes et réactifs qui rapportent simultanément sur plusieurs tâches.
Nickel
L'un des jeux les plus ironiques auxquels les programmeurs jouent poussent la plupart de notre travail vers des fichiers de configuration.Ces fichiers, souvent codés en JSON, YAML ou même XML, sont une bonne idée de codage qui est métastasée en rituel élaboré.Dans certains cas, vous n'avez même pas besoin d'écrire du code réel;Il suffit d'interduir les différents fichiers de configuration pour faire ce dont vous avez besoin.
Il est donc logique que nous ayons du nickel: un langage de programmation pour créer des fichiers de configuration.Le nickel est comme un modèle avec une logique intégrée, que vous pouvez utiliser pour élaborer des fichiers de configuration qui ne sont pas statiques.Un paramètre pourrait être une valeur au cours de la semaine et un autre le week-end.Lorsqu'il s'exécute, Nickel crée un nouveau fichier de configuration qui correspond à tous les paramètres qu'il a reçus.
La structure de Nickel est largement fonctionnelle et la vérification des types est disponible, si cela se fait aider.Un grand thème est la «correction» car un morceau de code nickel bien écrit garantit à peu près que la sortie obéira à la fois aux règles syntaxiques et à toute autre règle dont vous avez besoin.Le compilateur de Nickel vous permet d'écrire des contrats, puis vérifie que la sortie leur obéit.Bien sûr, il y a quelque chose de drôle dans l'écriture de code pour créer des fichiers de configuration qui se dirigent ensuite autour de votre code.Mais c'est une solution très pratique pour les architectures modernes.
Kobra
Les créateurs de Kobra voulaient une langue qui a ouvert l'apprentissage automatique aux ingénieurs, aux scientifiques et autres codeurs non professionnels.Le résultat est ce qu'ils appellent un langage visuel pour l'apprentissage automatique.L'éditeur de Kobra compose des séquences de type code avec des carreaux de glisser-déposer représentant des routines intégrées communes pour l'analyse statistique et l'apprentissage automatique.Le processus ressemble à R avec des trames de données construites à partir de données tabulaires et une collection de fonctions d'affichage graphique pour la création de tableaux de bord et d'articles.
Biceps
L'une des fonctionnalités les plus utiles du nuage est la possibilité de démarrer et de démolir les serveurs pour gérer les surtensions de données.Il a déjà fallu des semaines à une équipe matérielle de centre de données pour réorganiser, installer, tester et configurer une machine.Maintenant, le nuage vous permet de faire tout cela en quelques minutes, voire quelques secondes.
De nombreuses équipes DevOps ont commencé à écrire du code sur les différentes API soutenues par les différents nuages.Microsoft a décidé d'aller un peu plus loin et de créer un langage simplifié pour démarrer les machines dans Azure, dans le cadre de sa philosophie d'infrastructure en tant que code.
La langue, appelée biceps, offre un format efficace et déclaratif pour épeler la plupart des différents bits qu'un développeur pourrait vouloir retourner dans un nouveau cas.Certains types de type de base peuvent aider à prévenir les erreurs et il existe un éditeur conscient de syntaxe disponible en code vs.La langue elle-même est conçue pour une réflexion sur l'ordre supérieur sur l'infrastructure, avec une structure fortement déclarative qui vous permet d'inclure des instructions dans n'importe quel ordre, puis laissez le gestionnaire de ressources d'Azure optimiser l'exécution.
Fouiller
Un ami prétend que sa seule exigence pour choisir une banque est de s'assurer que le logiciel comptable de la banque utilise des entiers pour compter les sous et non des nombres à point flottante pour les fractions d'un dollar.Les dangers des erreurs avec un point flottant sont bien connus et trop grands.Combien de bugs ont été causés par le lancement de chiffres avec pas beaucoup de soin?
Fouiller est une langue «consciente des unités» créée pour ce problème.Chaque variable de Fouiller ne contenait pas seulement un nombre mais aussi une indication de l'unité de mesure, que ce soit des tonnes, des watts, des pieds ou des mètres.La conversion d'unité est facile grâce au fichier de configuration Fouiller.Le mécanisme de base de Fouiller utilise également des nombres de précision arbitraires pour réduire les problèmes d'arrondi.C'est comme la vérification de type mais pour les unités numériques de mesure.
Fauve
La synthèse sonore peut sembler une orientation étroite, mais elle est très utile pour le développement de jeux, la réalité virtuelle et toute application qui s'appuie sur une bonne qualité sonore. Enter Fauve, a domain-specific language that gets its name from an amalgam of functional audio stream.La structure de Fauve est purement fonctionnelle, et toutes ses fonctions accumulent un pipeline de traitement sonore.Son back-end brise le son entrant en une représentation numérique, et le code lui-même est un ensemble de fonctions qui peuvent être composées ou combinées en un résultat final.Par exemple, vous pouvez créer un écho ou une réverbération en divisant la sortie de votre code et en introduisant un retard.Le code de Fauve est transpiré en C ++, C, code binaire LLVM, webassembly, rouille et quelques autres langues, vous pouvez donc l'utiliser avec presque n'importe quel projet.
Melrōse et glicol
Quiconque écrit du code sait comment un programmeur commencerait un groupe: au lieu de publier une annonce pour trouver un batteur, puis interviewer tous ceux qui répondent, écrivez simplement du code pour épeler les rythmes d'une machine à rythmes.Une fois cela fait, vous pourriez aussi bien remplacer tous les autres membres du groupe par des sous-programmes.Vous pouvez même construire un orchestre symphonique entier de cette façon.
Melrōse et Glicol sont deux langages de programmation musicale conçus pour ce style de création de musique.Les deux vous permettent de créer des compositions élaborées avec seulement quelques touches.Melrōse fonctionne à un niveau élevé autour de l'octave standard de douze tons communs dans la musique occidentale.Les notes sont regroupées en séquences et le logiciel gère une grande partie du travail SCUT comme la transposition.La sortie va à n'importe quel instrument MIDI et le code peut également réagir aux signaux entrants sur le port MIDI, de sorte que le code Melrōse peut être un membre du groupe.
Glicol est un outil basé sur la rouille qui accomplit une grande partie des mêmes tâches mais d'un niveau inférieur.Le code s'intègre au traitement du signal numérique pour offrir une large gamme d'options musicales.L'outil est conçu pour produire des sons prêts pour le navigateur avec son moteur audio open source.Le développeur de Glicol dit que la langue a «des frais d'entrée bas et des plafonds élevés» pour encourager la collaboration avec d'autres de tous niveaux.
Webassembly et wase
Le moyen le plus efficace d'expédier des instructions à l'ordinateur est de les coder en binaire et de les limiter à l'ensemble de base des opérations utilisées par les processeurs.Chaque puce a sa propre syntaxe binaire préférée et certaines langues comme Pascal ou Java ont un format binaire neutre destiné à fonctionner sur une machine virtuelle locale.WebAssembly (WASM) suit ces traces, offrant aux navigateurs Web un code binaire prédigé combiné avec du texte dans un format standard.L'objectif de WebAssembly est de remplacer le code JavaScript minifié qui forme l'épine dorsale des applications Web par quelque chose qui est encore plus prêt à s'exécuter, avec une vitesse native presque.
De nombreux développeurs utiliseront WebAssembly sans l'écrire directement, en utilisant des compilateurs qui convertissent les langages de niveau supérieur en webassembly qui s'exécutera dans les navigateurs.Il y a aussi une décision pour créer des langues de bas niveau qui exposent une grande partie de la structure de base de WebAssembly sous une forme lisible par humaine.Wase est une de ces options, offrant une syntaxe de type C avec un frappeur fort.
WebAssembly trouve également une utilisation en dehors des navigateurs Web, comme moyen général de coder les instructions avec une machine à pile similaire à Java de JVA.Redpanda, par exemple, est une plate-forme de données de streaming qui offre aux développeurs la possibilité de modifier ou de modifier les données car elle descend le tuyau avec du code écrit dans WebAssembly.
Java 17
Techniquement, Java n'est pas une nouvelle langue.En effet, l'une des plus grandes choses à propos de Java est que ses développeurs ont fait un excellent travail en maintenant la compatibilité avec les versions plus anciennes.Il est généralement assez facile de compiler le code qui a 10 ou même 20 ans pour les derniers JVM.Le code n'est pas garanti pour fonctionner, mais il est toujours plus facile à compiler que presque n'importe quelle autre langue.L'équipe Java a une suite de millions de tests d'intégration, et cela montre.
J'inclus Java 17 dans cette liste car il a été si modernisé qu'il serait presque méconnaissable pour un voyageur dans le temps des années 1990.Java 17 a tellement de fonctionnalités et d'extensions supplémentaires qui changent la façon dont nous codons.
Certains, comme le générateur de nombres aléatoires amélioré ou la sémantique de mathématiques à point flottant plus stricte, relever les défis de l'écriture du code numérique très complexe.Les développeurs qui rédigent des systèmes comptables peuvent s'en tirer avec des entiers pour contenir le nombre de cents, mais ceux qui s'attaquent aux algorithmes d'IA et à l'algèbre linéaire complexe ont besoin d'un point flottant.
D'autres, comme une forte encapsulation et une sémantique de commutation prolongée, apportent un mélange de discipline et de flexibilité à la langue centrale.En tout, il est plus facile que jamais d'écrire un code plus fort, plus sûr et plus sécurisé grâce à toutes ces améliorations.C'est toujours Java en son cœur, mais les extras font la différence.