Programavimas

Puikūs įrankiai kompiliavimui į „JavaScript“

Kiekvienas programuotojas turi mėgstamą kalbą ar dvi. „JavaScript“ mėgėjams šiais laikais labiausiai pasisekė, nes jų kalba perima internetą, o internetas užvaldo pasaulį. Tačiau tie, kurių širdys gyvena kitur programavimo kalbų pasaulyje, yra įstrigę. Jie gali arba likti nuošalyje ir prakeikti nenumaldomą HTML, CSS, „JavaScript“ ir „Node.js“ žaidėją arba rasti būdą, kaip tai pamilti.

Laimei, yra ir trečias būdas, leidžiantis mėgautis mėgstamos kalbos malonumais, vis tiek diegiant kodą vis besiplečiančiame „JavaScript“ pasaulyje: paprasčiausiai konvertuokite kodą, o tai gali būti stebėtinai lengva. Našumas gali šiek tiek nukentėti, bet dažnai daug mažiau, nei jūs galite įsivaizduoti. Tada galite išsiųsti kodą į naršykles ir mesti bandydami priversti žmones įdiegti vykdomuosius failus.

Tvirtas jausis, kad tai yra baisus kapituliacija, karčias atsitraukimas nuo principų, kurie jus sieja su jūsų mėgstama sintakse. Kai kurie gali net pajusti, kad tai šiek tiek išdavystė, toks išdavikiškas poelgis, kad jūs turite tai slėpti nuo savo kolegų. Kiti teisingai pasiūlys, kad tai nėra taip paprasta. Kodo paleidimas yra vienas dalykas. Dalių klijavimas ir vartotojo sąsajos sukūrimas yra daug papildomų darbų.

Kviečiame pasigailėti, bet yra daugybė racionalizacijų, kurios daro idėją malonesnę. Pirma, „JavaScript“ varikliai veikia daug, daug greičiau nei anksčiau. Antra, sukurti žiniatinklio vartotojo sąsają dar niekada nebuvo taip lengva dėl rėmų ir daugybės HTML / CSS dizaino talentų. Trečia, „JavaScript“ tampa šiek tiek lingua franca. Jei visas šias kalbas galite konvertuoti į „JavaScript“ ir sąrašas yra stebėtinai ilgas, galite jas visas susieti.

Čia mes apžvelgiame daugybę mažų kalbų, leidžiančių kai kurioms populiariausioms programavimo kalboms susikurti „JavaScript“. Būsimame straipsnyje bus nagrinėjama, kaip nykstančios kalbos atgimsta atvedant jas į naršyklę. Nėra jokios priežasties pasinerti į gailestį ar neapykantą. Šie metodai leidžia mėgautis mėgstama kalba ir veikti visur, kur veikia „JavaScript“.

Rubinas

Yra daugybė galimybių, leidžiančių mąstyti kaip „Ruby“ programuotojas, kai veikia „JavaScript“ aplinkoje.

Pavyzdžiui, „RubyJS“ yra „JavaScript“ biblioteka, į vieną „JavaScript“ objektą įtraukianti daugelį pagrindinių primityvų. Tai, ką rašote, yra techniškai „JavaScript“, tačiau ypatingas „Ruby“ objektas dažniausiai elgiasi kaip „Ruby“ kodas. Jūsų laukia stygos, skaičiai, kartotojai ir skaitikliai.

Jei nepakanka parašyti „JavaScript“, kuris veikia kaip „Ruby“, „Opal“ išves „Ruby“ šaltinio kodą tiesiai į „JavaScript“. Tai dažnai elgiasi kaip „Ruby VM“, bet kartais taip nėra. Pavyzdžiui, „Ruby“ kintamos eilutės yra tiesiogiai konvertuojamos į nekintamas „JavaScript“ eilutes, o tai neturėtų kelti problemų kai kurioms programoms, tačiau gali kelti žmones iš proto. Kiti panašūs efektai gali sukelti nemandagių netikėtumų krašto atvejais.

Tiems, kurie nori daugiau, „HotRuby“ siūlo išsamesnį sprendimą - „JavaScript“ virtualią mašiną, kuri persijungia per „Ruby op“ kodus. Kodo bazė šiek tiek sensta, tačiau tikriesiems tikintiesiems ji siūlo dar vieną variantą.

„Java“

Sunku žinoti, kas įkvėpė „Google“ sukurti „Google Web Toolkit“ - išankstinį procesorių, kuris „Java“ paverčia „JavaScript“. Galbūt vadybininkas pamilo Java ir nenorėjo, kad ji numirtų. Galbūt jie turėjo papildomų „Java“ genijų, kurie laukė, kol paleis žiniatinklį.

