Hoewel C# een (relatief) moderne taal is (klassiek paradigma, moderne tools, taal en runtime) is het niet je enige optie en kan je als je wil experimenteren of van een scripting taal als PHP ook wat proefjes doen met andere talen.
Behalve de taal is het net zo belangrijk om rekening te houden met de omgeving, tooling en het doel (wil je het wiel opnieuw uitvinden of gewoon een generiek CMS met een huis-tuin-keuken blogje hosten, of iets daar tussen in).
Zo kan je bijv. prima uit de voeten met Wordpress, PHP en MariaDB op een FPM, nginx, Linux stack met Cloudflare er voor. Context is dus heel belangrijk.
Als je (als ik het zo lees) op zoek bent naar 'iets beters dan PHP', dan wil je waarschijnlijk naar een compiled of intermediate compiled (met VM) taal toe, maar ben je waarschijnlijk wel bekend met de rijkere ecosystemen, tools en frameworks. Dan is het goed om meerdere simpele projecten na te bouwen om kennis op te doen, bijv. het klassieke gastenboek voorbeeld, of de MVC of MVVM versie van een To-Do lijst zonder JavaScript. Als je aan een taal, tools en framework getest hebt met simpele request-response lusjes, persistence en sessies heb je meestal wel een gevoel bij wat je prettig vindt werken.
Er is geen gouden standaard m.b.t. 1 tool, 1 taal, 1 vendor, en alles heeft een leercurve. Dat betekent dat je misschien wel na een paar dagen sleutelen helemaal voor Erlang gaat, of Scala, in plaats van wat je gedacht had.
Kijk bijvoorbeeld naar een paar standaard stacks:
- Go met de standaard HTTP library en een router naar keuze (chi bijv, erg actief)
- Swift met Vapour
- Spring Boot (bijv. ook via JHipster)
- C# met .NET Core
- Python met Django (of als je kleinere spullen maakt met bijv. Flask of zelfs Twisted)
- Erlang via Elixir
- Scala met Play
- JavaScript met NodeJS en express
Geen van de talen, frameworks of templates zijn de ultieme winnaar, iedereen die een favoriet heeft denkt vaak van wel, maar dat is met alles zo (automerken, kleur sokken, tandpasta smaak) en eigenlijk nooit correct.
Stel dat je niet zelf host (wat ik ook niet meer zou aanraden anno 2019 -- kleine kans dat je het beter/goedkoper kan dan bijv. een droplet van 5 dollar per maand of een EC2 micro van 0$ voor de eerste 12 maanden) dan kan je het stukje infrastructuur beperken tot de server software en en ingress delen (bijv. Cloudflare en een reverse proxy op je host die ook meteen static assets meepakt). En je kan het nog kleiner maken door bijv. alleen een container aan te bieden, bijv. ECS van AWS of Google/Azure's equivalent. En als je nog meer op je code wil richten kan je ook compleet Serverless gaan (wat betekent dat je gewoon op een server in een container draait, maar de server, container en randzaken compleet uitbesteed), daar zitten wat beperkingen aan:
- geen lange draaiende processen
- geheugen beperkingen
- processortijd beperkingen
Dat is niet verkeerd, want het dwingt je beter over je architectuur na te denken, en kan onder aan de streep veel goedkoper zijn. Maar dat is eigenlijk al weer ver buiten scope voor je originele vraag.
[
Voor 20% gewijzigd door
johnkeates op 20-11-2019 17:24
]