-->

Čtvrtek 22. 4. 2004 (01:40)
Počítače, internet, IT

JavaScript není Java

Tak to teda není. JavaScript i přes podobnou syntaxi v žádném případě není Java. Není žádnou podmnožinou. Je samostatným programovacím jazykem. Myslel jsem, že už je to všem jasné, ale včera mě opětovně dožrala na Živě.CZ rubrika „Java a JavaScript“. Vysvětlujte pak laikovi, že to není to samé. Něco na tom, že weby pro lamy píšou zase jenom lamy, fakt asi bude. Takže pokusím se o malou osvětu. Kde jsou rozdíly mezi JavaScriptem a Javou?
  1. JavaScript je z dílny firmy Netscape, Java z dílny Sun Microsystem
  2. JavaScript je nezávislý na platformě. Java nikoliv. JavaScriptu stačí na jakékoliv platformě vhodný browser.
  3. JavaScript je jazyk interpretovaný, Java je jazyk kompilovaný.
To jsou hlavní rozdíly. Pak jsou tu ještě takové trošku jinačí rozdíly. Třeba fakt, že v JavaScriptu nenapíšete žádný složitější program nebo trvzení, že Java je při vykonávání rychlejší než JavaScript, což však nemám ověřeno, ale nedivil bych se tomu. Toto vše v mírně rozsáhlejší podobě naleznete v knížce Slavoje Píska „JavaScript - efektivní nástroj na oživení WWW stránek“, kterou vydala Grada v roce 2001. Právě textem na straně 16 jsem se inspiroval, abych nemusel použít svoji mírně řečeno krkolomnou argumentaci. Mě stačí, že vím, že JavaScript není Java a trošku i důvody proč tomu tak není. No a pro podrobnější vysvětlení jsem sáhnul po knížce.

Každopádně JavaScript není Java. Aby v tom byl ještě větší guláš, přidávají se termíny jako Java Applet nebo JScript, ale o tom zase někdy příště.

Reagoval MarrLiss: Jak myslis, ze java neni multiplatformni? Jinak srovnani JScript s Javou je dost michani jablek s hruskami - asi jako nejdulezitejsi rozdil bych videl, ze JS je scriptovaci jazyk, zato java je plnohodnotny programovaci jazyk.

Má odpoveď: Jak to myslím? Osobně nijak, jen jsem opsal na X místech jmenované rozdíly. Já to přece nemíchám. Já jsem např. na Živě nespojil lekce Javy a JavaScriptu do jedné sekce. K tomu plnohodnotnému jazyku - myslím (IMHO), že to bylo řečeno v bodu o interpretačním jazyce a kompilovaném jazyce. Jak ale říkám. Nejsou to moje argumenty, ale argumenty jiných (fundovanějších), které bych rád jen předal dál ... Btw: Nesrovnával jsem JScript s Javou, ale JavaScript s Javou ;-) JScript je truc verze JavaScriptu od Microsoftu, ale to je jen detail.

Reagoval Vojtěch Liška: Mimochodem nevim kde si prisel na to, ze JAVA je kompilovany jazyk. Java je jazyk interpretovany. Java neni zavisla na platforme. Bezi tam, kde bezi JVM. I kdyz je pravda, ze 100% kodu neni prenositelne. Sem lamicka, ale neco nas na tej skole prece jen naucili :)

Má odpoveď: Kde jsem na to přišel? To tam píšu. Nemůžu za to, že v knížkách píšou eventuálně nesmysly. Znovu a naposled opakuji, že to nejsou mé argumenty, ale argumenty, které se píšou ve jmenované knize, ale i jinde. Já je neobhajuji. Je možné, že jsou mylné, ale snad proboha tu knížku někdo kontroloval, než šla do prodeje. Každopádně se mi už při čtení zdály - mírně řečeno - divné, ale asi jsem podlehl doměnce, že co je psáno, to je dáno.

Reagoval Radek Hulán: Jirko, trošku to pleteš. JavaScript je jen jakési interpretovaný jazyk, který umožňuje k objektům na stránce přistupovat dynamicky (DOM - Document Object Model), a umí také pár dalších věcí (třeba cookies). To je celé. Java je TAKY interpretovaná, není kompilovaná. Překladač zdrojáku Javy sice vytvoří jakýsi kód, ale je to jen tzv. bajtový pseudo-kód. Jakýsi mezi-kód, který ještě nemůže na žádném procesoru být vykonán (tedy, skoro na žádném, existují i speciální CPU, které jsou schopen Java byte code přímo vykonávat). JVM, neboli Java Virtual Machine, je potom prostředí, které tento bajtový kód převádí do instrukcí daného CPU, a operačního systému. Java má podstatně, tak 1000x, více tříd a možností použití než JavaScript. Java je skutečný programovací jazyk. A syntaxí je bližší spíše C++, než primitivnímu JavaScriptu.

Má odpoveď: Ach jo. Kolikrát mám opakovat, že jsem to jen více méně opsal z jedné knihy. Já už fakt nevím, čemu mám dnes věřit ... To co si psal, jsem si z menší části myslel (to je ta „mírně řečeno krkolomná argumentace“, o které jsem se zmiňoval), ale říkal jsem si, že S. Písek bude asi jako autor mnoha knih vědět, co píše. Požádal jsem ho o vyjádření k věrohodnosti, pravdivosti či správnosti textů v jeho knížce. Uvidíme, jestli a jak odpoví. To, že JavaScript je omezený jsem snad v zápisku nepopřel. Použití označení „programovací jazyk“ mi při psaní zápisku nesedělo stejně, jako psát o těch ostatních věcech - např. o interpretovaném jazyce, závislosti na platformě atd ...
Dodatek (21:27): Ukazuje se, že někteří čtenáři mají jisté pochybnosti o pravdivosti a správnosti tvrzení pana Píska, z jehož knihy jsem čerpal. Proto jsem pana Píska kontaktoval mailem a požádal jej o doplnění příp. vyvrácení jeho argumentů mnou volně interpretovaných..

SLEDOVAT ZMĚNY | VYTISKNOUT | Podělte se o odkaz na linkuj.cz nebo del.icio.us




Stálý odkaz (permalink): Stálá adresa tohoto zápisku je http://blog.macich.net/1082598000-javascript-neni-java.html (pro IE: vložit do schránky | přidat k oblíbeným). Chcete-li na zápisek odkázat, použijte ji.

Další zápisky: Následujícím zápiskem je spot Jak to vypadá v Eurotelu? Předešlým zápiskem je spot Škůdce na čtyři opět udeřil Další pak naleznete při navigaci z hlavní stránky. Můžete se také podívat na seznam všech zápisků.

Aktuální místo vašeho pobytu: Macich.NET » Blog počítačového nadšence » Počítače, internet, IT » JavaScript není Java





Sledování změn

Váš e-mail:

Zde můžete zadat e-mail, na který vám bude automaticky službou Woko.CZ zasláno upozornění na případnou změnu stránky. Dozvíte se tak např. o přidání dodatku či komentáře.