Qt Group - eeppinen matka teknojätiksi

Kuittaan Verneri tuon kommenttisi suositusjakautumasta. Korkojennousua indikoi asuntolainojen korkojen nousukeskustelu jo keväällä 2021. Samasta kertoi samaan aikaan myös pitkien dollarikorkojen nousu. Viimeinen varmistus ajattelulleni tuli loppuvuodesta, kun Suomen Pankin pääjohtaja Olli Rehn varoitteli korkojen noususta.

Olen huono kestämään osakemarkkinoita (tai niiden osia), joiden volatiliteetti on korkea. Tämä ilmiö alkoi loppukesällä 2021.
Yhdistettynä nämä kertoivat minulle, että on aika luopua kaikista osakkeista, joissa on kansainvälistä tekno-profiilia ja joiden kertoimet hipoivat pilviä. Näin tein myös Qt:n ja esim. Revenion kohdalla. Mielestäni “teknokuplan” emmeet olivat ilmassa. Oudoksuin kovasti Inderesin analyysien osta-suosituksia ja yleisesti yltiöpositiivista suhtautumista arvostuksiin vallitsevissa olosuhteissa.

Mutta eiköhän Qt:n sieltä taas nousuun lähde ainakin johonkin rajaan asti. Itse ennakoin onilla spekseilläni alkusyksystä 2021, että Qt:n arvo laskee noin 53 euroon. Saas nähdä.

6 tykkäystä
45 tykkäystä

Onko joku teistä jo tutkinut, miten hyvin avoimeen lähdekoodiin perustuva Flutter soveltuu sulautettujen Linux-pohjaisten järjestelmien käyttöliittymien kehittämiseen? Kuinkahan todennäköistä on, että Flutter on Embedded Devices muuttaa infotainment järjestelmien kilpailukenttää lähitulevaisuudessa?

Laiton merkille, että ainakin Toyota on kehittänyt Linux-pohjaista infotainment-järjestelmää [Flutter Showcase | Toyota]. Näköjään Flutter on nykyään myös saatavilla Raspberry Pi:lle [Flutter on Raspberry Pi], joten sen kokeilemiseen kynnys on ainakin aika matala.

3 tykkäystä

Onhan siitä muutama viesti keskusteltu tässä ketjussa (ainakin Flutterista yleisesti), hakutoiminto on ystävä.

6 tykkäystä

Tuntuu kyllä, että tämä Inderesin hakutoiminto on lähinnä kiusankappale, joka ei juuri mitään auta. Esim tuolla Flutter-hakusanalla tulee yksi linkki tähän ketjuun, vaikka Flutterista on kyllä keskusteltu täällä vähintään kymmenissä postauksissa, ehkä jopa sadoissa.
Kehitysvinkki Inderesin koodiniiloille, siis :slight_smile:

6 tykkäystä

Olin päätoiminen Flutter kehittäjä edellisen 9-12kk. En enään. Käytän Flutteria edelleen harraste projekteissa. Target lähes poikkeuksetta Android, mutta olen myös testannut Win11 x86 sen jälkeen kun se tuli viralliseksi targetiksi Flutter 2.10:ssa. Nyt Flutter siis elää sitä seuraavaa “major” releasea 3.0:aa.

Flutterista ei ole tuettua virallista armv8 tai vastaavaa julkaisua. Armv8 on tärkeä luku itsessään koska se on kovin yleinen ARM-version tehokkaissa embedded ratkaisuissa. Esim RPi 4 on armv8 pohjainen kuin myös NP:n iMX8. Sen sijaan kaksi epävirrallista julkaisua löytyy. Se on olemassa näppäränä flutter-pi joka on paketoitu snap-paketiks Raspille. Tämä on melko lelu. On myös olemassa eLinux pohjainen joka voisi alkaa olla teknisesti melko lähellä sitä mitä kehittäjä työkaluiltaan ja teknologia stäkiltään vaatii.

