Programmēšana

Forši rīki kompilēšanai uz JavaScript

Katram programmētājam ir iecienīta valoda vai divas. Mūsdienās visveiksmīgāk ir JavaScript mīļotājiem, jo ​​viņu valoda pārņem internetu un internets pārņem pasauli. Tie, kuru sirdis dzīvo citur programmēšanas valodu pasaulē, tomēr ir iestrēguši. Viņi var vai nu palikt malā un nolādēt HTML, CSS, JavaScript un Node.js nerimstošo juggernautu, vai arī var atrast veidu, kā to mīlēt.

Par laimi, ir arī trešais veids, kas ļauj izbaudīt iecienītās valodas priekus, vienlaikus izvietojot kodu arvien paplašinātajā JavaScript pasaulē: vienkārši konvertējiet kodu, kas var būt pārsteidzoši viegli. Veiktspēja var nedaudz ciest, bet bieži vien daudz mazāk, nekā jūs varētu iedomāties. Tad jūs varat nosūtīt kodu pārlūkprogrammām un atmest mēģinājumus likt cilvēkiem instalēt izpildāmos failus.

Nelokāmais jutīsies, ka tā ir rupja kapitulācija, rūgta atkāpšanās no principiem, kas saista tevi ar iecienīto sintaksi. Daži pat var uzskatīt, ka tas ir nedaudz nodevība, tik nodevīga rīcība, ka jums tas jāslēpj no kolēģiem. Citi gluži pareizi ieteiks, ka tas nav tik vienkārši. Koda palaišana ir viena lieta. Daļu salīmēšana kopā un lietotāja saskarnes izveidošana ir daudz papildu darbu.

Jūs esat laipni aicināti iegrimt savā žēlumā, taču ir daudz racionalizācijas, kas padara ideju patīkamāku. Pirmkārt, JavaScript dzinēji darbojas daudz, daudz ātrāk nekā agrāk. Otrkārt, tīmekļa lietotāja saskarnes izveide nekad nav bijusi tik vienkārša, pateicoties ietvariem un bagātīgam HTML / CSS dizaina talantam. Treškārt, JavaScript kļūst mazliet par lingua franca. Ja jūs varat pārvērst visas šīs valodas uz JavaScript un saraksts ir pārsteidzoši garš, varat arī tās visas sasaistīt.

Šeit mēs aplūkojam mazo valodu bagātību, kas dažām populārākajām programmēšanas valodām ļauj apkopot JavaScript. Nākamajā rakstā tiks pētīts, kā izzūdošās valodas tiek atdzimtas, pievedot tās pārlūkprogrammā. Nav iemesla aizķerties ar žēlumu vai naidu. Šie paņēmieni ļauj izbaudīt iecienīto valodu un darboties visur, kur darbojas JavaScript.

Rubīns

Ir vairākas iespējas, kas ļauj domāt kā par Ruby programmētāju, darbojoties JavaScript vidē.

Piemēram, RubyJS ir JavaScript bibliotēka, kas vienā JavaScript objektā pievieno daudz pamata primitīvu. Jūsu rakstītais ir tehniski JavaScript, taču īpašais Ruby objekts lielāko daļu laika izturas kā Ruby kods. Stīgas, skaitļi, atkārtotāji un skaitītāji jūs gaida.

Ja nepietiek ar JavaScript rakstīšanu, kas darbojas kā Rubīns, Opal tulkos Ruby avota kodu tieši JavaScript. Tas bieži uzvedas kā Rubīna VM, bet dažreiz tā nav. Piemēram, Ruby mainīgās virknes tiek tieši pārveidotas par JavaScript nemainīgajām, kuras dažām lietojumprogrammām nevajadzētu sagādāt problēmas, bet dažus cilvēkus var padarīt ārprātīgus. Citi tādi nelieli efekti kā malu lietas var radīt nepieklājīgus pārsteigumus.

Tiem, kas vēlas vairāk, HotRuby piedāvā pilnīgāku risinājumu - JavaScript virtuālo mašīnu, kas pārvietojas caur Ruby op kodiem. Kodu bāze kļūst nedaudz novecojusi, taču patiesajiem ticīgajiem tā piedāvā vēl vienu iespēju.

Java

Ir grūti zināt, kas iedvesmoja Google izveidot Google Web Toolkit - priekšapstrādes procesoru, kas Java pārvērš JavaScript. Varbūt menedžeris mīlēja Java un nevēlējās, lai tā nomirst. Varbūt viņiem sēdēja papildu Java ģēniji, kas gaidīja tīmekļa palaišanu.

