Logo

Paradigmata ve vývoji SW

Vložil Pavel Klobasa, 20. Prosinec 2008 - 17:04

Ponejprv musím poblahopřát vývojářům z firmy SoftEU k nové verzi aplikace WinStrom. Vytvořit a prodávat komerční krabicovou aplikaci vytvořenou v Javě, navíc v ČR a v oblasti ERP, považuji za úctyhodný výkon. Potěšilo mě, že se někdo snaží prosadit Javu na klientské straně, přeci jen je Java více etablovaná na serverech v korporátní sféře…

I přesto, že autor článku raději moc z pozadí vývoje neprozrazuje, bylo to pro mě zajímavé čtení. Nejzajímavější byly ty části, které přímo či nepřímo popisovaly principy použité při vývoji, například:

  • pokus o použití Apache Derby
  • snaha o perfektní instalátory
  • použití nativního L&F

O nic z uvedeného bych se nikdy nepokoušel, nedávalo by mi to smysl. Nejdřív jsem si říkal, že rozdílnost přístupů spočívá v technologiích – přeci jen vyvíjet zakázkové webové aplikace a krabicové client-server aplikace je rozdíl. Pak mi došlo, že rozdíl může být ještě někde jinde – nazval jsem to slovem paradigma

Nadešel tedy, po několika technologických článcích, čas na úvahu.

Co je to paradigma

Paradigma je když… Nevím, do žádné definice se mi nechce. Prostě Java je lepší než .Net, a tom se nedá pochybovat, není potřeba to zdůvodňovat či prokazovat…

V každé SW firmě existují podobná paradigmata, i když samozřejmě ne tak extrémní a dogmatická. A řekl bych, že i méně formální skupiny vývojářů se nějakých svých konsenzů drží.

Ponechme teď stranou sociologicko-psychologické zdůvodnění paradigmat či jejich technologické zázemí a pojďme se na některá paradigmata podívat konkrétně.

Jazykové paradigma

Nejznámější paradigma je jazykové (či přesněji platformové). Firma, která vyvíjí primárně v Javě/.Net/PHP/Delphi či jiném jazyce, se ho bude velmi silně držet. Nikomu z vývojářů se nebude chtít učit se zákoutí jiného jazyka a jeho knihoven. Každý jazyk má svoje „nejlepší řešení“ typických problémů a trvá měsíce, než si je člověk aktivně osvojí ve své práci.

Ano, existují firmy, které dokáží vyvíjet ve více jazycích. Jak to řeší? Buď jsou ve „stádiu přechodu“ z jedné platformy na jinou, a nebo prostě mají pro každý jazyk samostatný tým vývojářů.

Databázové paradigma

Říká, že srdcem většiny aplikací je databázový stroj. Tohle tvrzení bych trochu opravil – jde o svaly. Podle mých zkušeností má databáze největší vliv na výkon aplikace, a tedy i na její možnosti či konkurenceschopnost.

I přesto, že databáze má tak zásadní význam, nikde na internetu jsem nenašel věrohodné porovnání databází. Nějakou informaci o tom, kdy je lepší kterou databázi použít. Nebo alespoň porovnání výkonu. Říká se, že Firebird je malá databáze, která se hodí jako embedded součást jiné aplikace. O Oracle se říká, že je to velká a drahá databáze. Přesto existují ERP systémy postavené na Firebirdu a existuje verze Oracle Express, která je zdarma.

Je zajímavé, že v oblasti webu je nepsaným standardem MySQL. Ačkoliv tato databáze je komerční nebo ji lze používat pod restriktivní GPL. Co do licencí jsou na tom Firebird a PostgreSQL lépe, přesto MySQL je výrazně dominantní. Proč? Inu, historické paradigma…

Technologické paradigma

