under 2019 har vi två alternativ för att köra skript i en webbläsare: JavaScript och WebAssembly.
men föreställ dig en programmerare som kommer från Java, Haskell eller till och med LISP… var är det rena objektorienterade paradigmet? Och var är den funktionella? Och vad sägs om den berömda LISP-syntaxen?
naturligtvis ger JavaScript både objektorienterade och funktionella paradigmer, men när det gäller syntax har vissa utvecklare bara preferenser. Statisk typning, mönstermatchning, gränssnitt … JavaScript passar inte allas behov (ännu!).
som vi sa tidigare fick vi 2019 bara två alternativ för att köra skript i en webbläsare. Men vänta… vi kan rikta in JavaScript medan vi sammanställer andra språk!
vi kommer inte att prata om historien för varje språk som kompilerar till JavaScript. JS är ett så viktigt språk att Ganska alla andra programmeringsspråk kan kompilera till det.
istället kommer vi att se några verkliga eller livsförändrande programmeringsspråk som du kan använda just nu i produktionen, eller som du bör hålla ett öga på för framtida utvecklingar.
så, låt oss börja!
Kotlin
Kotlin är ett ungt och kraftfullt programmeringsspråk som riktar sig till både Java Virtual Machine och JavaScript.
det bästa med Kotlin är att du har tillgång till alla de stora och stridstestade Java-biblioteken där ute!
om du är en Java-utvecklare, bör du absolut ta en titt på det!
Scala
ännu ett fantastiskt JVM-språk, född 2003 i Geneve.
det tar de goda delarna av både objektorienterade och funktionella programmeringsparadigmer och mål både Java bytecode och JavaScript inbyggt!
precis som Kotlin har du tillgång till alla Java-bibliotek, men du kan också uttrycka komplexa algoritmer med fördelarna med ett funktionellt programmeringsspråk!
Clojure
Ok, det sista JVM-språket vi pratar om.
Clojure är ett fantastiskt LISP programmeringsspråk som kompilerar Java bytecode.
det kan kompilera till JavaScript med ClojureScript!
om du kommer från Common Lisp, Racket, Scheme eller något annat LISP-programmeringsspråk är det definitivt lösningen för dig.
TypeScript
TypeScript behöver inte någon form av presentation. Det är överlägset det mest använda kompilerings-till-JavaScript-språket där ute.
det lägger till typsignatur och andra fantastiska funktioner till JavaScript.
det kan också kompileras till WebAssembly med WebAssemblyScript!
bara för att låta dig veta hur mycket används är, Kom ihåg att vinkel.JS, Vue.js (v3), Rx.js, Firebase SDK och VSCode är skrivna i TypeScript!
du bör definitivt ta en titt på det!
OCaml
Objective Caml (OCaml) är en bergfast implementering av Caml-programmeringsspråket, som kommer från ML-familjen.
det är känt för att vara ett otroligt snabbt programmeringsspråk (vissa riktmärken säger så snabbt som C).
det används intensivt på Facebook idag (tänk bara på Flow, som är skrivet i OCaml) och det är känt som starkt och stridstestat programmeringsspråk.
det kan kompileras till JavaScript med BuckleScript, en kompilator som översätter OCaml-kod till JavaScript!
ReasonML
om OCaml är för mycket för dig, här är du ReasonML!
det är bara en ny syntax för OCaml-programmeringsspråket, som hämtar inspiration från JavaScript.
ReasonML har utvecklats av en Facebook-ingenjör som också är samma kille som uppfann React.js!
reagerar faktiskt först.js var utformad för att skrivas i StandardML (ett ML programmeringsspråk), så du kan föreställa dig hur nära dessa två projekt är!
ReasonML använder spännen under huven för att transpilera ReasonML-kod till OCaml, sedan till JavaScript. Framtiden för både webb och inbyggd utveckling verkar passera härifrån!
F #
F # är ett fantastiskt programmeringsspråk som kommer från ML-familjen, som sammanställer Microsoft.NET bytecode.
den största fördelen med F# är att du kan få tillgång till alla. NET-bibliotek, från C# till VB! Är det inte fantastiskt?
du kan kompilera F # – kod till JavaScript med Fable, ”kompilatorn som avger JavaScript du kan vara stolt över”!
Elm
Elm är ett populärt programmeringsspråk som är mycket inspirerat från Haskell.
det har utformats speciellt för att bygga högpresterande webbappar och mycket optimerad JavaScript-kod.
det lovar också att undvika någon form av runtime undantag tack vare ett fantastiskt starkt typsystem (mycket inspirerat från Haskell).
visste du det? Redux har inspirerats från Elm-arkitekturen, vilket är extremt bra för reaktiva webbappar!
PureScript
PureScript är ett starkt skrivet och rent funktionellt programmeringsspråk som är mycket inspirerat från Haskell.
i PureScript kan du återanvända alla befintliga JavaScript-bibliotek, så du behöver inte uppfinna hjulet varje gång!
om du kommer från en funktionell programmeringsupplevelse är PureScript ett fantastiskt sätt att bygga rockfasta och undantagsfria webbapplikationer!
Dart
Dart är ett Objet-orienterat programmeringsspråk utvecklat av Google som syftar till att vara det största JavaScript-alternativet för webb-och inbyggd utveckling.
Google har nyligen släppt Flutter för inbyggd apputveckling, som är skriven i Dart.
om du kommer från Java, hittar du det bekvämt att skriva i Dart!
C / C++
Ok det är faktiskt otroligt: Du kan konvertera din befintliga C / C++ – kod till JavaScript med Emscripten!
naturligtvis kommer du aldrig att nå C / C++ föreställningar med JavaScript, men det finns vissa projekt som skulle vara riktigt svårt att reimplementeras från noll. Tesseract.js är ett fantastiskt exempel på C++ Tesseract OCR-projektet! Jag använde det personligen och du kommer inte att räkna ut att källkoden har sammanställts från C++!
Clio
Clio är ett rent funktionellt latvärderat programmeringsspråk som riktar sig till decentraliserade och distribuerade system.
den sammanställer JavaScript-kod av hög kvalitet som kan köras både på en webbläsare och en server (med Node.js).
medan Clio fortfarande är under aktiv utveckling, introducerar några bra och innovativa ideer. Jag skulle helt satsa på detta projekt!
LiveScript
LiveScript är ett fantastiskt programmeringsspråk som kompilerar till JavaScript. Det har skapats av Jeremy Ashkenas, skaparen av CoffeeScript.
LiveScript är faktiskt en CoffeeScript-utveckling som omfattar både de funktionella och objektorienterade programmeringsparadigmerna.
om du kommer från ett funktionellt språk som Elixir eller OCaml, hittar du det en fantastisk lösning för att skriva högkvalitativa JavaScript-appar!
slutsats
idag har vi sett 13 språk som kompilerar till JavaScript.
det är uppenbart att utvecklingslycka är en viktig fokuspunkt för utvecklare idag, men det är också klart att JavaScript är ett otroligt viktigt språk, och samhället arbetar ständigt med att förbättra sitt ekosystem.
JavaScript framtid är ljusare än någonsin!