MSNA Un langage de programmation expérimental pour le développeur audacieux

Patricia Arquette
Libérer: 2024-11-24 19:54:13
original
117 Les gens l'ont consulté

Les débuts

Il y a quelques années, après avoir lancé 2 brouillons de langues, j'ai commencé mon projet personnel Pinnacle. MSN2 était (et est toujours) ce que je considère comme un langage de programmation simulé, principalement en raison de ses méthodes d'interprétation non conventionnelles et désoptimisées qui peuvent entraîner des problèmes d'intégrité du langage.

Mais là encore, je me demande pourquoi je reviendrais sur ce projet au fil des années ? Pourquoi ne l'avais-je pas jeté avec les autres versions, de peur d'embarrasser les développeurs ? Je l'ai gardé parce que jusqu'à quel point j'ai dépassé mes attentes pour un langage de programmation ayant un contributeur unique, même si je suis encore loin de la vision que j'ai.

Pourquoi une autre langue ?

Au début du développement, il n'avait aucune intention réelle de le rendre public car il s'agissait simplement d'un exercice d'apprentissage, il n'y a donc aucune vraie raison d'introduire un nouveau langage. Quoi qu'il en soit, en tant qu'outil fonctionnel et source principale de mes études Python, les avantages de la construction d'un langage de programmation sur Python nous fournissent non seulement les capacités complètes de Python lui-même, mais également de nouvelles fonctionnalités pour :

  • multiprogrammation
  • ajouts de syntaxe
  • automatisation (gagnez 10 en exclusivité)
  • multilingue (à partir de la version 2.0.403, Python, JavaScript, Java, C)
  • MSN2 -> Transpilation JavaScript/React
  • Création et interactions de points de terminaison d'API
  • Conteneurs simples et légers

En raison de la facilité de mise en œuvre de nouvelles fonctionnalités, il pourrait servir de base à un langage plus axé sur la communauté qui progresse continuellement grâce aux commentaires et aux contributions de la communauté. Grâce à ces contributions actuelles et futures, nous créons l'opportunité de :

  • Stratégies de programmation innovantes
  • Favoriser l'interopérabilité entre les langues
  • Prise en charge d'une syntaxe flexible et personnalisable
  • Fournir des utilitaires prédéfinis pour le traitement du langage naturel (NLP)
  • Facilitez la création de bibliothèques et de plugins personnalisés
  • S'adapter à un plus large éventail d'environnements de développement

et combien plus...?


Capacités

Il est facile de dire que le langage est très performant, et dans certaines situations, je dirais qu'il est plus performant avec moins de code. Il devient également de plus en plus agréable à utiliser en tant que développeur à mesure que des mises à jour sont publiées. Malheureusement, il n'est pas aussi facile de dire qu'utiliser la langue est un jeu d'enfant. J'ai publié une extension de coloration syntaxique msn2 pour VSCode, une documentation de base et de nombreux didacticiels et exemples de code. Bien que cela devienne difficile sans la saisie semi-automatique des mots-clés ou des jetons et sans comprendre les implications lors de l'écriture du code de certaines manières. Ces problèmes sont résolus dans l'onglet Problèmes du référentiel MSN2.

Exemples complets et exécutables

