IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Rozhovor s programátorom Miroslavom Nemecku

Rozhovor uverejnený na http://www.osdos.net/ dňa 9.3.2007 a 3.4.2007.

Každý z nás, kto začínal s PC na začiatku 90 rokov, prežil dobu, kedy DOS bol nekorunovaným kráľom všetkých dostupných počítačov. Každý z nás mal svoje obľúbené hry a programy, na ktoré určite rád zaspomína. Mojou najobľúbenejšou hrou bol VLAK a najobľúbenejší aplikácií DOS MANAŽÉR. Obidva tieto programy majú spoločného autora, Ing. Miroslava Němečka. A pretože mi skoro každý týždeň zasielate prográmky a utilitky od tohto autora, požiadal som ho, či by zaspomínal a poskytol pre náš WEB rozhovor o dobe, ktorá tvorila budúcnosť.

Začnime teda od začiatku. Kedy ste sa prvýkrát stretol s počítačom?

S prvým počítačom som sa stretol na strednej škole na brannom dni Zväzarmu. Bol ním Sinclair ZX81. Obdivovali sme tento technický zázrak a predovšetkým predvádzané hru "Dialo" spočívajúce v streľbe na cieľ pod zadaným uhlom a so zadanou rýchlosťou. Dialo bolo znázornené čiernobielou "kockové grafikou" s výstupom na prenosný televízor Merkúr.

Vlastne prvý "počítač" som si postavil niekedy v 10 rokoch. :-D Mal som vreckový kalkulačku značka bola Calcumat 106 a keď už ma prestalo baviť neustále opakovane naťukávat prvky číselných radov, vyrobil som si k nej programovací prípravok. Kontakty klávesnica som vyviedol von, na pierka, a preťahoval som cez ne diernou pásku s otvormi (= prúžok papiera s vyseknutými dierkami). Klávesnica bola organizovaná do matice (riadky x stĺpce), takže pozíciou dvoch otvorov sa simulovalo zopnutie niektorého tlačidla. Trvalo dlho, než som mechaniku doladil k dostatočnej funkčnosti. Ale potom som si vydal programovateľný kalkulátor Texas Instruments TI58-C a to už bolo iné "delo". :-)

Počítač Sinclair ZX81 - Rozhovory s českými a slovenskými vývojári

Predpokladám, že nezostalo len pri ňom?

Neskôr som sa stretol v amatérskom rádiu s popisom 8-bitového procesora Intel 8008 sa 14-bitovou zbernicou. Hltal som popisy inštrukcií a uchvacovali ma možnosti, čo taký jeden integrovaný obvod všetko dokáže. A prial som si sa s ním stretnúť.

Procesor Intel 8008a.jpg - Rozhovory s českými a slovenskými vývojári

Technike mikropočítačov som prepadol natoľko, že som si začal na vysokej škole stavať svoj vlastný mikropočítač na báze 8-bitového procesoru U880D (východonemecká obdoba Z80) za výdatnej pomoci stavebnice zverejňované vtedy v amatérskom rádiu. Väčšinu častí som si navrhol vlastné. Predovšetkým zobrazovacie kartu. Pracovala síce v čiernobielom znakovom režime (statické pamäte MHB2114, ROM generátor znakov), ale umožňovala aj štvorčekové pseudografiku. Pamäťový modul bol zostavený z dynamických pamätí MHB4116. Transformátor mi nechal navinúť spolužiak v nejakom závode. Bohužiaľ najväčším zádrheľom bola zbernice z plošného spoja, ktorá sa mi mierne podleptala a tak boli trochu problémy so spoľahlivosťou. A tiež preto, že namiesto ťažko dostupných FRB konektorov som použil objímky pre integrované obvody. Klávesnicu som si vyrobil membránovú, zo staniolu a fotopapiera nalepeného na plošnom spoji.

Východonemecký klon Z80 procesor U880D - Rozhovory s českými a slovenskými vývojári

Vaše začiatky s počítačmi boli cez hardvér, a ako ste sa dostal na programovanie?

