w 2019 roku mamy dwie opcje uruchamiania skryptów w przeglądarce internetowej: JavaScript i WebAssembly.
ale wyobraź sobie programistę wywodzącego się z Javy, Haskella czy nawet Lispu … gdzie jest czysty paradygmat obiektowy? A gdzie jest ten funkcjonalny? A co ze słynną składnią Lispu?
oczywiście JavaScript zapewnia zarówno paradygmaty obiektowe, jak i funkcjonalne, ale jeśli chodzi o składnię, niektórzy programiści mają tylko Preferencje. Statyczne pisanie, dopasowywanie wzorców, interfejsy … JavaScript nie spełnia wszystkich potrzeb (jeszcze!).
jak powiedzieliśmy wcześniej, w 2019 roku mamy tylko dwie alternatywy dla uruchamiania skryptów w przeglądarce internetowej. Ale czekaj … możemy kierować JavaScript podczas kompilacji innych języków!
nie będziemy rozmawiać o historii każdego języka, który kompiluje się do JavaScript. JS jest tak ważnym językiem, że każdy inny język programowania może się do niego skompilować.
zamiast tego zobaczymy prawdziwe lub zmieniające życie języki programowania, których możesz używać teraz w produkcji, lub które powinieneś mieć na oku jego przyszłe ewolucje .
zaczynajmy!
Kotlin
Kotlin jest młodym i potężnym językiem programowania, który natywnie atakuje zarówno maszynę wirtualną Javy, jak i JavaScript.
najwspanialszą rzeczą w Kotlinie jest to, że będziesz miał dostęp do wszystkich wspaniałych i przetestowanych bibliotek Javy!
jeśli jesteś programistą Java, koniecznie powinieneś na to spojrzeć!
Scala
kolejny niesamowity język JVM, urodzony w 2003 roku w Genewie.
bierze dobre części zarówno obiektowych i funkcjonalnych paradygmatów programowania i celuje zarówno Java bytecode i JavaScript natywnie!
podobnie jak Kotlin, będziesz miał dostęp do każdej biblioteki Java, ale będziesz także w stanie wyrazić złożone algorytmy wykorzystując zalety funkcjonalnego języka programowania!
Clojure
Ok, ostatni język JVM, o którym porozmawiamy.
Clojure jest niesamowitym językiem programowania LISP, który kompiluje bajtkod Javy.
może skompilować się do JavaScript używając ClojureScript!
jeśli pochodzisz z Common Lispu, Racket, Scheme lub innego języka programowania LISP, to zdecydowanie jest to rozwiązanie dla ciebie.
TypeScript
TypeScript nie wymaga żadnej prezentacji. Jest to zdecydowanie najczęściej używany język kompilacji do JavaScript.
dodaje podpis typu i inne wspaniałe funkcje do JavaScript.
może być również skompilowany do WebAssembly za pomocą WebAssemblyScript!
żeby dać znać, jak szeroko jest używany, pamiętaj, że Angular.js, Vue.js (v3), Rx.js, Firebase SDK i VSCode są napisane w maszynopisie!
zdecydowanie powinieneś na to spojrzeć!
OCaml
Objective Caml (OCaml) jest solidną implementacją języka programowania Caml, pochodzącą z rodziny ML.
znany jest z niewiarygodnie szybkiego języka programowania (niektóre benchmarki mówią tak szybko jak C).
jest obecnie intensywnie używany na Facebooku (wystarczy pomyśleć o Flow, który jest napisany w OCaml) i jest znany jako mocny i sprawdzony w boju język programowania.
można go skompilować do JavaScript za pomocą BuckleScript, kompilatora, który tłumaczy Kod OCaml na JavaScript!
ReasonML
jeśli OCaml to dla Ciebie za dużo, tutaj jesteś ReasonML!
to tylko Nowa składnia dla języka programowania OCaml, która czerpie inspirację z JavaScript.
ReasonML został opracowany przez inżyniera Facebooka, który jest również tym samym facetem, który wynalazł Reacta.js!
w zasadzie na początku reaguje.js został zaprojektowany tak, aby był napisany w StandardML (język programowania ML), więc możesz sobie wyobrazić, jak blisko są te dwa projekty!
ReasonML używa BuckleScript pod maską do przeniesienia kodu ReasonML do OCaml, a następnie do JavaScript. Przyszłość zarówno web, jak i natywnego rozwoju zdaje się przechodzić stąd!
F#
F # to niesamowity język programowania pochodzący z rodziny ML, który kompiluje Microsoft.NET bytecode.
największą zaletą F# jest to, że masz dostęp do każdej biblioteki. NET, od C# do VB! Czy to nie niesamowite?
możesz skompilować kod F# do JavaScript za pomocą Fable, „kompilatora, który emituje JavaScript, z którego możesz być dumny”!
Elm
Elm jest popularnym językiem programowania inspirowanym przez Haskella.
został specjalnie zaprojektowany do tworzenia wysokowydajnych aplikacji internetowych i wysoce zoptymalizowanego kodu JavaScript.
obiecuje również unikać wszelkiego rodzaju WYJĄTKÓW runtime dzięki niesamowitemu systemowi strong type (bardzo inspirowanemu przez Haskella).
wiesz? Redux został zainspirowany architekturą Elm, która jest niezwykle świetna dla reaktywnych aplikacji internetowych!
PureScript
PureScript jest silnym typowanym i czystym funkcjonalnym językiem programowania zainspirowanym przez Haskella.
w PureScript możesz ponownie użyć dowolnej istniejącej biblioteki JavaScript, dzięki czemu nie musisz za każdym razem odkrywać koła na nowo!
jeśli pochodzisz z programowania funkcyjnego, PureScript to świetny sposób na budowanie solidnych i wolnych od WYJĄTKÓW aplikacji internetowych!
Dart
Dart to język programowania zorientowany obiektowo opracowany przez Google, który ma być największą alternatywą dla JavaScript dla rozwoju sieci i natywnego.
Google niedawno wydał Flutter dla natywnego tworzenia aplikacji, który jest napisany w Dart.
jeśli pochodzisz z Javy, to wygodnie Ci będzie pisać w Dart!
C / C++
OK to naprawdę niesamowite: możesz przekonwertować istniejący kod C / C++ na JavaScript za pomocą Emscripten!
oczywiście nigdy nie osiągniesz wydajności c/c++ z JavaScript, ale są pewne projekty, które byłyby naprawdę trudne do ponownego wdrożenia od zera. Tesseract.js to świetny przykład projektu OCR C++ Tesseract! Osobiście go używałem i nie zorientujesz się, że kod źródłowy został skompilowany z C++!
Clio
Clio jest czysto funkcjonalnym, leniwym językiem programowania skierowanym do zdecentralizowanych i rozproszonych systemów.
kompiluje wysokiej jakości kod JavaScript, który może być wykonywany zarówno w przeglądarce, jak i na serwerze (za pomocą Node.js).
podczas gdy Clio jest jeszcze w trakcie aktywnego rozwoju, wprowadza kilka świetnych i innowacyjnych pomysłów. Postawiłbym na ten projekt!
LiveScript
LiveScript to niesamowity język programowania, który kompiluje się do JavaScript. Został stworzony przez Jeremy ’ ego Ashkenasa, twórcę CoffeeScript.
LiveScript jest w rzeczywistości ewolucją CoffeeScript, która obejmuje zarówno paradygmaty programowania funkcjonalnego, jak i obiektowego.
jeśli pochodzisz z funkcjonalnego języka, takiego jak Elixir lub OCaml, znajdziesz to niesamowite rozwiązanie do pisania wysokiej jakości aplikacji JavaScript!
wniosek
dzisiaj widzieliśmy 13 języków, które kompilują się do JavaScript.
jasne jest, że szczęście programistów jest obecnie głównym punktem skupienia dla programistów, ale jasne jest również, że JavaScript jest niesamowicie ważnym językiem, a społeczność nieustannie pracuje nad ulepszeniem swojego ekosystemu.
JavaScript future jest jaśniejszy niż kiedykolwiek!