EinfĂŒhrung
Hallo! đ Heute erzĂ€hle ich Ihnen eine Geschichte ĂŒber Mint lang, eine sehr junge (aber interessante) Programmiersprache, die sich auf den Aufbau von SPA (Single Page Applications) konzentriert. Es verfĂŒgt ĂŒber alle Tools, die Sie benötigen, um fehlerfreie, leicht lesbare und wartbare Anwendungen in Rekordzeit zu schreiben.
Beeindruckt? Ich auch! Lassen Sie uns gemeinsam damit umgehen… đ
đ Inhaltsverzeichnis
- Was ist Mint lang eigentlich?
- Warum nicht JavaScript?
- Warum nicht Ulme?
- Warum Minze?
- Mint-Tools & Ăkosystem
- Editor-Erweiterungen
- CLI
- Dezentrales Paketmanagement
- Routing
- CSS-Styling
- Endergebnis
Was ist Mint lang eigentlich?
Vor allem Minze auf Kristall geschrieben:
eine universelle, objektorientierte Programmiersprache mit Syntax, die von der Sprache inspiriert ist Ruby Es ist eine kompilierte Sprache mit statischer TypprĂŒfung, aber die Angabe der Typen von Variablen oder Methodenargumenten ist im Allgemeinen nicht erforderlich.
– Wiki
Folgen Sie als nÀchstes dem offiziellen Mint-Leitfaden:
Mint ist eine Sprache, die speziell fĂŒr das Schreiben von einseitigen Anwendungen entwickelt wurde. Es ist ein Compiler und ein Framework, die kombiniert werden, um eine groĂartige Entwicklererfahrung zu bieten und gleichzeitig sicheren, lesbaren und wartbaren Code zu schreiben.
Ja, es ist wahr! Schaut auf diesen Code (Entschuldigung fĂŒr die Code-Hervorhebung):
// src/App.mintcomponent Counter { state counter : Number = 0 fun increment : Promise(Never, Void) { next { counter = counter + 1 } } fun decrement : Promise(Never, Void) { next { counter = counter - 1 } } fun render : Html { <div> <button onClick={decrement}> "Decrement" </button> <span> <{ Number.toString(counter) }> </span> <button onClick={increment}> "Increment" </button> </div> }}
Sehr Àhnlich einer streng typisierten Sprache, aber mit JSX-Stil, oder?
Es wurde aus der Frustration der JavaScript-Sprache und des Ăkosystems (NPM) und der Elm-Sprache geboren und ist nicht so offen fĂŒr Entwicklungspraktiken.
OK! đ Lassen Sie uns sofort entscheiden: Warum nicht JavaScript und was ist los mit Elm.
Warum nicht JavaScript?
JavaScript ist keine stark typisierte Sprache, die es schwierig macht, fehlerfreien Code zu schreiben und zu einer nicht so groĂartigen Entwicklererfahrung fĂŒhrt.
AuĂerdem verfĂŒgt es nicht ĂŒber die Tools zum Erstellen von Webanwendungen, Sie benötigen Frameworks und Compiler und erstellen Tools, die die KomplexitĂ€t erhöhen.
Warum nicht Ulme?
Elm hat groĂe Entwickler-Erfahrung, aber es ist eine rein funktionale Sprache fĂŒhrt zu einigen Boilerplate-Code und macht es schwieriger zu lernen.
Es ist auch nicht möglich, die Sprache in irgendeiner sinnvollen Weise beizutragen oder zu beeinflussen.
Warum Mint lang? đ€
Mint zielt darauf ab, die Entwicklererfahrung von Elm und die Ausdruckskraft von React zu kombinieren, um die perfekte Sprache fĂŒr die Erstellung von Single-Page-Anwendungen zu erstellen.
Nach einem jahr der entwicklung, Mint hat die folgenden eigenschaften:
- Ein gutes Typsystem
- Nette Fehlermeldungen
- Formatierer
- Komponenten fĂŒr die Komposition
- Speicher fĂŒr die Datenspeicherung
- Eingebautes Styling
- Eingebautes Routing
- Tolles JavaScript interoperabilitÀt
- UnverÀnderliche Datenstrukturen
Mint tools & ecosystem
Ich wĂŒrde nicht ĂŒber diese Programmiersprache sprechen, wenn sie kein Ăkosystem zum Starten und Entwickeln hĂ€tte. Also! đ
EditorâErweiterungen
- VS Code â fĂŒgt Syntaxhervorhebung und Autocomplete-UnterstĂŒtzung hinzu
- Emacs â fĂŒgt Syntaxhervorhebung und automatische Formatierung mit MintâFormat hinzu
- IntelliJ IDEA â fĂŒgt Syntaxhervorhebung hinzu
- Atom – fĂŒgt Syntaxhervorhebung hinzu
- Vim – sehr minimale (aber funktionierende) Syntax /ftdetect /
CLI
Mint-CLI ĂŒber Befehl installieren:
# For macOS:$ brew tap homebrew-community/alpha$ brew install mint-lang# For Linux:$ wget --no-verbose -O mint https://mint-lang.s3-eu-west-1.amazonaws.com/mint-latest-linux$ chmod +x ./mint$ sudo mv ./mint /usr/local/bin/mint
Und jetzt sehen Sie alle Befehle per Callback mit --help
Flag:
$ mint --helpMint - HelpââââââââââââââââââââââââââââââââââââââââââUsage: mint MintFlags: --env, -e (default: "") # Loads the given .env file --help # Displays help for the current command.Subcommands: build # Builds the project for production docs # Starts the documentation server format # Formats source files init # Initializes a new project install # Installs dependencies loc # Counts Lines of Code start # Starts the development server test # Runs the tests version # Shows versionââââââââââââââââââââââââââââââââââââââââââ
Dezentrale Paketverwaltung
Diese Seite enthÀlt die Pakete, die Sie in Ihren Projekten verwenden können:
- https://www.mint-lang.com/packages
Routing
Routen einer Anwendung werden auf der obersten Ebene mit dem routes
-Block definiert. Beachten Sie die folgenden Dinge:
- Routen werden in der Reihenfolge abgeglichen, in der sie von oben nach unten definiert sind
- Routen können nur einen Routenblock pro Anwendung haben
- Routen werden verwendet, um den Status festzulegen, nicht um Dinge zu rendern
Beispielcode:
routes { / { Application.setPage("index") } /users/:id (id: Number) { sequence { Application.setPage("show") Application.loadUser(id) } } /blog { Application.setPage("blog") } /blog/:slug (slug: String) { sequence { Application.setPage("post") Application.loadPost(slug) } }}
CSS-Styling
In Mint-Komponenten können Stile mit einem Bezeichner definiert und dann mithilfe des Bezeichners als CSS-Klasse auf HTML angewendet werden.
Ein Stil kann eine beliebige Anzahl von CSS-Definitionen, Unterregeln, Medienabfragen,
if
– undcase
-Anweisungen enthalten.
Beispielcode:
component Main { style button { background: red; color: white; border: 0; } fun render : Html { <button::button> "Click ME!" </button> }}
Endergebnis
Nach mint build
haben Sie production ready Preact SPA. Das war’s! đ
Foto von
Ben Kolde https://unsplash.com/photos/H29h6a8j8QM
MĂŒnzautoren https://www.mint-lang.com
Anthony Fomin https://unsplash.com/photos/Hr6dzqNLzhw