Programiranje

Odlična orodja za sestavljanje v JavaScript

Vsak programer ima najljubši jezik ali dva. Ljubitelji JavaScript so danes najbolj posrečeni, ker njihov jezik prevzema internet, internet pa svet. Tisti, katerih srca prebivajo drugje v svetu programskega jezika, pa so obtičali. Lahko ostanejo na stranskem tiru in preklinjajo neusmiljen juggernaut HTML, CSS, JavaScript in Node.js ali pa lahko najdejo način, kako ga imajo radi.

Na srečo obstaja tretji način, ki vam omogoča, da uživate v užitkih svojega najljubšega jezika, medtem ko svojo kodo še vedno nameščate v vedno večji svet JavaScript: preprosto pretvorite kodo, kar je lahko presenetljivo enostavno. Uspešnost lahko nekoliko trpi, vendar pogosto veliko manj, kot si morda predstavljate. Nato lahko svojo kodo pošljete brskalnikom in prenehate s poskusi, da bi ljudje namestili izvršljive datoteke.

Neomajni se bodo počutili, kot da je to grozna kapitulacija, grenak odmik od načel, ki vas vežejo na vašo najljubšo skladnjo. Nekateri morda celo čutijo, da je to malo izdaja, dejanje tako izdajno, da ga morate skriti pred svojimi kolegi. Drugi bodo povsem pravilno predlagali, da ni tako preprosto. Pridobivanje kode je eno. Zlepljanje delov in ustvarjanje uporabniškega vmesnika je veliko dodatnega dela.

Dobrodošli ste v svojem usmiljenju, vendar obstaja veliko racionalizacij, zaradi katerih je ideja bolj všečna. Prvič, motorji JavaScript delujejo veliko, veliko hitreje kot v preteklosti. Drugič, izdelava spletnega uporabniškega vmesnika še nikoli ni bila enostavnejša, zahvaljujoč ogrodjem in obilnim talentom za oblikovanje HTML / CSS. Tretjič, JavaScript postaja malce lingua franca. Če lahko vse te jezike pretvorite v JavaScript in je seznam presenetljivo dolg, jih lahko tudi povežete.

Tu si bomo ogledali bogastvo majhnih jezikov, ki nekaterim najbolj priljubljenim programskim jezikom omogočajo prevajanje v JavaScript. Prihodnji članek bo raziskal, kako se zbližujoči se jeziki ponovno rodijo, tako da jih prenesete v brskalnik. Ni razloga, da bi se zataknili v usmiljenju ali sovraštvu. Te tehnike vam omogočajo, da uživate v svojem najljubšem jeziku in zaženete kjer koli JavaScript.

Ruby

Obstaja več možnosti, ki vam omogočajo razmišljanje kot programerja Ruby med izvajanjem v okolju JavaScript.

Na primer, RubyJS je knjižnica JavaScript, ki v enem objektu JavaScript doda veliko osnovnih primitivov. Kar napišete, je tehnično JavaScript, vendar se poseben objekt Ruby večino časa obnaša kot Rubyjeva koda. Strune, številke, pretvorniki in števci vas čakajo.

Če pisanje JavaScripta, ki deluje kot Ruby, ni dovolj, bo Opal prevedel izvorno kodo Rubyja neposredno v JavaScript. Pogosto se obnaša kot Ruby VM, včasih pa se ne. Spremenljivi nizi Ruby, na primer, se pretvorijo neposredno v nespremenljive JavaScript, kar nekaterim aplikacijam ne bi smelo predstavljati težav, lahko pa bi nekaj ljudi obnorelo. Drugi majhni učinki, kot je ta, lahko v osrednjih primerih povzročijo nesramna presenečenja.

Za tiste, ki želijo več, HotRuby ponuja popolnejšo rešitev, navidezni stroj JavaScript, ki se vrti prek Ruby op kod. Osnova kode se sicer nekoliko stara, resničnim vernikom pa ponuja še eno možnost.

Java

Težko je vedeti, kaj je navdihnilo Google pri ustvarjanju Googlovega spletnega orodja, predprocesorja, ki pretvori Javo v JavaScript. Morda je upravitelj ljubil Javo in ni hotel, da bi umrla. Morda so imeli naokoli dodatne genije Java, ki so čakali, da zaženejo splet.