Tässä on muutama ongelma Flutterin kannalta. Maturiteetti, virallinen tuki ja roadmap kehitykseen.

  • Virallinen Flutter on jo lähtökohtaisesti hieman kiusallisessa paikassa, sillä se hakee kovasti muotoaan ja päivitys nopeus on kovin suuri. Flutter 2->3 muutoksenkin aikana tuli useita ns “rolling” päivytyksiä, jotka muuttivat useita hyvin fundamentaalisia asioita koko applikaation flown kannalta. Tämä oli minulle kehittäjänä pirun ikävää kun se työllisti kun pitää refactoroida koodia. Tälläisissa asioissa on aina “switch over period” jolloin sekä vanhaa että uutta tapaa tuetaan. Se yleensä kestää n-kpl päivityksiä. Flutterin korkea päivitys nopeaus itsessään lyhentää tätä ikkunaa jonkin verran ja se pakottaa kehittäjän aktiivisesti pitämään pakettinsa kunnossa.

    • Flutter on hyvin samanlainen monen muun modernin korkean tason kielen/teknologian kanssa että se tukeutuu kovasti 3. osapuolen paketteihin. Tarvitset BT:tä? Lataa BT paketti. Tarvitset teknologian X apia? Lataa paketti. JS:llä tämä on npm. Flutterissa pub (pub.dev). Tämä johtaa omaan kasaan ongelmia ja ratkaisuja. JS:n kehittäjät tietää miten tuskastuttavaa on kun päivittää omaa koodiaan ja yhden paketin vaatima versio rikkoo toisen. Se että saa toista sataa pakettia matchaamaan toistensa kanssa on työmaa. Flutterin kanssa ongelma ei onneksi ole ihan näin paha mutta aiheuttaa sekin kovasti rajotteita.
    • Esimerkkinä: Pub.dev:ssä paketti kertoo heti mitä targetteja se tukee. Hyvä esimerkki monenkin ongelman suhteen on nykyään Flutterin ainut oikeasti käytettävä BT kirjasto (flutter_reactive_ble | Flutter Package). Tämä paketti tukee vain iOS ja Anrdoid paketteja. Jos haluat tehä saman codebasen x86:lle Win10:lle niin se on voivoi. Ei onnistu. Käytä win-apia ja nyt käytössäsi on 2 eri BT kirjastoa. Target onkin nyt iMX8 prossu, joudut itse kirjottamaan koko BT moduulin suoraan prosessorin HAL:n päälle tai suoraan rekkareihin. Tämän työ joutuu tekemään usein muillakin työkaluilla mutta yksi Flutterin hyvistä puolista syötiin heti pois. Lisäksi koska virallinen tuki puuttuu niin on turha toivoa että joku sen tekisi sinun puolesta.
      • Paketti oli ennen sellaisen firman kuin Polidean ylläpitämä. Firma x osti tämän firman ja uudelleen järjesti resursseja niin että paketin ylläpito lopetettiin. Meni yllättävän kauan aikaa että Philips jatkoi projektia tällä uudella nimellä. Itse törmäsin ongelmaan juurikin tämä paketin kanssa. Mikäli Philips ei olisi jatkanut kehitystä ja ylläpitoa olisi minulla vaihtunut koko projektin teknologia samantien Kotlin ja Swift koodiksi. On strategisesti melko vaikea rakentaa kestävää tuottetta huteran pohjan päälle. Onneksi Flutter:n koko ympäristö kokonaisvaltaisesti on parantunut ja jatkaa paranemista. Maturiteetti korjaa ongelmaa.
  • Virallisen tuen puute on isoin ongelma. Sen puute tekee Flutterista strategisesti riskialttiin kohteen kehittää oikeasti isoja projekteja. Roadmap kertoo tulevien plattareiden olevan OSX ja Linux. Sen jälkeen isoja kysymysmerkkejä. Win julkaisua odotettiin 3+ vuotta. Tähän asti tuetut ja tulevaisuudessa tuettavat ratkaisut ovat vähälukuisia ja melko rauta kaukaisia. Korkeamman tason abstraktioilla on vältytty monin tavoin siltä että ei tarvi tietää tasan mikä Intelin tai Qualcomin prossu tai Nvidian kortti koneessa on. Kun siirrytään embedded puolelle alkaakin rauta konfiguraatioita sekä sitä myötä targetteja olla useita. Homma leviää käsiin kun pitää tukea Broadcomin, NXP:n, MediaTek:n tuhat ja sata eri sirua. Se mistä Flutter tulee ja mihin se on mennyt en näy kovin todennäköisenä tai koko projektin kannalta hedelmällisenä alkaa tuomaan Flutteria rauta tasoon. Se on yksinkertaisesti liian työlästä sillä core-teknologialla ja kehitys flowlla mille Flutter on rakennettu. Mahdollista se on toki. Ehkä jokin RedHat tyyppinen tilanne voi olla mahdollista että jokin firma alkaa ylläpitämään open source ratkaisuja Flutterille joiden target on vaikkapa iMX8.

  • Vielä Qt:n verrattuna. Boot to Qt on tehokkain ja paras tapa ajaa Qt:ta postauksen kokoisissa laitteissa. Raspin tapauksessa voisi jo argumentoida että standard Linux pohjalla alkaa olla perusteltua mutta iMX8 puolestaan ei. Uboot bootloader (tai vastaava) ja Qt sen päällä on suoraan laitteelle rakennettu karsittu custom Linux joka takaa tehokkaan resurssien käytön ja hyvät suoritusarvot. Flutter pyörii Dart VM:n ja tulkin läpi. Dart VM ja tulkki on hyvä tulkiksi. Ei tosin täydellinen. Selkeästi parempi kuin esim Python joka on absoluuttinen runtime tavutettu kieli mutta häviää C/Rust-akselille komeasti. Varsinkin matalssa päässä Dart VM vaatii niin korkeaa over headia raudalta että se ei ole kannattavaa. Toki ongelmaan voi aina korjata kaasulla (paremmalla prossulla yms) mutta jossain vaiheessa hinta alkaa olla liian kova.