Keď sa mi počítač podarilo rozchodiť, bol to len "kus holého železa". Zo začiatku však nemal žiadny firmware, takže prvé hranie sa s ním znamenalo pripojiť k nemu rad prepínačov IZOSTAT a pri každom zapnutí najskôr natlačiť krátky zavádzací program pomocou DMA prenosu. To znamenalo: prepínačom zamknúť DMA, resetovať CPU, nastaviť na prepínačoch binárny kód bajtu programu, stlačiť zápis do pamäte a pokračovať takto pre všetky ostatné bajty programu. Nakoniec odomknúť DMA a nechať CPU rozbehnúť zas od nuly. Tento úvodný program obsahoval základné monitorový program s obsluhou klávesnice a displeja. S jeho pomocou som v HEX kóde naťukal zavádzací program, ktorý slúžil k natiahnutiu programu z magnetofónu. Dátový formát vychádzal z formátu vtedy najúspešnejšieho herného počítača ZX Spectrum. Písanie programu predstavovalo naťukání programu v HEX kódu (ten som mal už ručne skompilovaný na papieri - iste si viete predstaviť ručné "realokáciu" pri vložení inštrukcie do stredu programu), napísanie kódu pre uloženie na magnetofón a potom jeho uloženie na magnetofón.

Mikropočítač Ondra, rok 1986 - Rozhovory s českými a slovenskými vývojári

Takže Váš prvý program bol firmvér (BIOS)?

Vlastne áno. Po prvých zoznamovacích pokusoch som si už trúfol na napísanie firmware do svojho "PC". Mal som pre neho pripravenú pamäť PROM 1 KB. Vtedy ešte nemazatelnou, ťažko zohnateľné a tiež drahú. Preto som mal len jediný pokus, ktorý musel vyjsť. Stále dookola som prechádzal program firmware a hľadal možné chyby. Vyskúšanie vopred nebolo možné. Keď som vývoj uzavrel, odovzdal som zdrojový kód spolužiakovi, ktorý mi ho vypálil na svojom ZX Spectra. Vložil som PROM do počítača, zapol - a ono to skutočne fungovalo a dokonca bez chyby. Bolo možné písať programy v HEX kódu, ukladať ich na magnetofón a načítať späť.

A po skončení vysokej školy, predpokladám, rovno do náručia programovania ...?

Kdeže, po skončení vysokej školy (1986) rovno do náručia vojny :-) . Ale mal som šťastie. Bol tam zakúpený počítač Sharp MZ-821, s ktorým som si mohol vo voľných chvíľach hrať a ktorého grafické schopnosti i hardvérové a softvérové vybavenie ma uchvátili. Spočiatku sme na ňom hrali hry, ktoré kolegovia bohvie odkiaľ zháňali. Potom som začal písať vlastné programy v Basicu a začal tento počítač poznať skutočne dôkladne. No a nakoniec som začal lúštiť jeho vnútornej kód. Postupne som si vypisoval obsah jeho monitorového programu a potom aj Basic Interpreter a niektorých ďalších programov a lúštil je. Nebolo možné použiť disassembler, takže všetko som robil z HEX výpisu pomocou tabuliek inštrukcií, ktoré sa čoskoro stali zbytočné, keď som si kódy už pamätal. Opísal som takto veľa zošitov inštrukciami procesora, ktorých význam som potom lúštil, až mi bolo jasné, čo ktorá časť programu robí. Myslím, že lúštenie cudzích hotových programov mi dalo najviac programátorských znalostí.

Sharp MZ-821 - Rozhovory s českými a slovenskými vývojári

Po návrate z vojny som bol zamestnaný v Tesle Rožnov ako technik počítačov Robotron. Nepriťahoval ma ale veľké sálové počítače, špecializoval som sa na periférne zariadenia založené na 8-bitových procesoroch U880D. Opäť zvíťazila túžba po poznaní a tak som poznal mnoho zariadení nielen po hardvérovej stránke, ale aj po stránke vnútorného softvér. Jednalo sa napr. O tlačiarne K6314, o terminály UBT a BDT. Medzi nimi aj mikropočítače K5120 s operačnými systémami SIOS (interpreter vnútorného binárneho kódu) a SCPX (variant systému CP / M).

Ihličková tlačiareň Robotron K6314 - Rozhovory s českými a slovenskými vývojári

A ďalšie zošity boli popísané ... :-)

Áno, mnoho nových zošitov sa plnilo výpisom disassemblovaných programov. Najzaujímavejšie pre mňa bol práve systém SCPX. Vytvoril som si na pomoc aj program pre spätný preklad kódu. Nebol však len prostým disassembler. Bolo možné určovať, ktorá časť kódu sú dáta a ktorá program a ako sa má ktorá časť prekladať. K tomu slúžila aj funkcia automatického trasovanie, kedy program prešiel prekladaný kód a snažil sa uhádnuť, ktorými všetkými miestami program môže prechádzať. Navyše vytvoril návestie skokov a dátových miest. Potom nasledovala ručné analýza kódu s podporou programu, kedy bolo možné ešte upresňovať spôsob prekladu. Pri vpísanie komentáre program zobrazoval komentár iu všetkých referencií na dané miesto.

