PowerD

Mark

Jak to vsechno zacalo. Svou prvni Amigu jsem si poridil v rijnu 1993. Tvrde jsem na ni smazil super gamesy, tvrde jsem ji obhajoval pred pomalejma peeceeckama, ale smazeni me brzo prestalo bavit, zacal jsem mit potrebu neco tvorit. Nejjednodusi a nejvykonnejsi alternativa v te dobe (2MB RAM+disketa) byl AMOSPro. V nem jsem udelal par moc peknych programku na vsechno mozny, proste me bavilo objevovat, co to vsechno dokaze. Pak, kolem roku 1995, to jsem uz mel harddisk, a AMOS me prestal bavit, protoze jsem chtel programovat systemove, a to v AMOSu moc nejde, tak jsem zacal hledat jine reseni. Zkousel jsem GFABasic, ale ten na me Amize nejel, zkousel jsem HiSoft basic, ale nejak mi moc nevyhovoval, protoze jsem ho mel nacerno a bez jakekoliv dokumentace. Pak jsem zacal flirtovat s Pascalem, a pozdeji s Ceckem. Ale tady byly 2MB RAM zatracene malo. Pak mi zbyval uz jen Assembler. V AmigaReview vychazel dost dobry clanek o programovani v assembleru, a svete div se, ja se v nem naucil programovat!!! Pak me zaujala 3d grafika, tak jsem chtel vytvorit nejaky svuj vlastni 3d program, tak jsem ho zacal psat v assembleru. Jenze kdyz mel zdrojak asi 60 kilo, tak mi to zacalo pripadat silene zdlouhave, protoze to jsem si teprve otevrel obrazovku, okno, a vytvoril par tlacitek... Tudy cesta nevede. Pak jsem si jednoho dne precetl v casaku AmigaNews o jazyce AmigaE. Horko tezko jsem si ho sehnal, a zacal prolezat dokumentaci. Vsechno vypadalo celkem snadne, par veci mi sice pekne zamotalo hlavu, ale diky dokumentaci jsem to vsechno vzdycky nejak vyresil. Zacal jsem programovat v AmigaE. Byl to naprosto uzasny programovaci jazyk, neskutecne rychly, exace dokonale kratoucke, proste pohadka! Zakratko mi prestala stacit demoverze Ecka, tak jsem si ho zakoupil primo od autora za neuveritelnych 1100 Kc, platba sekem, a pak hura na programovani. Tak jsem zacal psat svuj 3d program. Casem jsem se dostal na delku zdrojaku okolo 120 kilobajtu, a tady mi prestala stacit pamet, stale jen ty 2 mega. Vytvoril jsem si specialni bootovaci sekvenci, abych usetril jeste nejakou tu pamet, a dostal jsem se az na neuveritelnych 170 kilobajtovy zdrojak, stale jeste jen pri 2 megabajtech. Pak prisla na radu turbokarta 030/50 a 16 mega pameti. Ty blaaaho, to byl narez! Ecko jelo jako po masle. Pak prisel i koprocesor. Ecko jelo porad jako po masle, ale ja se ve svem programovani dostaval stale dal a dal, a najednou jsem prisel na to, ze Ecko nedokaze primo vyuzivat fpu, coz mi zacalo dosti vadit. Psal jsem autorovy, jestli s tim neco neudela, a on mi zdelil, ze prave poslal na aminet novou verzi. A taky to byla verze posledni :((( Hruza a des me polily, protoze fpu bylo nekde hluboko na todo listu, takze se ho stejne nikdy nedockam. Nasel jsem si alternativni reseni, pouzivat ieee knihovny napatchovane na koprocesor. Ale uz to nebylo ono. Tehdy jsem zacal premyslet, jestli by se s tim nedalo neco delat...

Nekdy v roce 1998 jsem zacal premyslet o mych vlastnich funkcich, ktere by prekladali funkci v textu (treba '1+2*3') do nejake tabulky, a podle te by se pak ziskal ciselny vysledek. Po mnoha ruznych (ne)uspesich jsem jsem to zacal trosku rozsirovat o matematicke funkce, konstanty, promenne atd. Tehdy se zrodil napad, ze bych vlastne mohl Ecko nahradit svym vlastnim jazykem. Koncem roku 1998 jsem na tom zacal pracovat. Prvni, prisne soukroma verze se objevila 13.1.1999, zdrojak mel 64 kilobajtu. Tohle si pamatuju jan proto, ze jsem si to hezky pekne zalohoval. V te dobe jsem uz mel tusim PPC. Programoval jsem jako blazen, a za dva tydny to melo uz 100 kilo, a stale to rostlo. Pomalinku to zacinalo byt pouzitelne pro primitivni programky. V zari to melo uz pres 200 kilo, a ja se odhodlal, a poslal jsem to na aminet. Nejdriv nic moc, zadne vlane ohlasy, ale obcas se ozval clovek, jako ze to co ma jako znamenat, nebo k cemu je to dobry, nebo tak neco. A taky se na internetu ve stejnou dobu (myslim) objevilo pokracovani AmigaE, a sice CreativE, jehoz autor byl Tomasz Wiszkowski (alias Error - pozn. AGASlayer). Pak jsem pridelal nejakou tu vymozenost, protoze jsem citil konkurencni prostredi, a najednou koukam, ze CreativE ma tu samou vymozenost, hned mi bylo jasny, ze autor CreativE to ode me obslehl :))) Konecne jsem pocitil nejaky zajem ze strany nekoho jineho. V zapeti mi prisel email, od nikoho jineho, nez od Tomasze, ze pouzil mou vymozenost, a jestli se mi to nelibi, tak ji zase odstrani. Samozrejme jsem to tak nechal, a on casem dodelal jeste dalsich par vymozenosti ode me :) Pak jsem ziskal par ohlasu, a dotazu, jestli zabuduju i objektove programovani, a ja na tom zacal delat, ale moc jsem tomu nebazil, takze to nestalo za moc. A pak se mi jednoho dne ozval sam Velky Wouter, autor AmigaE, ze se mu moje prace libi, a ze mi preje hodne stesti do budoucna. A uz mi bylo jasne, ze s tim jen tak neseknu :) No, casem jsem zacal podporovat i PowerPC procesory. Decko, jak jsem svuj programovaci jazyk nazval zacinalo byt cim dal tim lepsi a lepsi, pomalu mizeli detske nemoci, a stale se prodluzovalo. Pak jsem si otevrel i vlastni stranky, na kterych jsem si ho publikoval, a kdyz jsem tam poslal novou verzi, hned jsem ji nechal zverejnit i na strankach CAN, a pozdeji i ANN. Tak se o tomto jazyce dozvedelo par lidi, ktere to vazne zaujalo, a tak mi zacali posilat vlastni bugreporty, i vlastni vytvory.

