Fejlesztések MorphOS-re #1

A közelmúlt Mac mini és PowerMac fejlesztései, valamint az SDK release úgy tűnik jó hatással volt a MorphOS körüli életre, sok régi motoros kezdett új projektekbe, de új próbálkozók is akadnak, valamint visszatérő fejlesztők is vannak. Lássunk ezek közül a projektek közül most néhányat.

Az itt bemutatott fejlesztések szinte mindegyike vagy nemrég jelent meg, de jelentős lépésnek tekinthető a platform életében, vagy készülőben lévő alkalmazás, amelyet egyelőre csak a tesztelők érhetnek el, ez esetben a készítő engedélyével szerepelnek a blogpostban.

Kezdjük a régi ismerős OWB-vel. A MorphOS 2.7 része volt az elég meggyőző 1.11-es verzió, de a fejlesztő Fabien Coeurjoly nem pihen. A 1.12-s verzió már egy ideje béta állapotban van, a Privát Böngészés és az URL-specifikus beállítások az újdonság. Ez utóbbi funkcióval szabályozhatjuk a Javascript, a plugin és a képbetöltési beállításokat, egy-egy oldalhoz kötődően. Valamint pl. azt, hogy egyes oldalakon milyen böngészőnek hazudja magát az OWB, hiszen sok oldal a detektált böngészőnek és/vagy eszköznek megfelelően szolgál ki egyes tartalmakat. Ezen kívül egy frissebb WebKit, átdolgozott clipboard kezelés, és még sok egyéb is található benne. Az aktuális verzió egyébként 201 pontot és 13 bonus pontot csinál a HTML5 teszten. Az OWB lassan tényleg a legdurvább poweruserek igényeit is kielégíti.



OWB 1.12: URL-specifikus beállítások, scriptelési lehetőségek, jelszókezelő, keresőmotorok szerkesztése.


OWB 1.12: HTML5 teszt, aktuális eredmények, privát böngészés mód

Evezzünk más vizekre. A visszatérők között üdvözölhetjük Nicholai Benalalt, aki még az ősidőkben a MorphOS Preferences rendszerének alapjait fektette le. Új fejlesztése a SciTe programozói szövegszerkesztő motorjának, a Scintillának MorphOS portja, valamint a Scribble névre hallgató natív GUI-s szövegszerkesztő, amelyet később teljes értékű IDE-vé kíván fejleszteni, lecserélve az SDK részét jelenleg képező öregecske és elég korlátozott MorphEd-et. A hosszú távú tervek között szerepel, hogy magát a szövegszerkesztő motort, a Scintillát, szabányos GUI-elemként (MUI Custom Class-ként) elérhetővé teszi, így az más programokba is beágyazható lesz.



Scribble: modern, szintaxiskiemelést is támogató programozói szövegszerkesztő


Scribble: keresés, kódformázó, névjegy, beállítások

A Scintilla beágyazásra váró újdonságok közül érdemes megemlíteni a régi motorosnak számító lengyel Grzegorz Kraszewski projektjét a már letölthető Lua for MorphOS részét képező LuaExplorador nevű Lua forrásszintű debuggert, amely mellesleg natív GUI-val is rendelkezik.



LuaExplorador: forrásszintű debugger a Lua scriptnyelvhez

És hogy ez miért említésre érdemes? Tegyünk egy kis történelmi kitekintőt. A Commodore még az IBM-mel kötött keresztlicensz szerződés keretében szerzett jogot arra, hogy az Rexx nyelvet az AmigaOS (akkor még: Workbench) részévé tegye. Az ARexx néven ismert amigás Rexx interpreter egy külsős fejlesztőnek köszönhetően el is készült, a 2.0 óta része minden AmigaOS disztribúciónak és az évek során a rendszer szerves része lett. A legtöbb modern GUI-s program tartalmaz ún. "Rexx portot", amin keresztül a programok működése vezérelhető, funkcionalitásuk bővíthető, illetve megkönnyíti az alkalmazások scriptnyelven keresztüli összekapcsolását olyan kombinációkban is, amire eredeti fejlesztőjük nem gondolhatott. A Rexx az Amiga testreszabhatóságának egyik kulcsa, szíve és lelke, a poweruserek elengedhetetlen eszköze. Viszont van vele egy kis baj: amellett, hogy zárt forrású, csak binárisban létezik. A Commodore ugyanis sosem kapta meg a forráskódot a külsős fejlesztőtől, csak a binárist. A forráskód pedig az évek során elveszett. Ennek megfelelően a "hivatalos" nextgen OS-ben, az AmigaOS 4-ben is ugyanaz az ősöreg 68k-s Rexx verzió van és CPU-emulátorral fut. A MorphOS felhasználók pedig az eredeti 68k-s OS birtokában átmásolhatták belőle a rexxsyslib.library-t és így használhatták a Rexx-et a MorphOS alatt. És hiába lehet a több mint húsz éves Rexx interpreterrel is elképesztő dolgokat művelni (lásd pl. ezt a CGI-t is tudó GUI-s HTTP kiszolgálót), mindenki tisztában van vele, hogy ez az állapot huzamosan nem tartható fenn.