Našich čitateľov by tiež zaujímalo, kedy ste sa prvýkrát stretol s počítačom v dnešnom slova zmysle, tj. IBM-PC?

Prvýkrát som zbadal počítač radu IBM PC v roku 1988, kedy si ma šéf zavolal, aby som mu poradil, ako sa taký počítač používa. Bol to celkom nový Robotron XT 5 MHz s 20 MB harddiskom a černozeleným monitorom. Predviedol som mu pár príkazov z prostredia CP / M (ako DIR, TYPE a Ctrl + P), ktoré napodiv fungovali aj v systéme DOS. Počítač sa začal používať pre databázové systémy, ale okrem toho načierno aj na hry. Časom som do neho začal tiež zabrousívat a zoznamovať sa s PC programami.

Robotron XT A7100 - Rozhovory s českými a slovenskými vývojári

Po nejakej dobe bolo zakúpené zo Slušovíc niekoľko nových počítačov PC-AT 12 MHz s harddiskom 40 MB (každý údajne za 470 tisíc) ak nim veľa diskiet sa softvér. Jednalo sa väčšinou o anglické programy, ktoré boli v binárnom kóde počeštená a vpísaný copyright Slušovíc. Začal som PC tiež bohato využívať, okrem vlastnej softvérovej tvorby aj ako CAD stanicu (OrCAD a Redboard).

A tam asi začalo aj programovanie pre PCéčka ...?

Áno. Pri práci s PC sa objavila potreba uľahčenie manipulácie so súbormi, k čomu slúžili súborové manažérov. K mojim najobľúbenejším prostriedkom patril súborový manažér Ergo a textový editor Context. K editora Context som napísal ovládače pre podporu češtiny a prácu v grafickom i textovom móde a aj po ďalšie roky som ho používal ako hlavný programátorský editor. Súborový manažér Ergo bol časom vykorenený programom PCTools (PCShell) a ten potom nahradený geniálnym programom Norton Commander.

Čoskoro sa začal objavovať strašiak softvérové polície a potreba softvér legalizovať. Ceny softvér boli vtedy ešte neprijateľné aj pre podniky a tak sa objavil návrh, aby som skúsil vytvoriť náhradu za najpoužívanejšie z programov - Norton Commander. Skúsil som to - a tak v roku 1990 vznikol program MNShell, neskôr premenovaný na DOS Manažér. Jeho obľuba v podniku rýchlo rástla, až sa objavila myšlienka opustiť zamestnanie a pustiť sa do podnikania. Toho sa chytila firma Golem, zaoberajúca sa vtedy ochranným systémom Hradba (slúžiacim k ochrane pred ilegálnym kopírovaním programov) a ponúkli mi spoluprácu a svoje bohaté podnikateľské skúsenosti. A tak som opustil zamestnania a vrhol sa do podnikateľskej sféry.

Takže od tejto chvíle ste sa začal živiť ako programátor na plný úväzok?

Vlastne áno. Spolu s DOS Manažérom vznikala aj hromada jednoúčelových utilít (ktorá časom dosiahla počet 250, všetko v assembleri), ktorá bola spolu s ním dodávaná. Medzi najzaujímavejšie a najpopulárnejšie patril napr. Ovládač českej klávesnice, ktorý v malú verziu zaberal na disku presne 1 sektor (512 bajtov) a v pamäti 256 bajtov. Bohatšie verzia (CSKEY) zahŕňala niekoľko variantov rozloženie a znakových sád (vrátane špeciálnosti ako generátor rámčekov) a šírila sa medzi ľuďmi ako shareware. Od spokojných užívateľov CSKEY som dostal nejednu poštové poukážku. Zaujímavý bol tiež ovládač češtiny pre displeje. Miniverzia zaberala na disku 422 bajtov, v pamäti 336 bajtov a pracovala priamym prístupom na hardvér syntetickým doplnením diakritických znamienok do existujúcich znakov. V súčasnosti sú všetky zdrojové texty programov voľne k dispozícii - buď už priamo k stiahnutiu ( http://sweb.cz/Panda38 alebo iná časť na http://mnsoft.wz.cz) alebo na požiadanie (nie je čas ich všetky pripraviť, takže skôr po dohode).

DOS MANAŽÉR - Rozhovory s českými a slovenskými vývojári

Pracoval som ďalej na rozpracovanom programu DOS Manažér (v assembleri) a spolu s ostatnými členmi firmy Golem sme ho začali uvádzať na trh. Program bol nadmieru úspešný. Bolo na neho v mnohých časopisoch vydaných mnoho kladných recenzií. Spomínam na výstavu Invex 1991, na ktorú sme priviezli 10 počítačov XT z Nového Boru s farebnými monitormi. 8 z nich sme zavesili na stropný konzolu (nie konzolu :-) ) Stánku, 2 zostali ako záložný. Na všetkých monitoroch bežali farebné pútače, predovšetkým na program DOS Manažér. V tejto dobe grafika na počítačoch ešte len vznikala a tak tieto 16-farebné pútače veľmi priťahovali pozornosť všetkých okoloidúcich.

