1Jul
Is het u opgevallen dat veel nieuwe bureaubladtoepassingen op websites lijken? Het is niet jouw verbeelding.
Van Trello tot Slack, van WordPress.com tot Github, het komt steeds vaker voor dat zogenaamde desktoptoepassingen een website bundelen met een paar native-functies zoals meldingen, bestandssysteemtoegang en menu's. De meest gebruikte technologie hiervoor is Electron en wordt gebruikt door een paar applicaties die je misschien niet eens vermoedt, zoals Discord en de Visual Studio-code van Microsoft.
Electron maakt het gemakkelijk voor ontwikkelaars om tegelijkertijd een app vrij te geven op Windows, macOS en Linux, maar er zijn nadelen voor de gebruikers. Electron-applicaties zijn enorm, bijvoorbeeld. Slack, een chattoepassing, neemt 237 MB ruimte op de harde schijf in beslag op mijn Mac en het geheugenverbruik is ook niet laag. Wat neemt al die bronnen op? En waarom gebruiken ontwikkelaars iets dat zo inefficiënt is?
Electron Apps zijn vrij eenvoudig te maken
Desktop-applicaties zijn moeilijk te maken, vooral als je wilt dat ze platformonafhankelijk zijn. Toegang tot het bestandssysteem werkt in Windows anders dan bijvoorbeeld in Linux, en meldingen werken anders op MacOS dan in Windows. Dit betekent dat iedereen die een applicatie wil schrijven voor alle drie desktopbesturingssystemen( of zelfs twee) een groot deel van hun code opnieuw moet schrijven wanneer ze van de ene naar de andere porteren.
Electron "lost dit op door een enkel platform aan te bieden dat werkt op alle drie de belangrijkste desktopbesturingssystemen. Dit betekent dat ontwikkelaars de code eenmaal voor dingen zoals meldingen kunnen schrijven en verwachten dat deze native werken op elk besturingssysteem. Nog beter voor ontwikkelaars: alles kan worden gebouwd met behulp van Javascript, HTML en CSS-technologieën die bekend is bij iedereen die codeert voor het web.
Electron Apps komen met vrijwel al het Chromium
Hoe is dit mogelijk? Deels omdat elke Electron-app een complete webbrowser bundelt: Chromium, de opensource-versie van Google Chrome. Dit is samen met de platformspecifieke instructies gebundeld om ervoor te zorgen dat alles zich precies gedraagt zoals de ontwikkelaars op alle systemen verwachten. Daarom neemt de desktopversie van Slack meer dan 200 MB ruimte op de harde schijf in beslag: het grootste deel van Chrome is daar gebundeld.
Elke Electron-app die u uitvoert, is min of meer een volledige instantie van Chrome. Zoals blogger Joseph Gentle opmerkte, is dit nauwelijks ideaal:
Je kunt Slack zien als een klein javascript-programma dat wordt uitgevoerd in een andere VM van het besturingssysteem( chrome), die je moet uitvoeren om in wezen op IRC te kunnen chatten. Zelfs als u het echte chroom open hebt, voert elke elektronen-app een eigen, extra exemplaar van de hele VM uit.
Dus ja, er zijn nadelen voor gebruikers. Allereerst bundelt elke afzonderlijke Electron-toepassing die u downloadt het grootste deel van Chromium en elke toepassing die u uitvoert, voert een groot deel van die code uit. Er is hier geen bronnen te delen zoals bij native applicaties, wat betekent dat Electron-apps meer ruimte en geheugen op de harde schijf innemen dan een applicatie die speciaal voor uw platform is ontwikkeld. Als prestaties iets zijn waar u echt om geeft, wilt u mogelijk Electron-toepassingen vermijden.
Wacht, dus Electron is goed of slecht?
Op dit moment zijn computers zo krachtig dat de meeste gebruikers nooit zullen merken hoe inefficiënte elektronische toepassingen zijn. In feite heeft de overgrote meerderheid nog nooit van Electron gehoord. De meeste van mijn collega's niet, en ze gebruiken Slack elke dag. Velen waren enthousiast om een desktopversie van Trello te zien verschijnen, en hadden opnieuw geen idee dat het een Electron-app was.
En deze apps kunnen beter beter worden geïntegreerd met uw besturingssysteem dan met websites. Ze leven in hun eigen raam. Ze bieden geweldige sneltoetsen, native meldingen en andere dingen die je niet op dezelfde manier kunt doen met slechts een browser.
En het is een goede gok dat applicaties zoals Slack, Trello en WordPress.com niet de moeite zouden nemen om een desktopversie aan te bieden als Electron niet bestond, met de nadruk op mobiele en browserversies. Dus de vraag is niet of Electron slecht is;het is of Electron-toepassingen beter zijn dan niets. Ik ben bereid om ja te zeggen, maar redelijke mensen kunnen het daar niet mee eens zijn.(En ja, voor die mensen is er altijd de webversie.)