Ohjelmointi

Hienoja työkaluja JavaScriptin kääntämiseen

Jokaisella ohjelmoijalla on suosikkikieli tai kaksi. JavaScript-ystäville on onnekkain nykyään, koska heidän kielensä valtaa Internetin ja Internet valtaa maailman. Ne, joiden sydän asuu muualla ohjelmointikielimaailmassa, ovat kuitenkin jumissa. He voivat joko pysyä sivussa ja kirota HTML: n, CSS: n, JavaScriptin ja Node.js: n armoton juggernaut, tai löytää keinon rakastaa sitä.

Onneksi on olemassa kolmas tapa, jonka avulla voit nauttia suosikkikielesi nautinnoista samalla, kun käytät koodiasi yhä laajenevaan JavaScript-maailmaan: Muunna koodisi yksinkertaisesti, mikä voi olla yllättävän helppoa. Suorituskyky voi kärsiä hieman, mutta usein paljon vähemmän kuin luulisi. Sitten voit lähettää koodisi selaimille ja lopettaa yrittävät saada ihmiset asentamaan suoritettavia tiedostoja.

Vakaa tuntuu siltä, ​​että tämä on karkea antautuminen, katkera vetäytyminen periaatteista, jotka sitovat sinut suosikki syntaksisi. Jotkut saattavat jopa tuntea sen olevan vähän pettämistä, niin petturista, että sinun on piilotettava se kollegoiltasi. Toiset ehdottavat aivan oikein, että se ei ole niin yksinkertaista. Koodin suorittaminen on yksi asia. Osien liittäminen yhteen ja käyttöliittymän luominen on paljon lisätyötä.

Olet tervetullut uppoutumaan sääliisi, mutta on paljon järkeistyksiä, jotka tekevät ajatuksesta miellyttävämmän. Ensinnäkin JavaScript-moottorit toimivat paljon, paljon nopeammin kuin aikaisemmin. Toiseksi verkkokäyttöliittymän luominen ei ole koskaan ollut näin helppoa kehysten ja runsaan HTML / CSS-suunnittelukykyjen ansiosta. Kolmanneksi, JavaScriptistä on tulossa hieman lingua franca. Jos voit muuntaa kaikki nämä kielet JavaScriptiksi ja luettelo on yllättävän pitkä, voit myös linkittää ne kaikki yhteen.

Tässä tarkastellaan runsaasti pieniä kieliä, jotka mahdollistavat joidenkin suosituimpien ohjelmointikielien kääntämisen JavaScriptiin. Tulevassa artikkelissa tutkitaan, kuinka hiipuvat kielet syntyvät uudelleen tuomalla ne selaimeen. Ei ole mitään syytä joutua sääliin tai vihaan. Näiden tekniikoiden avulla voit nauttia suosikkikielestäsi ja käyttää kaikkialla, missä JavaScript toimii.

Rubiini

On useita vaihtoehtoja, joiden avulla voit ajatella kuin Ruby-ohjelmoija ajaessasi JavaScript-ympäristössä.

Esimerkiksi RubyJS on JavaScript-kirjasto, joka lisää monet perusprimitiivit yhteen JavaScript-objektiin. Kirjoituksesi on teknisesti JavaScriptiä, mutta erityinen Ruby-objekti käyttäytyy suurimman osan ajasta kuten Ruby-koodi. Merkkijonot, numerot, iteraattorit ja laskurit odottavat sinua.

Jos Rubyn tapaan toimivan JavaScriptin kirjoittaminen ei riitä, Opal kääntää Rubyn lähdekoodin suoraan JavaScriptiksi. Se käyttäytyy usein kuin Ruby VM, mutta joskus ei. Esimerkiksi Rubyn muutettavissa olevat merkkijonot muunnetaan suoraan JavaScriptin muuttumattomiksi, mikä ei saisi olla ongelma joillekin sovelluksille, mutta saattaa ajaa muutaman ihmisen hulluksi. Muut tämän kaltaiset pienet vaikutukset voivat johtaa töykeisiin yllätyksiin reunatapauksissa.

Niille, jotka haluavat enemmän, HotRuby tarjoaa täydellisemmän ratkaisun, JavaScript-virtuaalikoneen, joka sekoittaa Ruby op -koodeja. Koodipohja vanhenee hieman, mutta se tarjoaa tosi uskoville toisen vaihtoehdon.

Java

On vaikea tietää, mikä inspiroi Googleä luomaan Google Web Toolkit, esiprosessori, joka muuntaa Java Java-koodiksi. Ehkä johtaja rakasti Javaa eikä halunnut sen kuolevan. Ehkä heillä oli ylimääräisiä Java-neroita istumassa ja odottamassa verkon käyttöä.

Mistä syystä tahansa, he tekivät sen ja käyttävät sitä usein kehittyneimmissä verkkotuotteissaan. Se on hieno lahja kenelle tahansa, jolla on kasa Java ja jolla ei ole aikaa kirjoittaa sitä uudelleen. Kielen sisut ovat kaikki olemassa, mutta jotkut harvinaisemmista luokista, kuten BigInteger, puuttuvat; sanoen, voit yleensä löytää tavan lisätä ne. Käyttöliittymäkehys on suurelta osin lainattu Swingiltä, ​​joten Swing-kehittäjät tuntevat olonsa kotoisaksi. Toisten ei tule olemaan liian vaikea oppia.

Google Web Toolkit ei ole läheskään ainoa valinta Java-ohjelmoijille. Java2Script on täysin integroitu Eclipsiin, ja GrooScript muuntaa Javan suutelevan serkkun Groovyn.

On olemassa useita työkaluja, jotka käyttävät JVM-tavukoodia JavaScriptillä, älykäs idea, jonka avulla voit ottaa JAR-tiedostot käyttöön, vaikka sinulla ei olisi Java-lähdettä. Jotkut, kuten Doppio ja Node-jvm, ovat tulkkia; toiset, kuten TeaVM tai Dragome, muuntavat tavukoodin JavaScriptiksi pysyvästi.

Erlang

Erlang-ystävillä on useita vaihtoehtoja. Yksi ratkaisu on käyttää Erjang-työkalua, joka käyttää Erlangia JVM: ssä, jota käytetään sitten Java-tavukoodin suorittamiseen yhdellä yllä olevista Java-vaihtoehdoista. Se kuulostaa yksinkertaiselta, eikö?

Shen on kääntäjä, joka muuntaa Erlangin ja sen serkut, kuten Elixir, Joxa ja Lol, JavaScriptiksi. Jos haluat suorittaa tämän koodin Node.js-tiedostossa, siellä on myös paketti erlang-shen-js.

Kolmas vaihtoehto on käyttää LuvvieScriptiä, joka on tiukka Erlang-osajoukko, jolle on annettu koukkuja kaikkien DOM-objektien käyttämiseen. Käytät rakastamaasi Erlang-rakennetta, ja se muuttaa ohjeesi sellaiseksi, jonka DOM ymmärtää. Se ei ole aivan sama, mutta se tulee.

C

Monet ihmiset ovat yllättyneitä siitä, että he voivat käyttää C- tai C-tyyppisiä kieliä JavaScriptin kanssa. Toki, JavaScriptin perussyntaksi on melko samanlainen kuin C, mutta suolet ovat erilaiset. C: n avulla voit koskettaa muistia suoraan, mutta JavaScript piilottaa kaikki nämä yksityiskohdat. C antaa sinun manipuloida osoittimia, mutta JavaScript suojaa sinua niiden vaaralliselta voimalta. Nämä erot ovat kuitenkin ylitettävissä hieman älykkäällä hakkeroinnilla.

Ei ehkä ole oikeudenmukaista kutsua LLJS: ää C-versiona, mutta tämä JavaScripti-versio tarjoaa staattisesti kirjoitettuja muuttujia ja ohjelmoijan hallinnan muistille - ei muistille sinänsä, vaan sen JavaScript-versiolle. Dokumentaatio haluaa lupauksen keskeyttämisestä, koska roskakoria ei ole.

Jos haluat työskennellä tavallisen C: n kanssa, Clue muuntaa C: n JavaScriptiksi ja useiksi muiksi komentosarjakieliksi, kuten Perl tai Lua. Kehittäjät väittävät jopa, että osa koodista toimii tosiasiallisesti nopeammin JIT: ssä näillä dynaamisilla kielillä kuin se käännetään alkuperäisiin binääreihin. Salaisuus on, että yhteiset tutkintaryhmät voivat havaita ajon aikana asioita, joita peruskääntäjät eivät voineet, koska he voivat katsella ohjelmaa.

Suurin nimi voi olla Emscripten, LLVM: n modifioitu versio, joka on kytketty uudelleen sylkemään ohjeet asm.js: lle konekoodin sijaan. Salaisuus on, että asm.js on kapea JavaScript-joukko, joka on suunniteltu optimoimaan helposti uusimmilla JavaScript-moottoreilla, kuten SpiderMonkey. Tulokset ovat vaikuttavia, ja osa parhaista todisteista tulee peliyhteisöltä. Sekä Unity- että Unreal-moottorit voivat pelata pelejä HTML5-yhteensopivilla selaimilla.

Python

Python on toinen suosittu dynaaminen kieli, joka kartoitetaan helposti JavaScriptiin. Monet sisäisistä ominaisuuksista ovat samanlaisia, ja jotkut suurimmista eroista ovat syntaksissa.

Yksinkertaisemmat vaihtoehdot, kuten RapydScript ja PyvaScript, tarjoavat vain Python-tyyppisen syntaksin, joka käännetään melko suoraan JavaScriptiksi. He tekevät muutaman muunnoksen, kuten lisää kiharat suluet, jotta ne sopivat tyhjään tilaan sisennettyihin lohkoihin, ja voilà - se toimii selaimessa. Nämä ovat enemmän ohjelmoijille, jotka ajattelevat JavaScriptissä, mutta haluavat kirjoittaa Python-sanan, kuten kielen ystävät sanovat.

Monimutkaisemmat versiot, kuten PYXC-PJ ja Pyjs, muuntavat aktiivisesti Pythonin JavaScriptiksi, luoden usein jotain, joka on melko luettavissa - tai ainakin yhtä luettavissa kuin alkuperäinen koodi. Pyjs mukana tulee myös widget-työkalupakki, joka tekee siitä melko samanlaisen kuin Google Web Toolkit.

Hauskin voi kuitenkin olla PyPy, uskomaton ohjelmistosuunnittelu, melkein Rube Goldbergin mittasuhteet. Python menee sisään ja suorittaa Python-tulkin, joka on kirjoitettu RPythoniin, joka on Pythonin alaryhmä, joka on suunniteltu helposti käännettäväksi. Tämä RPython kootaan sitten sellaiseksi, joka näyttää C: ltä, joka voidaan syöttää Emscripteniin. Kehittäjät väittävät pystyvänsä näyttämään joitain Python-vertailuarvoja, jotka toimivat nopeammin SpiderMonkeyssä kuin CPython.

Jos he voivat tehdä sen Pythonilla ja C: llä, voit tehdä myös sinä.

JavaScript, toisessa puvussa

Tietenkin, jopa JavaScriptin suhteen, sinulla on vaihtoehtoja. Loppujen lopuksi jotkut ihmiset pitävät välimerkistä ja toiset eivät. CoffeeScript on tarkoitettu ihmisille, jotka eivät. Jos sinun on ohjelmoitava JavaScriptiä, mutta et halua kirjoittaa niin monta puolipistettä tai kiharaa sulkeita, niin CoffeeScript on sinua varten.

CoffeeScriptin sisut ovat samat kuin JavaScriptilla, koska se ei oikeastaan ​​ole kieli. Se on esiprosessori, joka lisää puolipisteet ja kiharat suluet, joten sinun ei tarvitse. Kirjoitat ohjelmasi yksinkertaisella Ruby-tyyliin, ja CoffeeScript muuntaa sen JavaScriptin pienennetyksi versioksi.

Tämä ei ole sama kuin ohjelmointi toisella kielellä, koska määrittämäsi muuttujat ja toiminnot toimivat edelleen kuten JavaScript-muuttujat ja -funktiot. Muuttujat kirjoitetaan edelleen dynaamisesti, ja kaikki pienet pahenemiset ovat edelleen olemassa. Plus-operaattorin matematiikka ja orava, ylikuormitettu käyttäytyminen kuluttavat silti sinua, mutta säästät aikaa kirjoittamalla.

CoffeeScript-maailma on huomattavan monipuolinen. Kun maailma tajusi voivansa esikäsitellä koodinsa, monet pääsivät peliin. Esimerkiksi Iced CoffeeScript on kuin tavallinen CoffeeScript, mutta siinä on muutama ylimääräinen rakenne, joka tekee asynkronisista puheluista hieman puhtaampia ja yksinkertaisempia kirjoittaa ja lukea. Ainakin tusina serkkua voi tarjota yksinkertaistamaan tiettyä ohjelmointityyliäsi.

Aiheeseen liittyvät artikkelit

  • 7 syytä miksi kehykset ovat uusia ohjelmointikieliä
  • 7 ajatonta opetusta harmaparran ohjelmoinnista
  • 9 huipputason kieltä, jotka kannattaa oppia nyt
  • Ladata: Ammatillisen ohjelmoijan liiketoiminnan selviytymisopas
  • Ladata: Vuoden 2015 teknologiapalkinnot
  • Ladata: 29 vinkkiä menestymään itsenäisenä kehittäjänä
  • Arvostelu: Neljä suurta Java IDE: tä verrattiin
  • Ladata: Käytännössä 10 JavaScript-editoria ja IDE: tä
  • 10 taistelua, jotka raivoavat kehittäjien sydämille ja mielille
  • Yhden kirjaimen ohjelmointikielien hyökkäys
  • PHP vs Node.js: eeppinen taistelu kehittäjien mielenjaosta
  • 15 tekniikkaa muuttaa kehittäjien toimintaa
  • 12 ennustetta ohjelmoinnin tulevaisuudesta
  • 15 kuumaa ohjelmointitrendiä - ja 15 kylmänä
  • Dev-olution: Tervehdys 19 sukupolven tietokoneohjelmoijille
  • 10 ominaisuutta, jotka haluamme nähdä HTML6: ssa
$config[zx-auto] not found$config[zx-overlay] not found