Tak asi se dnes programováním v assembleru bude živit opravdu jen málo lidí. Nicméně odpověď je snad už v názvu seriálu - tento článek je úvodní díl.
Nebo jinak - asi budu za pošuka, ale já si občas nakódím v assembleru něco pro 8bit Atari 800XL, resp. pro experimentální počítač s 65C02. Ono je docela výzva nacpat nějakou funkcionalitu do těch pár kiB paměti a přitom dosáhnout rozumné rychlosti. Je to, myslím, dobré cvičení algoritmizace a optimalizace. A přesně o tom dema jsou. Na druhém konci spektra programátorů (no flame, pls) stojí "moderní" a "korporátní" jedinci, kteří, než aby se zamysleli a napsali si vlastní metodu na pár řádků, raději použijí cizí knihovnu co je závislá na dalších knihovnách. A pak to končívá tak, že vývoj trvá ještě déle, nároky na paměť rostou a rychlost klesá a třeba úplně zbytečně.
Snad jste pochopil, co jsem tím chtěl říct.
Pro embedaky je porad asm kdyz ne denni tak tydenni chleba. A obcas i pro vyvojare driveru. Pracuji ale spis s fragmenty asm kodu v kombinaci s high-level jazyky.
Pokud tedy neudrzujete stary kod ktery kdysi davno nekdo napsal v MASM. I takove veci jsou. Proste tu 30 let starou codebase tahate v korporatu jak lejno na bote.
Pouziti cizich knihoven muze byt zradne. Stava se ze z licencnich duvodu si radeji firma napise vlastni knihovnu nez aby ze sebou nechala vytirat.
Za mě - kromě nostalgie, ta tady hraje roli - to má i řekněme edukativní význam. Hardware IBM PC a vlastně i samotný BIOS a DOS je doslova přehlídkou toho, jak se nedomyšlenosti a různá ad-hoc řešení musela kvůli zpětné kompatibilitě ohýbat několik desítek let a kazit tak radost minimálně ještě celé jedné další generaci programátorů.
Těch nedomyšleností a ad-hoc řešení je celá řada a na mnohé z nich postupně narazíme. Je to zmíněná A20 gate, funkce BIOSu přestávající stačit při poněkud vyšší kapacitě RAM, dvojí přístup k souborům v DOSu, několikrát "nastavované" adresování bloků na disku, aby se vyhovělo původním návrhům adresování, snaha nacpat celou video RAM do 64 kB adresového prostoru atd. atd. A nepřeberné množství bitů v různých řídicích registrech, které buď postupně ztratily význam, nebo se k nim přidávaly další bity umístěné někde jinde.
(a to vůbec nepíšu o omezení operačních systémů pro PC)
Takže - poučení pro další generace?
Odpoved je: aby si AI maliarovi mohol povedat ze vodovky sa na tuto pracu nehodia a ani tempery. Ze chces nerozmazany uhlik alebo laserove gravirovanie.
Spravna otazka je: Ked ma AI nedostatok informacii o starych platformach, ako mam napisat alebo udrzovat kod pre takuto platformu bez jeho pomoci?
Pripadne inak: ak ta historia PC nezaujima, moze sa stat, ze budes opakovat jej chyby na softwarovej urovni aj dnes. Stretavam sa s tym bezne aj dnes, ze niekto si povie, ze stlpec Mesto ma v databaze max. 32 znakov.. a pritom mame na Slovensku aj mesta s dlhsim nazvom, vo svete nehovoriac.