A MorphOS-ben egy darabig a Rexx interpreter újraírását tervezték a fejlesztők, de ez aztán erőforrás hiányában elmaradt, miközben az AmigaOS4 a Python rendszerbe emelésével igyekezett modern alternatívát nyújtani.

Amikor a MorphOS-féle Rexx implementáció terve törölve lett, többféle scriptnyelv (pl. Python, Perl) megvizsgálása után került képbe a Lua. A Luát eredetileg is rendszerszintű scriptnyelvnek szánták, főleg beágyazott rendszerekbe és nagyobb alkalmazásokba, ennek megfelelően kicsi, gyors, egyszerű és baromi könnyen portolható gyakorlatilag bárhova, miközben elég moduláris és flexibilis ahhoz, hogy könnyen integrálódjon a legelborultabb rendszerekbe is. A Lua MorphOS portja tehát készülőfélben van, az érdeklődők már kipróbálhatják, és reális esélye van rá, hogy hosszú távon leváltsa a Rexxet MorphOS alatt, főleg hogy a tervek szerint az alaprendszer részét fogja képezni, valamint természetesen kezelni fogja a meglévő programok Rexx portjait is, így az eddigi Rexx scriptek átírhatók lesznek Luába.

És most térjünk vissza az új fejlesztésekhez. Az újabb próbálkozók kategória képviselője Antoine Dubourg, aki több apró fejlesztés mellett a bevallottan erősen AmIRC és XChat inspirálta Sermonatrix nevű IRC klienssel hívta fel magára a figyelmet. A Sermonatrix az egyik első program, amely igen erősen épít a Lua nyelvre. Gyakorlatilag bármely IRC parancs Lua nyelven scriptelhető, akár szerverfüggően is, így teljesen testreszabható IRC környezet készíthető. Ezzel egyből túl is mutat a Rexx lehetőségein, hiszen ilyen szintű script-integráció nagyon kevés programban volt eddig, amellett, hogy nem is volt megoldható túl egyszerűen.



Sermonatrix: új, natív IRC kliens az ősöreg - bár még mindig zseniális - AmIRC helyett


Sermonatrix: minden parancs Lua nyelven van scriptelve, a scriptek tetszés szerint szerkeszthetők

A Sermonatrixból azért még sokminden hiányzik, hogy úgy igazán leválthassa az AmIRC-et, de a lehető legjobb úton halad efelé.

Hát ennyit mára a MorphOS közeljövő újdonságai közül. Szerencsére azonban nem merítettünk ki minden témát, és a fejlesztők sem pihennek, így hamarosan újra jelentkezhetünk...

Hozzászólások

Asszem a Reginával volt valami olyasmi gáz, hogy elég durván meg kellett volna patchelni, hogy kompatibilis legyen az ARexx-szel, aminek az integrációját a Regina fejlesztők nem nagyon akarták... (Egyébként van a Reginából Amiga port, de az nem helyettesíti az ARexx-et, a rendszer integráció szinte teljesen hiányzik belőle.) Ezenkívül a Rexxet szeretjük, de azért nem egy mai darab szintaxis és hasonlók terén, főleg ha az ARexx kompatibilitást is figyelembe vesszük. Valami ilyesmi elvek mentén lett inkább Lua. És akkor még a Lua egyéb előnyeit (pl. a fenti debugger megírását lehetővé tévő átjárhatóság és integrálhatóság, LuaJIT, stb.) nem is néztük.

Ettől még lehet, hogy később valaki megcsinálja a Regina portot rendesen és akkor mindkettő lesz, de egyelőre ez járhatóbb útnak tűnt. :)

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Eh, szivem szerint en Pythont valasztottam volna LUA helyett (bar ez utobbit nem ismerem).

Van fullos Python port is, csak az a baj vele, hogy tömörítve is hat mega, így nem igazán alkalmas rendszerszintű könnyű scriptingre. (Lásd pl. az Efika gépeket a korlátozott RAM-mal). Ehhez képest a Lua maximum néhány száz KB-ból megúszható, ráadásul teljesen dinamikusan töltődik ki-be igény szerint. Egyszerűen jobban illik a rendszerhez.

Ettől még a Python éppen úgy működik és szintén van benne Rexx port támogatás, a Scribble-ben van hozzá syntax highlight support is, csak nem lesz része az alaprendszernek.

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-