Een dag op devoxx door de ogen van een Java/Bloomreach developer

“Vandaag hebben we de eerste devoxx dag gehad. De dag begon met de registratie, welke in tegenstelling tot als we de berichten in de devoxx app mocht geloven, eeuwen zou gaan duren en je beter op zondag avond zou kunnen doen, prima verliep. Na nog geen vijf minuten stonden we binnen met een “lekker” bakkie koffie in onze handen. Het ontbijt was wat moeilijker te vinden maar vlak voor de eerste sessie bleek deze ergens in een hoekje achteraf te staan. Een lekker roombroodje verder, was het tijd om de dag echt te beginnen. Hieronder een kort verslag van de sessies die ik vandaag heb bijgewoond.”

1. Threading lightly with kotlin

Het plan was om naar de hands on “Code your first video game AI” te gaan, maar helaas bleek dat meer mensen dat idee hadden. Er zaten letterlijk mensen op klapstoeltjes in de deuropening.  De tweede keus bleek betere plekken te bieden, bioscoopstoelen VS klapstoelen. 

Als Kotlin virgin hoopte ik vooral dat ik het verhaal kon volgen. De spreker, die later de beste van de dag bleek, heeft hier zeker aan bijgedragen. Hoewel z’n lecture echt kotlin als uitgangspunt had greep hij ook telkens terug op java voorbeelden en hoe zaken d.m.v. coroutines verbeterd kunnen worden. In eerste instantie had dit een vrij hoog abstractie niveau maar naarmate de lecture vorderde kwamen er meer en meer voorbeelden waarvan ik dacht: “Ook dit zou ik ook in m’n dagelijkse werk wel eens kunnen gebruiken”. 

 

2. From ServerFull to ServerLess Java with AWS lambda

Deze hands on sessie stond zeker op mijn lijstje om bij te wonen. Aangezien ik van deze ochtend geleerd had, dat hands on sessies populair zijn ben ik direct na de lunch richting de zaal vertrokken om me van een plekje te verzekeren. Dit bleek geen onverstandige keuze, want ook nu was het animo groot. Ik heb veel geleerd van deze sessie. Hoewel ik niet direct toepassingen zie in mijn dagelijkse werkzaamheden zie ik wel echt de toegevoegde waarde van serverless Java services. De sessie was goed opgezet en met de juiste vragen aan de instructors heb ik er een goed gevoel aan over gehouden.

 

3. Your next java framework for automating web tests

Toeval heeft het dat ik op m’n opdracht druk bezig ben om ervoor te zorgen dat ze inzien hoe belangrijk testen is. Meen je dit nou echt?? Ja helaas wel. Testen was bij de klant waar we zitten een ondergeschoven kindje en dus leek het me goed om deze sessie bij te wonen. Ik ben bekend met o.a. Selenium, Cucumber, Gherkin, maar Playwright kende ik nog niet. Zo op het eerste gezicht lijkt dit me een tool die een hele lage instap heeft en daarmee dus goed geschikt is om ook als niet tester simpele tests op te zetten om daarmee de business te overtuigen van de waarde van automatische web testen. Of het daarnaast ook de juiste tool is om mee door te gaan is mij uit de (korte) presentatie niet helemaal duidelijk. Daarentegen zie ik ook niet waarom niet, maar dat is aan de tester om te bepalen, want uit eindelijk is dat ook een vak apart. 

 

4. From ‘It works on my machine’ to ‘It was written by a machine’ – GitHub Codespaces & Copilot

Eerder op de dag in de serverless Java sessie heb ik voor het eerst gewerkt in een online IDE (Cloud 9). Op dat moment was ik al onder de indruk over hoe goed dat eigenlijk werkte. Zonder problemen kon ik daar de hele opdracht in voltooien, incl. auto complete, auto import etc.. etc.. Tuurlijk IntelliJ kan een stuk meer, maar ik was best onder de indruk van wat deze IDE me bood. GitHub codespaces bleek dit naar een heel ander niveau te brengen. Niet alleen vervangt dit de IDE die op m’n machine staat, maar het vervangt zelfs de hele development omgeving. On the fly wordt er in de github cloud een omgeving voor me opgezet die helemaal up-to-date is met de laatste code. Nooit meer uitleggen aan die nieuwe ontwikkelaar hoe iets werkt, welke dependencies hij moet installeren en waarom het allemaal net iets anders is dan “normaal”. Simpelweg 1 commando en de omgeving wordt volledig voor je klaargezet, incl. IDE die nog weer een stapje verder ging dan de Cloud 9 IDE die ik hiervoor had leren kennen. 

Hierna werd de stap gemaakt naar Copilot. Hiervan was ik nog meer onder de indruk. Real time analyse van wat je op dat moment aan het coderen bent met autosuggesties, en dan niet ‘’weet je zeker dat je deze variabele niet final wilt maken’’.. maar “Ah ik zie dat je een class BankAcount hebt aangemaakt”. Wil je misschien een methode withdraw en deposit incl. de logica daarachter? De AI hierachter verbaasde me echt en hoewel ik me afvraag of ik dan nog wel echt aan het programmeren ben zie ik er ook echt wel voordelen van. Ik kan me veel meer bezig houden met hoe ik mijn programma’s wil structureren en de implementatie daarvan hebben andere mensen waarschijnlijk al 100.000 keer gedaan, dus waarom zou ik dat wiel opnieuw uit willen vinden?

 

5. Maven, my life is short

Dit is de sessie waarin ik in m’n dagelijkse werk het meeste voordeel zal halen. Per dag trap ik toch minstens een keer of 10 het command mvn clean verify af. Die kost me, afhankelijk van de klant, en project toch zeker een minuut of 2 é 3, en als ik pech heb een veelvoud daarvan. Als eerste “fix” werd de -DskipTests geïntroduceerd, en ik was sceptisch… Maar zelfs voor de skip test werden valide redenen opgevoerd. Daarna ging de spreker meer de diepte in en bleek, terecht,  dat het lang niet altijd nodig is om alle Maven modules te laden. Waar het pas echt interessant werd, is toen de Maven deamon behandeld werd. Hoewel enigszins teleurgesteld dat dit nog niet op een Apple M1 chip werkt (zit ik dan met m’n mooie Mac…) blijkt dat in de nieuwe release welke hopelijk een dezer dagen verschijn M1 ondersteuning is toegevoegd. Met Maven deamon worden de build taken aanzienlijk sneller uitgevoerd, o.a. omdat ervoor gezorgd wordt dat de JVM bij elke build opnieuw wordt opgestart. Hierdoor wordt de gecompileerde JIT code niet meer elke keer uitgevoerd maar wordt deze gecached. Ik weet zeker dat dit mij niet zo veel tijdswinst op zal leveren als de spreker (van 24 min naar 1 min en een beetje), maar ik ben er van overtuigd dat mijn build een stuk sneller zal gaan. Dus laat die M1 release maar snel komen. Enige nadeel is, wanneer moet ik nu dan koffie gaan halen als m’n builds ineens als de brandweer gaan?    

Vorige
Vorige

Oktober Spelletjesmaand: D&D, Lego, VR, en Whisky bij Alvant

Volgende
Volgende

Ouderwets programmeren of ontwikkelen? Dat is soms zo slecht nog niet!