Úvahy a komentáře

Jedním z problémů, na které jsem při práci s Javou narazil, je její nekompatibilita s vektorovou grafikou; nevím, zda situace trvá i u nejnovější verse, ale fakt je, že právě nutnost tvořit všechno v bitmapách mi při návrhu javového emulátoru opakovaně působila velké bolesti hlavy: nakonec jsem všechna okna naprogramoval tak, že se dala volit velikost ze čtyř možností, což bylo uživatelsky snesitelné, ovšem logistika spojená se změnou velikosti u běžící aplikace je něco, co bych nerad zažíval znovu.

U javascriptové verse tento problém odpadá, protože všechny moderní browsery jsou kompatibilní s formátem SVG. Tento formát umí sám pracovat s JavaScriptem, takže je možné vytvářet chytré objekty, příkladmo sedmisegmentový display, který umístíte na stránku, v libovolné velikosti, a komunikujete s ním přes jeho methody, které jsou plně enkapsulované v SVG souboru; tak, jak by to mělo logicky a modulárně být. Jako člověku chorobně a neléčitelně systematickému mi takové řešení vyhovuje. Máte-li relativně nový prohlížeč, můžete to vyzkoušet; JavaScript, který uvidíte, je arci spíš pracovní než finální, pročež, prosím, buďte shovívaví:

Hodnota:
Barva:
Jas:

Podobně se dá realisovat i klávesnice počítače PMD 85: opět jsou klávesy nakreslené jako jednoduchý objekt ovládaný vnořeným JavaScriptem; toto je pouze počáteční demo, v ostré versi bude samozřejmě i funkce zámku, tak jako v Javě:

PMI-80

Když jsem v lednu 2014 začal vyvíjet první emulátor osmibitového počítače, stál jsem před otázkou, jaký prostředek – programovací jazyk, resp. platformu – k tomu zvolit. Tehdy jsem se rozhodl pro Javu, protože mi dovolila pracovat tak, aby výsledek konvenoval mému perfekcionismu: dokonalá grafika, absolutně věrná emulace, relativně vysoká rychlost, jíž mohlo konkurovat pouze C nebo jiný nízkoúrovňový jazyk. Zvažoval jsem i možnost, že bych použil JavaScript v HTML browseru, ale tu jsem zavrhl, hroze se, že by výsledek mohl připomínat emulátor PMI-80 Martina Malého, který je sice plně funkční, ale po stránce vzhledu a použitelnosti, řekneme-li to kulantně, zůstává pověsti autora cosi dlužen.

Uběhly čtyři roky, a situace se změnila: JavaScript prošel reformou, takže ve versi ECMAScript 6 už vypadá jako skutečný programovací jazyk, browsery běží na několikanásobně výkonnějším hardwaru než v r. 2014, CSS umí také několik nových kousků, a na druhé straně javové applety v browserech odešly natrvalo na smetiště dějin; není důvodu, proč bych místo aplikace, kterou si na svém počítači spustí málokdo, nedal tu spoustu skvělého kodu a sofistikované grafiky, kterou jsem pro své javové emulátory vytvořil, k disposici v javascriptové podobě tak, aby se dala se vší parádou spustit ve kterémkoli moderním browseru.

Zatímco k Javě, přestože jsem v ní napsal přes sto tisíc řádků kodu, mám stále poměrně reservovaný až negativní vztah, variující dle programovaného thematu mezi odtažitou lhostejností, mírnou nechutí a odporem, JavaScript mám za natolik primitivní, že jsem si k němu žádný vztah nevytvořil: tak jako člověk může mít rád psa nebo kočku, ale ne například žížalu.

Na konversi jsem dnes začal pracovat, a slibuji si od ní, že se mi podaří vyřešit zřejmě nejpalčivější problém stávajících javových emulátorů, nemožnost dosáhnout kvalitního zvukového výstupu: Java dokáže zvuk věrně přehrát, ale nelze ji přinutit, aby tak učinila přesně v určitém okamžiku, takže výsledkem je, že bez použití externí nepřenositelné knihovny (blobu) na sebe jednotlivé fragmenty zvukového výstupu emulovaného počítače nenavazují tak, jak by měly, což je přirozeně zejména v případě zvukových efektů typu pípnutí fatální. To si mi, jak doufám, podaří v JavaScriptu překonat, takže se můžete těšit na počítače, které nejen skvěle vypadají a každý si je může bez jakékoli přípravy spustit, ale také dokonale hrají.

Exerciser

Aktualisováno.
Jak patrno ze screenshotu, první testy, spíše ve formě proof-of-concept, ukazují, že rychlost JavaScriptu rozhodně nebude problém.

Zdroj: www.mikrocontroller.net

Našemu miniaturnímu blogu věnuje pozornost i mainstream, konkrétně jedna kapitola úvahy Michala Rybky na serveru PC Tuning, používaje emulaci československých osmibitů jako demonstrační příklad zmařeného času a zbůhdarma vyplýtvané energie.

Má pravdu, ten chlapec?

O tom píšu na své prvním (vlastně druhém; nějak se mi už pletou) blogu.