Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Do hlubin implementací JavaScriptu: 5. díl - implementace mimo prohlížeče

pas
pas (neregistrovaný) ---.252.broadband6.iol.cz
27. 11. 2008 0:25 Nový

Adobe AIR

celé vlákno
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.
David Majda aura:98
27. 11. 2008 9:06 Nový

Re: Adobe AIR

celé vlákno

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.

nigol
nigol (neregistrovaný) ---.azdzoz.cz
27. 11. 2008 6:41 Nový

Dynamické jazyky v Javě

celé vlákno
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 ;)
David Majda aura:98
27. 11. 2008 9:20 Nový

Re: Dynamické jazyky v Javě

celé vlákno

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 :-)

Ondřej Žára aura:92
27. 11. 2008 8:05 Nový

V8 na serveru

celé vlákno
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.
Mazarik
Mazarik (neregistrovaný) ---.ais-servis.cz
27. 11. 2008 8:57 Nový

spustanie javy z javascriptu

celé vlákno
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();
David Majda aura:98
27. 11. 2008 9:46 Nový

Re: spustanie javy z javascriptu

celé vlákno

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.

Borek Bernard aura:66
27. 11. 2008 9:10 Nový

Jaxer

celé vlákno
Chybí zde zmínka o AJAXovém serveru Jaxer, který umožňuje JavaScript vykonávat na serveru.
David Majda aura:98
27. 11. 2008 9:52 Nový

Re: Jaxer

celé vlákno
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í.
Borek Bernard aura:66
27. 11. 2008 10:04 Nový

Re: Jaxer

celé vlákno
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ě.
David Majda aura:98
27. 11. 2008 10:43 Nový

Re: Jaxer

celé vlákno

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á.

Borek Bernard aura:66
27. 11. 2008 11:36 Nový

Re: Jaxer

celé vlákno
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).
Jiří Knesl
Jiří Knesl (neregistrovaný) ---.awebsys.cz
28. 11. 2008 9:09 Nový

Re: Jaxer

celé vlákno
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. :)
Borek Bernard aura:66
28. 11. 2008 10:22 Nový

Re: Jaxer

celé vlákno
Jaxer je postavený na Gecku (ve Firefoxu běží Gecko na klientovi, v Jaxeru je Gecko načteno v serverovém procesu).
Jiří Knesl
Jiří Knesl (neregistrovaný) ---.awebsys.cz
28. 11. 2008 10:37 Nový

Re: Jaxer

celé vlákno
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.
Radek
Radek (neregistrovaný) ---.fit.vutbr.cz
27. 11. 2008 10:48 Nový

Re: Jaxer

celé vlákno
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.
karf
karf (neregistrovaný) ---.strelice.net
27. 11. 2008 11:24 Nový

Re: Jaxer

celé vlákno
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.
Tomáš Brukner aura:45
27. 11. 2008 9:36 Nový

Chybka a Narcissus

celé vlákno
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.
David Majda aura:98
27. 11. 2008 10:28 Nový

Re: Chybka a Narcissus

celé vlákno

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.

Tomáš Brukner aura:45
27. 11. 2008 10:50 Nový

Re: Chybka a Narcissus

celé vlákno
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 :-)
Leoš Ondra
Leoš Ondra (neregistrovaný) ---.morava.adsl-llu.static.bluetone.cz
27. 11. 2008 14:58 Nový

JS v Adobe PDF

celé vlákno
Je mozne, ze jsem nepochopil zkratky a nazvy, ale doplnim, ze JavaScript se da pouzit i v pdf dokumentech (v Adobe Acrobatu). Leo
David Majda aura:98
27. 11. 2008 20:35 Nový

Re: JS v Adobe PDF

celé vlákno
Ano, implementace JavaScriptu v Adobe Readeru je založena na interpretu SpiderMonkey, o kterém jsem psal minule.
ma
ma (neregistrovaný) ---.net.upc.cz
28. 11. 2008 9:47 Nový

Namet na pokracovani

celé vlákno
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...
David Majda aura:98
28. 11. 2008 10:38 Nový

Re: Namet na pokracovani

celé vlákno
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.
aprilchild
aprilchild (neregistrovaný) ---.95.broadband9.iol.cz
1. 12. 2008 15:32 Nový

Managed.JScript

celé vlákno
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).
Zasílat nově přidané příspěvky e-mailem