Nahoru
 

Jak je to s programátory a leností?

Často slyším velmi iritující větu: „Programátoři jsou líní“. Toto však tvrdí pouze lidé, jež nechápou podstatu usnadnění práce. Je pravda, že programátoři sami sobě tvoří spoustu pomůcek a funkcí, jež za ně klidně i sama napíše různé redundantní kusy kódu. Dělají to, protože jsou líní, nebo chytří?

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 má speciální klávesnici s tlačítky „0“ a „1“ (protože počítač je ovládán pomocí nul a jedniček). Tento programátor musel bušit do své skromné klávesnice celé roky, než by váš program dokončil, protože přijít na svět s programem tímto způsobem je na teoretické úrovni možné, avšak nesmyslně těžké. Na druhou stranu zde máte programátora, jenž využije chytré prostředí. Ano, to prostředí je tak chytré, že části kódu sem tam i doplňuje za tvůrce a sám kompilátor program značně optimalizuje. Vývoj mu trvá maximálně pár týdnů.

U programátorské branže platí, že čas jsou peníze (doslova). I když je výkon programátora č. 1 velice obdivuhodný, opravdu mu nechcete platit za léta vývoje. Věřím, že jasná volba je zde programátor č. 2, jež nejenom stojí stonásobně méně, ale také cíle dosáhne řádově rychleji. Programátoři tedy nejsou líní, pouze tvoří systémy, jež jim v budoucnu umožní nepsat redundantní kód a zaměřit se na inovace.

Jedničky a nuly
Obrázek č. 1: Psaní jedniček a nul, tedy programování řídících signálů se v praxi vůbec neaplikuje.

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 znovu? To, ji vytvoří pouze jednou, vbudují do systému a nemusí 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 č. 2: Většina her běží na nějakém enginu (motoru), jež definuje základní chování, jako je fyzika.

Takový technický příklad jsou databázové systémy. Jestliže dříve 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 sofistikovanou platformu. Záměr byla rychlá tvorba a zbavení se redundancí. Není to z lenosti, ale z praktičnosti.

Serverovna
Obrázek č. 3: 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ů je tu spousta. I my, zde v Bonsai Development, máme vyvinuté 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. Jsme líní nebo chytří? Toto již můžete usoudit sami.