Ne glede na razlog so to storili in pogosto uporabljajo za svoje najbolj izpopolnjene spletne izdelke. To je odlično darilo za vsakogar, ki ima kup Jave in nima časa, da ga prepiše. Čreva jezika so tam, vendar manjkajo nekateri manj pogosti razredi, kot je BigInteger; Kljub temu lahko običajno najdete način, kako jih dodati. Okvir uporabniškega vmesnika je v veliki meri izposojen pri Swingu, zato se bodo razvijalci Swinga počutili kot doma. Drugi se ne bodo preveč težko naučili.

Google Web Toolkit še zdaleč ni edina izbira za programerje Java. Java2Script je popolnoma integriran z Eclipse, GrooScript pa pretvori Javin poljubni bratranec Groovy.

Obstaja več orodij, ki zaženejo bajtno kodo JVM z JavaScriptom, pametna ideja, ki vam omogoča razmestitev datotek JAR, tudi če nimate vira Java. Nekateri, kot sta Doppio in Node-jvm, so tolmači; drugi, kot sta TeaVM ali Dragome, bodo bajtno kodo trajno pretvorili v JavaScript.

Erlang

Ljubitelji Erlanga imajo več možnosti. Ena od rešitev je uporaba Erjanga, orodja, ki na JVM zažene Erlang, ki se nato uporablja za zagon Java bajtne kode z eno od zgornjih možnosti Java. Sliši se preprosto, kajne?

Shen je prevajalnik, ki pretvori Erlang in njegove sorodnike, kot so Elixir, Joxa in Lol, v JavaScript. Če želite to kodo zagnati v Node.js, obstaja tudi paket erlang-shen-js.

Tretja možnost je uporaba LuvvieScripta, stroge podmnožice Erlanga, ki je dobila kljuke za dostop do vseh predmetov DOM. Uporabljate strukturo Erlang, ki vam je všeč, in pretvori vaša navodila v nekaj, kar DOM razume. Ni povsem enako, vendar se bo.

C

Mnogi ljudje so presenečeni, ko lahko z JavaScriptom uporabljajo jezike, podobne C ali C. Seveda je osnovna sintaksa JavaScript precej podobna C, toda drobovje je drugačno. C vam omogoča neposredno dotikanje pomnilnika, vendar JavaScript skriva vse te podrobnosti. C vam omogoča manipulacijo s kazalci, vendar vas JavaScript ščiti pred njihovo nevarno močjo. Kljub temu pa je te razlike mogoče premagati z malo pametnega vdiranja.

Mogoče ne bi bilo pošteno, če bi LLJS imenovali različico C, vendar ta različica JavaScripta ponuja statično natipkane spremenljivke in programski nadzor nad pomnilnikom - no, ne spomin sam po sebi, temveč različico JavaScript. Dokumentacija rada obljublja izvedbo brez premora, ker ni odvoza smeti.

Če želite delati s standardnim C, bo Clue pretvoril C v JavaScript in številne druge skriptne jezike, kot sta Perl ali Lua. Razvijalci celo trdijo, da bo neka koda v teh dinamičnih jezikih dejansko delovala hitreje v JIT kot pri prevajanju v domače binarne datoteke. Skrivnost je v tem, da JIT-ji med izvajanjem lahko opazijo stvari, ki jih osnovni prevajalniki niso mogli, ker lahko spremljajo izvajanje programa.

Največje ime je lahko Emscripten, modificirana različica LLVM, ki je preoblikovana tako, da namesto strojne kode izpusti navodila za asm.js. Skrivnost je v tem, da je asm.js ozka podskupina JavaScript, zasnovana tako, da jo je mogoče enostavno optimizirati z najnovejšimi mehanizmi JavaScript, kot je SpiderMonkey. Rezultati so impresivni, nekaj najboljših dokazov pa prihaja iz igralniške skupnosti. Tako motorji Unity kot Unreal lahko poganjata igre v brskalnikih, združljivih s HTML5.

Python

Python je še en priljubljen dinamični jezik, ki se enostavno preslika v JavaScript. Številne notranje funkcije so si podobne, nekatere največje razlike pa so v sintaksi.

