- SCRUM? Takk gud for at vi ikke bruker det!
kode24 er på besøk hos gjengen bak den norske nettleseren Vivaldi, som akkurat kom ut i versjon 2.
Fiken blåser i SCRUM og sky, men elsker Kotlin
Dagene på Vivaldi-kontoret går i Slack, code reviews og hacking i, på og rundt Chromium – open source-prosjektet som både Google sin Chrome-nettleser og Vivaldi er basert på.
Men hvordan er det egentlig å jobbe med Chromium? Hvilke muligheter har man? Hva må man unngå?
Og ikke minst, hva gjør Vivaldi annerledes enn Google Chrome?
Fra Opera til Vivaldi
- Vi brukte faktisk SCRUM i Opera en god stund, det funket OK, bemerker Julien Picalausa.
Han er tilflytter fra Belgia, og seniorutvikler i Vivaldi. Før det var han ansatt i Opera Software, selskapet bak nettleseren med samme navn. Noe han har til felles med flere Vivaldi-ansatte.
Bak Vivaldi står nemlig skaper og tidligere sjef i Opera, Jon Von Tetzchner. Han grunnla selskapet selv, finansierer det i følge han selv fra egen lomme og har fått selskap av flere tidligere kolleger.
- Jeg jobbet i Opera i ti år. Selskapet vokste og vokste. I starten kjente jeg alle, men mot slutten ble det litt vanskeligere, forteller Espen Sand, som også er seniorutvikler i Vivaldi.
Vivaldi har riktignok mer til felles med Opera enn bare tidligere ansatte. De har nemlig begge valgt Chromium som grunnlag.
Og med det følger rendermotoren Blink. Opera valgte nemlig å droppe sin egen motor Presto i 2013 – et valg mange Opera-brukere reagerte på, ifølge Vivaldis engelske Wikipedia-side.
Fyller hull
- Wikipedia tar feil, forklarer Tetzchner, når vi spør om brukere kommer til Vivaldi fordi Opera droppet Presto.
- Men da Opera droppet Presto, droppet de også designfilosofien. De gikk gjennom statistikk og fant ut at folk ikke brukte mye av funksjonaliteten. Så gikk Opera fra å være browseren med mest innebygd, til minst.
Plutselig var det ingen nettleser som hadde rollen Opera tidligere satt på lenger.
Tetzchner så en åpning i markedet for en nettleser som lot brukeren tilpasse alt til sitt behov, og slik ble Vivaldi født.
Mer enn Blink
- Vi begynte å bruke Chromium i Vivaldi simpelthen fordi det var tilgjengelig. Dessuten hadde vi erfaring fra det i Opera, forklarer seniorutvikler Julien.
- Og du må huske at Blink bare er en liten del av Chromium-prosjektet. Det er mange viktige deler, blant annet nettverkskoden og sikkerhetskoden.
Norges mest aktive: 11.178 commits på ett år
Tracking-koden er en vesentlig funksjon gjengen har skrudd av.
Vivaldi skal nemlig være en nettleser for folk som bryr seg om dataene sine.
Tregt å bygge
En ting som tar mye tid er bygging av hele Chromium-prosjektet.
- Å bygge hele greia kan ta opp mot to timer, forklarer seniorutvikler Espen.
- Heldigvis kompilerer vi ikke alt hver gang, som regel bare når det kommer en ny versjon av Chromium.
Det hjelper også at grensesnittet i Vivaldi er bygd på webteknologi, basert på Node og React.
- Vi prøvde først å gjøre det i vanilla JavaScript, men så fant vi ut at det ble bedre med React. Det er et rammeverk med mye støtte, legger Julien til.
At grensesnittet er bygd på webteknologi har gitt Vivaldi mange flere muligheter til å personalisere grensesnittet enn andre nettlesere. Og det er ifølge utviklerne ganske uvanlig å bygge grensesnitt på denne måten i Chromium. Selve nettsidene tegnes i egne Chromium WebView på toppen av deres grensesnitt.
- Vi merker hvor raskt og enkelt vi kan utvikle temaer og gi brukerne kontroll med denne løsningen, forteller Von Tetzchner.
- Det er veldig bra for skreddersøm, men det er også her de fleste av feilene våre dukker opp, forteller Julien.
Synker til MongoDB
En ny funksjon i versjon 2.0 av Vivaldi er Sync; en tjeneste som lar deg synkronisere dataen din på tvers av Vivaldi-nettlesere.
Men foreløpig kun på desktop – Vivaldi har nemlig ingen mobilnettleser ennå.
- Det kommer en mobilløsning, kan Tetzchner fortelle, uten å gi noen dato.
Seniorutvikler Julien Picalausa har vært sentral i utvikling av Sync-funksjonaliteten i Vivaldi, som baserer seg på Chromium Sync. Han forteller at det er to parter av systemet, men det er kun den ene siden som er åpen. Hvordan Google håndterer dataene fra Chrome vet bare Google.
Chromium er nemlig rigget for å sende fra seg kryptert informasjon om det du gjør. Det er opp til en tjeneste man bygger selv å ta vare på dataen man synes er viktig og sende det tilbake til nettleseren.
3,5 millioner requests i minuttet – vraket SQL for MongoDB
- Alt fra Vivaldi Sync blir sendt til en tjeneste her, skrevet i Python, forklarer Julien.
Deretter går all Vivaldi-dataen inn i MongoDB. En løsning man ofte blir advart mot, men som flere norske selskap med høy trafikk - slik som Linkpulse - bruker i produksjon.
- Det er ikke noe problem å bruke det, men man må være forsiktig. Inntil nylig har transaksjons-operasjoner vært tungtvindt, blant annet, sier Julien.
Trenger ikke avansert kodebakgrunn
Til programmering av Vivaldi forteller begge utviklerne at de bruker Visual Studio Code.
- Jeg brukte notepad++ 2 før, men VS Code ser ut til å takle store prosjekter som Chromium bedre, uten å gå tom for minne, forteller Julien.
- Jeg brukte Emacs og Sublime før, men nå bruker jeg stort sett VS Code, sier Espen, og er enig med sin belgiske kollega.
Ifølge Julien var det tilfeldigheter som gjorde at han endte opp med å jobbe for et nettleser-selskap. Han forteller at selv om har programmert siden han var 11 år, hadde han ingen erfaring med nettleser-utvikling før Opera.
Espens historie er litt annerledes. Han forteller at han ikke rørte en datamaskin før ingeniørskolen. Der lærte han seg riktignok utvikling på Linux-plattformen, og leflet blant annet med QT-rammeverket for å bygge grensesnitt.
Det var slik han fikk jobben i Opera, forteller han. Likevel er begge enig i at det meste er selvlært.
- Jeg tok universitetskurs, men det var bare på toppen av det jeg lærte selv. Du kan fortsatt komme deg inn i industrien som selvlært, avslutter Julien.