Pútače boli vytvorené v programe Animator, ktorý som na tento účel vtedy vyvinul. Bol to programovací nástroj s vlastným jazykom zameraný predovšetkým na tvorbu animácií. Umožňoval prácu v grafickom i textovom režime, mal vlastný formát obrázkov (vrátane obrázkov v textovom režime), ktoré sa dali získavať snímaním obrazovky programov. Okrem pútačov som v tomto nástroji vytvoril napríklad hru Privatizácia. Každým rokom v ňom vznikala PF novoročné animovaná želanie, ktorá sa stala dosť populárnou.

Aký bol ďalší osud DOS Manažérovi?

Cez úspech DOS Manažérovi sme začali cítiť aj jeho nedostatky. Hlavným nedostatkom bolo obmedzenie programu na 64 KB, pretože bol prekladaný ako COM súbor. To bolo výhodné pre minimálnu náročnosť programu, ale nedostačujúce pre rastúce počty súborov v adresároch používateľov. A tiež nebolo už možné pridávať do programu ďalšie funkcie. Preto súbežne s vylepšovaním DOS Manažérovi 1 začala v roku 1992 vznikať verzia 2 prekladaná ako EXE program s mnohými novými funkciami (opäť v assembleri).

DOS Manažér 2 mal hromady výhod, ako počet súborov v adresári obmedzený len veľkosťou pamäte (okolo 10 tisíc), súborové funkcie nielen pre vybrané súbory, ale aj pre súbory vyhľadávané priebežne na celom disku alebo v adresári, ďalej diskový editor, editor textov do 250 MB, 3 režimy spúšťanie programov, kalendár od roku 1, veľmi presný riadkový kalkulátor, dlhá mená Windows a mnoho ďalších. Bohužiaľ jeho vývoj nebol dostatočne rýchly. Prvá verzia bola vydaná v roku 1996, kedy už sa stali Windows 95 značne rozšíreným systémom a záujem o súborové manažérov rýchlo upadal. Preto DOS Manažér 2 nebol už tak úspešný na trhu ako jeho predchodca, hoci kvalitatívne neboli spolu porovnateľné. V dnešnej dobe je stále ešte v ponuke Nástupné firmy GEMA Soft pod verzií 2.10 (z roku 1998, http://www.gemtree.cz/...t/dosman.htm), ale jeho vývoj ďalej nepokračuje, hoci sa už vie o niektorých záporoch, ako nepodporovanie dlhých mien pod Windows NT / 2000 / XP, havárie pri rušení súboru s menom dlhším než asi 200 znakov a zacykleniu pri premenovaní adresára so zmenou znaku na pozícii vyššej ako 11.

Viem, že ste sa okrem DOS Manažérovi venoval aj programu Peter. Ako ten vznikol?

Súbežne s DOS Manažérom som sa príležitostne ďalej zaoberal aj programom Animator, ako grafickým programovacím nástrojom. Na nátlaky môjho vtedy osemročného syna som v roku 1996 začal pracovať na novom pokuse - vytvoriť programovací nástroj pre deti. Využil som skúsenosti z programu Animator a vytvoril DOS interpreter programu, založený na princípoch Karla s rozšírenými možnosťami, ako napr. Možnosť kladenia ľubovoľných ikon na políčka hracej plochy a tým zobrazovanie jednoduché grafiky. Málo detský robot Karel s priateľkou Karlou bol vzápätí zmenený na králika Petra s králičice Petrou, inšpirované obrázkom na tričku dcéry a vtedy vysielaným seriálom "Príbehy králika Petra". Neskôr bola Petra nahradená Luckou (kvôli rozlíšenie mien v cudzích jazykoch).

Novoročné želanie PF1993 - Rozhovory s českými a slovenskými vývojári

Textový zápis programu sa ukázal pre detské užívateľa neprijateľný a tak som začal študovať programovanie pod systémom Windows, ako nutné prostredie aj pre vznik nového súborového manažéra, ktorý som plánoval. Programovanie v assembleri pod Windows sa zdalo byť veľmi zaujímavé, ale bolo dosť pracné a nepoznal som prostredie Windows ešte dostatočne na to, aby som v ňom mohol týmto štýlom tvoriť. Všetko zmenila kniha "Majstrovstvá v Delphi". Bol som nadšený jej prehľadnosťou a názornosťou a začal som prenikať do programovania pod Windows v Delphi za podpory ďalších kníh o systéme Windows (anglické dokumentačné knihy od Microsoftu). Začali vznikať prvé pokusy v súborovom manažéri pre Windows a objavila sa prvý koncepcia programovacieho nástroje pre deti v grafickom prostredí.

Prvá verzia Petra v DOS - Rozhovory s českými a slovenskými vývojári

Údajne ste sa podieľal aj na vývoji Baltíka od SGP. Je to pravda?

Na jeseň roku 1997 sa na našu firmu obrátil pán Soukup (ktorý bol stálym odberateľom ochranného systému Hradba), autor programovacieho nástroje Baltazar ( http://www.sgpsys.com), s prosbou, aby sme pre neho vytvorili Windows verziu jeho programu Baltík. Jednalo sa o dosť krkolomný termín, pár týždňov, údajne mal predvádzať nového Baltíka na Invexe 1997 zástupcom firmy Microsoft. Po dohadoch sme nakoniec výzvu prijali (pán Soukup nás už niekoľko mesiacov predtým márne vyzýval k spolupráci na jeho produktoch). Bohužiaľ kvôli časovej tiesni všetko prebiehalo cez telefón, bez akejkoľvek písomnej zmluvy.

Nového Baltíka 2.0 som začal tvoriť v Delphi, pretože som využil polotovar, ktorý som mal pripravený pre svojho Petra. Chcel som v Baltíkovi uplatniť svoje predstavy o novom programovacom nástroji pre deti. Hlavným zádrheľom v práci sa však ukázal byť pán Soukup. Príliš striktne vyžadoval svoje predstavy o programe, ktoré vychádzali z jeho DOS verzie. Niekoľkokrát sa aj stalo, že som propagoval nejakú myšlienku, po veľkých dohadoch (opäť po telefóne) som ustúpil a funkciu z programu zrušil. No a po nejakej dobe potom Soukup prišiel s presne rovnakou myšlienkou ako svoju vlastnú a musel som ju tam opäť dorábať. Takže - práca síce po niekoľkých bezsenných týždňoch veľkého pracovného vypätia bola nakoniec zvládnutá včas, ale s veľkým odporom k výtvoru a presvedčením, že s pánom Soukupom už nikdy nechcem mať nič spoločné. To bol tiež jeden z dôvodov, prečo som pánovi Soukupovi okrem hotového programu poslal aj všetky zdrojové texty programu, aby si prípadné ďalšie zmeny už dorábal sám (čo nebol ten najsprávnejší ťah, ako som potom neskôr pochopil).

Baltík 2.0 - Rozhovory s českými a slovenskými vývojári

Takže ste sa potom vrátil opäť k Petrovi?

K predvedenie nového Baltíka firme Microsoft nakoniec nedošlo. Po výstave som na programe ešte ďalej pokračoval podľa požiadaviek a predstáv pána Soukupa až do februára 1998, kedy som už ďalšiu spoluprácu odmietol. Čas plynul a pán Soukup sa namiesto dohodnutých platieb za vykonané práce vykrúcal výhovorkami o zlej finančnej situácii. To pokračovalo aj ďalšie roky. Medzitým som sa pustil opäť do práce na svojom Petrovi. Realizoval som v ňom svoje (pánom Soukupom odmietnutej) predstavy - stavba programu umiestňovaním ikon do stromu, čím bolo možné prehľadne "sklapávat" časti programu. A tiež automatická kontrola syntaxe, kedy možno k sebe pripojiť iba zmysluplné prvky.

Upustil som od Delphi, pretože v ňom nebolo možné písať program dostatočne efektívne, tj. Na dostatočne nízkej úrovni. Zvolil som Microsoft VC ++, pretože ma "pustilo nižšie" do systému, čo bolo u takého real-time programu celkom podstatné. Spočiatku som využíval MFC knižnice. Narážal som veľmi často na až neriešiteľné problémy s MFC a prichádzal k zisteniu, že ma knižnica obchádzaním jej nevýhod a chýb skôr zdržiava od práce než že by bola prospešná.

A potom ste od MFC upustil a vrátil sa späť, k "jadru veci"?

Po pol roku práce som začal písať Petra prakticky znovu - tentoraz však bez MFC, iba s holým API. S prekvapením som zistil, ako ide programovanie bez MFC ľahko. Mnoho problémov úplne zmizlo. Základnou požiadavkou na Petra bolo, aby bol dostatočne rýchly. Preto som hneď na začiatku vypustil CRT jadro programu a všetko nahradil vlastnými obsluhami. Prvým krokom teda bolo vytvoriť program, ktorý mal 4 KB - tj. Len EXE hlavička a nejaké interné premenné, ktoré prekladač vyžadoval a ktoré bežne nachádza v CRT modulu. Bolo to ťažšie než som si predstavoval, prekladač vyžadoval veľa vecí, o ktorých bol problém niečo zistiť, pretože bežne nie sú dokumentované. Ale nakoniec sa zadarilo.

Jednou z prvých vecí, ktorú som do Petra vytváral, bol manažér pamäti, ktorý mal nahradiť pamäťové funkcie z vypustené CRT knižnice. Zo zdrojových kódov Delphi aj VC ++ som vedel, ako pracujú ich manažérov pamäte a vedel som, že nepracujú príliš efektívne. Manažér pamäti, ktorý som vytvoril, bol pri testoch 15x rýchlejší ako manažér z VC ++ a 4x rýchlejšie ako manažér z Delphi. Rozdeľoval virtuálna pamäť na skupiny blokov pamäti rovnakej veľkosti mocniny 2 spojené do reťazca pomocou odkazov. Aj v mnohých ďalších programoch som tento manažér neskôr úspešne používal.

Petr pre Windows - Rozhovory s českými a slovenskými vývojári

Čo si na Petrovi najviac ceníte?

Jednou z vecí, čo mnoho ľudí na Petrovi prekvapuje je, že sa jedná o interpreter, pretože rýchlosťou je v mnohých oblastiach porovnateľný s kompilátory. Zdrojový kód (v binárnom tvare) je súčasne aj vykonávacím kódom programu. Každý program je uložený priamo v EXE súboru spolu s interpeterem, takže program vytvorený v Petrovi možno priamo spustiť ako bežnú spustiteľnú aplikáciu Windows bez toho vyžaduje inštaláciu nejakého prostredia, a súčasne možno takýto program otvoriť v editore Petra a program prechádzať či upravovať.

Za najzaujímavejšie časť na Petrovi považujem 3D grafiku. Je to oblasť, ktorá ma veľmi zaujala a ktorú som tvoril s radosťou. Petr vnútorne rieši správu objektov 3D sveta, všetky transformácie matíc, renderovanie scény, presahmi textúr. To všetko zaisťuje pre rozhranie DirectX 3 (kde sa používajú zložité platné buffer) až DirectX 8 a tiež pre rozhrania OpenGL. Petr zabezpečuje, aby sa programátor pokiaľ možno nemusel o nič starať. Nemusí vedieť, pod akým rozhraním program pracuje (hoci to môže určiť ak chce), Petr stiera rozdiely medzi rozhraniami. A platí tu viac ako inde, že program v Petrovi je veľmi rýchly, čo dokazujú 3D hry v Petrovi vytvorené.

V Petrovi bolo napísané mnoho hier, mnohé z nich sa víťazne umiestnili v súťažiach Becherovky (napr. Bechtor, 13 duchov, Turbo Cars, Kóta 236 a ďalšie) a dokázali tak kvalitu prostredia Petra.

Dobrou ukážkou rýchlosti Petra je program sinusovka. Ide síce o maličkosť, ale - Baltík obsahuje obdobný program, vykreslenie jednej sínusovky v ňom trvá desiatky sekúnd. V Petrovi sa obdobných sinusovek vykreslí niekoľko desiatok za sekundu.

Hra 13 duchov - Rozhovory s českými a slovenskými vývojári

A ako ďalej pokračovalo uvedenie Petra na trh?

Po ukončení "spolupráca" s pánom Soukupom pokračovalo ťahanie peňazí za vykonanú prácu. Pozorovali sme, ako pomaly svojho Baltíka ďalej upravuje (dnes vo verzii 3). Presnejšie nie on, ale ľudí, ktoré touto prácou zamestnával. Informáciu o Petrovi sme z celkom pochopiteľných dôvodov zatiaľ radšej tajili. Nevedeli sme, ako sa k tomu pán Soukup postaví. Predsa len sme boli pre neho novo vznikajúce konkurenciou. Paradoxne som sa stal konkurentom sám sebe (v programoch Peter a Baltík).

1.6.1999 (na Deň detí) sme konečne uviedli na trh prvú verziu Petra ( http://www.gemtree.cz a http://www.gemtree.com). Zverejňovali sme o ňom informácie, uvádzali ho v časopisoch, zúčastnili sa výstav a očakávali odozvy. Prvý odozva prišla, ale bola trochu z inej strany ako sme čakali. Pán Soukup začal proti nám bojovať všetkými prostriedkami a to nie príliš čistými. V spolupráci s niektorými redakciami PC časopisov, ako napr. Chip, rozpútal veľkú ohováračskú kampaň "Kauza Králik" za výdatnej pomoci spisovateľa Rudolfa Pecinovského.

Vo zverejnenom článku dokazovali naše plagiátorstvo, ako sme napodobnili ktoré programy, ale predovšetkým ako sme pánovi Soukupovi ukradli jeho myšlienky z Baltíka a ako sme ho podrazili. Pritom nám pán Soukup stále nepreplatila práce na Baltíkovi, vykonával predaja Baltíka bez akejkoľvek písomnej zmluvy so mnou ako s autorom, takže nezákonnosti a rozpore s autorským zákonom sa v skutočnosti vlastne dopúšťal on (a dodnes dopúšťa). Pripomína mi to známe príslovie "Zlodej kričí: chyťte zlodeja!" Zaujímavý dôkaz plagiátorstvo predviedol pán Pecinovský, keď porovnával Petra s Baltíkom porovnaním dvoch vzorových programov (vystavanie domčeku) vytvorených v Baltíkovi a v Petrovi (čiže vec užívateľského použitia nástrojov, nie nákupný nástrojov samých) a program v Petrovi sám upravil tak, aby sa čo najviac podobal Baltíkovské variante. Ovšem najviac ma pobavili dôkazy plagiátorstvo na základe hry Vlak, ktorá sa v Petrovi objavila, ako plagiát známej DOS hry - zrejme páni nevedeli, že som bol autorom aj pôvodný DOS verzie.

Hra Vlak pre Windows - Rozhovory s českými a slovenskými vývojári

Po mnohých dohadoch vo firme sme nakoniec zvolili taktiku ignorovanie, lebo na ohováranie a lži skutočne nemalo zmysel reagovať. Pritom sme mali obavy, čoho všetkého sa pán Soukup ešte môže dopustiť ďalej. Len sme pozorovali, ako pán Soukup Baltíka upravil tak, aby v ňom nebola zrejmá mená funkcií a premenných (zrejme nejakým korekčným programom, ktorý je nahradil nič nehovoriacim symboly), ktorá by dokazovala pôvodnosť kódu. Časom hluk utíchol (predovšetkým keď sa pán Soukup pretlačil do neslávne známej akcie Indosat) a my ďalej pokračovali vo svojej práci na Petrovi.

Aj cez naše veľké nadšenie pre vec bola však odozva trhu malá. Časom sme dospeli k zisteniu, že je veľmi málo tvorivých ľudí. Na druhej strane bol ohromný záujem o programy v Petrovi vytvorené - obzvlášť o program Desktop Hry, ktorý sa stal absolútne najsťahovanejším programom z našich www stránok a rozšíril sa lavínovito do celého sveta (obzvlášť do USA). Ovšem - freeware nikoho neuživí. Preto sme boli nútení sa pustiť aj do iných oblastí.

Na čom pracujete teraz?

V súčasnosti mám nového koníčka, ktorý ma plne uchvátil. Začal vo chvíli, keď som si nainštaloval na PC operačný systém Linux. Ale Linux tým koníčkom nie je, práve naopak. Po mnohých pokusoch preniknúť do sveta Linuxu som dospel k záveru, že v tejto oblasti čaká ešte veľmi veľa práce. Zistil som, ako je táto oblasť užívateľsky nepřívětivý, ťažko prístupná a neprehľadná a ako by som veľa vecí urobil inak. Je vhodná len pre mladých bystré počítačových odborníkov, ktorí neľutujú času stráveného štúdiom a experimentovaním.

Preto postupne vo mne dozrela myšlienka pustiť sa do tvorby vlastného systému, podľa vlastných predstáv a požiadaviek. Systému, ktorý bude prehľadný, jednoduchý a pritom dostatočne výkonný. Nevadí, keď nenahradí iné systémy - aj uplatnenie v oblasti real-time aplikácií môže byť dostatočným prínosom. Najskôr som "na rozcvičku" začal vytváraním vlastné verzie systému DOS (projekt Litux, http://litux.wz.cz). Mal som v úmysle vytvoriť voľne šíriteľný DOS, ktorý pritom nebude mať necnosti iných podobných systémov - tj. Musí byť miniatúrne a pritom musí pracovať v reálnom móde procesora (čo je jedna z veľkých predností systému DOS).

Časom som dospel k záveru, že je to možno skôr len strata času, že by som sa mal radšej venovať "ozajstnému systému". Preto som systém DOS zanechal v polovici, možno ako inšpiráciu iným programátorom, a pustil sa do multitaskového systému litos (plne v assembleri, http://litos.wz.cz), na ktorom v súčasnosti pracujem. Či budem v tejto oblasti úspešný neviem. Ale držím sa myšlienky, že človek by nemal premýšľať vopred "čo za to", ale ak je chuť niečo tvoriť, tak by mal tvoriť - a ono sa to všetko nejako samo poddá.

Operačný systém litos - Rozhovory s českými a slovenskými vývojári

Update - máj 2012.

Po pár rokoch práce na litos som usúdil, že je to úloha nad sily jedného človeka a projekt som uzavrel. Bolo mi síce ľúto vynaloženej práce, obzvlášť s niektorými časťami som bol veľmi spokojný - napr. Práca s časom a dátumom, práca s textami, Unicode, scheduler, alokátor pamäti. Vďaka assembleri bolo možné, oproti vyšším jazykom, dosiahnuť oveľa vyššiu efektívnosť a jednoduchosti. Ale - vývoj je vývoj, svetovému trendu je ťažké týmto štýlom konkurovať. Na druhú stranu, už sa mi ozvalo veľa programátorov, ktorí vo svojich projektoch využili myšlienky alebo častí kódov, takže zrejme úplne stratená táto práca nebude.

Pred časom som začal pracovať na novom projekte - 3D engine Artonix http://artonix.sweb.cz/. Viedlo ma k tomu zistenie, že keď som niekedy potreboval urobiť ľahko a rýchlo nejaký 3D projekt, boli k dispozícii len buď príliš zložité a ťažkopádne enginy, alebo enginy jednoduché, ale nepoužiteľné. Preto som potom obvykle siahol k Petrovi, ktorý moje požiadavky najlepšie spĺňal. Artonix veľa vychádza z Petra, ale značne jeho myšlienky rozširuje za hranice, kde by Peter už nemohol stačiť. Snažil som sa dodržať jednoduchosť použitia pri zabezpečenie dostatočnej funkčnosti a rýchlosti. S výsledkami som zatiaľ veľmi spokojný - sú podporované rozhrania DirectX 3 až 9, OpenGL 1.1, kvalitné konštruktor, deformátor a modifikátor objektov, bohatá práca s textúrami. Zatiaľ Artonix nie je pripravený na verejné použitie. Jeho funkčnosť je už bohatá, ale zostáva ešte príprava ukážkových projektov (vrátane manuálu a tutoriálov), pri ktorých príprave sa postupne objavujú chyby a nové požiadavky. Projekt ešte nejakú dobu zaberie, pretože sa mu venujem len občas, po chvíľach. Jeho plné dokončenie sa však zdá byť oveľa reálnejšie, než tomu bolo u litos. A možno, že sa stane základom budúcej novej verzie Petra 3.0.

3D engine Artonix - Rozhovory s českými a slovenskými vývojári

Ďakujeme za rozhovor :)


 

Všetky články v sekcii
Rozhovory s českými a slovenskými vývojári
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity