Några liveview-kloner jag kikar litet på
Jag blev totalt såld på Phoenix LiveView. Det känns som rätt ände att börja i när man ska bygga en webbaserad applikation, i jämförelse med traditionell SPA eller sk hydration som Next.js och Remix.js ägnar sig åt.
- Servern är facit för state. Redan från start finns stöd för multipla sessioner, med push istället för pull.
- Gör en användare en ändring pushar servern ut det till övriga direkt.
- Varje ny sidomladdning renderar HTML.
Det är en arkitektur som passar sig ypperligt för applikationer där samarbete och samverkan är ett krav. Exempel: dashboards, projektledningsverktyg, bokningssystem, auktionssystem, chattprogram, ordbehandlare, kalkylarksbehandlare.
En av anledningarna till att jag genast började heja på Phoenix LiveView är för att det är skrivet i Elixir, och därmed har hela kraften med BEAM: hög concurrency, tål last bra, billigt att drifta.
Jag har däremot otroligt svårt för Phoenix. Det är något med mappstrukturen och diverse arv från Rails - som jag också har svårt för - som gör att jag aldrig fått något bra arbetsflöde i projekt. Trots tusentals timmar i Phoenix kan jag fortfarande inte navigera smidigt i katalogstrukturen.
Då konceptet är en bra grej som nu funnits otroligt länge, undrade jag om LiveView fått något erkännande i form av kloner eller projekt som tagit stor inspiration. Det visade sig finnas ett gäng.
- Django LiveView och Djust. Detta har gjorts möjligt eftersom Python numera har möjlighet att exekvera asynkront. De uttrycker att Phoenix LiveView agerat inspiration.
- GoLive och live finns i Go, men de är i alfastadier. De omnämnde båda sig själva som "liveview för Golang".
- Flask har fått en asynkront syskon - Quart.
Laravel LiveWire finns fortfarande, och det är alltid ett alternativ. Den är gammal i gamet nu och ska förmodligen betraktas som testad och mogen. Detsamma gäller .NET Blazor.
I takt med att HTMX och alpine.js mognat så går det att skapa så kallad HTML-over-the-wire med vilket webbramverk som helst.
Så kanske är Phoenix LiveView ingenting jag behöver våndas över länge.