Nepriklausomai nuo priežasties, jie tai padarė ir dažnai naudoja savo moderniausiems interneto produktams. Tai puiki dovana visiems, turintiems „Java“ krūvą ir neturint laiko jos perrašyti. Kalbos žarnyno yra, bet trūksta kai kurių rečiau pasitaikančių klasių, tokių kaip „BigInteger“; sakant, paprastai galite rasti būdą juos pridėti. Vartotojo sąsajos pagrindai daugiausia yra pasiskolinti iš „Swing“, todėl „Swing“ kūrėjai jausis kaip namie. Kitiems nebus per sunku išmokti.

„Google Web Toolkit“ toli gražu nėra vienintelis pasirinkimas „Java“ programuotojams. „Java2Script“ yra visiškai integruota su „Eclipse“, o „GrooScript“ paverčia bučiuojamą Java pusbrolį Groovy.

Yra keletas įrankių, kurie naudoja JVM baitų kodą su „JavaScript“ - protinga idėja, leidžianti įdiegti JAR failus net jei neturite „Java“ šaltinio. Kai kurie, pavyzdžiui, Doppio ir Node-jvm, yra vertėjai žodžiu; kiti, pvz., „TeaVM“ ar „Dragome“, visam laikui konvertuos baito kodą į „JavaScript“.

Erlang

Erlango mėgėjai turi keletą galimybių. Vienas iš sprendimų yra naudoti įrankį „Erjang“, paleidžiantį „Erlang“ JVM, kuris tada naudojamas „Java“ baito kodui su viena iš aukščiau pateiktų „Java“ parinkčių paleisti. Skamba paprastai, tiesa?

„Shen“ yra kompiliatorius, kuris „Erlang“ ir jo pusbrolius, pvz., „Elixir“, „Joxa“ ir „Lol“, paverčia „JavaScript“. Jei norite paleisti šį kodą „Node.js“, taip pat yra paketas „erlang-shen-js“.

Trečioji galimybė yra naudoti „LuvvieScript“ - griežtą „Erlang“ pogrupį, kuriam suteikta kabliukų, kad būtų galima pasiekti visus DOM objektus. Jūs naudojate mėgstamą „Erlang“ struktūrą ir ji paverčia jūsų instrukcijas į tai, ką supranta DOM. Tai nėra tas pats, bet tai padarys.

C

Daugelis žmonių nustemba pastebėję, kad jie gali naudoti „C“ ar „C“ tipo kalbas su „JavaScript“. Aišku, pagrindinė „JavaScript“ sintaksė yra gana panaši į C, tačiau žarnos skiriasi. C leidžia tiesiogiai paliesti atmintį, tačiau „JavaScript“ slepia visas šias detales. C leidžia jums manipuliuoti rodyklėmis, tačiau „JavaScript“ apsaugo jus nuo pavojingos jų galios. Vis dėlto šie skirtumai yra įveikiami šiek tiek sumaniai įsilaužus.

Gali būti nesąžininga vadinti LLJS C versija, tačiau ši „JavaScript“ versija siūlo statiškai įvestus kintamuosius ir programuotojo valdymą atmintyje - gerai, ne atmintį per se, bet jos „JavaScript“ versiją. Dokumentai mėgsta žadėti vykdyti be pauzių, nes nėra šiukšlių surinkimo.

Jei norite dirbti su standartiniu C, „Clue“ konvertuos C į „JavaScript“ ir įvairias kitas scenarijų kalbas, tokias kaip „Perl“ arba „Lua“. Kūrėjai netgi teigia, kad kai kurie kodai JIT šioms dinaminėms kalboms veiks greičiau nei tada, kai jie bus sudaryti į gimtąsias dvejetaines programas. Paslaptis ta, kad JTK vykdymo metu gali pastebėti dalykus, kurių pagrindiniai kompiliatoriai negalėjo, nes gali stebėti vykdomą programą.

Didžiausias vardas gali būti „Emscripten“, modifikuota LLVM versija, kuri yra perjungta tam, kad išspjautų ne mašininio kodo, o asm.js instrukcijas. Paslaptis ta, kad asm.js yra siauras „JavaScript“ pogrupis, sukurtas lengvai optimizuoti naujausiems „JavaScript“ varikliams, pvz., „SpiderMonkey“. Rezultatai yra įspūdingi, o geriausius įrodymus pateikia žaidimų bendruomenė. Tiek „Unity“, tiek „Unreal“ varikliai gali paleisti žaidimus su HTML5 suderinamose naršyklėse.

„Python“

„Python“ yra dar viena populiari dinaminė kalba, lengvai susiejanti su „JavaScript“. Daugelis vidinių ypatybių yra panašios, o kai kurie iš didžiausių skirtumų yra sintaksėje.

