21. února 2011

Je Java produktivní jazyk?

Všechno to začalo zajímavým článkem "Java Kicks Ruby on Rails in the Butt", kde aspoň pro mě se objevila velice zajímavá myšlenka:

The productivity in Java world is a cultural problem, not a technical one.

Na uvedený článek se objevilo spoustu reakcí v Java světě a mě to přinutilo popřemýšlet a napsat pár myšlenek v tomto článku.

Já osobně moc tyto srovnávací články rád nemám, protože mi přijdou skoro vždy jednoúčelové. Cožpak někdo může říci, že Java je produktivnější než Ruby a naopak? Ve spoustě případů ano, ve spoustě případů zase ne.

Nicméně s uvedenou myšlenkou plně souhlasím. Opravdu to asi máme nějak v sobě, že když už ta aplikace bude Javovská, tak vždy bude mít alespoň tři vrstvy, že to musí být robustní, škálovatelné atd. atd. Doufám, že doba, kdy byly mainstream EJB, je již pryč, ale pořád se mi zdá, že není moc velké povědomí o alternativních řešeních jako jsou Grails, Spring ROO, v článku uvedený OpenJava nebo třeba DB forms. Nebo obecně o dostupných knihovnách - takové Jakarta Commons by snad měl znát úplně každý a pokud si někdo uvedené funkce píše sám, tak to fakt nechápu. V minulosti jsem již psal o rychlém rozcestníku na základní knihovny.

Dnes více než v minulosti je nutné se vyznat - nestačí znát jen Java jazyk jako takový, ale je potřeba znát všechny možné knihovny a frameworky, znát přednosti a nevýhody jednotlivých řešení, umět si vhodně vybírat. To samé se dá říci o programovacích jazycích - Java jako základ ano, ale pro určité úlohy je lepší třeba Groovy, jinde Perl apod.
(Pozn.: když se na tyto všechny jazyky koukám z pohledu projektového vedoucího, tak jsem pořád tak nějak k tomu skeptický - čím více bude jazyků potřeba na vývoj, tím horší (= dražší) bude pak údržba. To nepočítám náklady na osvětu a zaškolení týmu.)

Možná je to tím, že jsem na volné noze, kdy efektivita má pro mě přímou úměru k výši výdělku, že se tak o všechny možné knihovny zajímám. Já již asi rychleji psát kód nebudu, ale tím, že ho budu psát méně a více výslednou aplikaci skládat, tak mohu být efektivnější. Také za těch skoro 10 let co programuji již mám slušnou databázi odkazů a hotových řešení, že někdy více kopíruji, než vymýšlím nové věci.

Každopádně i když budu umět perfektně Javu, znát knihovny a celou platformu, tak jsem podle mě někde ve dvou třetinách kvalitního programátora. Když nebudu počítat vlastnosti jako pečlivost, systematičnost, zodpovědný, cílevědomý, které buď prostě máme nebo nemáme, tak je nutně potřeba znát řešenou problematiku, bez toho nemůže být řeč o programátorovi, ale o kodérovi.

2 komentáře:

v6ak řekl(a)...

Ale jo, vzpomínám si, jak jsem potřeboval honem rychle zbastlit takový krátký skript (vpodstatě to vypisovalo adresářovou strukturu v předepsaném formátu). Že bych zvolil Javu? Ne, tam bych to neměl odvahu tak naprasit a musel bych to udělat minimálně tak, aby se dal formát změnit použitím jiného adaptéru... Napraseno v PHP (tuším, že jsem tam použil dokonce globální proměnnou :-D) a hotovo. (BTW PHP jsem tehdy de facto oprášil.)

Dnes bych teda na to použil asi spíše Scalu. Ale ne proto, že bych měl Scalu jako nějaký "prasící" jazyk. Ale je to jazyk, který se rád ohne podle momentálních potřeb.

Anonymní řekl(a)...

Java je opravdu produktivní, což jsem se dozvěděl v posledních měsících, když jsem začal pracoval jako JAVA developer v jedné Německé firmě za dost velký peníz. Pokud to někomu pomůže, tak zde přidávám odkaz http://itresources.cz/ , který Vám ušetří dost času se zařazováním práce v zahraničí.
Snad to někomu dopomůže k práci zahraničních projektech. :) Hodně štěstí