Mint Brasilien programmeringsspråket för att skriva applikationer på en sida (SPA)

Inledning

Hej! Idag kommer jag att berätta historia om Mint lang, mycket ung (men intressant) programmeringsspråk fokuserat på att bygga SPA (enda sida applikationer). Den har alla verktyg du behöver för att skriva felfria, lättlästa och underhållbara applikationer på rekordtid.

imponerad? Jag också! Låt oss hantera detta tillsammans…

innehållsförteckning

  • vad är Mint lang egentligen?
    • varför inte JavaScript?
    • varför inte Elm?
  • Varför Mint?
  • Mint-verktyg & ekosystem
    • Redigeringstillägg
    • CLI
    • decentraliserad pakethantering
    • Routing
    • CSS-Styling
  • slutresultat

Mint lang logo

Vad är Mint lang egentligen?

först av allt, Mint skrivet på Kristall:

ett allmänt ändamål, objektorienterat programmeringsspråk med syntax inspirerad av språket Ruby det är ett kompilerat språk med statisk typkontroll, men att specificera typerna av variabler eller metodargument är i allmänhet onödigt.

följ sedan den officiella Myntguiden:

Mint är ett språk som är speciellt skapat för att skriva applikationer på en sida. Det är en kompilator och ett ramverk kombinerat för att ge stor utvecklarupplevelse samtidigt som du kan skriva säker, läsbar och underhållbar kod.

Ja, det är sant! Ser till den här koden (ledsen för koden som markerar):

// 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> }}
ange fullskärmsläge avsluta fullskärmsläge

mycket lik ett strikt typiserat språk, men med inkluderad JSX-stil, eller hur?

det föddes ur frustrationen av JavaScript-språket och ekosystemet (NPM) och Elm-språket och det är inte så öppet utvecklingspraxis.

OK! Låt oss bestämma oss direkt: varför inte JavaScript och vad som är fel med Elm.

varför inte JavaScript?

JavaScript är inte ett starkt skrivet språk som gör det svårt att skriva felfri kod och leder till inte så bra utvecklarupplevelse.

det har inte heller verktygen för att skapa webbapplikationer ur lådan, du behöver ramar och kompilatorer och bygga verktyg som ökar komplexiteten.

varför inte Elm?

Elm har stor utvecklarupplevelse, men det är ett rent funktionellt språk som leder till viss standardkod och gör det svårare att lära sig.

det är inte heller möjligt att bidra eller påverka språket på något meningsfullt sätt.

varför Mint lang? 🤔

Mint syftar till att kombinera utvecklarupplevelsen av Elm och uttrycksförmågan hos React för att skapa det perfekta språket för att bygga applikationer på en sida.

efter ett års utveckling har Mint följande funktioner:

  1. ett bra typsystem
  2. fina felmeddelanden
  3. Formatter
  4. komponenter för komposition
  5. lagrar för datalagring
  6. inbyggd styling
  7. inbyggd routing
  8. bra JavaScript interoperabilitet
  9. oföränderliga datastrukturer

Mint tools ekosystem

Mint tools & ekosystem

jag skulle inte prata om detta programmeringsspråk om det inte hade ett ekosystem för att starta och utveckla. Så! 308>

Editor extensions

  • VS — kod — lägger syntaxmarkering och komplettera automatiskt stöd
  • Emacs-lägger syntaxmarkering och automatisk formatering med mint format
  • IntelliJ IDEA — lägger syntaxmarkering
  • Atom — lägger syntaxmarkering
  • vim — mycket minimal (men arbetar) syntax/ftdetect combo

cli

installera mint CLI via kommando:

# 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
ange fullskärmsläge avsluta fullskärmsläge

Och nu, se alla kommandon med call Mint med --help flagga:

$ 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━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ange fullskärmsläge avsluta fullskärmsläge

decentraliserad pakethantering

den här sidan innehåller de paket som du kan använda i dina projekt:

  • https://www.mint-lang.com/packages

Routing

rutter för en applikation definieras på den översta nivån med blocket routes. Tänk på följande saker:

  • rutter matchas i den ordning de definieras från topp till botten
  • rutter kan bara ha ETT ruttblock per applikation
  • rutter används för att ställa in tillståndet, för att inte göra saker

exempelkod:

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) } }}
ange fullskärmsläge avsluta fullskärmsläge

CSS Styling

i Mint-komponenter kan stilar definieras med en identifierare och sedan appliceras på HTML med identifieraren som en CSS-klass.

en stil kan innehålla valfritt antal CSS-definitioner, underregler, mediafrågor, if och case uttalanden.

exempelkod:

component Main { style button { background: red; color: white; border: 0; } fun render : Html { <button::button> "Click ME!" </button> }}
ange fullskärmsläge avsluta fullskärmsläge

slutresultat

efter mint build har du produktionsklar Preact SPA. Det är det! 308 >

foto av

Ben Kolde https://unsplash.com/photos/H29h6a8j8QM
Mint författare https://www.mint-lang.com
Anthony Fomin https://unsplash.com/photos/Hr6dzqNLzhw

P. S.

Lämna ett svar

Din e-postadress kommer inte publiceras.

More: