Vroeger was het leven gemakkelijk:
Javascript (ik weet het, eigenlijk ECMAScript)
De laatste jaren zie je het eigenlijk steeds meer door elkaar lopen. Was Javascript in het begin echt een taal die alleen gebruikt werd in je browser, maar met NodeJS is het ook een prima keuze voor de back-end. Met React Native kan je tegenwoordig in Javascript programmatuur maken voor mobiele apparaten. Microsoft heeft zelfs React Native for Windows gemaakt, waardoor je deze technologie ook door kan trekken naar het Windows platform.
Ik vond Javascript niet erg onderhoudbaar, doordat er geen strong typing is. Refactoring is daardoor tricky, maar dat is met Typescript prima te ondervangen. De laatste versies met async/await ondersteuning maken het voor mij een taal waarmee het prima mogelijk is om enterprise-grade applicaties mee te ontwikkelen.
C#
C# is een taal die is ontstaan om te kunnen programmeren voor het .NET Framework. Was dat in eerste instantie alleen geschikt voor Windows, maar sinds Mono en .NET core is het ook beschikbaar voor Linux en Mac. Het is een krachtige taal met strong typing en ook het .NET framework biedt eigenlijk voldoende om goede front-end en back-end applicaties te ontwikkelen. Met Xamarin is het ook mogelijk om C# te gebruiken voor mobiele apparaten. Er zijn libraries voor generieke interfaces (Xamarin Forms) of voor native interfaces (iOS of Android).
Wat te kiezen?
Voor nieuwe ontwikkelingen ben ik een beetje zoekende. Stel dat ik een front-end applicatie moet maken. Voorheen maakte ik die in C# met WPF en daar heb ik nooit echt spijt van gehad. Sommige applicaties draaien al jaren bij klanten naar volle tevredenheid.
Maar wat als ik nu opnieuw zou moeten beginnen? WPF heeft ook zo zijn nadelen. De voornaamste is dat het alleen op een Windows apparaat werkt. Liever heb ik een code-base die breder inzetbaar is en dan wordt het toch al wat lastiger. Het liefst wil je een applicatie die ook op iOS en Android kan werken, zonder (drie)dubbele codebases.
Ik zie nu eigenlijk maar een paar opties:
- Unix: C/C++
- Windows: C/C++ en daarna C#
- Web: Javascript
Javascript (ik weet het, eigenlijk ECMAScript)
De laatste jaren zie je het eigenlijk steeds meer door elkaar lopen. Was Javascript in het begin echt een taal die alleen gebruikt werd in je browser, maar met NodeJS is het ook een prima keuze voor de back-end. Met React Native kan je tegenwoordig in Javascript programmatuur maken voor mobiele apparaten. Microsoft heeft zelfs React Native for Windows gemaakt, waardoor je deze technologie ook door kan trekken naar het Windows platform.
Ik vond Javascript niet erg onderhoudbaar, doordat er geen strong typing is. Refactoring is daardoor tricky, maar dat is met Typescript prima te ondervangen. De laatste versies met async/await ondersteuning maken het voor mij een taal waarmee het prima mogelijk is om enterprise-grade applicaties mee te ontwikkelen.
C#
C# is een taal die is ontstaan om te kunnen programmeren voor het .NET Framework. Was dat in eerste instantie alleen geschikt voor Windows, maar sinds Mono en .NET core is het ook beschikbaar voor Linux en Mac. Het is een krachtige taal met strong typing en ook het .NET framework biedt eigenlijk voldoende om goede front-end en back-end applicaties te ontwikkelen. Met Xamarin is het ook mogelijk om C# te gebruiken voor mobiele apparaten. Er zijn libraries voor generieke interfaces (Xamarin Forms) of voor native interfaces (iOS of Android).
Wat te kiezen?
Voor nieuwe ontwikkelingen ben ik een beetje zoekende. Stel dat ik een front-end applicatie moet maken. Voorheen maakte ik die in C# met WPF en daar heb ik nooit echt spijt van gehad. Sommige applicaties draaien al jaren bij klanten naar volle tevredenheid.
Maar wat als ik nu opnieuw zou moeten beginnen? WPF heeft ook zo zijn nadelen. De voornaamste is dat het alleen op een Windows apparaat werkt. Liever heb ik een code-base die breder inzetbaar is en dan wordt het toch al wat lastiger. Het liefst wil je een applicatie die ook op iOS en Android kan werken, zonder (drie)dubbele codebases.
Ik zie nu eigenlijk maar een paar opties:
- Xamarin, waarbij de vergaarde C# kennis niet verloren gaat. Delen van de oude code kunnen wellicht hergebruikt worden. Ik ben 20 jaar werkzaam in het Microsoft ecosysteem, dus Xamarin lijkt heel wat te zijn, maar is dat ook wel echt zo? Microsoft heeft vaker dit soort systemen gehad (bijv. Silverlight) waar zo de stekker uit ging. Dat vind ik wel tricky.
- React Native, maar dan moet de hele club C# programmeurs om naar Typescript. Ook is React met zijn build-omgeving, packages, ... best een uitdaging en dus een risico voor nieuwe programmatuur. Wellicht eerst maar eens beginnen met een React website (daarvoor heb je toch weinig andere keuze, behalve Angular) en die applicatie voorlopig maar even laten voor wat het is.
- Kop in het zand en gewoon weer een WPF applicatie ontwikkelen. Minder risico, maar wellicht naar de toekomst toe te ouderwets en te beperkt.
The miracle isn't that I finished. The miracle is that I had the courage to start.