Nahoru
 

Jak je to s programátory a leností?

Často slýchávám velmi iritující tvrzení: „Programátoři jsou líní“. Slyším to jak od netechniků, tak někdy od samotných programátorů či IT profesorů. Dle mého názoru je tato věta zcela milná. V programování totiž platí, že vydat se tou obtížnější cestou, nemusí být vždy dobré rozhodnutí.

Abychom pochopili pozdější pointu o nesmyslnosti výroku o lenosti programátorů, musíme nejdříve pochopit, co si vlastně kupujeme, když platíme programátorovi. Jelikož programy nelze tvořit sériově (protože každý program je jiný), musíme vyhledat někoho, kdo jej vyrobí – musíme najmou programátora. My si ale od programátora nekupujeme software, jež zhotoví. My si kupujeme programátorův čas, jež je zapotřebí, pro vytvoření požadovaného programu.

Neplatíme programátorovi za program, ale za čas.

Čím složitější je požadovaná aplikace, tím tučnější bude naše faktura, protože potřebujeme zaplatit více „programovacího“ času.

Je pozoruhodné, že cena a složitost programu nerostou stejnou křivkou. Například dvakrát více kódu nás může stát čtyřikrát více peněz. Více o tom, proč cena stoupá rychleji než složitost, se můžete dozvědět v článku Dvakrát více kódu stojí čtyřikrát více? Ano, z dobrého důvodu.

Teoretický příklad

Představte si, že potřebujete vytvořit novou kasu na evidenci tržeb. Na výběr máte ze dvou programátorů. Jeden programuje pomocí klávesnice s tlačítky „0“ a „1“ (protože procesor počítače je ovládán pomocí nul a jedniček). Tento programátor by musel bušit do své skromné klávesnice celé roky, než by program dokončil, protože přijít na svět s kódem tímto způsobem je na teoretické úrovni možné, avšak nesmyslně těžké. Na druhou stranu zde máte programátora, jenž raději využije chytrého programovací prostředí, které sice znamená jistou penalizaci v efektivitě a funkčních možnostech výsledného programu, nicméně zkrátí vývoj na maximálně pár týdnů.

U programátorů platí, že čas jsou peníze (doslova). I když je výkon programátora č. 1 velice obdivuhodný, opravdu mu nechceme platit milióny za léta vývoje. Věřím, že jasná volba je zde programátor č. 2, který nejenom stojí stonásobně méně, ale také cíle dosáhne řádově rychleji. Programátor č. 2 avšak není líný, pouze užívá systémy, jež mu umožní vynechat redundance, psát snadněji a zaměřit se na inovace. Je to stejně absurdní, jako kdyby si truhlář vyráběl vlastní hřebíky, místo toho, aby je koupil.

Příklad z praxe

Ukázkovým příkladem z praxe mohou být herní „enginy“. Tyto prostředí obsahují všechny základy pro hry, jako je fyzika, 3D nebo 2D prostředí, efekty, animace a spoustu dalšího. Všichni víme, že fyzika v našem světě funguje stále stejně. Musejí tedy programátoři pro každou novou hru znovu naprogramovat celou fyziku? To, že fyziku vytvoříme pouze jednou, vbudujeme do systému a nemusíme programovat opakovaně, by někteří nazvali, jako lenost. Já si s tím však dovoluji nesouhlasit na všech úrovních. Já tvrdím, že je to naopak velmi chytré a důmyslné. Mnohdy je toto řešení těžší, protože problém musí být vyřešen universálně, jak naznačuje článek Zkuste programovat, je to skvělé.

Motor
Obrázek č. 1: Většina her běží na nějakém enginu (motoru), jež definuje základní chování, jako je fyzika.

Další technickým příkladem jsou databázové systémy. Dřívě, když chtěli programátoři uchovávat data, museli znovu a znovu psát velmi podobný kód na jejich uchování. Pak si jeden z nich řekl dost a navrhl sofistikovaný, dodnes používaný systém databází. Nyní si již žádný programátor nemusí psát hromady opakujícího se kódu, ale stačí využít již vytvořenou a vyladěnou platformu. Záměr byla rychlá tvorba a zbavení se redundancí. Není to z lenosti, ale z praktičnosti.

Databáze
Obrázek č. 2: Databázové systémy jsou velkým přelomem. Umožňují velmi jednoduše uchovávat data, což je nepostradatelná funkce.

Takových příkladů najdeme spoustu. I my, zde v Bonsai Development, máme vytvořené velmi důmyslné a složité knihovny, jež nám umožňují tvořit rychleji, tím pádem levněji a za stejnou kvalitu.

Není lenost jako lenost

Samozřejmě existují programátoři, jež jsou líní v pravém slova smyslu. Tento článek se však snaží nabourat fámu o tom, že se programátoři z lenosti vyhýbají složitým programovacím úlohám a místo toho užívají hotová řešení. Obcházením složitých problémů dosáhneme kratší doby vývoje a daleko menších nákladů, což je například pro začínající podniky a startupy klíčové.

Ne vždy je vhodné použít existující platformy nebo kódy. Kdyby se například Facebook rozhodl přestoupit na Wordpress, jsem si téměř jistý, že do pár dní by ztratil většinu svých uživatelů, kvůli rychlostem a nedostatku funkcí. Každý programátor musí projekt vyhodnotit a určit, co se vyplatí naprogramovat a co naopak obejít tak, aby byl výsledný produkt co nejlepší, ale za rozumnou cenu.

Fáma, že programátoři obcházejí složité programovací výzvy z lenosti, je neopodstatněná. Programátoři toto dělají za účelem šetření času, a tím pádem i peněz. Díky znovupoužitelným prostředím a kódům se vývoj techniky neustále zrychluje i zlevňuje a rozhodně není na místě to nazývat leností.