Introducere
Bună ziua! Astăzi, vă voi spune povestea despre Mint lang, limbaj de programare foarte tânăr (dar interesant) axat pe construirea SPA (aplicații cu o singură pagină). Are toate instrumentele de care aveți nevoie pentru a scrie aplicații fără erori, ușor de citit și de întreținut în timp record.
impresionat? Și eu! Să ne ocupăm de asta împreună…
cuprins
- ce este de fapt Mint lang?
- de ce nu JavaScript?
- de ce nu Elm?
- De Ce Mentă?
- instrumente de mentă & ecosistem
- extensii Editor
- CLI
- de gestionare a pachetelor descentralizate
- rutare
- CSS Styling
- rezultatul Final
ce este Mint lang de fapt?
în primul rând, menta scris pe Cristal:
un limbaj de programare cu scop general, orientat pe obiecte, cu sintaxă inspirată de limba Ruby este un limbaj compilat cu verificare statică a tipului, dar specificarea tipurilor de variabile sau argumente ale metodei este în general inutilă.
– Wiki
apoi, urmați ghidul oficial de mentă:
Mint este un limbaj creat special pentru scrierea aplicațiilor cu o singură pagină. Este un compilator și un cadru combinat pentru a oferi o experiență excelentă pentru dezvoltatori, permițând în același timp să scrie cod sigur, lizibil și întreținut.
da, este adevărat! Se uită la acest cod (Ne pare rău pentru evidențierea codului):
// 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> }}
foarte asemănător cu un limbaj strict tipificat, dar cu stil JSX inclus, nu?
S-a născut din frustrarea limbajului JavaScript și a ecosistemului (NPM) și a limbajului Elm și nu sunt practici de dezvoltare atât de deschise.
bine! Să decidem imediat: de ce nu JavaScript și ce este în neregulă cu Elm.
de ce nu JavaScript?
JavaScript nu este un limbaj puternic tastat, ceea ce face dificilă scrierea codului fără erori și duce la o experiență de dezvoltator nu atât de mare.
de asemenea, nu are instrumentele necesare pentru a crea aplicații web din cutie, aveți nevoie de cadre și compilatoare și de a construi instrumente care cresc complexitatea.
de ce nu Ulm?
Elm are o mare experiență Dezvoltator, dar fiind un limbaj pur funcțional duce la unele cod șabloane și face mai greu de învățat.
de asemenea, nu este posibil să contribuiți sau să influențați limba într-un mod semnificativ.
de ce menta lang? 🤔
Mint își propune să combine experiența dezvoltatorului Elm și expresivitatea React pentru a crea limbajul perfect pentru construirea aplicațiilor cu o singură pagină.
după un an de dezvoltare, menta are următoarele caracteristici:
- un sistem de tip bun
- Mesaje de eroare frumos
- Formatter
- componente pentru compoziție
- magazine pentru stocarea datelor
- built-in styling
- built-in rutare
- mare JavaScript interoperabilitate
- structuri de date imuabile
Mint tools & ecosystem
nu aș vorbi despre acest limbaj de programare dacă nu ar avea un ecosistem pentru pornire și dezvoltare. Deci!
extensiile editorului
- VS Code — adaugă evidențierea sintaxei și suport pentru completarea automată
- Emacs — adaugă evidențierea sintaxei și formatarea automată folosind formatul mint
- IntelliJ IDEA-adaugă evidențierea sintaxei
- Atom — adaugă evidențierea sintaxei
- Vim — foarte minim (dar funcțional) sintaxă/ftdetect combo
cli
instalarea mint CLI prin comandă:
# 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
și acum, vezi toate comenzile de menta apel cu --help
Pavilion:
$ 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━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
gestionarea descentralizată a pachetelor
această pagină conține pachetele pe care le puteți utiliza în proiectele dvs:
- https://www.mint-lang.com/packages
rutare
traseele unei aplicații sunt definite la nivelul superior cu blocul routes
. Rețineți următoarele lucruri:
- rutele sunt potrivite în ordinea în care sunt definite de sus în jos
- rutele pot avea doar un bloc de rute pe aplicație
- rutele sunt folosite pentru a seta starea, nu pentru a face lucrurile
exemplu de cod:
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
în componentele Mint, stilurile pot fi definite cu un identificator, apoi aplicate HTML folosind identificatorul ca clasă CSS.
un stil poate conține orice număr de definiții CSS, sub reguli, interogări media,
if
șicase
declarații.
exemplu de cod:
component Main { style button { background: red; color: white; border: 0; } fun render : Html { <button::button> "Click ME!" </button> }}
Rezultat Final
după mint build
, aveți producție gata PREACT SPA. Asta e!
fotografie de
Ben Kolde https://unsplash.com/photos/H29h6a8j8QM
autori de mentă https://www.mint-lang.com
Anthony Fomin https://unsplash.com/photos/Hr6dzqNLzhw