Preprostejše možnosti, kot sta RapydScript in PyvaScript, zgolj ponujajo sintakso, podobno Pythonu, ki je dokaj neposredno prevedena v JavaScript. Naredili bodo nekaj transformacij, na primer vstavite skodrane oklepaje, da se ujemajo z bloki, umaknjenimi s presledki, in voilà - deluje v brskalniku. To je bolj za programerje, ki razmišljajo v jeziku JavaScript, vendar želijo vnašati pitonsko, kot pravijo ljubitelji jezika.

Bolj zapletene različice, kot sta PYXC-PJ in Pyjs, bodo aktivno pretvorile Python v JavaScript, pogosto pa ustvarile nekaj, kar je povsem berljivo - ali vsaj tako berljivo kot izvirna koda. Pyjs ima tudi pripomoček za pripomočke, zaradi česar je dokaj podoben Googlovemu spletnemu orodju.

Najbolj zabaven pa je morda PyPy, neverjeten podvig programskega inženiringa s skoraj Rube Goldbergian proporci. Python vstopi in deluje na tolmaču Python, napisanem v RPythonu, podmnožici Pythona, zasnovani za enostavno prevajanje. Ta RPython se nato zbere do nečesa, kar je videti kot C, kar lahko vnesemo v Emscripten. Razvijalci trdijo, da lahko prikazujejo nekatera merila Python, ki delujejo hitreje v SpiderMonkey kot CPython.

Če lahko to storijo s Pythonom in C, lahko tudi vi.

JavaScript, v drugem kostumu

Seveda imate tudi druge možnosti JavaScript. Konec koncev so nekateri radi ločila, drugi pa ne. CoffeeScript je namenjen ljudem, ki tega ne počnejo. Če morate programirati v JavaScriptu, vendar ne želite vnašati toliko podpičkov ali kodrastih oklepajev, potem je CoffeeScript za vas.

Pogumi CoffeeScript-a so enaki JavaScript-u, ker v resnici ni jezik. To je predprocesor, ki doda podpičja in zavite oklepaje, zato vam ni treba. Program vtipkate v Ruby podobni preprostosti, CoffeeScript pa ga pretvori v pomanjšano različico JavaScripta.

To ni enako kot programiranje v drugem jeziku, ker se spremenljivke in funkcije, ki jih določite, še vedno obnašajo kot spremenljivke in funkcije JavaScript. Spremenljivke bodo še vedno dinamično vnesene in vsa majhna poslabšanja bodo še vedno tam. Matematika in veveričasto, preobremenjeno vedenje operaterja plus vas bo še vedno utrujalo, vendar boste prihranili nekaj časa pri tipkanju.

Svet CoffeeScript je izjemno raznolik. Ko je svet ugotovil, da lahko vnaprej obdela svojo kodo, so mnogi začeli igrati. Iced CoffeeScript je na primer podoben običajnemu CoffeeScriptu, vendar z nekaj dodatnimi konstrukcijami, ki asinhrone klice naredijo nekoliko čistejše in enostavnejše za tipkanje in branje. Za poenostavitev vašega posebnega sloga programiranja vam lahko ponudi vsaj ducat bratrancev.

Povezani članki

  • 7 razlogov, zakaj so ogrodja novi programski jeziki
  • 7 brezčasnih lekcij programiranja 'sive brade'
  • 9 vrhunskih jezikov, ki se jih je vredno naučiti zdaj
  • Prenesi: Vodnik za poslovno preživetje poklicnega programerja
  • Prenesi: Nagrade za tehnologijo leta 2015
  • Prenesi: 29 nasvetov za uspeh kot neodvisni razvijalec
  • Pregled: Primerjali so se veliki štirje Java IDE
  • Prenesi: Praktično z 10 urejevalniki JavaScript in IDE-ji
  • 10 bitk, ki divjajo za srca in misli razvijalcev
  • Napad enočrkovnih programskih jezikov
  • PHP vs Node.js: epska bitka za delež misli razvijalcev
  • 15 tehnologij, ki spreminjajo način razvijalcev
  • 12 napovedi za prihodnost programiranja
  • 15 vročih programskih trendov - in 15 hladnih
  • Razvoj: Pozdrav 19 generacijam računalniških programerjev
  • 10 zmožnosti, ki jih želimo videti v HTML6
$config[zx-auto] not found$config[zx-overlay] not found