Cayman Islander | Diary of a Freelance Programmer traveling the world

Cayman Islander's blog - Diary of Freelance Programmer

Je důležité, v čem vyvíjíme programy, Web stránky nebo Web aplikace?

I am really angryVždy mě docela pobaví, když někdo začne diskutovat na téma, jaký programovací jazyk je nejlepší, či jaké je nejlepší vývojové prostředí pro tvorbu uživatelských programů, pro návrh Web stránek nebo vývoj Web aplikací.

Kolikrát se to už všude možně řešilo a přitom odpověď je úplně jednoduchá. Žádný nejlepší jazyk neexistuje, existuje jen jazyk na daný problém více vhodnější. Podobně by se dalo říci, že žádné nejlepší vývojové prostředí neexistuje, jsou jenom některá více vhodnější pro nějaké technologické řešení.


Proč někdo vyžaduje konkrétní programovací jazyk nebo vývojové prostředí?

Většina specialistů, kteří se pohybují již nějakou dobu v technologiích, tak v tom už má asi jasno. Každá vývojová firma, kterou znám, každý samostatný developer, se kterým jsem se setkal, tak už zvolili pro sebe nejvhodnější systém, programovací jazyk nebo prostředí a většinou se zabývají vývojem a řešením, pro které mají vhodnou technologii, tj. specializují se na vybranou oblast, s těmi pravými nástroji a s odpovídajícími znalostmi.

"When all you have is a hammer, every problem looks like a nail."

Jsou ale firmy, které striktně vyžadují nějakou určitou technologii, či programovací jazyk, přitom ani netuší, že pro jejich potřeby by bylo vhodnější použít něco jiného, co by vyřešilo daný problém třeba ve zlomku doby, tj. při mnohem nižších nákladech a při současném zachování kvality, otevřenosti řešení i při dodržení firemních standardů.

Proto firmy stále hledají (někdy marně) nějaké "vymezené" specializace jako je třeba Delphi programátor, PHP programátor, specialista na Python, či guru na Perl; proto je stále kolem vidět plno pracovních nabídek pro specialisty se znalostí prostředí Oracle Designer, Eclipse nebo J-Developer, či firmy hledají takové exotické pozice jako je např. Excel programátor ;-)

Zdá se mi, že některé firmy ještě nepochopily, že by možná bylo jednodušší hledat "řešení" svých problémů, než se stále dokola snažit najít nějakého programátora v Javě, když se pak třeba zjistí, že většina toho šla vyřešit pár uloženými procedurami v SQL a automaticky vygenerovaným front-end GUI pro Web, tj. Java ani nebyla potřeba.


Jak postupují chytré firmy, kterým záleží na dobrém řešení?

Líbí se mi chytré firmy, které hledají spíše někoho, kdo jim vyřeší třeba CRM systém, vytvoří firemní Data Warehouse, zprovozní automatický Workflow firemních dokumentů, zavede lepší komunikační software s napojením na interní programy,...

Takovým chytrým firmám je ve své podstatě jedno, v čem to řešení budou mít, když to bude splňovat všechny funkční a kvalitativní náležitosti za odpovídající cenu, bude k tomu kvalitní dokumentace, vyškolení pracovníků a zajištěn profesionální support.

Je jasné, že když má taková firma již nějakou stávající technickou infrastrukturu, tak může preferovat nějakou přesnou databázi, či řešení v konkrétním jazyce a v dané verzi, ale takovým firmám je jedno, jestli na výsledný aplikační kód, např. v PHP nebo ASP, použijete něco jako CodeCharge Studio nebo nějaký jiný generátor kódu, či zda zdrojový kód v PHP napíšete ručně.


A jeden příklad ze života programátora pro pobavení?!

Psal mi včera jeden aligátor z Floridy, anóbrž bývalý kolega, že prý právě prohrál velkou zakázku na rozsáhlý Web projekt pro jednoho významného amerického zákazníka jen proto, že zákazník požadoval, aby řešení bylo uděláno "manuálně" v Dreamweaver editoru, přičemž kolega měl technické řešení postavené na NetObjects Fusion prostředí.

Rozhodlo se to prý až těsně před podpisem smlouvy, kdy si takové maličkosti všiml jeden specialista od zákazníka.

Prý nepomohli ani argumenty, že řešení v NetObjects Fusion bude rychleji hotové, tj. úspora peněz, že pozdější úpravy si bude moci dělat zákazník sám pomocí profesionálního GUI klienta, příp. že jakékoliv úpravy, rozšiřování a doplňování je mnohonásobně jednodušší a rychlejší.

Docela jsme se nad tím pobavili, neboť to šlo vyřešit tím, že se to jednoduše udělá v NetObjects a řekne zákazníkovi, že to je výstup z Dreamweaver, což by asi ani nepoznali. Kolegu ale ten stupidní přístup zákazníka tak vytočil, že s takovým zákazníkem nechtěl mít raději nic společného, což mu docela schvaluji.

