Tech trends uit de Mirabeau Summer 2015 Tech Radar

Innovatieve oplossingen en technologie gaan hand in hand. Bij Mirabeau zijn we gek op technologie. We staan ermee op en gaan ermee naar bed. Onze scherpste geesten komen twee keer per jaar bij elkaar om te bespreken hoe het ervoor staat met technologie en tooling. De sessies resulteren in een up-to-date Tech Radar waarin we bepalen welke technologie we in gaan zetten, nader onderzoek verdient of verouderd is. 

Wat staat er op de Summer 2015 Tech Radar van Mirabeau? We hebben zeven hot topics voor je op een rijtje gezet:

  1. Op de radar qua Front-End: Angular.js, een krachtig script voor ontwikkeling van complexe webapplicaties.
  2. Snelle releases: Continuous Delivery zorgt voor snelle, automatische releases.
  3. Multi-channel development: voor de beste gebruikservaring blijft native development per platform noodzakelijk.
  4. Internet of Things (IoT): zal TCP/IP de ontwikkeling van nieuwe applicaties voor het veld Internet of Things flink versnellen?
  5. De opkomst van Functional Programming wordt steeds volwassener en benadrukt de behoefte aan meertalige software engineers.
  6. Microservices en Containerization: apps beter bouwen met gemeenschappelijke tools.
  7. Datawetenschappers: de idolen van de toekomst
Op de radar qua Front-end: Angular.js een krachtig script voor ontwikkeling van complexe webapplicaties

Front-end technologieën en tooling zijn hard op weg om volwassen te worden. Front-end engineers hebben een hoop geleerd van reguliere software engineering en standaard softwarepatronen worden op complexe browser-based applicaties toegepast. Zorg dat je front- en back-end teams nauw samenwerken. De snelheid van het team als geheel zal er enorm op vooruit gaan.

Hoewel JQuery nog steeds voor veel platforms wordt ingezet, zien wij steeds minder noodzaak om gebruik te maken van dit framework. In oudere browserversies zorgde een abstractielaag ervoor dat functionaliteiten goed werkten, onafhankelijk van browserkeuze. Echter, in de nieuwste versies van veel browsers worden steeds meer features direct ondersteund. JQuery staat daarom wat ons betreft in de koelkast, tenzij het gebruik ervan een duidelijke meerwaarde heeft.

Angular.js trekt momenteel flink de aandacht. Deels is dat alleen maar een hype, maar deels is het ook de kracht van het script. Wij voorzien een belangrijke rol voor Angular in de ontwikkeling van complexe webapplicaties (zoals particulier bankieren, complexe multi-step zoekopdrachten voor vliegtickets, etc.) maar minder voor reguliere webomgevingen met grote hoeveelheden content.

Kies je ervoor Angular in te zetten, dan aan jou de extra uitdaging om je site toegankelijk te houden voor Google. Gebruik Angular dus weloverwogen, en voor het juiste project.

Javascript tooling eindigend op .io schiet als paddenstoelen uit de grond. Er wordt aan alle kanten veel energie in dit veld geïnvesteerd en het is zeker de moeite waard om de nieuwe tooling in de gaten te houden.

Snelle releases: Continuous Delivery zorgt voor snelle, automatische releases 

Continuous Delivery (CD) en Continuous Integration (CI) zijn nauw verwant. Waar CI gericht is op de betrouwbare ontwikkeling van functionaliteiten binnen een team, maakt CD de snelle release van nieuwe features naar de live omgeving mogelijk.

Voor veel development teams en ondernemers niet minder dan de heilige graal. Er komt meer en meer tooling beschikbaar die Continuous Delivery ondersteunt. Kort gezegd, het draait allemaal om Automated Delivery. Het automatiseringsproces verzekert ieder teamlid én het team als geheel ervan dat het platform naar behoren functioneert en dat bestaande functionaliteiten blijven werken.

Het programmatisch opbouwen van omgevingen door middel van Cloud-providers versterkt Continuous Delivery aanzienlijk. Omgevingen kunnen eenvoudig en snel worden ingezet en verwijderd (om kosten te besparen). Als gevolg daarvan moeten system administrators kunnen programmeren en worden systeemconfiguraties ook als reguliere code aangeboden.

Het concept van een immutable infrastructuur en het daaraan gekoppelde releaseproces zorgt voor een grote verandering in hoe de standaard implementatie jarenlang werden aangepakt. Een nieuwe release houdt hetzelfde in als een compleet nieuwe omgeving invoeren – inclusief infrastructuur – naast de oude (door automatische scripts) en gebruikers (met zachte hand) overzetten naar de nieuwe omgeving. Dit is ook uitermate geschikt voor A/B-testing.