Některé přechody mezi technologiemi jsou zvládnutelné: ze špategového kódu JSP/ASP/PHP stránek na MVC framework, ze souborové na SQL databázi, ze statických stránek přes JavaScript k AJAXu… Některé technologie ovšem definují způsob vývoje aplikace a mají přímý vliv na její návrh. Vývoj internetových aplikací, postavených na paradigmatu dotaz-odpověď, je zásadně odlišný od vývoje GUI aplikací, a to snad ve všech jeho částech:

  • vývoj s komponentami vs. výstupní HTML stream
  • paralelní generování stránek vs. jednovláknové (resp. dvouvláknové) reakce na uživatelovy akce
  • jeden uživatel s jedním nastavení vs. mnoho uživatelů s různými nastaveními v jednom čase (jazyk, časová zóna…)

Obchodní paradigmata

Několik paradigmat přichází do vývoje SW i z oblasti obchodu. Nerad bych se o tom rozepisoval, obchodu nerozumím. Tyto informace byste našli v managerských příručkách pod pojmem „definice produktu“. A o co jde v případě software? Určitě je důležitý typický zákazník, neboli pro koho je vlastě aplikace určena. Důležité také je, jestli jde o vývoj jednorázové aplikace na zakázku, nebo o aplikaci, která se bude prodávat v tisícovkách (identických) kusů…

Známým paradigmatem je i to, které si týká celkového zaměření firmy. Některé firmy jsou na tom dobře technologicky – implementují nejnovější trendy, používají technologie správným způsobem, jednotlivé části dodávky jsou bezešvě napojeny. Jiné firmy jsou zaměřené na podporu – pro zákazníka udělají první poslední a není pro ně problém, kterým by se nezabývaly, velmi často mají zavedený nějaký postup jak problémům předcházet. Třetí typ firem je zaměřený obchodně – dokáží prodávat své zboží po tísících, bez ohledu na kvalitu či vhodnost řešení, jejich reklamu najdete na každém rohu či webu…

Závěr

Všechny firmy, a to i ty co vytváří software, potřebují určitou míru konzervatismu. I ty firmy, které rády prezentují to, že používají nejnovější technologie. Myslím, že u nás u té Javy ještě pár let zůstaneme…

Mexxican (bez ověření) Says:
21. Květen 2009 - 14:47

Chtěl jsem poděkovat za zajímavý pohled na problematiku. Přiznám se, že mě pobavila poznámka o "manažerských příručkách", protože:

Manažeři kteří opravdu čtou příručky mě děsí a dost rychle takového jedince rozeznám, bohudík. I v oblasti managementu a řízení zdrojů sice existují kvanta seriózní literatury, přesto je pojem "manažerská příručka" zažitý a bohužel tím o sobě říkáme, jak moc si často vážíme lidí na těchto pozicích. Rozumný člověk jistě investuje do kvalitní knihy seriozního vydavatele a nekupuje příručku, kde se sice cosi dozví, ale potom opakuje neustále termíny jako "Time management", místo porad začne pořádat mítingy a brejnstormink atd atd... :)

Ale k věci, nějaká srovnání databází na internetu rozhodně jsou (http://www.devx.com/dbzone/Article/20743/0/page/1), ale je obtížné je podat nějakou jednoduchou a ucelenou formou. Tím spíše po stránce výkonu, kdy malá openSource řešení jsou směrem "rychlost za každou cenu" a naopak velcí giganti formátu Oracle nabízejí spoustu funkčnosti navíc a cílí na obrovské databáze s precizním protokolováním, zálohami a replikací.

Dle mého názoru je ale volba velmi jasná a jednoduchá, kdo si Oracle nemůže dovolit nebo jej reálně nepotřebuje, volí open source a naopak, kdo si jej dovolit může, nemá důvod nevyužít vyšší komfort.


Pavel Klobasa Says:
26. Květen 2009 - 19:03

Nerad bych, aby to vyznělo, že mám něco proti manažerům. Naopak jsem ve své kariéře měl docela štěstí na lidi, kteří nebyli "mladí a dynamičtí" (od těch špatných se mi podařilo vždy včas zmizet).

Článek na odkaze je pěkný - popisuje dB s nadhledem...


© 2005-2008 oXy Online s.r.o., všechna práva vyhrazena.