Chyba nikdy není v programátorech, ale v jazyce

Prahu v únoru navštívil Bruce Eckel, známý americký publicista a popularizátor, mj. autor knih Thinking in C++ a Thinki...


Prahu v únoru navštívil Bruce Eckel, známý americký publicista a popularizátor,
mj. autor knih Thinking in C++ a Thinking in Java. Při této příležitosti
zodpověděl celou řadu otázek, některé jako součást diskuse provázející jeho
přednášku, některé jako součást následného "regulérního" rozhovoru.
Jak se v průběhu času vyvíjel váš vztah k Javě?
Původně jsem byl k Javě poměrně skeptický. Domníval jsem se, že C++ nebo Perl,
které nekontroluje žádná konkrétní společnost, jsou z hlediska vývojáře
vhodnější. Pak jsem si nějaký čas myslel, že se jedná prostě o další
programovací jazyk. Nakonec jsem se stal popularizátorem Javy.
Co bylo hlavním důvodem, pro který jste si Javu oblíbil?
Je třeba si uvědomit, že 50 až 70 % současných softwarových projektů je
neúspěšných. Největším prokletím programům jsou chybné ukazatele. Příčinou jsou
jistě chyby zúčastněných lidí ale vždy je v tom i problém samotného jazyka.
Filozofie Javy vychází právě z toho, že lidé dělají chyby a jazyk by měl
programátorovi prostě zabránit vytvořit špatný program. U C++ je navíc problém
zpětné kompatibility s céčkem. Právě z tohoto důvodu jsem nakloněn podporovat
věci, které jsou od základu nové a v tomto ohledu nezatížené.
Co si myslíte o nástupu Javy?
Zajímavé je, že Java získala popularitu hlavně díky appletům, které jsou přitom
do značné míry omylem. Upřímně řečeno, ani ta stále avizovaná platformová
nezávislost není podle mě hlavní předností Javy.
Nejdůležitější je obrovská produktivita programátorů, pracujících v tomto
jazyce jak už jsem se zmínil, špatně se zde dělají chyby. Výzkumy ukazují, že
např. oproti vývoji v C++ budete s Javou přibližně dvakrát rychlejší i když se
bude jednat o vývoj aplikace, která má běžet pouze pod Windows.
Vy sám applety používáte?
Ne. Na mých stránkách najdete jen čisté HTML. Uvědomte si, i pokud pomineme
problémy s objemem appletu, že vaši návštěvníci mají různé prohlížeče v různých
verzích. Applet má naproti tomu smysl v intranetu, kde lze předpokládat
jednotné prostředí a není takový problém s přenosovou kapacitou.
Myslíte si, že použití JavaScriptu je účelnější? Nedávno jsem četl statistiku,
podle které je až 90 % užití těchto technologií zbytečných...
Přiznám se, že nemám JavaScript příliš rád. Hlavně pro ten jeho název, který se
tváří, jako by to bylo něco podobného Javě. Ono je to s programováním vůbec
problém. Začnete se učit nový jazyk a hned se snažíte jej přiřadit některému z
těch stávajících. Je pravda, že Java je v jistém ohledu podobná C++, ale dobře
v ní budete programovat teprve tehdy, když si uvědomíte, že je to něco jiného.
V každém programovacím jazyku se musíte především naučit myslet. To jsem také
chtěl říci svými knihami Thinking in C++ a Thinking in Java.
Jaké vy sám používáte vývojové prostředí pro C++ a Javu?
Co se týče C++, píšu nejraději přímo zdrojový kód. Pouze pro programování pro
Windows si celý proces usnadňuji s C++ Builderem, s nímž jde vývoj velmi
rychle. Javu píšu nejraději přímo v JDK, žádné z dodávaných IDE jsem si nijak
zvlášť neoblíbil.
Slyšel jste už o projektu Microsoftu jménem COOL. Má to být "více Java jež
Java", respektive, stejně daleko, jako je Java od C++, má být COOL od Javy.
Nevím o tom nic. Těžko k tomu co říci, dokud se o produktu jenom mluví a zatím
ho nikdo neviděl. Co se týče vývojových nástrojů Microsoftu, vnímám zde jistou
roztříštěnost: je C/C++, Visual Basic, pak se začaly objevovat skriptovací
jazyky na straně klienta i serveru, do toho přichází ActiveX a teď říkáte, že
se objeví COOL... Tím na druhé straně nechci říct, že Microsoft nemá třeba
právě v oblasti Javy dobré nástroje, např. výjimečně dobře napsaný virtuální
stroj...
Tím se dostáváme k otázce rychlosti. Jaké jsou podle vás chyby Javy?
Někdy se říká, že problém rychlosti je už překonán, ale popravdě řečeno,
nemyslím si, že by to bylo tak docela pravda. Za řadu oněch výše zmíněných
skvělých vlastností Javy zkrátka musíte nějak platit. Java se ale stále
zlepšuje. Upřímně řečeno, verze JDK 1 byla podle mě dost špatná. JDK 1.1 byla o
hodně lepší. V JDK 1.2, respektive v Javě 2, jak to nově nazvali, lze už
naproti tomu pracovat velmi dobře.
Další výtky k Javě: je to prý "malý" jazyk hodící se pouze pro určitý typ
aplikací, špatně se v něm navrhuje rozhraní...
To je sice do jisté míry pravda, ale je to spíše otázka dostupných knihoven než
jazyka jako takového. S verzí 2 by se i zde mělo leccos zlepšit. Navíc, i kdyby
Java nakonec nesplnila očekávání, stále zůstává faktem, že ukazuje řadu trendů,
které se podle mého názoru uplatní tak jako tak odstínění od konkrétního
operačního systému např. pozvedá programátora na vyšší stupeň abstrakce. Konec
konců, do javového vývoje dnes zřejmě nejvíce vložila úsilí IBM, která tak
realizuje
např. propojení mainframů se zbytkem světa.
Pokud byste měl porovnat servlety se skripty běžícími na straně serveru?
Mám servlety rád, rozhodně raději než applety. Java je v tomto ohledu celkem
srovnatelná např. s Perlem. Java Server Pages jsou zase obdobou (konec konců i
svým názvem) Active Server Pages od Microsoftu. Servlet má ale celou řadu
výhod, je mj. rychlejší než interpretovaný CGI skript. Některé složitější
aplikace se navíc jako skripty píšou jen velmi obtížně.
Děkuji za rozhovor.
9 0431 / pahn









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.