BLOG

Trends

Ontwikkelingen in de developer-wereld: PHP 7.4, Picture-in-picture en Blazor

20 april 2020

Er is misschien geen enkel werkveld zo dynamisch als software ontwikkeling. Kijk even uit het raam, en je hebt net de nieuwste ontwikkeling gemist! Om je te helpen om bij te blijven maken we één keer per kwartaal een samenvatting van de belangrijkste, leukste én interessantste ontwikkelingen in de developer-wereld. 

Algemene ontwikkelingen

Github CLI

Developers houden van de command line. Eigen scripts, aliases en eindeloze customization zorgen ervoor dat we met z’n allen nog efficiënter kunnen werken. En voor veel zaken biedt de command line zoveel meer kracht dan een grafische interface.

Hoewel bijna elke developer wel eens Git heeft gebruikt op de command line – of zelfs zweert bij Git via de CLI, waren de andere functionaliteiten van Github (denk bijv. aan issues en pull requests) nog niet beschikbaar via de CLI. Het project openen van het project in een webbrowser was nodig als je hier iets mee wilde doen.

In februari heeft Github “Github CLI” uitgebracht, een CLI tool waarmee al deze Github functionaliteiten direct vanuit de CLI gebruikt kunnen worden. Ideaal voor lokale development, en integratie in je CI pipeline.

Zelf aan de slag met Github CLI? Meer lees je hier:
https://github.blog/2020-02-12-supercharge-your-command-line-experience-github-cli-is-now-in-beta

Nóg sneller zoeken en Machine Learning integratie in Elastic Stack 7.6.0

We zijn bij Senet een groot fan van de Elastic Stack. Zo gebruiken we Elasticsearch om geweldig zoeken mogelijk te maken bij ons product FormuLeer Web. En Beats en Kibana helpen ons bij het monitoren en analyseren van uptime en stabiliteit van onze applicaties. Door hosting via Elastic Cloud in Azure is dit ook een hele kosteffectieve oplossing.

In Elastic Stack 7.6. zijn meerdere verbeteringen gekomen waar wij heel blij mee zijn. Allereerst is Elasticsearch veel sneller geworden. Dit klinkt niet zo spannend als een nieuwe functionaliteit, maar voegt wel veel waarde voor ons toe. Snel en goed zoeken kan een moderne website of applicatie maken of breken, en vooral bij complexe zoekopdrachten was er nog verbetering mogelijk.

Ook zijnde machine learning mogelijkheden die zijn geïntegreerd in de elastic stack flink uitgebreid. Deze mogelijkheden gaan wij inzetten om storingen te kunnen voorspellen en voorkomen, en om beter inzicht te krijgen in mogelijke veiligheidsproblemen. Op die manier kunnen wij onze dienstverlening weer verbeteren!

Meer weten over de nieuwe versie van Elasticsearch:
https://www.elastic.co/blog/elastic-stack-7-6-0-released

Meer weten over wat Elasticsearch voor u kan betekenen en hoe Senet u kan helpen om dit in te zetten in uw organisatie? Lees onze eerdere blogpost: 4 manieren waarop Elasticsearch het verschil kan maken binnen uw organisatie.

Processen voor veilige software met behulp van de nieuwe OWASP SAMM v2.0

Wereldberoemd is de ‘OWASP Top 10’ met de 10 meest voorkomende beveiligingsproblemen in (web)applicaties. Deze lijst en de extra informatie vanuit OWASP is de ideale basis om je applicaties (technisch) te controleren voor beveiligingslekken.

Veel minder bekend is de ‘OWASP SAMM’, waar zojuist een nieuwe versie van is uitgekomen. Dit is een veel bredere toolkit, waarmee veilige processen en tools in een software-ontwikkelingsorganisatie kunnen worden geïmplementeerd. Zo is er een focus op veiligheid in alle fases van de levensduur van een softwarepakket. Hiervoor is er een lijst met acties, strategieën en matrices ontwikkeld voor de veiligheid van een stuk software vanuit de perspectieven Governance, Design, Implementatie, Verificatie en Operatie.

Meer weten over SAMM en hoe dit te gebruiken is? https://owasp.org/2020/02/11/SAMM-v2.html

Developer initiatieven tijdens de coronacrisis

