pátek 1. srpna 2008

Když bootuje bankomat

Tak se dějí zajímavé věci... (prosím omluvte špatnou kvalitu fotek)

Co je na tom zajímavého? Že bankomat resp. jeho software běží na MS Windows. A že se tam pro něco používá Java viz první fotka a celkem dobře čitelný výpis org.quartz.core.QuartzScheduler. No a autoři se s tím moc nemazali viz další hláška nastavuji succesfull timestamp na primar: true.

čtvrtek 31. července 2008

Chci věřit

Nepředvídatelný tok událostí mi vnuknul myšlenku, o kterou bych se s vámi rád podělil. Nedávno jsem vedl během obědu debatu o přínosu frameworků, které používáme, anebo které chceme použít. Na jedné straně jsem byl zakopán já se svými argumenty a na druhé straně někdo, kdo v kostce tvrdil, že tím že používáme kód, do kterého zcela nevidíme, tak přesně nevíme co se tam děje. Přiznejme si, že tento argument má hlavu, ale má i patu?

Kde v takovém případě končí ta hranice toho, kam až potřebujeme vidět? Protože přesně nevím, co se děje v transakčním manažeru, budu si psát vlastní, asi ne. Protože přesně nevím co se děje v databázi, budu si psát vlastní, asi ne. Protože přesně nevím co se děje v souborovém systému, budu si psát vlastní, asi ne. A kde to skončí, u operačního systému? Je to málo anebo hodně? Pokud používám nějakou abstrakci, a je lhostejné na jaké úrovni to bude, pak se jaksi dobrovolně vzdávám toho, že vidím co a jak se tam děje.

Používání softwarových komponent, anebo abstrakcí chcete-li, je v prvé řadě založeno na tom, že chci věřit, že daná abstrakce funguje a že to co se tam děje, se děje správně. Pokud by to neplatilo, pak by se celý softwarový průmysl zhroutil pod tíhou neefektivity, protože všichni by si dělali všechno. Pokud vám tedy někdo argumentuje tím, že používat cizí kód je nebezpečné, protože nevidíme co se tam děje, tak se toho člověka rovnou zeptejte, jestli je ze stejného důvodu rozumné vůbec používat operační systém či databáze…