34
Electron is bad and you should feel bad Eivind Arvesen

Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Høyreklikkpåbakgrunnen, velg«Formaterbakgrunn», «Bilde…»ogvelgetannetbildesombakgrunn

Electronisbadandyoushould feel bad

EivindArvesen

Page 2: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Outline:

o HvaerElectron?o Korthistorieleksjon;setteJSogElectronikontekstavandre

programmeringsløsningeroghistoriendereso Forklaringo Fordelero Ulemper

o Eksemplero Blunderso Men...

o Oppsummering

Outline

Page 3: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Hvemerjeg?

oEivindArvesen

oUtvikler

oIBouvet siden2017

Page 4: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Høyreklikkpåbakgrunnen, velg«Formaterbakgrunn», «Bilde…»ogvelgbildetduvilhasombakgrunn

Page 5: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Høyreklikkpåbakgrunnen, velg«Formaterbakgrunn», «Bilde…»ogvelgbildetduvilhasombakgrunn

Sorry Not Sorry

Page 6: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Høyreklikkpåbakgrunnen, velg«Formaterbakgrunn», «Bilde…»ogvelgetannetbildesombakgrunn

Kontekst

Hvordanhavnetviher?

Page 7: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

oJavaScriptoveralt

oPresidentTrump

oBladeRunner2049

Virkelighetskillt fraopprinneligtimeline?

Før

oAltvarbra

?

Page 8: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

En(forenklet)timeline

o1995:BrendanEich lagetJavaScriptforNetscapeiløpetav10dager• Dettegjordemangepersonerveldigsinteoghargenereltsettblittbetraktetsometfeiltrinn.

o90s– Y2K:Flash(ActionScript),GeoCities

oAughts:jQuery,Java-Apps

o2009-2010:Node.js,NPM

o2013:ElectrongittutavGitHub

oTwo-teens:Altsuger

Page 9: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Electron– Hva?

”Electron isaframework forcreatingnativeapplicationswith webtechnologieslikeJavaScript,HTML,andCSS.”

oLagetavGitHub underderesarbeidmedAtom

oTrengtekryssplatformstøtte forderesegen”native”applikasjonsutvikling• GitHub fordesktop• Enegenteksteditor...

oFørstkjentsomAtomShell

Page 10: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Liminnskjermbilde,beskjærdetogleggdet«inni»skjermen.

Electron– Hvorfor?

oWebtech erchill

oVikanwebtech

Page 11: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Electron– Hvordan?

o”Enkleste”løsning:drainn• EnhelChromium-instanse• EnNode-runtime• Etparwrappers forplatform-APIer

Page 12: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Liminnskjermbilde,beskjærdetogleggdet«inni»skjermen.

Fordeler

oKortveitilmulti-OSdeployment

oGjenbrukavkunnskap

oGjenbrukavkodebase

oFungerendekryssplatform UI

oTilgjengeliggjørogdemokratiserer(apper/programmering)

Page 13: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Høyreklikkpåbakgrunnen, velg«Formaterbakgrunn», «Bilde…»ogvelgbildetduvilhasombakgrunn

Page 14: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Ulemper(s.1/99)

oNegativpåvirkningpåbatteritid/strømforbruk

oFrihåndsGUIsomikkeser”native”utpånoen plattform

oDårligplattformintegrasjon• Tilgjengelighetsfeatures

Page 15: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Liminnskjermbilde,beskjærdetogleggdet«inni»skjermen.

Ulemper(s.2/99)

oWebproblemerpådesktop• Sikkerhet(XSS,etc.)• HCI(Schneiderman)• Størrelse

▪ Fellesruntime?

Page 16: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Høyreklikkpåbakgrunnen, velg«Formaterbakgrunn», «Bilde…»ogvelgetannetbildesombakgrunn

Sidenote:

Hvaerdet vidrivermed,egentlig?!

Page 17: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Liminnskjermbilde,beskjærdetogleggdet«inni»skjermen.

Ulemper(s.3/99)

oHvamedbrukereutendev-gradespecs?• Arvedeenheter• Eldreenheter• Laveresosioøkonomiskestrata• Utviklingsland

Page 18: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

o"Helper"-prosesser

oUstabilitetiformavpåkrevdrestart/crash

oStorenedlastinger;oftestoreoppdateringer

oTreigoppstart

oGenerelltreghet/uresponsivitet

Ulemper(s.4/99)

Page 19: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Webtech vs alternativer

oErtradisjonelleverktøyvirkelig såille?

Page 20: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

oApplikasjonsytelseblirdårligereraskereennhardwareytelseblirbedre

oFornoenmnd sidentrengteAtom845MBforååpneen6MBXML-fil

oSlack• Buuu

Hvabetyrdette?

Page 21: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

”What you call "trade-offs"appears tometobedevelopers externalizing their costsonto users.There are costs todevelopingdesktopapplicationsanddevelopersdon't want topay them,sothey makeusers pay forthem inwasted hardwaredollars,bandwidth,RAM,battery life,andpoor integration.

BrukerenVeen,HN

Page 22: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

oProblemeteratmanegentligsetterutvikleropplevelsenoverbrukeropplevelsen!

oPerformance:Deterikkebaref.eks.CPython vs V8- problemeterPython-logikksomdriverC-basertUIvs.DOMmedJS-komponenterdrevetavJS-logikk.

oManenderegentligoppmedpseudo-nativeapplikasjoner

Page 23: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Eksempler

Page 24: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Liminnskjermbilde,beskjærdetogleggdet«inni»skjermen.

Blunders

oSlack

Page 25: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Liminnskjermbilde,beskjærdetogleggdet«inni»skjermen.

Blunders

oPotensiellRemoteCodeExecution påALLEElectronWindows-apps :D

Page 26: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

”Devilståpåsinretttilåvelgeteknologi

Page 27: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Høyreklikkpåbakgrunnen, velg«Formaterbakgrunn», «Bilde…»ogvelgbildetduvilhasombakgrunn

Page 28: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Liminnskjermbilde,beskjærdetogleggdet«inni»skjermen.

Men...

oVisualStudioCode

Page 29: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Liminnskjermbilde,beskjærdetogleggdet«inni»skjermen.

Men...

oTypora

Page 30: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Konklusjon

Page 31: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Høyreklikkpåbakgrunnen, velg«Formaterbakgrunn», «Bilde…»ogvelgbildetduvilhasombakgrunn

Electronlarlatefolklagesøppel

Page 32: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

o MangeElectron-apps erstoreogtungeo Dårligtilgjengeligheto DårligHCIo Larutvikleregjøredetdekan– pågodtogvondt

o Detteerflaut,folkens!

Oppsummering

Page 33: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

o Detfinneslegitimebruksområder• MVP/Prototypes• Utdanning/Opplæring• Interneapplikasjoner• Spesielletilfeller

o Må dettevirkelig lagesmedElectron?• Hvorfordet?

Oppsummering

Page 34: Electron is bad and you shouldfeelbad€¦ · like JavaScript, HTML, and CSS. ... oMan ender egentlig opp med pseudo-native applikasjoner. Eksempler. ... o Mange Electron-apps er

Spørsmål?