Johdanto
Hello! đ TĂ€nÀÀn, kerron teille tarinan Mint lang, hyvin nuori (mutta mielenkiintoinen) ohjelmointikieli keskittynyt rakentamiseen SPA (yhden sivun sovelluksia). SiinĂ€ on kaikki työkalut, joita tarvitset kirjoittaaksesi virheettömiĂ€, helposti luettavia ja yllĂ€pidettĂ€viĂ€ sovelluksia ennĂ€tysajassa.
vaikuttunut? Niin minĂ€kin! Hoidetaan tĂ€mĂ€ yhdessĂ€… đ
đ SisĂ€llysluettelo
- mikÀ Minttulangi oikeastaan on?
- miksi ei JavaScript?
- miksei Jalava?
- Miksi Minttu?
- Mint tools & ecosystem
- Editor extensions
- CLI
- hajautettu paketinhallinta
- reititys
- CSS Styling
- lopputulos
mikÀ on Mint lang oikeasti?
ensinnÀkin KiteellÀ kirjoitettu minttu:
yleiskÀyttöinen, olio-orientoitunut ohjelmointikieli, jonka syntaksin taustalla on kieli Ruby se on kÀÀnnetty kieli, jossa on staattinen tyyppitarkistus, mutta muuttujien tai menetelmÀargumenttien mÀÀrittely on yleensÀ tarpeetonta.
– Wiki
seuraava, seuraa virallista rahapajan opasta:
Mint on kieli, joka on luotu erityisesti yhden sivun sovellusten kirjoittamiseen. Se on kÀÀntÀjÀ ja puitteet yhdistettynÀ tarjota suuri kehittÀjÀ kokemus samalla kirjoittaa turvallinen, luettavissa ja yllÀpidettÀvissÀ koodi.
kyllÀ, se on totta! NÀyttÀÀ tÀmÀn koodin (anteeksi koodin korostus):
// 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> }}
hyvin samanlainen tiukasti typistetty kieli, mutta mukana JSX-tyyliin, eikö?
se syntyi JavaScript-kielen ja ekosysteemin (npm) ja Elm-kielen turhautumisesta, eivÀtkÀ sen kehityskÀytÀnnöt ole niin avoimia.
OK! đ PÀÀtetÀÀn heti: miksi ei JavaScript ja mitĂ€ vikaa Elm.
miksi ei JavaScript?
JavaScript ei ole vahvasti tyypitetty kieli, joka vaikeuttaa virheettömÀn koodin kirjoittamista ja johtaa ei niin suureen kehittÀjÀkokemukseen.
siinÀ ei myöskÀÀn ole työkaluja web-sovellusten luomiseen laatikosta, tarvitaan kehyksiÀ ja kÀÀntÀjiÀ sekÀ rakennetaan työkaluja, jotka lisÀÀvÀt monimutkaisuutta.
miksei Jalava?
Jalavalla on paljon kehittÀjÀkokemusta, mutta puhtaasti funktionaalisena kielenÀ se johtaa johonkin boilerplate-koodiin ja vaikeuttaa sen oppimista.
kieleen ei myöskÀÀn voi vaikuttaa millÀÀn mielekkÀÀllÀ tavalla.
miksi minttu lang? đ€
Mint pyrkii yhdistÀmÀÀn Elmin kehittÀjÀkokemuksen ja Reactin ilmaisuvoiman luodakseen tÀydellisen kielen yksisivuisten sovellusten rakentamiseen.
vuoden kehitystyön jÀlkeen Rahapajalla on seuraavat ominaisuudet:
- HyvÀtyyppinen jÀrjestelmÀ
- Nizzan Virheilmoitukset
- formaatti
- Komposition komponentit
- tiedon tallennus
- sisÀÀnrakennettu stailaus
- sisÀÀnrakennettu reititys
- Suuri JavaScript yhteentoimivuus
- muuttumattomat Tietorakenteet
Mint tools & ecosystem
en puhuisi tĂ€stĂ€ ohjelmointikielestĂ€, jos sillĂ€ ei olisi ekosysteemiĂ€ kĂ€ynnistĂ€mistĂ€ ja kehittĂ€mistĂ€ varten. No! đ
Editor extensions
- vs. koodi â lisÀÀ syntaksin korostuksen ja automaattisen tĂ€ydennystuen
- Emacs â lisÀÀ syntaksin korostuksen ja automaattisen muotoilun kĂ€yttĂ€en mint-muotoa
- IntelliJ IDEA â lisÀÀ syntaksin korostuksen
- Atom â lisÀÀ syntaksin korostuksen
- vim â hyvin minimaalinen (mutta toimiva) syntaksi/ftdetect combo
Cli
Mint CLI: n asentaminen komennolla:
# 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
Ja nyt, katso kaikki kÀskyt call MintiltÀ --help
lipulla:
$ 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ââââââââââââââââââââââââââââââââââââââââââ
hajautettu paketinhallinta
TÀmÀ sivu sisÀltÀÀ paketit, joita voit kÀyttÀÀ projekteissasi:
- https://www.mint-lang.com/packages
reititys
sovelluksen reitit mÀÀritellÀÀn ylÀtasolla routes
lohkon kanssa. Muista seuraavat asiat:
- reitit sovitetaan siinÀ jÀrjestyksessÀ kuin ne on mÀÀritelty ylhÀÀltÀ alas
- reiteillÀ voi olla vain yksi reittilohko hakemusta kohti
- reittejÀ kÀytetÀÀn tilan asettamiseen, ei asioiden muuttamiseen
esimerkkikoodi:
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
Mint componentsissa tyylit voidaan mÀÀritellÀ tunnisteella, jonka jÀlkeen niitÀ voidaan soveltaa HTML: ÀÀn kÀyttÀen tunnistetta CSS-luokkana.
tyyli voi sisÀltÀÀ minkÀ tahansa mÀÀrÀn CSS-mÀÀritelmiÀ, alisÀÀntöjÀ, mediakyselyjÀ,
if
jacase
lausumia.
esimerkkikoodi:
component Main { style button { background: red; color: white; border: 0; } fun render : Html { <button::button> "Click ME!" </button> }}
lopputulos
mint build
jĂ€lkeen on tuotantovalmis Preact SPA. Nyt riitti! đ
Kuva:
Ben Kolde https://unsplash.com/photos/H29h6a8j8QM
rahapajan tekijÀt https://www.mint-lang.com
Anthony Fomin https://unsplash.com/photos/Hr6dzqNLzhw