(Aucun de ces exemples n'a de code supplémentaire hors cadre)

  1. simplifier les opérations simples
    MSNAn Experimental Programming Language for the Bold Developer

  2. démarrage d'un point de terminaison d'API et interrogation
    MSNAn Experimental Programming Language for the Bold Developer

  3. création d'une macro personnalisée
    MSNAn Experimental Programming Language for the Bold Developer

  4. exécution de JavaScript en ligne (également possible avec Java et C)

MSNAn Experimental Programming Language for the Bold Developer

  1. Ces exemples effleurent à peine la surface de MSN2, trouvez de nombreux projets et démonstrations beaucoup plus importants dans le référentiel MSN2

Exemples de projets plus importants

  • Implémentation de la syntaxe C
  • Automatisation d'Excel
  • Application Full-Stack - HTML MSN2 comme backend
  • Automation - Jouer une ouverture d'échecs aléatoire sur chess.com
  • Faire tourner un conteneur simple et rationalisé
  • Mon TikTok (15 projets) - Injecter MSN2 dans leetcode.com
  • Tous les grands projets de tests

Inconvénients

Ce qui précède semble génial ! Je suis entièrement investi dans les étapes nécessaires pour construire sur ce que j'ai créé. Mais même si j'aurais aimé qu'il n'y ait pas de problèmes dans une base de code aussi vaste, trop complexe et exigeant en maintenance, il existe XD.

Intégrité

Depuis MSN2 2.0.403, il existe plusieurs problèmes d'intégrité réparables produisant potentiellement des résultats incorrects au moment de l'exécution. Heureusement, les problèmes d’intégrité sont temporaires, mais il est important qu’ils soient résolus rapidement.

Vitesse

Avec Python comme backend, la vitesse devient un inconvénient brutal, et c'est la vitesse. La vitesse sera toujours un problème avec MSN2, et malheureusement nous ne pouvons que tenter de faire en sorte que le langage de base corresponde à une vitesse proche de celle de Python.

Alors, que pouvons-nous faire ?

  • Nous pouvons proposer une approche polyglotte - Bien que nous gérions un processus plus lent et coûteux, ce processus peut offrir une facilité de lancement de programmes dans des langues qui sont plus rapides. MSN2 GitHub - Voir les implémentations multilingues
  • Nous pouvons en faire en sorte que cela en vaille la peine - Avec Python conservant le backend plus grand, MSN2 a une opportunité unique d'explorer ce qui est fonctionnellement possible du côté des développeurs lorsqu'ils disposent d'un environnement étendu et flexible. ensemble d’intégrations intégrées dans tous les langages et environnements. Cela permet aux développeurs de coordonner plus efficacement des pipelines de données étendus, des flux de travail d'automatisation et des systèmes à grande échelle, ce qui facilite potentiellement la gestion et la mise à l'échelle des projets qui s'appuient sur les capacités illimitées et prêtes pour la production de Python.
  • On peut optimiser - Il y a plein de points de désoptimisation lors de l'interprétation, cela serait une première source de gain de vitesse important.
  • Nous pouvons l'accepter - Base MSN2 ne sera jamais utilisée pour des applications dépendantes de la vitesse, comme celles de la science des données, de l'analyse en temps réel, le trading haute fréquence et bien d’autres domaines. MSN2 serait principalement utilisé pour l'orchestration de programmes personnalisable, en utilisant des fonctions hautement généralisées de manière rapide et transparente, permettant aux développeurs de créer des flux de travail puissants reliant divers langages et outils de programmation. Cette flexibilité en fait un choix idéal pour gérer des projets complexes et multilingues et automatiser diverses tâches sans avoir besoin de changer d'environnement ou d'écrire beaucoup de Python.

Conclusion

Ce projet a été un voyage ambitieux, ce qui a commencé comme un exercice d'apprentissage s'est rapidement transformé en un terrain de jeu pour explorer la conception du langage et de nouvelles preuves de concepts créatives. MSN2 est une expérience d'apprentissage qui met continuellement à l'épreuve mes capacités de programmation. C'est loin d'être acceptable, et bien plus que parfait, mais c'est en partie ce qui le rend passionnant : il regorge d'opportunités de croissance et d'amélioration.

Bien que la majorité du langage ne soit pas entièrement prête pour la production et que les tests n'aient pas atteint une couverture de 100 %, MSN2 représente le potentiel d'une pensée non conventionnelle et la liberté d'expérimenter sans la pression de la perfection. Qu'il devienne un outil utile dans les projets ou qu'il reste une entreprise personnelle dépend de moi et de la communauté, mais son avenir dépend du développement continu, des commentaires et du perfectionnement. Pour l’instant, je le vois comme un tremplin, avec des bords rugueux et de nombreuses fissures, mais suffisamment solide pour y tenir.

liens utiles
MSN2 sur GitHub
Documentation MSN2[2.0.401]
mon site internet / portfolio

La bannière de cet article est du code MSN2 non formaté, mais exécutable, incorporant des mélanges en ligne de JavaScript, Java, C, tous interagissant avec un point de terminaison API lancé dans la même ligne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal