Heim  >  Artikel  >  Backend-Entwicklung  >  MSNAEine experimentelle Programmiersprache für den mutigen Entwickler

MSNAEine experimentelle Programmiersprache für den mutigen Entwickler

Patricia Arquette
Patricia ArquetteOriginal
2024-11-24 19:54:13119Durchsuche

Anfänge

Vor ein paar Jahren, nachdem ich zwei Entwurfssprachen durchgespielt hatte, begann ich mit meinem persönlichen Projekt-Höhepunkt. MSN2 war (und ist) meiner Meinung nach eine Scheinprogrammiersprache, vor allem aufgrund ihrer unkonventionellen, deoptimierten Interpretationsmethoden, die zu Problemen mit der Sprachintegrität führen können.

Aber andererseits frage ich mich, warum ich über die Jahre immer wieder zu diesem Projekt zurückkomme? Warum hatte ich es nicht zu den anderen Entwürfen geworfen, aus Angst vor Peinlichkeiten für die Entwickler? Ich habe es behalten, weil ich meine Erwartungen an eine Programmiersprache mit einem einzigen Mitwirkenden bei Weitem übertroffen habe, auch wenn ich immer noch meilenweit von der Vision entfernt bin, die ich habe.

Warum eine andere Sprache?

Zu Beginn der Entwicklung gab es keine wirkliche Absicht, es der Öffentlichkeit zugänglich zu machen, da es sich lediglich um eine Lernübung handelte und es daher keinen wirklichen Grund gab, eine neue Sprache einzuführen. Unabhängig davon bieten uns die Vorteile des Aufbaus einer Programmiersprache auf Python als funktionales Werkzeug und Hauptquelle meiner Python-Studien nicht nur die vollständigen Fähigkeiten von Python selbst, sondern auch neue Funktionen für:

  • Multiprogrammierung
  • Syntaxergänzungen
  • Automatisierung (Win 10 exklusiv)
  • mehrsprachig (ab 2.0.403, Python, JavaScript, Java, C)
  • MSN2 -> JavaScript/React-Transpilation
  • Erstellung und Interaktionen von API-Endpunkten
  • Einfache, leichte Behälter

Aufgrund der einfachen Implementierung neuer Funktionen könnte es als Grundlage für eine gemeinschaftsorientiertere Sprache dienen, die durch Community-Feedback und Beiträge kontinuierlich weiterentwickelt wird. Mit diesen aktuellen und zukünftigen Beiträgen schaffen wir die Möglichkeit:

  • Innovative Programmierstrategien
  • Förderung der sprachübergreifenden Interoperabilität
  • Unterstützt flexible und anpassbare Syntax
  • Stellen Sie vorgefertigte Dienstprogramme für die Verarbeitung natürlicher Sprache (NLP) bereit
  • Erleichtern Sie die Erstellung benutzerdefinierter Bibliotheken und Plugins
  • Anpassung an ein breiteres Spektrum an Entwicklungsumgebungen

und wie viel mehr...?


Fähigkeiten

Man kann leicht sagen, dass die Sprache sehr leistungsfähig ist, und in bestimmten Situationen würde ich behaupten, dass sie mit weniger Code leistungsfähiger ist. Mit der Veröffentlichung von Updates macht es auch für Entwickler immer mehr Spaß, es zu nutzen. Leider ist es nicht so einfach zu sagen, dass die Verwendung der Sprache ein Kinderspiel ist. Ich habe eine MSN2-Syntaxhervorhebungserweiterung für VSCode, eine grundlegende Dokumentation sowie viele Tutorials und Codebeispiele veröffentlicht. Ohne die automatische Vervollständigung von Schlüsselwörtern oder Token und das Verständnis der Auswirkungen beim Schreiben von Code auf bestimmte Arten wird es jedoch schwierig. Diese Probleme werden auf der Registerkarte „Probleme“ des MSN2-Repositorys behoben.

Vollständige, ausführbare Beispiele

(Keines dieser Beispiele enthält zusätzlichen Code außerhalb des Rahmens)

  1. Vereinfachung einfacher Vorgänge
    MSNAn Experimental Programming Language for the Bold Developer

  2. API-Endpunkt starten und abfragen
    MSNAn Experimental Programming Language for the Bold Developer

  3. Erstellen eines personalisierten Makros
    MSNAn Experimental Programming Language for the Bold Developer

  4. Ausführen von Inline-JavaScript (auch mit Java und C möglich)

MSNAn Experimental Programming Language for the Bold Developer

  1. Diese Beispiele kratzen kaum an der Oberfläche von MSN2, viele viel größere Projekte und Demonstrationen finden Sie im MSN2-Repository

Beispiele für größere Projekte

  • Implementierung der C-Syntax
  • Excel automatisieren
  • Full-Stack-Anwendung – HTML MSN2 als Backend
  • Automatisierung – Spielen einer zufälligen Schacheröffnung auf chess.com
  • Einen einfachen Streamlit-Container hochdrehen
  • Mein TikTok (15 Projekte) – MSN2 in leetcode.com einfügen
  • Alle großen Testprojekte