Paprastesnės parinktys, tokios kaip „RapydScript“ ir „PyvaScript“, siūlo tik į „Python“ panašią sintaksę, kuri gana tiesiogiai išversta į „JavaScript“. Jie atliks keletą transformacijų, pavyzdžiui, įdės garbanotus skliaustus, kad atitiktų tarpais įbrėžtus blokus, ir voilà - jis veikia naršyklėje. Tai labiau skirta programuotojams, kurie mąsto „JavaScript“, tačiau nori įvesti Python kalba, kaip sako kalbos mėgėjai.

Sudėtingesnės versijos, pvz., PYXC-PJ ir „Pyjs“, aktyviai pavers „Python“ į „JavaScript“, dažnai sukurdami tai, kas yra gana įskaitoma - arba bent jau tokia pat įskaitoma, kaip ir pradinis kodas. „Pyjs“ taip pat yra su valdikliu susijusių priemonių rinkiniu, kuris yra gana panašus į „Google Web Toolkit“.

Vis dėlto smagiausia gali būti „PyPy“, neįtikėtinas programinės įrangos inžinerijos žygdarbis, turintis beveik Rubės Goldbergo proporcijas. „Python“ eina ir veikia su „Python“ vertėju, parašytu „RPython“ - „Python“ pogrupyje, kurį lengva sukompiliuoti. Tada šis „RPython“ yra sukompiliuojamas į kažką panašaus į „C“, kurį galima perduoti į „Emscripten“. Kūrėjai teigia, kad jie gali parodyti kai kuriuos „Python“ etalonus, veikiančius greičiau „SpiderMonkey“ nei „CPython“.

Jei jie gali tai padaryti su „Python“ ir „C“, galite ir jūs.

„JavaScript“, kitu kostiumu

Žinoma, net kalbant apie „JavaScript“, jūs turite alternatyvų. Juk vieniems žmonėms patinka skyrybos ženklai, kitiems - ne. „CoffeeScript“ skirtas žmonėms, kurie to nedaro. Jei jums reikia programuoti „JavaScript“, bet nesinori įvesti tiek daug kabliataškių ar garbanotų skliaustų, „CoffeeScript“ yra skirtas jums.

„CoffeeScript“ žarnos yra tokios pačios kaip „JavaScript“, nes tai nėra kalba. Tai yra išankstinis procesorius, kuris prideda kabliataškius ir garbanotus skliaustus, todėl jums nereikia. Jūs įrašote savo programą į „Ruby“ tipo paprastumą, o „CoffeeScript“ paverčia ją minimalia „JavaScript“ versija.

Tai nėra tas pats, kas programuoti kita kalba, nes jūsų apibrėžti kintamieji ir funkcijos vis tiek elgsis kaip „JavaScript“ kintamieji ir funkcijos. Kintamieji vis tiek bus dinamiškai įvesti, o visi nedideli paūmėjimai vis tiek išliks. Matematika ir „squirrelly“, perkrautas „plus“ operatoriaus elgesys vis tiek jus nuvargins, bet jūs sutaupysite šiek tiek laiko rašydami.

„CoffeeScript“ pasaulis yra nepaprastai įvairus. Kai pasaulis suprato, kad gali iš anksto apdoroti savo kodą, daugelis įsitraukė į žaidimą. Pavyzdžiui, „Iced CoffeeScript“ yra panašus į įprastą „CoffeeScript“, tačiau su keletu papildomų konstrukcijų, dėl kurių asinchroniniai skambučiai tampa šiek tiek švaresni ir paprasčiau įvesti bei skaityti. Gali būti bent keliolika pusbrolių, siūlančių supaprastinti jūsų konkretų programavimo stilių.

Susiję straipsniai

  • 7 priežastys, kodėl pagrindai yra naujos programavimo kalbos
  • 7 nesenstančios „pilkųjų barzdų“ programavimo pamokos
  • 9 pažangiausios kalbos, kurias verta išmokti dabar
  • Parsisiųsti: Profesionalaus programuotojo verslo išlikimo vadovas
  • Parsisiųsti: 2015 metų technologijų apdovanojimai
  • Parsisiųsti: 29 patarimai, kaip sėkmingai dirbti kaip nepriklausomam kūrėjui
  • Apžvalga: Palyginti didieji keturi „Java“ IDE
  • Parsisiųsti: Praktinis naudojimas su 10 „JavaScript“ redaktorių ir IDE
  • 10 mūšių, siaučiančių dėl kūrėjų širdžių ir protų
  • Vienos raidės programavimo kalbų ataka
  • PHP prieš „Node.js“: nepaprastas mūšis už kūrėjo proto dalijimąsi
  • 15 technologijų, keičiančių kūrėjų darbą
  • 12 programavimo ateities prognozių
  • 15 karštų programavimo tendencijų - ir 15 šalčio
  • „Dev-olution“: Sveikiname 19 kompiuterių programuotojų kartų
  • 10 galimybių, kurias norime pamatyti HTML6
$config[zx-auto] not found$config[zx-overlay] not found