We zien veel innovatie op het terrein van architectuur die de ontwikkeling van Continuous Delivery ondersteunt. We verwachten dat de volgende stappen hierin te maken hebben met Immutable Infrastructure, software-gedefinieerde architecturen en containerisatietechnieken als Docker. 

Multi-channel development: voor de beste gebruikservaring blijft native development per platform noodzakelijk 

Met almaar stijgende percentages van hun gebruikers, is de mobile first aanpak inmiddels niet meer dan logisch geworden voor veel bedrijven. Echter, met de beschikbaarheid en inzet van andere technologieën rondom mobile (zoals iBeacons), beseffen steeds meer eBusiness teams dat het werkelijke doel een multi-channel of multi-touchpoint aanpak is.

Met de laatste iOS update lanceerde Apple zijn eigen programmeertaal Swift. Swift verhoogt de productiviteit van mobiele ontwikkelaars, maar het laat ook zien dat een nieuwe programmeertaal introduceren niet zomaar iets is. Het was voor veel ontwikkelaars een verrassing dat Apple veranderde features presenteerde zonder achterwaartse compatibiliteit in de eerste beperkte versies van Swift. Wees je ervan bewust dat toekomstige updates van Swift kunnen leiden tot extra releases van iOS-apps.

In de afgelopen jaren hebben meerdere tool-sets (zoals Kony, Xamarin, etc.) geprobeerd het leven makkelijker te maken voor mobiele ontwikkelaars werkend aan apps die zowel op iOS, Android als Windows Phone draaien. En daarin zijn ze deels ook geslaagd.

De conclusie is dat voor de beste gebruikservaring native development per platform absoluut noodzakelijk is. Wij zijn ervan overtuigd dat dit voor de meeste high-end B2C-applicaties nodig zal zijn. Voor veel B2B- en B2E-(Business to Employee) applicaties zijn tools als Xamarin prima in staat de productiviteit van mobile teams te versterken.

Met de lancering van de Apple Watch heeft de hype rondom wearables zijn piek bereikt. In het aankomende jaar zullen we zien of ze hun beloften kunnen waarmaken voor de klant. Wat technologie betreft hebben schermresolutie, touchscreen resolutie en batterijduur al bewezen voldoende te zijn voor dagelijks gebruik. 

Internet of Things (IoT): zal TCP/IP de ontwikkeling van nieuwe applicaties voor het veld Internet of Things flink versnellen?

Een aantal jaar geleden was de eerste koelkast met internetconnectiviteit nog groot nieuws. Nu worden er dagelijks nieuwe devices met allerlei vormen van interconnectiviteit aangekondigd. Wat dé standaard gaat worden voor het verbinden van grote aantallen apparaten (honderden in bijvoorbeeld een huis of kantoor), is nog niet duidelijk.

Zigbee en Z-wave zijn populair in de thuisautomatisering en er is een grote verscheidenheid aan apparaten (switches, sensoren, etcetera) verkrijgbaar bij verschillende aanbieders.

Communicatieprotocollen hiervoor zijn echter meestal beschermd en vereisen vergevorderde technische vaardigheden om mee om te gaan en om applicaties voor te kunnen ontwikkelen. WiFi en TCP/IP winnen aan populariteit in dit veld dankzij de wijdverbreide kennis. Ze brengen alleen een groot nadeel met zich mee: een enorm energieverbruik.

Dit levert vooral bij sensoren die op batterijen werken problemen op. Wij geloven echter dat TCP/IP een grote kans maakt om het standaardprotocol te worden voor het internet der dingen (Internet of Things, of IoT). Het zal de ontwikkeling van nieuwe applicaties voor dit veld flink versnellen, aangezien ontwikkelaars met direct inzetbare kennis in grote getalen klaarstaan.

Aan veiligheid is in de meeste IoT-set-ups nog nauwelijks gedacht. Hoe meer apparaten (van verschillende aanbieders) worden toegevoegd aan een netwerk, hoe meer dit een risico gaat vormen. Zeker wanneer het gaat om levensondersteunende apparaten (zoals beademingsapparaten en real-time bloedmeetinstrumenten). 

De opkomst van Functional Programming wordt steeds volwassener en benadrukt de behoefte aan meertalige software engineers 

Grip houden op alle mogelijke voorwaarden en toestanden in een moderne software-applicatie wordt steeds moeilijker. Zeker als er gelijktijdige uitvoering van een applicatie (zoals met webapplicaties) bij komt kijken. Betere tooling voor het schrijven en genereren van code en de ontwikkeling van test- en load-scripts helpen de hedendaagse software engineer enorm, maar de zoektocht naar betere (lees: productievere) programmeertaal leeft meer dan ooit.

We zien een hernieuwde interesse in Functional Programming (FP). Dit declaratieve programmeerparadigma is ontstaan in de jaren dertig van de vorige eeuw, toen het werd gebruikt om functiedefinities en recursie te onderzoeken.

Het FP-concept van pure functies (wanneer een functie twee keer wordt gevraagd met dezelfde argumenten, moet hetzelfde resultaat gegeven worden) kan het ontwerpen van een applicatie versimpelen en beschermt de software engineer tegen onverwacht gedrag binnen functies of objecten (zoals met imperatief programmeren waar function-calls kunnen resulteren in state changes).

FP-talen worden steeds volwassener en we zien dat er real-world applicaties worden ontwikkeld, zoals in Scala. Bovendien zien we dat FP-talen zich richten op zeer specifieke applicatiedomeinen. De programmeertaal R is bijvoorbeeld populair aan het worden voor diverse vormen van datamanipulatie. Azure Machine Learning van Microsoft zet deze taal flink in om grote hoeveelheden data te verwerken.

De opkomst van FP-talen benadrukt de behoefte aan meertalige software engineers; professionals die zich meerdere programmeertalen eigen weten te maken en bereid zijn om een nieuwe taal te leren wanneer dat nodig is. Gebruik kunnen maken van meerdere talen binnen één project geeft een engineer een grote voorsprong. Dit soort engineers zijn een waardevolle toevoeging voor ieder projectteam. 

Microservices en Containerisatie: apps beter bouwen met gemeenschappelijke tools.

Het begrip containerisatie komt uit de scheepvaart, waar de steeds verder gestandaardiseerde vorm en dimensies voor laadeenheden bepaalt hoe we goederen mondiaal vervoeren. Het in gebruik nemen van software (transporteren en installeren van applicaties in verschillende omgevingen) is nog steeds een bulkklus, waarbij er ontzettend veel aanpassingen aan de applicatie moeten worden gedaan voordat deze werkt binnen de nieuwe omgeving.

Software containers zijn erg in trek. Zij pogen het gecompliceerde en probleemgevoelige proces van het verplaatsen van applicaties van de ene naar de andere omgeving op te lossen door gemeenschappelijke tools te bieden die applicaties bouwen, verschepen en laten draaien.

Er zijn veel start-ups actief in dit veld, ieder met een eigen idee over wat nu de beste oplossing is. Pasgeleden nog heeft het Open Container Project geprobeerd de vele visies te verenigen en een pakket gemeenschappelijke standaarden rondom software containertechnologie vast te stellen.

Wie daarbij als winnaar uit de bus komt is nog steeds niet duidelijk, hoewel velen ervan overtuigd zijn dat Docker grote kans maakt om de standaard te worden (ze worden waarschijnlijk door een van de grote aanbieders opgekocht).

Het idee van Microservices versterkt de behoefte aan containerisatie nog verder. In deze vorm van software architectuur kunnen complexe applicaties worden opgebouwd uit kleine, onafhankelijke processen die door middel van API’s communiceren.

De programmeertaal van deze kleine services zou niet uit hoeven maken en elk van de services zou zich richten op een kleine taak. Dit kan leiden tot grootschalige service-architecturen met complexe afhankelijkheden tussen services (versioning, performance, etcetera). Nieuwe tools als het Nederlandse Vamp.io helpen DevOps-teams bij het draaien van complexe en kritieke architecturen die draaien op microservices. 

Datawetenschappers: de idolen van de toekomst 

Datawetenschappers zijn hot! Nieuwe universitaire opleidingen op het gebied van datawetenschap gaan overal van start. De belofte van Big Data heeft menig boardroom wakker geschud. Traditionele programma’s voor data-analyse (zoals SPSS) krijgen hernieuwde aandacht, maar ook nieuwe spelers dienen zich aan.

Veel van deze nieuwe spelers richten zich echter maar op een deel van het veld, zoals Tableau, dat zich voornamelijk richt op datavisualisatie en je maar weinig te bieden heeft bij gedetailleerde analyses.

Microsoft Azure Machine Learning lijkt een oneindige bron voor goedkope computationele kracht voor het grote publiek te zijn. Maar zoals altijd als het gaat om krachtig gereedschap: je moet wel weten wat je doet.

Een diepe kennis van data modelling, hypotheses, test-sets, algoritmes, etc. is een vereiste om kennis te destilleren uit grote hoeveelheden data. Wij zijn ervan overtuigd dat datawetenschappers die de beschikbare computationele kracht weten te benutten de idolen van de nabije toekomst zullen zijn.

 

 

2 Reacties

Zo he!, die meneer Heini Withagen kan goed zijn eigen bedrijf pluggen op Emerce. Tjonge! Knap hoor… Als t nou een techradar was van gemeenschappelijk optredende internet-bureaus ok. maar zo…

@Heini: relevant, leesbaar en leuk artikel. @vandeurzen: waar lees jij de ‘reclame’ dan?

Plaats een reactie

Uw e-mailadres wordt niet op de site getoond.

terug