Ik heb de onderbouwing om Swift op Linux te ondersteunen. Ik heb terug in de tijd dat Swift net opensource werd, December 2015, voor het eerst Swift geprogrammeerd omdat het naar Linux kwam. Het eerste wat ik wou, nadat ik leerde hoe veel ik hield van het programmeren in deze taal, was een website maken. Deze website is van Nederlandse bodem bij mijn oude werkgever ontwikkeld en staat online sinds April 2016.
In deze korte maar krachtige periode zijn er 4 grotere Web Frameworks opgestaan met een bijbehorende community. In volgorde van ontstaan:
- Perfect, een bijzonder commerciële partij die tevens inactief waren rondom hun community en de framework ontwikkeling. Sindsdien opgekocht door een Chinese klant om de support te behouden.
- Zewo, een community project dat bijzonder veel goede eigenschappen leent van Go om performance te halen. Ondertussen op "pauze" gezet totdat Swift ondersteuning krijgt voor coroutines
- Vapor, mijn primaire keuze destijds, een sterk project met een enorme community. Sindsdien mijn werkgever.
- Kitura, zoals hierboven genoemd door IBM ontwikkeld, nog steeds actief en sterk aan de weg aan het timmeren
Wij hebben behoorlijk veel grote bedrijven horen aankloppen met vragen rondom Vapor. Ik kan je garanderen dat mensen niet stil staan rondom Swift op Linux, of Server Side Swift, zoals onze community dit noemt.
Zoals hiervoor gemeld werk ik nu voor Vapor, dit doe ik full-time en met veel plezier en success. Alhoewel Swift nog een paar vervelende eigenschappen mist, met name een officiel ondersteuning voor coroutines, bereiken we heel snel heel veel.
Met Swift weten we dankzij Codable de data puur/schoon/type-safe te houden. Simpel, en heel concreet.
We weten door gebruik te maken van ARC CoW mechanismes heel efficient data door ons systeem te verplaatsen zonder een kopie te maken van de oorspronkelijke data. Dit resulteerde in een met afstand de snelse driver op het gebied van MySQL en MongoDB (waar PostgreSQL nog niet getest is). En onze HTTP server op gelijke voet gaat me
https://github.com/valyala/fasthttp en maakt veel gebruik van Codable om de informatie type-safe te houden. Dit betekend dat alle data alleen nog maar een struct/class hoeven te zijn zonder (de-)serializatie. En onze database drivers voor MySQL (+ MariaDB), PostgreSQL en MongoDB staan tot nu toe onverslagen in onze benchmarks.
Swift is meer dan klaar voor de server en daar werken wij razendsnel naar toe.
@Verwijderd ping ik even ook hier mee om bij de discussie te betrekken