Mener det er tull at det ikke satses på Flutter: – Men Dart er en flaskehals

Flutter-utvikler og fagansvarlig i Fink, Elias Elfarri, er skeptisk til at det har blitt laget en fork av Flutter – og er ikke bekymret for fremtiden til rammeverket.

Elias Elfarri jobber til daglig som Flutter-utvikler og fagansvarlig i Fink. 📸: Privat
Elias Elfarri jobber til daglig som Flutter-utvikler og fagansvarlig i Fink. 📸: Privat Vis mer

Kryssplattformrammeverket Flutter ble nylig forket til et nytt rammeverk kalt Flock – fordi tidligere Google-ansatt Matt Carroll var bekymret over manglende satsning på rammeverket fra Google.

Det er Google som står bak både Flutter og programmeringsspråket Dart som brukes i Flutter.

Elias Elfarri jobber som Flutter-utvikler og fagansvarlig for mobilutvikling i Fink, og leder også Flutter Oslo-meetupen. Han mener Carrolls frykt er ubegrunnet:

– Sånn jeg ser det så er Flutter og Dart fortsatt et veldig høyt satsningsområde hos Google. Google bruker det selv internt i Google Pay og Google Earth, sier Elfarri til kode24.

Han sier videre at Flutter og Dart er på sitt mest populære akkurat nå i Norge og Norden, og at mange selskaper ansetter Flutter-utviklere.

– Jeg tror bekymringene fra utviklere kommer av at mange prosjekter har vurdert å bruke eller bruker Flutter, og da ser man selvfølgelig mer alvorlig på dette hvis Google nedbemanner Flutter- og Dart-teamet. Likevel er jeg personlig ikke bekymret og mener at Google kommer til å støtte Flutter og Dart lenge fremover.

Dart en flaskehals

– Opplever du selv at utviklingen innenfor Flutter går for sakte?

– Det er nok helt riktig at Flutter-teamet prioriterer aller mest støtte for iOS og Android. I tillegg så må Flutter-teamet kontinuerlig imøtekomme nye krav fra Android og Apple – som nå nylig med privacy manifests, sier Elfarri.

Elfarri mener likevel at det er satt på spissen at desktop-plattformene er nedprioritert. Selv har han brukt Flutter og Dart profesjonelt i samme prosjekt i litt over to og et halvt år, med Flutter applikasjoner som kjører på Linux, Android og web.

«Basert på min erfaring oppleves Dart akkurat nå som en flaskehals for Flutter.»

– Jeg tror Carroll sitt argument er knyttet til at selskaper som har tilpassede embedded-systemer, og som gjerne vil kjøre Flutter på det, har vanskeligheter med å bygge Flutter-motoren fordi de må drifte sine egne drivere og embedders. Dette er dog utfordringer som jeg tror de fleste som oppsøker Flutter aldri vil møte på.

Det er imidlertid én ting Elfarri opplever kan være en flaskehals for Flutter: programmeringsspråket Dart.

– Basert på min erfaring oppleves Dart akkurat nå som en flaskehals for Flutter. Dette fordi det er en del features som eksistere i Dart-språket for at kvaliteten på Flutter-rammeverket i det hele tatt skal komme seg til det neste nivået, sier Elfarri.

Kun to på viktige funksjoner

Som eksempel nevner han Dart Macros og Dart FFI (Foreign Functions Interface) – en løsning som gjør det mulig for Flutter-apper å bruke native biblioteker som eksponerer et C-API.

– For å forstå viktigheten av Dart FFI så kan man per i dag kun gjøre native kall via "message passing" i plattformkanaler mellom Native og Flutter. Dette gjør at alle native kall fra Flutter er av den asynkrone sorten, og med en slik forsinkelse så er det høy risiko for at man mister kontrollen av hva som skjer på Native-siden og i hvilken rekkefølge.

Dette gjør det også umulig med "tree-shaking" fordi Dart-kompilatoren ikke vet hvilke funksjoner som kalles fra native så den må inkludere alle nativefunksjonene.

– Disse utfordringene løses kun når Dart kan gjøre kall til Native via et delt C-grensesnitt (FFI) som en bro mellom de to språkene. Poenget er at selv om dette er utrolig viktig for kvalitetssikringen av Flutter-rammeverket så er det foreløpig kun to utviklere fra Dart-teamet som jobber aktivt på prosjektet.

Skeptisk til Flutter-fork

– Hva tenker du om at det nå lages en Flutter-fork i form av Flock?

Jeg er veldig skeptisk. Blogginnlegget skaper et inntrykk av at Flutter beveger seg for sakte, og at mange utviklere støter på store problemer som tar lang tid før de løses, sier Elfarri

– Sannheten er nok mer nyansert enn som så, og mange av utfordringene som han selv tegner, om at selskaper sitter og venter på bug fixes i flere år, kjenner jeg ikke igjen i våre egne produksjonsmiljøer.

Han mener likevel diskusjonen er viktig, fordi Flutter-rammeverket er komplekst og har mange avhengigheter i form av den grafiske motoren, Dart-språket, alle de ulike plattformene som skal støttes og UI-bibliotekene det skal fungere med.

– Det kan derfor hende at det oppleves stadig vanskeligere å få merget inn sine PR til Flutter fordi det må tilfredsstille krav på mange nivåer.

Likevel mener Elfarri at debatten er mer fornuftig om man fokuserer på at det handler om utfordringer knyttet til å bidra inn i Flutter-SDK-en. Ikke at Flutter-SDK-en er kjip å bruke i produksjon.

– Dersom det er utrolig mye talent der ute som ønsker å bidra hyppig til Flutter, men har utfordringer med å navigere systemet, så er det klart at Google burde finne ut av måter å absorbere disse bidragene bedre.

«Siden Flock for øyeblikket bare er en ren kopi av Flutter, har det ingen verdi å gå over til det ennå.»

Vil følge med

Elfarri sier det nylig har blitt diskutert å lage en Flutter Foundation på samme måte som Mozilla Foundation. Per i dag er Flutter åpen kildekode, men 85 prosent av utviklingen kommer fra Google.

– Da er diskusjonen hovedsakelig om open source-miljøet burde ta en mer aktiv rolle for å imøtekomme den voksende etterspørselen av virksomheter som har blitt avhengige av prosjektet. Jeg mener Flutter Foundation burde vært et initiativ som inkluderer alle de store stemmene i Flutter, og dermed uavhengig av Matt sin Flutter-fork.

Siden Flock for øyeblikket bare er en ren kopi av Flutter, har det ingen verdi å gå over til det ennå, mener han.

Han anbefaler utviklere å vente med å ta det i bruk, fordi det foreløpig er bare to personer som jobber på det – altså betydelig færre enn de estimerte 50 personene på det offisielle Flutter-repoet.

– Flock sånn som det er idag gir egentlig ingen verdi ut av boksen, og jeg kommer til å følge med på utviklingen og vurdere på nytt når det har kommet seg lenger i prosessen.