Připomnělo mi to jednu starší diskuzi na skoro to samé téma, kdy kdosi chytrý reagoval na podobný problém:

"HTML is HTML regardless of what is used to write it. Anyone that thinks that HTML written in Notepad is any different from HTML written with any other editor or generated from a RAD tool is a total i-d-i-o-t. There is no need to argue with someone who is in charge that this is stupid. Here is an example that you can fire back at them to make them (maybe) think...

If you need to get to the airport it is no different if you walk, take a cab, ride the bus, or drive yourself. You get there just the same. Those in charge are telling you that you must walk to the airport as this is the only proper way that they will allow you to get there.
"


No jo, podobně "chytře" to funguje asi u všech velkých zákazníků a nezáleží, jestli to je v Americe, či v Evropě ;-)

7 comments :

Rammi řekl(a)...

Jedině .NET, kdysi ASP ;) když na to příjde, tak holt PHP nebo Java, ale nemam je rad.
Taky si rikam, ze je to hloupost nasazovat Javu nekam, kde to nebude nikdy potrebovat multiplatformnost a stacilo by na to 50 radku v PHP, nebo 4 v .NET ;)

Anonymní řekl(a)...

"50 radku v PHP, nebo 4 v .NET"
Dobré :-))

Unknown řekl(a)...

[1] A ono klidně lze cokoliv v PHP (a nejenom v PHP) vyřešit na 2 kraťoučké řádky :-)

nclude 'knihovna_resici_muj_problem.php';
spust_funkci_resici_muj_problem();

Jinak osobně bych se velmi divil, kdyby PHP, jakožto stručný dynamicky typovaný jazyk bylo stručnější, než běžné .NET jazyky. Ale holt někdo je fanatik do .NETu a trochu nadnáší :-)

Jinak ono zase řešit problém jakoukoli technologií je něco, co dokáže firmu položit. Například jistý známý americký před řadou let byla nutná řešit obrovské problémy vzniklé přesně postupem doporučovaným v článku. Měla sw projekty ve stovkách jazyků a technologií a údržba byla nesmírně nákladná. Tak ministerstvo obrany inicializovalo vznik jediného jazyka - Ady, ve kterém řeší své projekty.

Ono totiž výběr technologie je víc, než jen chuť řešitele a momentální sw vhodnost.

Miloslav Ponkrác

Anonymní řekl(a)...

Sú ale prípady (zanedbateľné množstvo), keď naozaj záleží na tom, v čom bolo trebárs to HTML robené. Ono HTML vyrobené exportom z MS Wordu je zúfalé a o dosť iné ako trebárs z toho Dreamwera, alebo Notepadu. Potom v ňom robiť úpravy v Notepade je dosť nepríjemné.

Anonymní řekl(a)...

Já používám Dreamweaver, neboť není lepší nástroj na Web development :-)

Možná neznáš poslední novou verzi, takže doporučuji mrknout, co to všechno umí a jak jsou integrované ostatní nástroje od Adobe jako Flash nebo Fireworks.

Ten Netobjects vůbec neznám, ale mrknu se, co to je zač. Díky za tip.

Cayman řekl(a)...

Je jasné, že "výběr technologie je víc, než jen chuť řešitele", proto jsem také psal, "že když má taková firma již nějakou stávající technickou infrastrukturu, tak může preferovat nějakou přesnou databázi, či řešení v konkrétním jazyce".

Integrace je vždy základ, neboť množství různých technologií a neprovázaných řešení je samozřejmě mnohem horší a přináší spoustu nákladů na údržbu.

Mně šlo spíše o to, že je úplně jedno, jestli HTML kód se napíše ručně nebo se nechá vygenerovat z nějakého kvalitn9ho CASE nebo RAD nástroje.

Jo, ADA byl pěkný pokus, podobně jako kdysi PL1 (programming language #1), stejně tak ale začíná "dopadat" Java, která se nasazuje na všechno možné i nemožné jen proto, že vývojáři nic jiného neumí.

Vem si jen, co pomůže firmě, že má veškeré řešení třeba v Javě, když kód zpatlali vývojáří, kteří Javu moc neuměli, příp. místo volání SQL v databázi udělali zpracování dat na klientovi v Javě, tj. data se ze serveru posílala na klienta, tam udělal Java program zpracování a zapisoval stovky záznamů zase zpět.

Ano, i taková "řešení" od významných integrátorů za milióny jsem viděl a nevěřil jsem vlastním očím.

Cayman řekl(a)...

Jinak, nemám nic ani proti ASP, PHP, .NET ani Javě. Vždy totiž záleží na schopnostech vývojáře - vývojového týmu, co používá za CASE/RAD nadstavby a jak kvalitně tvoří kód a celé řešení.

Sebelepší technologie v rukou začátečníků nebo nezodpovědných jedinců k ničemu dobrému nevede.

Okomentovat