Menu

Innovatie in een extreem snelle wereld

Gert Gert Braun heeft dit geschreven in september 2016

Nieuwe technieken schieten binnen de internetwereld altijd als paddestoelen uit de grond. Het is bijna niet te doen om als programmeur bij te blijven en alle nieuwe, hippe technologiën te kennen en kunnen. Toch wordt dat van je gevraagd. Ook voor Oberon is dit een essentieel onderdeel van ons werk; kennis hebben van de mogelijkheden is daar stap 1, maar ook veel uitproberen en bij succes toepassen wordt van ons verwacht.

Instappen

Oberon is in de basis een projectorganisatie. We ontwikkelen veel producten, maar vaak met een beperkte scope of budget. In sommige gevallen doen we de opzet en gaat een eigen klantteam er langzaamaan mee verder. We kunnen niet in elk project een nieuwe techniek proberen én al helemaal niet de klant hier voor op laten draaien. We houden daarom altijd ruimte op de planning voor onderzoek en experimenten. Zowel tijdens projecten als tussen projecten door. 

In de praktijk betekent het dat we veel experimenteren en niet altijd alles direct kunnen toepassen. Elke nieuwe techniek moet echt toegevoegde waarde hebben voor het product van de klant. Maar wanneer stap je over van experimenteren naar toepassen en wanneer naar altijd toepassen?

Ben je er vroeg bij dan kun je gebruik maken van de nieuwste ‘snufjes’ en daarmee vaak iets bouwen wat voorheen veel moeilijker of zelfs onmogelijk was. Maar of de techniek ook echt iets gaat worden en vaste voet aan de grond krijgt, dat weet je nog niet. Gok je verkeerd, verspil je tijd en moeite aan iets wat je na een jaar of twee weer weg kan gooien (en als je pech hebt, helemaal uit je code schrijven). 

Ooit doken we bijvoorbeeld vol overgave op Google Wave, dat ging het helemaal worden. We bouwden waarschijnlijk als eerste in Nederland een tool die er gebruik van maakte en.. toen hoorde niemand er ooit nog van. Aan de andere kant deden we ooit hetzelfde bij MSN chatbots, en voor je het wist hadden we één van de vijf wereldwijd door Microsoft gecertificeerde bot-platformen. Allebei voorbeelden uit het verleden. Tegenwoordig gaat het bij onze productontwikkeling meer om talen en technieken in plaats van het inzetten van applicaties. Maar het principe is hetzelfde gebleven. 

Ben je er laat bij, dan kun je de ‘winnaar’ selecteren. De techniek die de beste oplossing blijkt te bieden, of belangrijker nog; de grootste community heeft. Wat dat betreft zijn technieken net videobanden. Betamax was dan wel technisch superieur, als iedereen VHS koopt dan zal die de bovenhand krijgen. Maar laat kiezen betekent wel dat je ervaring mist en misschien nog lang met verouderde technologie aan het werk bent. 

Hot?

Het instapmoment is dus heel wisselend en een hot or not voor Oberon is echt wel iets anders dan voor de sector in zijn geheel. Toch is het een mooi moment om een klein inkijkje te geven in waar wij mee bezig zijn. Dus, wat is hot, en een klein beetje not:

Hot: Native apps in scripttalen

Met de komst en met name de groei van de community van NativeScript en ReactNative zijn de mogelijkheden om native apps te bouwen met javascript+ volwassen geworden. Enkele maanden geleden was dus een goed moment voor ons om ons daar meer in te verdiepen en ondertussen zijn de eerste apps klaar. Houdt native (java/swift) ontwikkeling daarmee op? 

Zeker niet, er zijn nog zaken die je niet volledig of perfect kan doen; maar daar kun je weer op aansluiten vanuit ReactNative. Een krachtige combinatie om beide in huis te hebben dus. 

Hot: ‘Cloud’

We hebben heel veel ervaring met webhosting op eigen machines, maar de ‘cloud’ heeft ondertussen steeds meer invloed in ons werk. Het begrip is niet meer weg te denken en ook ontzettend breed. De ontwikkelingen op IaaS (Infrastructure as a Service) maar ook PaaS (Platform as a Service) zijn voor ons interessant. Snellere, betrouwbaardere deployment in gelijke containers (Docker) of VM’s bieden ons al een soepelere overgang binnen de OTAP straat en een schaalbaarheid die zonder, veel moeilijker te bereiken is. 

Hot: NoSQL databases

We zijn hier vrij traditioneel; MySQL doet het uiteindelijk voor veel doeleinden echt prima. Zonder goede reden ergens MongoDB, Cassandra of Firebase tegenaan gooien heeft echt geen zin. Elke database heeft zo zijn eigen sterke punten en daarmee specifieke toepassing en manier van werken. We houden de opties goed in de gaten en werken er op kleine schaal mee. Zodat we op het juiste moment de juiste keuze kunnen maken. 

Firebase als realtime database en alle andere tools eromheen biedt interessante voordelen. Nu Google analytics helemaal op Firebase is gebaseerd, kunnen we er ook niet meer omheen en komen de tools eromheen, zoals remote config, authenticatie en crash logs via Firebase steeds meer in schwung. 

Hot: PHP7.0

Eind 2015 werd PHP7 gelanceerd maar helemaal af voelde het nog niet. Om even de kinderziektes af te wachten stappen we wat betreft PHP ook niet graag direct over. De nieuwe Zend engine (interpreter) was in veel benchmarks wel al twee keer zo snel en kon ook twee keer zoveel requests aan. Nu het na een aantal updates echt ‘klaar’ is en de kinderziektes eruit, zal de bredere introductie bij Oberon niet lang meer op zich laten wachten. Wel moeten we een deel van de bestaande software erop aanpassen, iets wat niet zomaar in een dag gedaan is. 

