Are you really going to use electron for Zotero?

Hello,

On this forum thread we can learn that Zotero will move to electron https://groups.google.com/forum/#!msg/zotero-dev/yy4-q_ZUA4M/dcFYzCWTDAAJ

Is this a definitive choice? I used a couple of electron app, and they didn't feel right: slow to start, UX feel strange, not accessible. I guess it's stuff that can be fixed but that doesn't come for free.

Mainly the memory footprint is insane. Also it seems very strange to launch a Chrome browser for each electron app.

Why not use Qt http://wiki.qt.io/QML_for_JavaScript_programmers? Even Tk seems saner than electrons.

I'm also not sure electron will still be a big thing in 5 years, but I'm pretty sure Qt will still be around.
  • edited August 13, 2017
    Not all electron-based projects are horribly bad. When done right, one can get a lot out of it (Microsoft's VSCode is the best example IMO). I'm not a dev, just a worried user as you are:)
  • The standalone Zotero app has been built on a web browser instance from the beginning — when you start Zotero, you're starting an instance of Firefox. With Electron, it'll be Chromium (and a vastly better development environment). There's just no other comparable cross-platform option for a JavaScript-based codebase at this time.
  • (For those interested, here's CHNM's first Electron app, recently released in beta: http://tropy.org/ )
  • Qt can run JavaScript and have official binding but I understand you want to stay in the same environment (a browser). I still think electron app are not that good for the user: https://josephg.com/blog/electron-is-flash-for-the-desktop/

    XULrunner was bringing a GUI toolkit, not only a JavaScript runner with a system API.

    VSCode (using ~320MB RAM when open!) is impressive but very slow to start compared to native similar editor like TextMate2 (~30Mb RAM) or Sublime.
  • XULrunner was bringing a GUI toolkit, not only a JavaScript runner with a system API.
    And Electron gives us an immense Node module and React component ecosystem, as well as the ability to reuse components between the website and the desktop app. Qt is not a realistic alternative for our purposes.

    The issues with Electron are well-known, and I don't think there's any reason to think that there won't be improvements in those areas.

    Beyond all the benefits of Electron for development, Zotero simply relies heavily on web technologies to function. When you use Add Item by Identifier or Retrieve Metadata from PDF, or when you save a snapshot, or when you do anything else that uses translators, it uses a browser to perform those operations. While there are ways those could possibly be made to work without a full browser engine, it's a pretty natural fit.

    (I think the most promising alternative to Electron is React Native, by the way, but that's not yet a realistic option.)
  • From my point of view as an end user, the Android support is important. Unfortunately, Electron currently does not support a development of applications for Android.
  • | when you start Zotero, you're starting an instance of Firefox. With Electron, it'll be Chromium

    Does that mean for the future, running Zotero will mean silently running Chromium? Will that imply data privacy issues, sending Google informations about my usage profil?!

    I know it is not your fault that Mozilla drops XUL based add-in support, but I hope and strongly recommend that you look for options that respect and protect peoples data privacy! I decidedly do not use google Chrome for that reason.
  • Will that imply data privacy issues, sending Google informations about my usage profil?!
    No.

    Chromium isn't Chrome, and Electron isn't just a stock build of Chromium. Among Electron apps, I have Slack and Atom on my machine, and neither has ever tried to connect to Google (other than the safe-browsing endpoint in Slack's case, and Slack clarifies that "Slack does not send any customer data to Google"). Similarly, an Electron-based Zotero won't send user data to Google.
  • That is good news. Thanks for make that clear!
  • edited August 22, 2017
    Chrome tracking is not present in Chromium and Electron. Yet some Electron API do make external call to google services: https://github.com/electron/electron/issues/7306

    Using those API (localisation, voice recognition, ...) is, of course, optional and alternative can be used.

    What is sure is by using chromium you help the "Chrome ecosystem" and therefore participate indirectly to Google web domination.
  • This may sound intrusive, but I'm wondering whether it's possible to keep an eye on the Electron-based Zotero development, or even try nightly builds. Is there a dedicated GitHub repo or certain place when one could watch the current status?
  • It's a reasonable question, but as far as I know, there's no such repository (Zotero does have some private repos, but I'd be surprised if they used those for Electron). I don't think work on Electron Zotero per se has begun (though the recent release of Tropy by the same center will certainly help. You can find Tropy's code here:
    https://github.com/tropy/tropy
  • edited January 2, 2018
    @adamsmith
    Tropy looks a lot like Zotero in terms of interface and how it stores the metadata (RDF). I have a suspicion that Tropy may occasionally become the next iteration of Zotero after adding styles and PDF support, rendering Zotero obsolete. Am I overthinking?:)
  • Yes, the projects aren’t likely to merge, as they serve very different functions. But Zotero will likely be able to re-use code and lessons learned from Tropy development.
  • The German IT security expert Felix von Leitner recommends to stay away from Electron. See https://blog.fefe.de/?ts=a406d87c

    Below is a current vulnerability.

    https://www.trustwave.com/Resources/SpiderLabs-Blog/CVE-2018-1000136---Electron-nodeIntegration-Bypass/
Sign In or Register to comment.