Lai kāds būtu iemesls, viņi to darīja, un viņi to bieži izmanto saviem vismodernākajiem tīmekļa produktiem. Tā ir lieliska dāvana ikvienam, kam ir Java kaudze un nav laika to pārrakstīt. Valodas iekšas ir visas, taču trūkst dažas mazāk izplatītas klases, piemēram, BigInteger; teikts, parasti jūs varat atrast veidu, kā tos pievienot. Lietotāja saskarnes ietvars lielā mērā ir aizgūts no Swing, tāpēc Swing izstrādātāji jutīsies kā mājās. Citiem nebūs pārāk grūti iemācīties.

Google Web Toolkit nebūt nav vienīgā izvēle Java programmētājiem. Java2Script ir pilnībā integrēts ar Eclipse, un GrooScript pārveido Java skūpstošo brālēnu Grooviju.

Ir vairāki rīki, kas palaiž JVM baitu kodu ar JavaScript - gudra ideja, kas ļauj izvietot JAR failus pat tad, ja jums nav Java avota. Daži, piemēram, Doppio un Node-jvm, ir tulki; citi, piemēram, TeaVM vai Dragome, baitu kodu pastāvīgi pārveidos JavaScript.

Erlang

Erlang mīļotājiem ir vairākas iespējas. Viens no risinājumiem ir izmantot Erjang, rīku, kas JVM palaiž Erlang, un pēc tam tiek izmantots Java baitu koda palaišanai ar vienu no iepriekš minētajām Java opcijām. Tas izklausās vienkārši, vai ne?

Šens ir kompilators, kas Erlangu un tā māsīcas, piemēram, Elixir, Joxa un Lol, pārvērš JavaScript. Ja vēlaties palaist šo kodu Node.js, tur ir arī pakete erlang-shen-js.

Trešā iespēja ir izmantot LuvvieScript, stingru Erlang apakškopu, kurai ir doti āķi, lai piekļūtu visiem DOM objektiem. Jūs izmantojat Erlang struktūru, kas jums patīk, un tā pārvērš jūsu instrukcijas par kaut ko, ko saprot DOM. Tas nav tieši tas pats, bet tas darīs.

C

Daudzi cilvēki ir pārsteigti, atklājot, ka viņi var izmantot C vai C līdzīgas valodas ar JavaScript. Protams, JavaScript pamata sintakse ir diezgan līdzīga C, bet iekšās ir atšķirīgas. C ļauj tieši pieskarties atmiņai, bet JavaScript slēpj visu šo informāciju. C ļauj jums manipulēt ar rādītājiem, bet JavaScript aizsargā jūs no to bīstamās ietekmes. Tomēr šīs atšķirības ir pārvaramas ar mazliet gudru uzlaušanu.

Varbūt nav taisnīgi saukt LLJS par C versiju, taču šī JavaScript versija piedāvā statiski ierakstītus mainīgos un programmētāja kontroli pār atmiņu - labi, nevis atmiņu per se, bet gan tās JavaScript versiju. Dokumentācijai patīk solīt izpildi bez pauzēm, jo ​​nav atkritumu savākšanas.

Ja vēlaties strādāt ar standarta C, Clue pārveidos C JavaScript un daudzās citās skriptu valodās, piemēram, Perl vai Lua. Izstrādātāji pat apgalvo, ka daži kodi JIT šajās dinamiskajās valodās faktiski darbosies ātrāk nekā tas, kad tas tiks apkopots vietējās binārās versijās. Noslēpums ir tāds, ka JIT izpildlaika laikā var pamanīt lietas, kuras pamata sastādītāji nevarēja, jo viņi var skatīties programmas darbību.

Lielākais nosaukums var būt Emscripten, modificēta LLVM versija, kas ir pārveidota, lai mašīnkoda vietā izspļautu instrukcijas vietnei asm.js. Noslēpums ir tas, ka asm.js ir šaura JavaScript apakškopa, kuru var viegli optimizēt jaunākie JavaScript dzinēji, piemēram, SpiderMonkey. Rezultāti ir iespaidīgi, un daži no labākajiem pierādījumiem nāk no spēļu kopienas. Gan Unity, gan Unreal dzinēji var darbināt spēles ar HTML5 saderīgās pārlūkprogrammās.

Python

Python ir vēl viena populāra dinamiska valoda, kas viegli kartē JavaScript. Daudzas iekšējās funkcijas ir līdzīgas, un dažas no lielākajām atšķirībām ir sintaksē.