Dnes uz ma PowerD podporu snad vsech beznych standardu i nestandardu :) A ja sam uz nedelam v nicem jinem, protoze tohle je jazyk, ktery mi vyhovuje! A kdyz mi neco nevyhovuje, tak si to dodelam ;) Dnes ma zdrojak pres 830 kilobajtu, a pocitam, ze jeste nejakou dobu pekne poroste. Bohuzel v nem dodnes nebyla vytvorena zadna vetsi aplikace, cemuz se ale nemuzu moc divit, protoze do nedavna bylo Decko stale dosti nestabilni. Nemyslim, ze by padalo, i kdyz i to se obcas stalo, ale hlavne to vsechno zkompilovalo v poradku, a vysledek nefungoval. Par bug-reporteru na me tlacilo, abych napsal debugger, a tak po dlouhem premlouvani jsem si k tomu sedl, a ouha, za 4 dny prace jsem ho mel. Ted uz delam vic na programech v tomhle jazyce spis, nez na jazyce samotnem, a stale tim hledam chyby, abych je mohl odstranit... Ale casu je malo (jsem pracujici clovek), a prace hodne, takze to jde pomalu.

Ted neco ke specifikacim, a k tomu, proc prave tenhle jazyk (ne)pouzit:

Pozadavky na system jsou vcelku minimalni, staci tak 4 mega ram, pro minimalni projekty mozna 2 mega (netestovano), pro vetsi projekty tak 8 az 16 mega. Co mi stale chybi, je nejake API, ktere by usnadnilo praci zacatecnikum, ale par lidi na tom uz dela, tak doufam, ze se casem neco objevi. A o cem to tady vlastne celou tu dobu mluvim? Jde o jazyk, ktery ma syntaxi dosti podobnou jazyku AmigaE/CreativE, ale tato syntaxe je znacne rozsirena, a clovek muze pouzivat i veci, ktere by ho ani nenapadli, protoze v jinych jazycich ani neexistuji. Tak napriklad WHILE/ENDWHILE pochopi snad kazdy, kdo nekdy programoval. Ale jak tak jsem na to koukal, tak jsem si rekl, ze by se to dalo hezky rozsirit, jako IF/ENDIF ma ELSEIF/ELSE, tak tohle o ELSEWHILE/ALWAYS. Proste takovychhle vymozenosti je tam spousta, a casto dost usnadni praci, nebo dokonce umozni veci, ktere jsou jinde temer nemozne :) Ta syntaxe je hlavni duvod, proc se to lidem na prvni pohled zalibi, je to proste mnohem prehlednejsi, nez treba Cecko:
#include <proto/exec.h>
#include <proto/asl.h>
#include <stdio.h>
VOID main(VOID)
{
   struct FileRequester *req;
   if(ASLBase=OpenLibrary("asl.library",37))
   {
      if(req=AllocFileRequest())
      {
         if(RequestFile(req) printf("file: \"%s\"\n",req->fr_File);
         FreeFileRequest(req);
      }
      CloseLibrary(ASLBase);
   }
}
MODULE   'asl','libraries/asl'

DEF   ASLBase

PROC main()
   DEF   req:PTR TO FileRequester
   IF ASLBase:=OpenLibrary('asl.library',37)
      IF req:=AllocFileRequest()
         IF RequestFile(req) THEN PrintF('file: "\s"\n',req.File)
         FreeFileRequest(req)
      ENDIF
      CloseLibrary(ASLBase)
   ENDIF
ENDPROC

Je na kazdem, aby si vybral, co se mu vic libi, a co mu vic vyhovuje. Jen chci rict, ze kazdy, by to mel nejdriv vyzkouset, a az pak si o tom udelat vlastni nazor. Decko je stale ve vyvoji, na rozdil od jinych jazyku, ktere jsou stale stejne po mnoho desetileti ;) Ale zatim funguje pouze na Amize. Verim, ze casem bude fungovat i na jinych platformach [mel jsem i ohlasy od Macintoshistu ;)] ale zatim funguje jen na Amize, UAE, Amithlonu, AmigaOSXL a dokonce i na Pegasosu pod MorphOSem!!! Jak mi bylo asi pred tydnem zdeleno!!! Takze si myslim, ze stabilita zacina byt opravdu slusna.