Nachteile

Das oben Gesagte hört sich großartig an! Ich bin voll und ganz darauf bedacht, die Schritte zu unternehmen, um auf dem aufzubauen, was ich geschaffen habe. Aber so sehr ich mir auch wünsche, dass es in einer so großen, übermäßig komplexen und wartungsintensiven Codebasis keine Probleme gibt, gibt es XD.

Integrität

Ab MSN2 2.0.403 gibt es mehrere behebbare Integritätsprobleme, die möglicherweise zur Laufzeit zu falschen Ergebnissen führen. Glücklicherweise sind Integritätsprobleme vorübergehend, aber es ist wichtig, dass sie schnell behoben werden.

Geschwindigkeit

Mit Python als Backend wird Geschwindigkeit zu einem brutalen Nachteil, und das ist Geschwindigkeit. Geschwindigkeit wird immer ein Problem mit MSN2 sein, und leider können wir nur versuchen, die Basissprache auf eine Geschwindigkeit zu bringen, die der von Python nahe kommt.

Was können wir also tun?

  • Wir können einen polyglottalen Ansatz anbieten. Während wir einen langsameren Prozess mit höherem Aufwand verwalten, kann dieser Prozess das Starten von Programmen in Sprachen erleichtern, die schneller sind. MSN2 GitHub – Siehe mehrsprachige Implementierungen
  • Wir können dafür sorgen, dass es sich lohnt – Da Python das größere Backend beibehält, erhält MSN2 die einmalige Gelegenheit, zu erkunden, was auf Entwicklerseite funktional möglich ist, wenn ein umfangreiches und flexibles Backend zur Verfügung steht Reihe integrierter Integrationen über Sprachen und Umgebungen hinweg. Dadurch können Entwickler umfangreiche Datenpipelines, Automatisierungsworkflows und große Systeme effektiver koordinieren, was möglicherweise die Verwaltung und Skalierung von Projekten erleichtert, die auf den grenzenlosen, produktionsbereiten Funktionen von Python basieren.
  • Wir können optimieren – Es gibt viele Punkte der Deoptimierung während der Interpretation, dies wäre eine erste Quelle für einen erheblichen Geschwindigkeitsgewinn.
  • Wir können es akzeptieren - Base MSN2 wird nie für geschwindigkeitsabhängige Anwendungen verwendet, wie etwa in den Bereichen Datenwissenschaft, Echtzeitanalysen, Hochfrequenzhandel und viele andere Bereiche. MSN2 würde in erster Linie für die anpassbare Programmorchestrierung verwendet werden, wobei stark verallgemeinerte Funktionen schnell und nahtlos genutzt werden, sodass Entwickler leistungsstarke Workflows erstellen können, die verschiedene Programmiersprachen und Tools verbinden. Diese Flexibilität macht es zur idealen Wahl für die Verwaltung komplexer, mehrsprachiger Projekte und die Automatisierung verschiedener Aufgaben, ohne dass die Umgebung gewechselt oder umfangreiches Python geschrieben werden muss.

Zusammenfassung

Dieses Projekt war eine ehrgeizige Reise. Was als Lernübung begann, entwickelte sich schnell zu einem Spielplatz für die Erforschung von Sprachdesign und neuen, kreativen Proof of Concepts. MSN2 hat als Lernerfahrung gedient, die meine Programmierfähigkeiten ständig auf die Probe stellt. Es ist alles andere als akzeptabel und weit entfernt von der Perfektion, aber gerade das macht es spannend – es steckt voller Möglichkeiten, zu wachsen und sich zu verbessern.

Während der Großteil der Sprache noch nicht vollständig produktionsbereit ist und die Tests noch keine 100-prozentige Abdeckung erreicht haben, repräsentiert MSN2 das Potenzial unkonventionellen Denkens und die Freiheit, ohne den Druck der Perfektion zu experimentieren. Ob es zu einem nützlichen Werkzeug in Projekten wird oder ein persönliches Unterfangen bleibt, liegt bei mir und der Community, aber seine Zukunft hängt von kontinuierlicher Entwicklung, Feedback und Verfeinerung ab. Im Moment sehe ich es als Trittstein, mit Ecken und Kanten und vielen Rissen, aber immer noch solide genug, um darauf zu stehen.

nützliche Links
MSN2 auf GitHub
MSN2[2.0.401]-Dokumentation
meine Website / mein Portfolio

Das Banner dieses Beitrags ist unformatierter, aber ausführbarer MSN2-Code, der Inline-Mischungen aus JavaScript, Java, C enthält, die alle mit einem API-Endpunkt interagieren, der in derselben Zeile angesiedelt ist.

Das obige ist der detaillierte Inhalt vonMSNAEine experimentelle Programmiersprache für den mutigen Entwickler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn