25 komentářů k článku Do hlubin implementací JavaScriptu: 5. díl – implementace mimo prohlížeče:

  1. pas

    Adobe AIR
    Hezký článek. Jen bych doplnil Adobe AIR, který krásně integruje web browser (WebKit) s Flash Playerem, a to tak, že jak JavaScript, tak i ActionScript lze kombinovat při manipulaci s oběma objektovými modely.

    1. David MajdaAutor příspěvku

      Re: Adobe AIR

      Zajímavé, děkuji za doplnění. RIA platformy nejsou moje silná stránka a v Resigově přehledu vede do AIR jen šipka z JSCore, o kterém jsme psal minule, tak jsem to dál nezkoumal.

  2. nigol

    Dynamické jazyky v Javě
    Ono těch jazyků asi bylo víc. Třeba takové JScheme vyšlo v dubnu 1998 ve verzi 1.4, takže si myslím, že projekt musel minimálně v roce 1997 začít také. Já ho mám dokonce portované do mobilu do J2ME ;)

    1. David MajdaAutor příspěvku

      Re: Dynamické jazyky v Javě

      V článku zcela záměrně píšu „jde o jednu z prvních“, „Konkurovat mu v tomto ohledu může asi jen Jython“ apod. – popravdě jsem trochu čekal, že někdo bude vědět o nějakém ještě starším projektu, tak jsem volil opatrné formulace. Že to je zrovna implementace lispu mě vůbec nepřekvapuje :-)

  3. Ondřej Žára

    V8 na serveru
    Ahoj,

    timto (snad relevantnim) komentarem bych si rad udelal malinkate PR na svuj drobny projekt – http://code.google.com/p/v8cgi/ – c++ wrapper nad V8 s cilem pouzit JS na serveru (jako CGI/FastCGI). V soucasne dobe funguje podpora pro MySQL a sepsal jsem i par podpurnych c++/js knihoven pro HTTP, sablony atp. Na udrzbu a dalsi featury nemam tolik casu, kolik bych chtel, takze do projektu rad prijmu nejakeho dalsiho zajemce :)

    V8 mi prislo jako optimalni volba, neb se (v porovnani se SpiderMonkey) chlubi vyssi rychlosti, coz muze byt v CGI/FastCGI prostredi celkem vyhoda.

  4. Mazarik

    spustanie javy z javascriptu
    Nielen v Rhine je mozne spustat javovske triedy a balicky a pracovat s nimi ako s nativnymi objektami Javascriptu. Je to mozne aj vo Firefoxe (v inych prehliadacoch som to neskusal).
    napr.

    var test = new java.util.Date();
    var doc = document.open();
    doc.write("java.util.Date.toString = " + test + "
    "); doc.write("typeof(java.util.Date) = " + typeof(test) + "
    "); doc.close();
    1. David MajdaAutor příspěvku

      Re: spustanie javy z javascriptu

      Pro ostatní čtenáře doplním, že se jedná o technologii LiveConnect a slouží primárně ke komunikaci skriptů na webových stránkách s applety v Javě.

      Je to poměrně obskurní technologie a do budoucna se počítá s jejím odstraněním s tím, že s applety se bude komunikovat pomocí standardního NPAPI. Zdá se, že nyní se čeká na to, než bude k dispozici NPAPI-enabled plugin na Mac OS X.

    1. David MajdaAutor příspěvku

      Re: Jaxer
      Jak píšu v úvodu, výčet implementací není úplný – to by vás článek nejspíš unudil. Nicméně Jaxer jsem neznal, takže děkuji za doplnění.

      1. Borek Bernard

        Re: Jaxer
        Abych byl upřímný, věci jako Rhino nebo JScript.NET mi připadají spíš jako technologické kuriozity bez větších možností praktického uplatnění, zatímco Jaxer je inovativní přístup, který může potenciálně mít dost výrazný přínos pro webový vývoj (třeba JavaScriptová validace, která funguje identicky na klientu i na serveru je úžasná vlastnost, kterou jiné platformy nenabízejí). Asi proto mi v článku Jaxer chyběl, i když chápu, že nelze zmínit úplně každou technologii na světě.

        1. David MajdaAutor příspěvku

          Re: Jaxer

          Rhino rozhodně není jen „technologická kuriozita“, zcela seriozních uplatnění má mnoho, například:

          • doplnění skriptování do nějaké apliakce v Javě (analogie Visual Basicu v Microsoft Office)
          • psaní unit testů k aplikacím v Javě v jazyce, který není tak ukecaný
          • sdílení kódu mezi klientskou a serverovou částí webové aplikace, která běží na platformě Java
          • snadná práce s XML uvnitř jinak Javové apliakce pomocí E4X
          • psaní celých multiplatformních desktopových aplikací v JavaScriptu
          • psaní celých webových aplikací v JavaScriptu

          Jistě by se daly vymyslet uplatnění další, ostatně viz příklady použití odkazované z článku. Situace u JScript.NET je analogická.

          1. Borek Bernard

            Re: Jaxer
            Určitě je řada lidí, která Rhino používá, ale pokud se nepletu, konceptuálně je Rhino podobné projektům Jython nebo JRuby, což jsou jazyky konvenčnější a tedy používanější (obzvlášť o kombinaci Java+Python je slyšet často). Jaxer je naproti tomu docela originální počin mající malou konkurenci, což byl asi hlavní důvod, proč jsem ho chtěl zmínit.

            Jinak teoretické možnosti JScript.NET jsou podobné možnostem Rhina, ale na platformě .NET je to v podstatě mrtvý, skoro nepoužívaný jazyk (v porovnání s jinými).

            1. Jiří Knesl

              Re: Jaxer
              Jen na okraj. Jaxer je poháněn právě Rhinem. Jsou to asi 2 týdny, co jsem to na stránkách Aptany četl.

              Teď se mi podařilo najít pouze:
              "Jaxer's core engine is based on the same Mozilla engine that you'll find in the popular Mozilla Firefox browser." (http://www.aptana.com/jaxer zalozka How Jaxer works)

              Rhino bych tedy nezatracoval, protoze na nem lze vybudovat prave i Vami zminovany Jaxer. :)

              1. Borek Bernard

                Re: Jaxer
                Jaxer je postavený na Gecku (ve Firefoxu běží Gecko na klientovi, v Jaxeru je Gecko načteno v serverovém procesu).

                1. Jiří Knesl

                  Re: Jaxer
                  Nedaří se mi to najít, ale skutečně to na webu Aptany bylo napsané, je to tak 2 týdny.

                  Teď se mi daří najít jen to, že je v Jaxeru zabudované celé jádro Firefoxu.

                  Takže máte asi pravdu, ale nejde mi do hlavy, proč to tam tedy psali.

        2. Radek

          Re: Jaxer
          To je asi věc názoru. Mě se to třeba jeví úplně naopak. Hodně programuji v Javě a možnost přidat do aplikace (a to nejen webové) skriptování v JS (Rhino) mi připadá úžasná a mám pro ni využití. Dodává to do Javy možnosti, které tam z principu kompilovaného jazyka normálně nejsou. Na druhou stranu pro skriptování na serveru existuje mnoho jiných jazyků, které se běžně používají. Tudíž AJAX server s JavaScriptem je mi sympatický, ale nic až tak inovativního na tom nevidím. Ale je to určitě dáno úhlem pohledu.

      2. karf

        Re: Jaxer
        Jaxer využívá Gecko, takže je otázka, jestli by do výčtu implementací ve článku, tak jak je koncipován, patřil. Ale hodný pozornosti určitě je.

        Já bych v podobném duchu upozornil i na zajímavý projekt jslibs – http://code.google.com/p/jslibs/ . Umožňuje používat javascript z command line spolu se sadou zajímavých modulů. Je to také postaveno na SpiderMonkey.

  5. Tomas.Brukner

    Chybka a Narcissus
    Nejdříve menší chybka (překlep): Myslím že Jython implementuje Python a ne Pyhton. (předposlední odstavec o Rhinu).

    A napadlo mě využití Narcissus engine – nevím jak moc to je efektivní, ale v principu by se dal použít na oddělení vkládaného Javascriptu do stránky tak, aby tento vložený Javascript neměl přístup k původní stránce (třeba pro bezpečné mashupy aplikací apod.) – někde jsem četl, že je to docela velký bezpečností problém – právě třeba u používání několika vložených Javascriptových kódů vložených do stránky, které by neměli být schopné si navzájem číst data.

    1. David MajdaAutor příspěvku

      Re: Chybka a Narcissus

      Překlep je opraven, děkuji.

      Nápad o využití Narcissusu k oddělení skriptů je zajímavý. Problém by mohl být v tom, že Narcissus je poměrně hodně svázán se svým hostitelským prostředím a používá mnohé jeho globální objekty jako své vlastní, což znamená, že je nejspíš možné hostitelské prostředí ze spouštěného skriptu ovlivnit (například mu předefinovat metody u oněch použitých objektů). Nezkoumal jsem to ale důkladně, takže je možné, že se mýlím. Vyřešit by se to samozřejmě dalo emulací, což by ale jen zhoršilo už tak pravděpodobně nízký výkon.

      1. Tomas.Brukner

        Re: Chybka a Narcissus
        Ano, ty objekty jsou problém – jako praktické univerzální řešení se to tak vylučuje (buď emulací vlastních objektů (což by bylo pomalé) nebo resetováním případných upravených objektů na původní (smazání přidaných metod apod.)), ale možná i tato cesta může být ve výsledku dřív než upravení implementace javascriptu ve všech prohlížečích :-)

  6. Leoš Ondra

    JS v Adobe PDF
    Je mozne, ze jsem nepochopil zkratky a nazvy, ale doplnim, ze JavaScript se da pouzit i v pdf dokumentech (v Adobe Acrobatu). Leo

    1. David MajdaAutor příspěvku

      Re: JS v Adobe PDF
      Ano, implementace JavaScriptu v Adobe Readeru je založena na interpretu SpiderMonkey, o kterém jsem psal minule.

  7. ma

    Namet na pokracovani
    Pekny serial, diky za nej.

    Mel bych jeden namet na pokracovani, co treba jednoduchy popis SpiderMonkey (API+priklad) coby externe pripojitelneho JS interpretu? Typicky kdyz chci svuj C/C++ kod ovladat pomoci JS skriptu…

    1. David MajdaAutor příspěvku

      Re: Namet na pokracovani
      Taky jsem nad něčím takovým přemýšlel – pojal bych to asi jako malou odbočku v rámci seriálu. Ale nechci teď ještě nic slibovat.

  8. aprilchild

    Managed.JScript
    Jeste je tu Managed.JScript – napsany v managed kodu (nejspis C#) pod CLR (.NET). To jen aby byl vycet MS implementaci uplny ;). JScript v prohlizecich, JScript.NET jako clen rodiny CLR jazyku, Managed.JScript jako clen rodiny DLR (spolecny runtime pro dynamicke jazyky – JavaScript, Ruby, Python). Pouziti – Silverlight. Vsechny implementace navzajem nezavisle.

    Bohuzel pro Managed.JScript nejsou uvolneny zdrojaky, takze jsem musel pod .NET rozbehat Spidermonkey (skriptovani na serveru s propojenim na C# knihovny – analogie z Rhina).

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=2878