Het is deze dagen moeilijk om een artikel te schrijven en het niet te hebben over het coronavirus. Ook de developer-community is het coronavirus niet ontgaan en er zijn verschillende prachtige initiatieven gestart. Twee die je toch niet gemist mag hebben:

  • Folding@home. Dit project bestaat al langer, en als je net zo’n geek bent als ik heb je hier al eens aan meegedaan. Hoe goed zou het zijn als je ongebruikte CPU-cycles op je eigen PC kunt ‘doneren’ voor wetenschappelijk onderzoek? Dat is precies wat Folding@home mogelijk maakt. En nadat het project dus al jaren een bijdrage levert aan medisch wetenschappelijk onderzoek, is het nu ook mogelijk om met hetzelfde project een bijdrage te leveren aan het onderzoek naar een geneesmiddel tegen het coronavirus. Lees meer op Foldingathome.org.
  • VentilatorPAL van FreeBreathing. Open source hardware is misschien wel niet zo wijdverspreid als open source software, maar biedt wel een mogelijke oplossing voor de situatie waarin wij ons nu bevinden, waarbij producenten van beademingsapparatuur niet aan de vraag kunnen voorzien. Het FreeBreathing project werkt aan een beademingsapparaat waar zowel het ontwerp van de hardware en de software open source zijn. Het apparaat is te maken met gemakkelijk verkrijgbare materialen, waardoor in uitzonderlijke situaties extra beademingsapparaten kunnen worden bijgebouwd. Deze zijn beperkter en simpeler dan commerciële apparaten, maar kunnen een noodoplossing bieden. Lees meer op FreeBreathing.org.

PHP en Open Source

PHP 7.4: Preloading is er nu écht

Eind vorig jaar kwam de langverwachte nieuwe versie van PHP uit. PHP 7.4 bracht ons preloading. Tenminste, dat was het idee. Preloading was namelijk bij de eerste versie van 7.4 voorzien van nogal wat kinderziekten. Oeps!

Gelukkig is inmiddels 7.4.2 uit en kun je gerust met PHP 7.4, inclusief preloading, aan de gang. En dat brengt best wel een paar mooie dingen zoals typed properties, arrow functions, limited return type covariance, argument type contravariance, unpacking binnen arrays, numeric literal separator, weak references en natuurlijk preloading.

Vooral de types properties en preloading zijn functionaliteiten waar wij erg blij mee zijn. Preloading belooft een grote verbetering in performance te gaan geven en typed properties maakt code nog robuuster en ondersteuning door de IDE beter. Wij zijn druk bezig om onze code te voorzien van typed properties, en gebruiken de PropertyTypeHint check van slevomat/coding-standard in onze CI pipeline om bij te houden hoe ver we al zijn op onze algehele codebase. Het doel is om uiteindelijk property types te verplichten op de gehele codebase.

Meer weten? Kijk dan op de documentatie van PHP op php.net: https://www.php.net/releases/7_4_0.php

Meer weten over onze ervaringen met het geschikt maken van software voor PHP 7.4 en hoe Senet uw organisatie daarbij kan ondersteunen? Lees onze eerdere blogpost: PHP 7.4: onze weg naar de nieuwste versie van PHP.  

De releasedatum van PHP 8 is bekend

Van het ene versie nieuws gaan we door naar het volgende. Eindelijk is er meer informatie over de releasedatum van PHP 8.

De eerste alpha-versie van deze nieuwe major versie van php komt uit in juni van dit jaar. Tegen het einde van het jaar, 3 december om precies te zijn, wordt de uiteindelijke release verwacht. De volledige planning is te vinden op de officiële PHP-website. De releasemanager is officieel nog niet gekozen, maar het lijkt erop dat Sara Golemon het proces in goede banen mag gaan leiden. Success Sara!

Meer weten over wat PHP 8 precies gaat brengen? Stitcher.io heeft een geweldige uiteenzetting gepubliceerd: https://stitcher.io/blog/new-in-php-8

PHPUnit 9 is uitgebracht

PHPUnit is hét testing framework voor PHP, en wordt dus ook zeer actief gebruikt binnen Senet. Het is een goed voorbeeld van een library die bij een nieuwe major geen nieuwe features krijgt, maar wel veel backwards-compatability verliest. Belangrijkste voor deze versie is wat mij betreft dat het asserten van exceptions d.m.v. annotations niet langer werkt. Ook is de minimale PHP-versie verhoogd naar PHP 7.3. Het is dus belangrijk om tests goed te controleren voordat je overgaat naar PHPUnit 9.0.

