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.
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 :
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 :
et combien plus...?
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.
(Aucun de ces exemples n'a de code supplémentaire hors cadre)
simplifier les opérations simples
démarrage d'un point de terminaison d'API et interrogation
création d'une macro personnalisée
exécution de JavaScript en ligne (également possible avec Java et C)
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.
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.
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 ?
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!