Co se vyctu podpory tyce, v Decku se da pracovat snad se vsim, co se k Amize dodava, pokud nekdo prepsal moduly ;) Momentalne je to podpora CGFX, P96, Warp3D, RTG, AHI, MUI atd. atd. Bohuzel mi chybi pro ceskou Amiga komunitu to nejdulezitejsi, a sice ceska dokumentace :((( Vzhledem k potrebam mych zahranicnich uzivatelu jsem se soustredil spise na anglictinu, ale bohuzel na ukor cestiny. Pokud by mel nekdo zajem to prelozit, urcite by to par cechu uvitalo :) Momentalne je prelozena asi 1/3 z cele dokumentace, ktera ma kolem 300 kilobajtu v html.

Co rici na zaver, kdyz jsem vas uz urcite uspal timhle (ted koukam) silene dlouhym blabolenim? Snad jen, ze se casem objevi vice cechu, kteri budou na Amigu programovat, a i kdyz uz jsou vsechny nase Amigy stare, stale nam, tak jako me, mohou cinit velike poteseni z tvoreni, ktere je, at si kdo-chce-co-chce-rika, na Amize stale mnohonasobne snadnejsi, nez na jinych platformach! A vezte, ze jsem to vyzkousel jak na PC, tak na MacOS 7 a X! Amiga je proste nejlepsi, a nezalezi mi na tom, co konkretne to 'nejlepsi' ma byt. Amiga Rulez!!!

Kontakt:
email: kuchinka@volny.cz
www
: http://www.volny.cz/kuchinka