Delphi vs. Java
Dalibore, v ATLASu jsi již 10 let, což je pěkně dlouhá doba, s jakým jazykem jsi tehdy začínal?
V ATLASu jsem začínal na projektu CODEXIS, který se vyvíjel v Delphi. V Delphi jsem programoval už na VŠ a v předchozím zaměstnání, takže jsem již měl pár let praxe. I přes to, že jsem nebyl úplný nováček, měl jsem se pořád co učit. V oblasti vývoje software je to běžná praxe. Člověk se musí neustále vzdělávat, aby udržel krok s tím, jak se v této oblasti vše mění a rozvíjí.
Co tě vedlo k tomu, že jsi začal programovat v Javě?
Každý software postupem času zastarává a je potřeba inovovat. Nejinak tomu je i u projektu CODEXIS, kde v závislosti na trendech poslední doby přecházíme z desktopového řešení na webové. V této souvislosti jsem dostal nabídku podílet se na vývoji software na nové platformě a s tím související přechod na jinou technologii.
Jelikož se rád učím nové věci, neváhal jsem ani chvíli a začal jsem se učit Javu, která je využívána na backendu. Vedení firmy mi v tomto úsilí podalo pomocnou ruku ve formě několika školení, která jsem mohl absolvovat, což mi velice pomohlo.
Jak těžký byl přechod z Delphi na Javu?
Myslím, že nemohu moc dobře srovnávat Delphi a Javu, ať už z pohledu vývoje pro Windows v Delphi a čistě multiplatformního vývoje v Javě, či z pohledu desktopového produktu vs. webového. Jsou to dva rozdílné světy. V mém případě ten přechod nebyl až tak dramatický, jelikož jsem již dříve přičichl k webovému vývoji, takže jsem některé principy již chápal a o to to pro mě bylo snazší. Jinak obecně lze říci, že pokud programujete v jednom jazyce, pak po naučení syntaxe a základních pravidel vývoje v druhém jazyce můžete celkem rychle fungovat a být produktivní.
Co ti dělalo největší problém? Nebo překvapilo tě něco naopak?
Co si vzpomínám na moc problémů jsem nenarazil, snad jediné co mě napadá, je docela krkolomná práce s generováním klienta webové služby z wsdl popisu, to v Delphi šlo jednodušeji. Jinak jsem byl vždy příjemně překvapen. Například se mi velice líbí IDE pro Javu IntelliJ IDEA, je to opravdu perfektně propracovaný nástroj. Maven, Spring a další skvělé technologie, které usnadňují práci.
Jsou si v něčem tyto jazyky podobné?
Některé drobnosti by se našly, ale více podobnosti vidím mezi C# a Javou. Dokonce jsem slyšel, že C# se říká Java od Microsoftu.
Co ti nejvíce pomohlo při učení se nového jazyka? Code reviews? Články? StackOverflow? Kurzy? Apod.
Při učení vždy pomáhá, když máte z čeho čerpat a pro Javu je díky obrovské komunitě materiálů opravdu hodně. Kurzy jsem již zmiňoval výše, ty jsou také přínosem. Code reviews byla pro mě novinka, ale musím říct, že jsem si na to rychle zvyknul a je to v týmu dobrá technika, jak sdílet vědomosti a mnohdy se vyvarovat zbytečných chyb.
Proč myslíš, že se Delphi zařadilo mezi staré, dnes již méně používané technologie?
V poslední době jsem ten vývoj situace kolem Delphi trochu přestal sledovat, takže nevím, zda jej můžeme zařadit mezi „staré“ technologie. Pravdou je, že ve své době bylo Delphi jeden z nejlepších nástrojů pro vývoj desktopových aplikací, ale poté co jej firma Borland prodala, ten vývoj nabral divný směr. V poslední době je to myslím mírně lepší, ale tím že se vývoj mezitím přesunul od desktopových aplikací k webovým, tak je uplatnění Delphi stále menší. Podíl na tom nese, dle mého názoru, i to, že na školách se již Delphi moc nevyučuje a studenti tak po škole pracují v některém z jazyků, které měli ve škole.
Vracíš se občas k programování v Delphi?
Ano, k Delphi se občas vracím, při údržbě desktopových aplikací, které jsme vyvíjeli dříve.
Slyšela jsem, že Delphi nemá úplně šťastné vývojové prostředí – je drahé a dost zabugované, můžeš k tomu něco říct?
Jak jsem již řekl dříve, ve své době, bylo skvělé, později měly některé verze dost chyb, některé méně. Nevýhodou bylo, že neexistovala použitelná komunitní verze, takže při vývoji bylo nutné investovat alespoň do verze professional.
Doporučoval bys i ostatním Delphistům, kteří se poohlížejí po novější technologii Javu?
Pokud by chtěli přejít k multiplatformnímu vývoji a serverovým aplikacím, pak ano. Pokud by se chtěli věnovat vývoji pro desktop, tak to nedokážu posoudit, jelikož se této oblasti v Javě nevěnuji.
Co bys jim vzkázal/Doporučil?
Pokud je baví vývoj software, tak nehraje zásadní roli v jakém jazyce, bavit je to bude stále.