Inleiding
Hallo! 👋 Vandaag, Ik zal u vertellen verhaal over Mint lang, zeer jonge (maar interessant) programmeertaal gericht op het bouwen van SPA (enkele pagina applicaties). Het heeft alle tools die u nodig hebt om foutloze, gemakkelijk leesbare en onderhoudbare applicaties in recordtijd te schrijven.
Onder de indruk? Ik ook! Laten we dit samen afhandelen… 😉
📝 inhoudsopgave
- Wat is Mint lang eigenlijk?
- waarom geen JavaScript?
- waarom niet iep?
- Waarom Munt?
- Mint tools & ecosysteem
- Editor extensions
- CLI
- gedecentraliseerd pakketbeheer
- Routing
- CSS-Styling
- eindresultaat
Wat is Mint lang eigenlijk?
Ten eerste, munt geschreven op Kristal:
een algemene, objectgeoriënteerde programmeertaal met syntaxis geïnspireerd door de taal Ruby het is een gecompileerde taal met statische typecontrole, maar het specificeren van de typen variabelen of methodeargumenten is over het algemeen overbodig.
– Wiki
volgende, officiële Muntgids volgen:
Mint is een taal die speciaal is gemaakt voor het schrijven van applicaties met één pagina. Het is een compiler en een kader gecombineerd om grote Ontwikkelaar ervaring te bieden, terwijl het mogelijk maakt om veilige, leesbare en onderhoudbare code te schrijven.
Ja, Het is waar! Kijkt naar deze code (sorry voor de code accentuering):
// 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> }}
zeer vergelijkbaar met een strikt getypeerde taal, maar met inbegrepen JSX-stijl, toch?
het is ontstaan uit de frustratie van de JavaScript language and ecosystem (NPM) en de Elm-taal en het is niet zo open ontwikkelingspraktijken.
OK! 👌 Laten we meteen beslissen: waarom niet JavaScript en wat er mis is met Elm.
waarom geen JavaScript?
JavaScript is geen sterk getypte taal die het moeilijk maakt om foutloze code te schrijven en leidt tot een minder goede ervaring voor ontwikkelaars.
ook heeft het niet de tools om webapplicaties uit de doos te maken, je hebt frameworks en compilers nodig en tools die de complexiteit vergroten.
waarom geen Elm?
Elm heeft veel ervaring met ontwikkelaars, maar omdat het een zuiver functionele taal is, leidt dit tot een aantal boilerplate-code en maakt het moeilijker om te leren.
ook is het niet mogelijk om de taal op een betekenisvolle manier bij te dragen of te beïnvloeden.
waarom Mint lang? 🤔
Mint wil de ervaring van ontwikkelaars van Elm en de expressiviteit van React combineren om de perfecte taal te creëren voor het bouwen van applicaties met één pagina.
na één jaar ontwikkeling heeft Mint de volgende kenmerken::
- Een goede type-systeem
- Mooie foutberichten
- Formatter
- Componenten voor de samenstelling
- Winkels voor data opslag
- Ingebouwde styling
- Ingebouwde routing
- Groot JavaScript interoperabiliteit
- Onveranderlijke gegevens structuren
Munt gereedschappen & ecosysteem
ik zou niet spreken over deze programmeertaal als het niet hebben van een ecosysteem voor het starten en ontwikkelen. Dus! 😎
Editor extensions
- VS Code — voegt syntaxis highlighting en autocomplete ondersteuning
- Emacs — voegt syntaxis highlighting en auto-opmaak toe met mint formaat
- IntelliJ IDEA — voegt syntaxis highlighting
- Atom — voegt syntaxis highlighting
- Vim — zeer minimaal (maar werkend) syntaxis/ftdetect combo
cli
mint CLI installeren via commando:
# 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
En nu, zie alle commando ‘ s door te bellen Mint met --help
vlag:
$ 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━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Decentrale package management
Deze pagina bevat de pakketten die u kunt gebruiken in uw projecten:
- https://www.mint-lang.com/packages
Routing
Routes van toepassing zijn gedefinieerd op het hoogste niveau met de routes
blokkeren. Houd rekening met de volgende dingen:
- Routes zijn op elkaar afgestemd in de volgorde waarin ze zijn gedefinieerd, van boven naar beneden
- Routes kan slechts één routes blok per toepassing
- Routes worden gebruikt voor het instellen van de staat, niet om te renderen dingen
Voorbeeld code:
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 onderdelen, stijlen gedefinieerd kan worden met een id, dan is toegepast op HTML met behulp van de identificatiecode als een CSS-klasse.
een stijl kan een willekeurig aantal CSS definities, subregels, media queries,
if
encase
statements bevatten.
voorbeeldcode:
component Main { style button { background: red; color: white; border: 0; } fun render : Html { <button::button> "Click ME!" </button> }}
eindresultaat
na mint build
hebt u Preact SPA klaar voor de productie. Dat is het! 🎉
foto door
Ben Kolde https://unsplash.com/photos/H29h6a8j8QM
muntauteurs https://www.mint-lang.com
Anthony Fomin https://unsplash.com/photos/Hr6dzqNLzhw