Bij de bijeenkomst van PHP Amsterdam in Februari heeft Ewout Pieter den Ouden, een bijdrage van PHPUnit, meer verteld over de interne werking van PHPUnit. Hij heeft ons ook enkele debugging tools laten zien die hij gebruikt om de complexiteit van dit framework te doorgronden. Bijdragen van hem en andere open source ontwikkelaars zijn essentieel voor de toekomst van de tools die wij allemaal dagelijks gebruiken.

 

 

Meer informatie over PHPUnit 9: https://phpunit.de/announcements/phpunit-9.html

 Symfony 5: The Fast Track

Hoewel Senet van origine veel werkt met Laminas, is ook Symfony steeds meer in gebruik. Symfony heeft het afgelopen jaar grote stappen gemaakt met het uitbrengen van Symfony 5.

Fabien Potencier, de grondlegger van Symfony, heeft de afgelopen maanden gewerkt aan een volledig boek over software development met Symfony 5. Het doel is om alle aspecten van het ontwikkelen aan te raken, om zo een volledig basiswerk neer te zetten. En nu is hij eindelijk uit! Te koop als boek of PDF in het engels, maar er zijn ook enkele vertalingen (waaronder in het Nederlands) die als PDF te kopen zijn.

Het bestaat nog: CodeIgniter 4 is uit

De oudere PHP-ontwikkelaars onder ons kennen het nog wel ‘CodeIgniter’. Dit was toen het meest geavanceerde PHP-framework van zijn tijd. Inmiddels voelt het antiek aan. Na jaren stilstand is de afgelopen tijd toch weer wat vooruitgang geboekt en is er een 4e versie van het framework uitgekomen. Een nieuwe applicatie hierin ontwikkelen zouden wij niet zomaar aanbevelen, maar het is waarschijnlijk wel de moeite waard om uw oud Codeigniter applicatie te migreren naar de nieuwe versie van dit framework.

Meer informatie: https://forum.codeigniter.com/thread-75581.html

.NET

Blazor is de toekomst; of niet?

Niet iedereen is een fan van Javascript. Ja, de taal is door de jaren heen beter geworden. Echter, het is wel duidelijk dat Javascript nooit ontworpen is voor de schaal en complexiteit waarvoor het nu wordt gebruikt. Er zijn twee grote tekortkomingen aan (klassieke) Javascript:

  1. De taal heeft niet de performance voor echt complexe zaken zoals 3d graphics; en 
  2. de taal biedt niet veel mogelijkheden om code te ordenen en structureren.

Inmiddels is bij nieuwere versies van de Javascript standaard (ECMA) echt een flinke verbetering gekomen op deze twee gebieden, maar je ziet dat er toch behoefte blijft naar andere talen zoals TypeScript en Dart die beloven hier beter op te scoren en transpileren naar Javascript.

Blazor zou je kunnen zien als een alternatief voor TypeScript, maar is dat tegelijkertijd ook niet. Ten eerste is het geen TypeScript omdat het niet transpileert naar Typescript maar naar WebAssembly. WebAssembly is een redelijk nieuwe front-end taal die inmiddels een goede ondersteuning biedt in moderne browsers. Hoewel WebAssembly moeilijk is om direct te programmeren, kunnen andere talen wel goed worden omgezet naar WebAssembly d.m.v. compilatie. Tegenover TypeScript geeft dit dus een grote performance boost.

Een ander verschil is dat Blazor niet alleen ondersteuning heeft toegevoegd voor het programmeren van webapplicaties in C# code, maar dat het ook ondersteuning geeft voor het gebruiken van verschillende onderdelen van het .NET framework aan de frontend. Dit heeft als groot voordeel dat full stack ontwikkelaars dezelfde code en tools op de frontend kunnen gebruiken die ze gewend zijn van de backend.

Niet voor niets is er veel enthousiasme over Blazor in de development wereld. De mogelijkheid om een echte programmeertaal zoals C# te gebruiken op de frontend maakt ons allemaal enthousiast. En de debugging mogelijkheden binnen het .NET framework en de bijbehorende tooling zijn natuurlijk erg goed.