Hot: JWT

Bijna elk project heeft tegenwoordig wel ergens een API en daar zit natuurlijk altijd een beveiligingsmechanisme op. OAuth2 gebruiken we het meeste, maar tegenwoordig kiezen we ook regelmatig voor het conceptueel simpelere JWT (JSON Web Tokens). 

In deze kleine tokens zit alle informatie over een user die je nodig hebt. De token gaat mee met elke request, bij voorkeur in de header. Al met al is het niet helemaal vergelijkbaar, JWT kan bijvoorbeeld gebruikt worden binnen OAuth2, maar voor de meeste API’s is een eenvoudige JWT implementatie simpeler, sneller en daarmee eigenlijk veiliger. 

Hot: GraphQL

Met al die API’s die hier rondlopen is elke optimalisatie interessant. Met GraphQL wordt het mogelijk voor de frontend om te bepalen welke gegevens de API teruggeeft. De frontend vraagt middels simpele queries op welke data ze wil hebben, en krijgt precies die data terug. Heb je nog een extra object nodig op een pagina? Gewoon opvragen in je frontend en klaar. Niet voor elk wissewasje is nog een wijziging in de backend nodig.

Uiteraard moet de backend hier wel voor ingericht zijn. In het begin wat meer werk, maar op termijn kan het dus heel waardevol zijn. Voor high-volume producten/sites kan het serieus schelen in dataverkeer. Niet voor niets heeft Facebook dit geïntroduceerd, ze schijnen redelijk wat dataverkeer te hebben. 

Hot: Elastic (Search)

We hebben Elastic in de loop der jaren al vaker ingezet, maar de krachtige zoekcapaciteiten blijven verbazen. Gebaseerd op Lucene, met hele goede full-text search én een fijne manier van werken zorgen ervoor dat we er heel graag gebruik van maken. 

Ook een volledige ELK-stack (Elastic-Logstash-Kibana) voor een fantastisch realtime overzicht in gebruik van je product, is iets wat we graag in de praktijk brengen. We hebben hier tot nu toe alleen mee geëxperimenteerd met eigen server logs, maar indrukwekkend is het zeker.

ELK stack van onze Apache logs

Not?

Technieken en tools raken vaak langzaam uit de gratie. Er is iets beters op de markt en projecten met de oude technieken verdwijnen langzaam naar de achtergrond. Maar soms gaat het ook heel snel. Min of meer van de ene op de andere dag stap je over en ook oudere projecten worden aangepakt en aangepast. Toch is het lastig om de echte "Not's" te benoemen. 

Not: Gulp

Gulp is een tijdje onze frontend bundler of choice geweest. Het bundelt en minimaliseert javascript en stijl-bestanden, kan code analyseren, testen en SASS compileren. Maar we gebruiken sinds kort Webpack want dat werkt heel anders: het zoekt actief op basis van je JavaScript code de benodigde bestanden bij elkaar en bundelt deze om te publiceren op de server.

Not: Objective-C

Na de eerste introductie door Apple van Swift, een nieuwe programmeertaal voor alle OS vormen van apple, waren de reacties niet al te positief. Maar ook hier geldt dat we een aantal jaren verder zijn en Swift beter, en open-source, is geworden en Objective-C echt niet meer kan. Alle nieuwe native apps worden in Swift gemaakt en langzaam worden oude apps omgezet. Ondertussen lijkt Swift ook op andere gebieden aan populariteit te winnen, zelfs Google schijnt het als alternatief voor Java bij Android te onderzoeken. 

Less hot: Angular

We zijn al een aantal jaren fan van Angular en er druk mee bezig. Nog steeds. Maar de vooruitzichten voor Angular zijn niet alleen maar goed. Angular 1 gaat eruit, dus wil je eigenlijk niet meer inzetten in iets nieuws (tenzij je veel met animaties werkt, want daar is Angular 2 ook nog niet klaar voor). 

De ontwikkelingen aan Angular 2 hebben vrij lang geduurd en het is voornamelijk geschikt voor SPA's. Zeer geschikt, maar toch. De ontwikkeling van de universelere variant Angular Universal ging ook erg traag. Ondertussen raken we meer vertrouwd met React (zie React Native) en is die op gebieden als server side rendering veel verder. Aan de andere kant; we waren er vroeg bij met Angular en we zijn er nog steeds heel blij mee. Angular is niet weg, maar de toolbox is wel uitgebreid en er zijn meer mogelijkheden ontstaan. 

Tot slot

Een hele lijst aan hots en een klein aantal nots, het is de dagelijkse praktijk in de internet-wereld. Overal ontstaan nieuwe ideeën, technieken en hele programmeertalen. Volgend jaar ziet dit lijstje er al weer heel anders uit.

Het is een hele uitdaging om overal enerzijds in mee te gaan, anderzijds je ook niet gek te laten maken. Echte toegevoegde waarde is altijd de uiteindelijke graadmeter of we iets willen inzetten. Maar voordat je daar echt iets zinnigs over kunt zeggen, moet je wel weten wat alles is. Het liefst uit eigen ervaring en anders uit goede bron

Gert

Gert Braun

MANAGEMENT

E-mail:
gert@oberon.nl
Telefoon:
+31203449480

“We maken samen met onze klanten betere online producten, zowel voor het web als in mobiele apps”

Meer informatie op Oberon.nl