Vienkāršākas opcijas, piemēram, RapydScript un PyvaScript, piedāvā tikai Python līdzīgu sintaksi, kas ir diezgan tieši tulkota JavaScript. Viņi veiks dažas transformācijas, piemēram, ievietos cirtainās iekavas, lai tās atbilstu atstarpēm ievilktajiem blokiem, un voilà - tas darbojas pārlūkprogrammā. Tie ir vairāk domāti programmētājiem, kuri domā JavaScript valodā, bet vēlas rakstīt pitoniski, kā saka valodas cienītāji.

Sarežģītākas versijas, piemēram, PYXC-PJ un Pyjs, aktīvi pārveidos Python JavaScript, bieži izveidojot kaut ko diezgan lasāmu vai vismaz tikpat lasāmu kā sākotnējais kods. Pyjs komplektācijā ietilpst arī logrīku rīkkopa, kas padara to diezgan līdzīgu Google tīmekļa rīkkopai.

Visjautrākais tomēr var būt PyPy, neticami programmatūras inženierijas sasniegumi ar gandrīz Rubē Goldberga proporcijām. Python iet un darbojas ar Python tulku, kas rakstīts RPython - Python apakškopa, kas paredzēta viegli kompilēšanai. Tad šis RPython tiek apkopots līdz kaut kam, kas izskatās kā C, un to var ievadīt Emscripten. Izstrādātāji apgalvo, ka viņi var parādīt dažus Python etalonus, kas darbojas ātrāk SpiderMonkey nekā CPython.

Ja viņi to var izdarīt ar Python un C, jūs varat arī.

JavaScript, citā kostīmā

Protams, pat ja runa ir par JavaScript, jums ir alternatīvas. Galu galā dažiem cilvēkiem patīk pieturzīmes, bet citiem ne. CoffeeScript ir paredzēts cilvēkiem, kuri to nedara. Ja jums ir jāprogrammē JavaScript, bet jūs neapmierināt, ierakstot tik daudz semikolu vai cirtainās iekavas, tad CoffeeScript ir domāts jums.

CoffeeScript iekšas ir tādas pašas kā JavaScript, jo tā patiesībā nav valoda. Tas ir priekšapstrādes procesors, kas pievieno semikolus un cirtainās iekavas, tāpēc jums tas nav jādara. Jūs ierakstāt savu programmu vienkāršai Rubīnam līdzīgā veidā, un CoffeeScript to pārvērš par minimizētu JavaScript versiju.

Tas nav tas pats, kas programmēšana citā valodā, jo jūsu definētie mainīgie un funkcijas joprojām darbosies kā JavaScript mainīgie un funkcijas. Mainīgie joprojām tiks dinamiski tipēti, un visi mazie saasinājumi joprojām būs. Matemātika un vāverīgā, pārslogotā plus operatora uzvedība jūs joprojām nogurdinās, taču jūs ietaupīsiet laiku, kamēr rakstīsit.

CoffeeScript pasaule ir ievērojami daudzveidīga. Kad pasaule saprata, ka tā var priekšapstrādāt savu kodu, daudzi iesaistījās spēlē. Piemēram, Iced CoffeeScript ir līdzīgs parastajam CoffeeScript, taču tajā ir daži papildu uzbūvējumi, kas padara asinhronos zvanus mazliet tīrākus un vienkāršākus rakstīt un lasīt. Var būt vismaz ducis brālēnu, kas piedāvā vienkāršot jūsu konkrēto programmēšanas stilu.

Saistītie raksti

  • 7 iemesli, kāpēc ietvarstruktūras ir jaunās programmēšanas valodas
  • 7 mūžīgas „pelēko bārdu” programmēšanas stundas
  • 9 progresīvas valodas, kuras ir vērts mācīties jau tagad
  • Lejupielādēt: Profesionālā programmētāja biznesa izdzīvošanas ceļvedis
  • Lejupielādēt: 2015. gada balva par tehnoloģiju
  • Lejupielādēt: 29 padomi, kā gūt panākumus kā neatkarīgam izstrādātājam
  • Pārskats: Salīdzināti lielie četri Java IDE
  • Lejupielādēt: Hands-on ar 10 JavaScript redaktoriem un IDE
  • 10 cīņas, kas plosās izstrādātāju sirdīs un prātos
  • Viena burta programmēšanas valodu uzbrukums
  • PHP vs Node.js: episka cīņa par izstrādātāja domu kopīgošanu
  • 15 tehnoloģijas, kas maina izstrādātāju darbu
  • 12 prognozes par programmēšanas nākotni
  • 15 karstas programmēšanas tendences - un 15 aukstas
  • Izstrāde: sveicot 19 datorprogrammētāju paaudzes
  • 10 iespējas, kuras mēs vēlamies redzēt HTML6
$config[zx-auto] not found$config[zx-overlay] not found