Introduzione
Ciao! 👋 Oggi, vi racconterò la storia di Mint lang, molto giovane (ma interessante) linguaggio di programmazione incentrato sulla costruzione di SPA (applicazioni a pagina singola). Ha tutti gli strumenti necessari per scrivere applicazioni senza errori, facilmente leggibili e manutenibili in tempi record.
Impressionato? Anch’io! Affrontiamola insieme… 😉
Table Sommario
- Che cosa è Mint lang in realtà?
- Perché non JavaScript?
- Perché non Elm?
- Perché menta?
- Menta strumenti & ecosistema
- Editor estensioni
- CLI
- Decentralizzato di gestione dei pacchetti
- Routing
- lo stile CSS
- risultato Finale
Cosa c’è di Menta lang in realtà?
Prima di tutto, Menta scritta sul cristallo:
un linguaggio di programmazione general-purpose, orientato agli oggetti con sintassi ispirata al linguaggio Ruby si tratta di un linguaggio compilato con il tipo di controllo statico, ma specificando i tipi di variabili o argomenti del metodo è generalmente non necessari.
— Wiki
Quindi, segui la guida ufficiale di Mint:
Mint è un linguaggio creato appositamente per la scrittura di applicazioni a pagina singola. È un compilatore e un framework combinati per fornire una grande esperienza di sviluppo, consentendo di scrivere codice sicuro, leggibile e manutenibile.
Sì, è vero! Guarda a questo codice (mi dispiace per l’evidenziazione del codice):
// 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> }}
Molto simile a un linguaggio strettamente tipizzato, ma con incluso lo stile JSX, giusto?
È nato dalla frustrazione del linguaggio JavaScript e dell’ecosistema (NPM) e del linguaggio Elm e non è così aperto pratiche di sviluppo.
OK! 👌 Decidiamo subito: perché non JavaScript e cosa c’è di sbagliato in Elm.
Perché non JavaScript?
JavaScript non è un linguaggio fortemente tipizzato che rende difficile scrivere codice privo di errori e porta a un’esperienza di sviluppo non così grande.
Inoltre, non ha gli strumenti per creare applicazioni web fuori dalla scatola, sono necessari framework e compilatori e strumenti di creazione che aumentano la complessità.
Perché non Elm?
Elm ha una grande esperienza di sviluppo, ma essendo un linguaggio puramente funzionale porta ad un codice standardizzato e rende più difficile l’apprendimento.
Inoltre, non è possibile contribuire o influenzare la lingua in modo significativo.
Perché Mint lang? 🤔
Mint mira a combinare l’esperienza degli sviluppatori di Elm e l’espressività di React per creare il linguaggio perfetto per la creazione di applicazioni a pagina singola.
Dopo un anno di sviluppo, Mint ha le seguenti caratteristiche:
- Un buon sistema di tipo
- Bella messaggi di errore
- Formatter
- Componenti per la composizione
- Negozi per l’archiviazione dei dati
- Built-in styling
- Built-in di routing
- Grande JavaScript interoperabilità
- Immutabile strutture di dati
Menta strumenti & ecosistema
non vorrei parlare di questo linguaggio di programmazione, se non si dispone di un ecosistema per l’avvio e lo sviluppo. Quindi! 😎
Editor estensioni
- VS Codice — aggiunge l’evidenziazione della sintassi e completamento automatico di supporto
- Emacs — aggiunge l’evidenziazione della sintassi e auto-formattazione usando mint formato
- IntelliJ IDEA — aggiunge l’evidenziazione della sintassi
- Atom — aggiunge l’evidenziazione della sintassi
- Vim — molto minimale (ma funzionante) sintassi/ftdetect combo
CLI
l’Installazione di Mint CLI tramite il comando:
# 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
E ora, vedere tutti i comandi di chiamata con la Menta, --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━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Decentralizzato di gestione dei pacchetti
Questa pagina contiene i pacchetti che è possibile utilizzare nei vostri progetti:
- https://www.mint-lang.com/packages
Routing
Percorsi di un’applicazione sono definiti al livello superiore con il routes
blocco. Tieni presente le seguenti cose:
- Percorsi sono abbinati nell’ordine in cui sono definiti dall’alto verso il basso
- Percorsi può avere un solo percorsi di blocco per l’applicazione
- Percorsi sono utilizzati per impostare lo stato, non rendere le cose
codice di Esempio:
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) } }}
lo stile CSS
nuovi componenti, gli stili possono essere definite con un identificatore, poi applicato in HTML utilizzando l’identificatore di una classe CSS.
Uno stile può contenere qualsiasi numero di definizioni CSS, regole secondarie, query multimediali, istruzioni
if
ecase
.
Codice di esempio:
component Main { style button { background: red; color: white; border: 0; } fun render : Html { <button::button> "Click ME!" </button> }}
Risultato finale
Dopo mint build
, hai pronto per la produzione Preact SPA. Ecco fatto! 🎉
Foto di
Ben Kolde https://unsplash.com/photos/H29h6a8j8QM
Mint authors https://www.mint-lang.com
Anthony Fomin https://unsplash.com/photos/Hr6dzqNLzhw