Dus, moeten we nu allemaal over? Daarvoor is het denk ik nog iets te vroeg. De techniek is volop in ontwikkeling, en er zijn dagelijks grote wijzigingen. Ook heb ik wel wat vraagtekens. Zijn productieproblemen niet erg moeilijk op te sporen, aangezien daarvoor inzicht in WebAssembly nodig is? En verliezen developers mogelijk het zicht tussen de verschillen tussen frontend en backend, waardoor we weer terug gaan naar de klassieke problemen zoals we ze soms zagen bij WebForms? De tijd gaat het ons leren.

Meer informatie:

.NET Interactive

Ik ben groot fan geworden van Jupyter Notebook. Ik leg het vaak uit als het omgekeerde van ‘docblocks’. Bij docblocks voeg je een klein beetje leesbare documentatie ‘inline’ toe aan je code. Bij Jupyter voeg je een klein stukje (direct uitvoerbare) code toe aan een grote hoeveelheid documentatie. Dit is ideaal voor huiswerk, onderzoeksprojecten en experimenten.

.NET Interactive is gebouwd met Blazor en gebaseerd op Jupyter Notebook. Hiermee is het ook mogelijk om met C# en .NET te werken in een notebook.

Meer informatie: https://devblogs.microsoft.com/dotnet/net-interactive-is-here-net-notebooks-preview-2/

Frontend

Nieuwe webstandaarden voor picture-in-picture, Media Capabilities en Media Sesions

Er is weinig wat mij zo blij maakt als nieuwe webstandaarden. Want de webstandaarden van nu zijn de mogelijkheden voor webapplicaties voor de komende jaren. Eind januari zijn er drie standaarden aangekondigd die ik echt de moeite vind om te benoemen. Deze drie standaarden zorgen er gezamenlijk voor dat het publiceren van media op het web weer net een stukje beter gaat:

  • Media Capabilities is een standaard die vooral onder de motorkap van belang gaat zijn. Er is de afgelopen jaren een enorme groei geweest van het aantal standaarden voor het opslaan en streamen van afbeeldingen, audio en video. Dit is natuurlijk heel goed; concurrentie tussen deze standaarden en de daardoor gerealiseerde verbetering in compressie zorgt uiteindelijk voor winst voor iedereen, maar zorgen ook voor problemen voor ons als webdevelopers. Want welk formaat kan ik nu serveren aan welke bezoeker?
    De Media Capabilities API biedt een gemakkelijke interface om de ondersteunende mogelijkheden van een apparaat op te halen.
  • Picture-in-Picture. Iedereen die de afgelopen weken Youtube heeft bezocht is al bekend met deze nieuwe mogelijkheid. Het populaire ‘picture-in-picture’ concept wat vooral op telefoons in verschillende apps terug te vinden is, kan nu ook op het web worden bereikt.
  • Media Session Standard. Weet je hoe je op de lockscreen van je telefoon kunt zien welk nummer je afspeelt op Spotify? Daar is tegenwoordig geen app meer voor nodig! Met de Media Session Standard is deze informatie ook vanaf een website te updaten.

Meer weten? Lees hier verder: https://www.w3.org/blog/news/archives/8285

Verder ontwikkelen? Lees de Frontend Developer Roadmap

De stroomdiagrammen van roadmap.sh zijn super nuttig voor elke developer die graag zich verder wil ontwikkelen. Door het diagram te volgen krijg je goede tips over wat technieken of methodes zijn die nu van grote toegevoegde waarde zijn om te leren. Nieuw op deze website is ook een stroomdiagram voor frontend developers. Van de basis van HTML tot GraphQL, web sockets en webassembly.

Zelf kijken? Je vindt de Frontend Developer Roadmap hier: https://roadmap.sh/frontend

En nu aan de slag!

Je kunt wel stellen dat er dit kwartaal genoeg gebeurd is in de developer-wereld. Dit biedt heel veel kansen voor ons en voor onze klanten. Maar die kansen die maken zichzelf niet zomaar waar, en het is erg belangrijk om nu met deze ontwikkelingen aan de slag te gaan.

Heeft u vragen over bovenstaande ontwikkelingen? Of wilt u meer informatie over hoe Senet uw organisatie kan ontzorgen op het gebied van softwareontwikkeling en -beheer. Een vrijblijvende afspraak is altijd mogelijk, onze software specialisten staan voor u klaar!

Interesse in een gesprek?

neem contact op met Frank Houweling

Neem contact op

Zie onze privacyverklaring.