This is a web mirror of my Gopher log. For the best
experience, please visit my gopher site at:
gopher://sdf-eu.org/1/users/jelleke/
------------------------------------------------------------
<-- Home
Video's van de Ada Devroom van Fosdem 2022
==========================================
2022-02-09
Afgelopen weekend was er weer Fosdem. Dit is een jaarlijks
evenement waarbij allerhande vrije software hackers praatjes
geven over hun favoriete onderwerpen. Fosdem is heel groot
en vindt normaal gesproken plaats op het terrein van de
Université libre de Bruxelles. Het was in de pre-corona
jaren altijd een geweldige samenkomst van programmeurs en
andere open source enthousiastelingen van over de hele
wereld. Dit jaar was Fosdem volledig virtueel en konden de
bezoekers zich weer onderdompelen in een keur aan developer
rooms over uiteenlopende onderwerpen.
Ada had - zoals gebruikelijk - op zondag ook zo'n devroom en
de video's daarvan staan [nu online [1]. Voor nieuwkomers
kan ik het praatje Introduction to Ada for Beginning and
Experienced Programmers [2] van Jean-Pierre Rosen aanraden.
Zelf was ik bijzonder geïnteresseerd in Max Rezniks praatje
over AdaWebPack. Zoals ik eerder had geschreven zou ik
graag Ada in de webbrowser willen gebruiken, zodat ik kan
ontsnappen aan het juk van JavaScript en AdaWebPack helpt je
daarbij. AdaWebPack maakt gebruik van GNAT-LLVM om Ada te
kunnen compileren naar WebAssembly (WASM). Het afgelopen
jaar ben ik meer over WASM gaan lezen en ik begin het idee
te krijgen dat deze aanpak de toekomst heeft. De
performance is bijzonder goed en de specificatie is ook nog
eens helder en vrij bondig. Naast de mogelijkheden voor het
web denk ik dat het de potentie heeft om ook JVM van de
troon te stoten als het gaat om gemakkelijk cross-platform
ontwikkelen.
Reznik legt in zijn praatje uit hoe AdaWebPack werkt. Ze
konden de GNAT runtime niet gebruiken, aangezien die uit
gaat van een POSIX-omgeving. Dit werkt niet in WASM, dus
daarom hebben ze gekozen om een Bare Board Runtime te
gebruiken. De implicaties hiervan zijn dat er geen
ondersteuning is voor lokale exceptions, nested subprograms,
tasks en projected objects. Dat is iets waar ik wel mee kan
leven en het is ook wel prettig dat je WASM binary niet de
grote GNAT runtime hoeft mee te torsen.
Naast de runtime biedt AdaWebPack ook packages voor
aanvullende WASM api's, waaronder bindings voor de Web API.
Dit is erg nuttig, want je kunt dan DOM-manipulatie doen
vanuit Ada. Je kunt elementen in het webdocument opzoeken,
aanpassen en er ook event listeners aanhangen zodat je kunt
reageren op muiskliks, toetsenbordinput..etc. Voor de
interoperabiliteit met JavaScript is er de package
WASM.Objects. Naast al dit handigs zijn er ook nog
koppelingen voor WebGL, websockets en voor XMLHttpRequests.
Reznik beschrijft ook nog een paar afgeleide werken die
gebruik maken van de functionaliteit van AdaWebPack. Zo is
er het project AdaGL [3]dat bindings biedt voor zowel OpenGL
als WebGL, ergo: je kunt in 1 klap een applicatie bouwen die
zowel werkt in een webbrowser als op een desktop. Dit kan
erg leuk zijn voor game development.
De komende dagen ga ik nog wat andere video's bekijken van
Fosdem. Ik ben erg benieuwd naar het praatje van Stefan Hild
getiteld: [Ada Looks Good, Now Program a Game Without
Knowing Anything [4]. Dat klinkt als een geweldig plan!
Hyperlinks:
[1]: https://fosdem.org/2022/schedule/track/ada/
[2]: https://fosdem.org/2022/schedule/event/ada_introduction_beginning_experienced/
[3]: https://github.com/godunko/adagl
[4]: https://fosdem.org/2022/schedule/event/ada_looks_good_game/
-----------------------------------------------------------
Tags: Ada, Nederlands