Flutter on hyvä teknologia. Sille on jopa ilo kehittää. Ja sillä saa suhteellisen paljon aikaan. Mutta se ei ole pyhä ratkaisu kaikkeen. Vasara on hyvä lankkujan kiinnittämiseen nauloilla, pirun huono kiinitämään samat lankut yhteen ruuveilla.

Lisäksi täällä noussut keskustelu jo aikasemmin Flutterin asemasta emoyhtiö Googlen kannalta. Mielestäni Flutter on vielä/tällähetkellä strategisesti vaarallinen vaihtoehto teknologiaksi. Olen tästä monet kerrat jutellut työkavereiden ja asiakkaiden kanssa. Flutter on Googlelle virkistyskassan kokoinen pyöristysvirhe tuloksessa. Kun Googlen CTO napsauttaa sormea niin koko roska menettää pohjan. En usko että Flutter siihen kuolee mutta kehitys pysähtyy varmasti seinään. Mielestäni olisi koko maailmalle edukasta jos Flutter yhtiöitettäisiin omaksi puljuksi. Se pienentäisi Flutterin riskiä alustana ja parantaisi sen uskottavuutta. Qt sen sijaan ei ole muuta kuin oma firmansa. Tälläistä ongelmaa ei ole ja tekee Qt:stä kokonsa, uskottavan road mapin ja historian takia merkittävästi paremmaksi ratkaisuksi.

159 tykkäystä

Kiitos @luettelo erittäin kattavasta ja selkeästä vastauksesta. Hienoa, että saatiin asiantuntijan näkökulmia aiheeseen liittyen. Tämä selkeytti paljon. :slight_smile:

21 tykkäystä