ELECTRON: why people HATE it, why devs USE it

Поділитися
Вставка
  • Опубліковано 5 січ 2025

КОМЕНТАРІ • 1 тис.

  • @TheLinuxEXP
    @TheLinuxEXP  2 роки тому +68

    Download the open source best practices report here: meet.tuxcare.com/idc-peerscape-study

    • @judedashiell5390
      @judedashiell5390 2 роки тому +1

      I may be incorrect on this one, but past practice and ongoing practice may prove me correct. One of the problems javascript has had in the past was missing screen reader accessibility standards and missing illustrative code examples developers could look at and learn from so accessibility on one level could be possible to implement. So even if a developer could find and clear errors they had no guarantee doing so would make their code accessible. All of this may have changed for the better by now but if I were going to study javascript the first place I'd want to get to for first learning would be that or those sites with the screen reader accessibility standards and illustrative code samples. The reason for that is I've always needed a screen readr be it on dos, windows, linux, vax 1108 computers, Iphone or android phones and tablets. Some of that time got spent testing websites for the Government and that experience was educational for all involved.

    • @AdamsTaiwan
      @AdamsTaiwan 2 роки тому

      Wish PWA's would succeed in replacing Electron.

    • @sirrobertdowneysenior8080
      @sirrobertdowneysenior8080 2 роки тому

      I have one more task now before picking software to go js website and check whether it's based on electron if yes i just skip it and use other alternative.
      So much resources it consumes i dare all devs to use low spec machines and use such piece of crap. A simple note taking app why it has to open chromium?
      Plz don't use some shortcuts. Quality of software is affected using such shortcuts.

    • @friedrichhayek4862
      @friedrichhayek4862 Рік тому

      3:14 You are getting it wrong. Native means anything that is not a webapp. Or at least you should take it in such way. And by the way GTK and Qt don't count as native by your own definition because both can export to Windows, Linux and Mac.

    • @friedrichhayek4862
      @friedrichhayek4862 Рік тому

      By the way there is not living platform specific toolkit for Linux, all of them are able to export elsewhere, thus no being native by your own definition.

  • @swaggitypigfig8413
    @swaggitypigfig8413 2 роки тому +809

    TLDR: It makes it easy to develop because you develop once and ship to every platform so devs love it but the end result uses a lot of system resources so users hate it.

    • @therealsunnyk
      @therealsunnyk 2 роки тому +26

      I think this is a common understanding because "devs" choose it after all, but it's often not clear cut. If a product has designers, then the designers want their own HIGs, not to have to bend to HIGs from each desktop, and Electron works better in that regard. There's also the benefit of having a single codebase, which is a positive if the web is a necessary target. This means that often managers and architects will pick Electron rather than engineers.
      To look at the counterpoint, why is "electron" not the most common target for mobile platforms? They have a separate codebase and HIGs but companies will often have a separate "mobile" team and "web" team, to the extent that Mac can actually run the same code as iOS now.

    • @TVPInterpolation
      @TVPInterpolation 2 роки тому +21

      this doesnt have to be the case. there are many electron apps you may not even know that they in fact use electron, while keeping your resource usage low.
      why do i know that? im working on a interpolation software, and used to uee purely python + pyqt5 for back- and frontend. ive decided to now build the interface on top of npm/html/css/js. the resource usage is relatively minimal (when everything is loaded into the interface, its barely using 60mb of ram and 0.1% of my cpu)

    • @Freshbott2
      @Freshbott2 2 роки тому +7

      @@therealsunnyk they can be lazy on the desktop but they’d probs exceed the strict constraints on iOS and some things might not even be publishable on the App Store. On desktop they can get away with wasting resources. On Android even if you can why would you.

    • @dubbynelson
      @dubbynelson 2 роки тому

      @@Freshbott2 ding ding ding

    • @fus3n
      @fus3n 2 роки тому

      @@ZechariahB Yea i made like 2 apps in it the development process was easy but the app did not do well at all, tauri works best

  • @Al0011235813
    @Al0011235813 2 роки тому +518

    Another point: unused RAM can be used by the kernel to cache inodes (basically, applications/files that are frequently used by the user). RAM used up by electron to duplicate Chromium libraries can’t be used for caching.

    • @jan-lukas
      @jan-lukas 2 роки тому +8

      Yeah, I usually get >50% RAM usage all the time, not because I have like only 4GB, but because just so much things are cached

    • @sefoi
      @sefoi 2 роки тому +2

      Not only metadata , but data are cached also.

    • @ocsanik502
      @ocsanik502 2 роки тому +4

      @@ChipEstrada You really just went there....

    • @styleisaweapon
      @styleisaweapon 2 роки тому

      @Xspire users are going to do that?

    • @diocre7446
      @diocre7446 2 роки тому

      We have Tauri now. No more Electron.

  • @ingframin
    @ingframin 2 роки тому +366

    To be honest, if Sun/Oracle did not screw up JavaFX, most devs would probably use Java rather than JavaScript for desktop apps.

    • @Rhyrkon
      @Rhyrkon 2 роки тому +54

      TBH, javafx never really took off, same as gradle, despite both been really good.

    • @SIMULATAN
      @SIMULATAN 2 роки тому +53

      I suppose the HTML and CSS capabilities of electron makes it much more convenient to use

    • @007arek
      @007arek 2 роки тому +18

      JavaFX with native image would be great. The kotlin team wants to push their solution for desktop.

    • @ushieru
      @ushieru 2 роки тому +10

      Flutter | Tauri > JavaFx

    • @w01dnick
      @w01dnick 2 роки тому +41

      @@SIMULATAN html & css are ugly for ui, they were designed for documents, not ui and that is still true

  • @katech6020
    @katech6020 2 роки тому +166

    tauri is a new alternative that doesn't share most of electron problems.

    • @AshtonSnapp
      @AshtonSnapp 2 роки тому +35

      and it uses my favorite programming language for backend

    • @QmVuamFtaW4
      @QmVuamFtaW4 2 роки тому +19

      @@AshtonSnapp 🦀

    • @wclifton968gameplaystutorials
      @wclifton968gameplaystutorials 2 роки тому +8

      There is also the Maui toolkit which is also cross-platform and is a KDE Project and as such integrates into the standard KDE UI Guidelines although I think Electron, Tauri and Maui toolkits are aimed at different types of developers or rather different types of applications...

    • @ANGELRA
      @ANGELRA 2 роки тому +7

      Now I am learning svelte and I want to start learning to build apps with svelte and tauri

    • @katech6020
      @katech6020 2 роки тому +1

      @@ANGELRA I think you can do that easily with vite

  • @killermonkey1392
    @killermonkey1392 2 роки тому +303

    "Noticing where the error is is way easier." I could not disagree more. In TypeScript, sure, but debugging in JavaScript can be incredibly frustrating compared to compiled languages or even Python using type annotations and a capable linter.

    • @perseo10000
      @perseo10000 2 роки тому +39

      yeah i remember beign like two hours debugging a js code, and the error was like 50 lines above where the console said, and was a variable named incorrectly. I shutdown the computer after that lol.

    • @linus.
      @linus. 2 роки тому +21

      Thank you very much for that comment I could not agree more. Other language compilers are much more integrated them the one of JS. The line by line execution argument is also incorrect as you can set Break points in also languages a lot more precise then in js.

    • @AnnCatsanndra
      @AnnCatsanndra 2 роки тому +8

      Sorta depends. It's easier to make invisible mistakes in JS that can that months to be caught. But troubleshooting mishandling of memory in C can feel like blind guessing when it compiles fine and the errors at runtime is just like "lol garbage data somewhere, heck if we know where."
      So you have a system trying desperately to assume what was meant unintentionally hiding mistakes vs a system that does exactly what it was told and is just as confused as the writer that something is wrong.

    • @Chr0n0s38
      @Chr0n0s38 2 роки тому +8

      @@AnnCatsanndra That's why tools like valgrind exist. They're quite good at telling you what line of code triggers it, so then you can just step backwards.

    • @anon_y_mousse
      @anon_y_mousse 2 роки тому +9

      @@AnnCatsanndra I maintain that it's mostly bad programmers that make those mistakes in C as not a lot of new developers come to it anymore. And there are a lot of tools for tracking down memory leaks if you really need it.

  • @nerdy_crawfish
    @nerdy_crawfish 2 роки тому +117

    4:30 From a former QA tester: Javascript is only easier to debug if you are using Typescript or a good framework. Vanilla Javascript is one of the worst languages to debug because it can cast data from one type to another without you noticing if you aren't careful and different web browsers will sometimes treat the same Javascript code differently. These can cause bugs in the business logic that can go unnoticed until after the code is in production. Javascript can be awesome IF you have proper tooling around it but the core language itself isn't really that good.

    • @wallyhackenslacker
      @wallyhackenslacker 2 роки тому +11

      Gotta love how Javascript's equality comparison is not commutative for elements of different data types. Fun times!

    • @mawnkey
      @mawnkey 2 роки тому +17

      @@wallyhackenslacker I came from Python and C# to JavaScript. The first time I punched in == and didn't get a proper comparison like every other sane modern language on the planet I noped out on being a webdev. The more my JS obsessed webdev buddy showed me about the language, the further I ran screaming from it.
      Only language I hate more is PHP.
      Web development really has the absolute worst tools.

    • @d10valentin
      @d10valentin 2 роки тому +13

      @@mawnkey hey! PHP is quite a respectable language! ... compared to js...

    • @harleyspeedthrust4013
      @harleyspeedthrust4013 2 роки тому +6

      agreed. javascript is an abomination and brendan eich should be absolutely ashamed of himself. on the other hand, typescript is a fantastic language with a rich and powerful type system. the type system alone can be used to write programs although i don't know why you would do that in production code. the only thing that bugs me about typescript is the maintainers' refusal to add any form of runtime type information. this is the one thing that keeps typescript from being all that it could be - imagine having runtime typechecking, you could receive some object from an api and with one simple operation you would know if that object would crash your code. i've worked extensively with the typescript compiler and typechecker and i think it could be done pretty easily. i haven't had the time to attempt it but it's next up in my project queue so i'll try it soon

    • @sonicbhoc
      @sonicbhoc 2 роки тому

      @@mawnkey Look into the SAFE stack. F# code that is cross-compiled to JS. So far, I'm really loving it.

  • @ahsookee
    @ahsookee 2 роки тому +188

    There is Tauri, which is similar to Electron but written in Rust for Rust developement. It's significantly faster and smaller from what I know

    • @miguelguthridge
      @miguelguthridge 2 роки тому +18

      As far as I'm aware it's a very new project though, so I wouldn't expect many apps to use it for the time being, although it will hopefully be super awesome in the future.

    • @swordz2330
      @swordz2330 2 роки тому +17

      @@miguelguthridge it just got the full 1.0 release so its pretty much safe to use now

    • @knowledgenews5343
      @knowledgenews5343 2 роки тому +23

      Tauri relies on system webview, so soon you will encounter some web compatibility issues.
      They will be much harder to solve in Tauri because you have to support some ancient webview versions from outdated systems.

    • @swordz2330
      @swordz2330 2 роки тому +14

      @@knowledgenews5343 yeah it'll be interesting to see how that goes and if that will be the dealbreaker. Im really hoping for tauri to be good tho since Im tired with the problems of electron

    • @MaryamMaqdisi
      @MaryamMaqdisi 2 роки тому +3

      Very excited for Tauri to take off. I hate Electron, it's just too slow and inefficient.

  • @ProvAlex
    @ProvAlex 2 роки тому +305

    I agree it is better to have apps than not have them. I just don't want Chromium on my computer. I wish there was a Firefox, WebKit, or Servo based solution for developers to make cross platform apps.

    • @TheLinuxEXP
      @TheLinuxEXP  2 роки тому +83

      Agreed

    • @oro6768
      @oro6768 2 роки тому +56

      Firefox used to have PWA support, but got the feature removed recently. Now, Chromium holds pretty much a monopoly in PWAs.

    • @talkysassis
      @talkysassis 2 роки тому +11

      @@oro6768 For firefox is just bad. But for webkit I can understand the reason. Apple don't want to lose their monopoly on the app store
      Imagine shipping your app as pwa on iOS just to dodge app store

    • @epicpasta8100
      @epicpasta8100 2 роки тому +43

      There's tauri

    • @w01dnick
      @w01dnick 2 роки тому +11

      Even better, it should be some kind of webpack - bundle of HTML/CSS/JS with resources which could be run by own browser - Chrome or Firefox or some other. In such case at least sone concerns would be eliminated.

  • @angelobarato5585
    @angelobarato5585 2 роки тому +185

    Another alternative is also Godot, yes, the game engine. Some devs are creating desktop apps using it.

    • @TheLinuxEXP
      @TheLinuxEXP  2 роки тому +64

      Damn I didn't know that!

    • @talkysassis
      @talkysassis 2 роки тому +12

      It ships by using the only sane way to make linux apps
      You give me the app and the libs (the same way as windows)
      This way I'm safe from my repo killing my program for cutting packages

    • @conradfalloff991
      @conradfalloff991 2 роки тому +30

      My two complaints with Godot are:
      -You can’t easily strip features. If you’re making a text editor, it want to save space by removing 3d aspects of Godot, you have to build your own version of Godot, which not everybody wants to do.
      -Godot’s clipboard support only covers raw text. Formatted text, image data, or anything else is not supported (my best guess as to why is because that’s all that vanilla Android can normally handle)
      Other than that, I love it! Exports to basically everything, has a visual designer, can use GDscript (basically Python) or C#, I love it

    • @wallyhackenslacker
      @wallyhackenslacker 2 роки тому +28

      The Godot IDE itself is written with Godot's own UI toolkit using Godot's own frameworks IIRC.

    • @nachnamevorname9801
      @nachnamevorname9801 2 роки тому +26

      @@wallyhackenslacker * insert hand drawing itself drawing itself image here *

  • @krtirtho
    @krtirtho 2 роки тому +117

    Just not Chrome. It ships the same JS engine V8 twice. One used inside Chrome & other one used inside Node
    Have you encountered extreme foolishness for minor simplicity? Well. If you had it was definitely Electron

    • @TheLinuxEXP
      @TheLinuxEXP  2 роки тому +22

      Ah yeah, I had forgotten about that!

    • @krtirtho
      @krtirtho 2 роки тому +6

      No problem dude.
      Imo, Flutter actually has great potential. Is lightweight and resource efficient and looks beautiful in every platform
      Different platforms has different APIs for refining UI and logic. But has a pretty similar API for painting or rendering graphics on the screen
      Employees at google took advantage of it and Google created a graphics rendering engine named *Skia* which uses platform specific rendering engines e.g OpenGL in Linux, DirectX in Windows, HTML canvas in web etc & creates an abstraction layer that can be used anywhere. Then using the Dart programming language flutter created an UI component layer & an event handling layer on top of it & that's why flutter is performent & developer friendly at the same time. Where other cross platform UI frameworks tend to use bindings to native UI Components directly which makes it hard to work with & they break really easily on slight dependency version change
      Here's a flutter app github.com/KRTirtho/spotube that I created which is a Spotify Client. Just compare their performance & size difference
      Btw, if possible use the nightly version. It has most features & more optimized & is about to be released
      Also there's tons of other Flutter apps that are really good & also open source. Just bing "awesome-flutter" (ok don't bing, maybe duckduckgo XD)

    • @quazar-omega
      @quazar-omega 2 роки тому +6

      @@krtirtho I've been developing a Flutter app and in my experience there were several things that aren't really great yet, the UI part of things I really dig, but the things that are platform specific have been a pain to work with for me, for example, it might be my limted knowledge, but I didn't find any library to access common user directories (Desktop, Pictures, Music, ...).
      I think it has a big potential, but in terms of platform APIs it isn't there just yet

    • @wallyhackenslacker
      @wallyhackenslacker 2 роки тому +5

      I think there is a blog post from an ex-Chrome developer mentioning how Electron is the most ridiculous case of software obesity because it contains a user-land driver for XBox 360 gamepads despite no developer ever needing such a thing, just because base Chrome has such a driver and Electron didn't remove it. The driver was in fact coded by the author of the post IIRC.

    • @krtirtho
      @krtirtho 2 роки тому +7

      @@quazar-omega Well, in desktop you've access to entire filesystem so you can do operations on Directories by just providing their paths. But in the case of Android you'll need permissions. In the case of Android you'll need externalStorage permission. In iOS there's no way to access user directories except document/appdata directory since Apple doesn't give any permission to access user directories at all
      About platform APIs, it depends on what want to achieve. Yeah, the plugin community is relatively small but its growing gradually. Android, iOS, Mac & Web is fine, you can create plugins for them pretty easily if you know Kotlin, Obj-C/Swift & JavaScript which are relatively easy to learn & work with. But the elephant in the room is Windows & Linux's C++ MethodChannels. C++ simply sucks. Yeah its performant & has great lib support but this is not what a developer uses typically. I really hope the Flutter team will add support for an alternative language e.g Rust/Zig/Go for writing Windows & Linux platform specific code

  • @Bettehem
    @Bettehem 2 роки тому +51

    I'm a developer and I avoid electron whenever possible. Just making a website and packaging it with a browser doesn't make it a good solution, but a lazy one.

    • @fgsaramago
      @fgsaramago 2 роки тому +12

      Props to you. Especially on older laptop you can really notice how heavy electron apps are on the system

    • @gogudelagaze1585
      @gogudelagaze1585 2 роки тому +2

      And you distribute your apps for Windows, MacOS and Linux, right?

    • @juanignacioaschura9437
      @juanignacioaschura9437 2 роки тому +11

      @@gogudelagaze1585 It's not lazier to develop and distribute an app to a single OS. OP's point still stands, git gud or get out.

    • @bltzcstrnx
      @bltzcstrnx 2 роки тому +2

      @@juanignacioaschura9437 if git gud or get out really stands, we wouldn't have this conversation by now. I know you like to be idealistic and such, and I don't like raining on your parade. The reality is most professional IT are done on good enough basis, and Electron is just that, simple and good enough framework that runs on almost any OS.

    • @juanignacioaschura9437
      @juanignacioaschura9437 2 роки тому +10

      @@bltzcstrnx With performance issues that cripple low-end PCs? No, thank you. It's lazy. If being able to ship an application to low-end and high-end hardware alike, a BASIC requirement for all software products for daily use and non-productive focus, is "being idealistic", then so be it.
      Just because the First World is spoiled with multi-core chips and lots of RAM, doesn't mean the rest of the globe is on the same boat. Develop for the masses, not for the classes.

  • @theodoros_1234
    @theodoros_1234 2 роки тому +57

    Devs don't have to resort to Electron to make cross-platform apps! GTK and Qt are also cross platform (GIMP and OBS are two examples of apps that meet this criteria). As a dev and KDE user, I've used Qt for my apps a few times, and it seems to work just as well on Windows as it does on Linux. It even picks up the native theme of each OS, but it also lets the dev choose a custom theme for their app (just like OBS does, actually it lets you switch between different themes or the default OS theme).

    • @hanro50
      @hanro50 2 роки тому +15

      Issue with QT and GTK is the complexity of getting it going. Sure it is fine if you're using QT Creator as your IDE of choice, but still it takes time to get working.
      With electron you can hit the ground running quickly and the chromium Dev tools allow you to make GUI tweaks on the fly and immediately get feedback.

    • @gbfgtki
      @gbfgtki 2 роки тому +17

      Another issue with Qt is the licensing. While Electron is under the MIT license and can be freely redistributed in proprietary apps, many Qt components are under the GPL, which requires any app using them to be under GPL as well, including making its source code available, or to buy an expensive license from the Qt company. Don't think I can put links here, so search for "qt features" for more information

    • @cromefire_
      @cromefire_ 2 роки тому +3

      And both are sadly a royal pain, if you don't want to use C/C++

    • @shroomer3867
      @shroomer3867 2 роки тому +3

      @@hanro50 Qt is easy enough if you know CMake. If not then yes it's a pain to learn but pretty useful. It allows integration of C++ and C libraries which can be really good.

    • @battlebuddy4517
      @battlebuddy4517 2 роки тому +1

      Who in the hell designed the qt creator interface

  • @veikkaheikkila7568
    @veikkaheikkila7568 2 роки тому +58

    As a developer, yes. I love it.
    As a Linux user, yes. I hate it.
    It just screws up my full dark themed consistent desktop.

    • @TheLinuxEXP
      @TheLinuxEXP  2 роки тому +16

      Yeah, the inconsistency is super frustrating

    • @VictorMartins239
      @VictorMartins239 2 роки тому +7

      I am a developer and hate it, it's just bloatware.
      I prefer using Tauri

    • @vaisakh_km
      @vaisakh_km 2 роки тому +3

      @@VictorMartins239 as a developer who uses less 'c' nowadays, i love electron and make side project on it,while thrashing microsoft for making teams in electron while screen sharing

    • @VictorMartins239
      @VictorMartins239 2 роки тому +1

      @@vaisakh_km I just can't like electron because of chromium. Have you tried Tauri?

    • @rkvkydqf
      @rkvkydqf 2 роки тому +4

      I used to love web design until I discovered how terrible it is compared to native UI toolkits. The truth is that the web was built for fancy text pages, not full apps, which leads to the tools being less than ideal. GTK, Qt, and Android/iOS UI toolkit are much more productive to work with after you learn the basics. If you like it this way, it's fine, but just give QML or Rust+Gtk4 a try.

  • @BoloH.
    @BoloH. 2 роки тому +1

    Electron was the low-grade bread I used to serve business logic patties to people who didn't know how to use a fork or didn't want to get their hands dirty.

  • @rkvkydqf
    @rkvkydqf 2 роки тому +49

    To regular Linux users out there: Electron isn't the only cross-platform UI toolkit. GTK, Qt with QML, Flutter, Tauri, can do the same and more in a more secure, efficient, and convenient way.
    To Electron developers: Don't fear native development! I used to think everything outside the modern web stack was too complicated, outdated, and unusable. I've learned Go and then Rust, and saw how JS and Python encouraged bad practices. I saw how CSS was just needlessly weird. If you prefer using TS+Electron for your app, it's fine. Just don't be afraid to learn new things.

    • @jan-lukas
      @jan-lukas 2 роки тому

      THIS
      It might be really difficult to properly learn languages like C++, but when you're done with it, you have learned something you wouldn't have in python or so. I don't think actually implementing stuff in C++ should be done anymore, developing can be done in python or so, but I strongly encourage everyone to learn more than just the "easiest" languages, to get to know many design patterns you just wouldn't know otherwise.
      I myself started with Java, and when I started learning C++ I had so many "aha, that's how computers work" moments that I can't even tell you half of them, and I want to learn about functional programming & haskell soon

    • @KillFrenzy96
      @KillFrenzy96 2 роки тому +5

      I never really liked Python or JavaScript. Not having explicit types makes my code much less predictable and destroys the ability for an IDE to provide robust autocomplete.

    • @bogdahn689
      @bogdahn689 2 роки тому +6

      @@KillFrenzy96 there is typescript for that. It's a pain in this as to code in js...

    • @NoorquackerInd
      @NoorquackerInd 2 роки тому +7

      The entire modern web stack is way too complicated and unusable lmao
      People really see 1.5gb node_modules and go "ah yes, cutting-edge"

    • @gogudelagaze1585
      @gogudelagaze1585 2 роки тому +1

      GTK looks like utter garbage on KDE, Windows and MacOS. Qt looks like garbage on GNOME and Windows. Flutter/Tauri are strictly better than Electron, but have the same issue of relying on a browser. There's no good crossplatform UI.

  • @wallyhackenslacker
    @wallyhackenslacker 2 роки тому +18

    So basically it is fulfilling the promise of Java back in the 90's, that of letting companies -develop on the cheap by having one team developing for all platforms at the same time- write once, run everywhere. And it still feels as out of place on any desktop as most Java applications.
    If anything the one reason I really dislike Electron is because it encourages a que será será attitude towards memory and execution time optimization.

    • @anon2036
      @anon2036 2 роки тому +5

      write once, debug everywhere.

    • @theosalmon
      @theosalmon 3 місяці тому

      Not fulfilling it. Promising it anew, but with an even bulkier install. I'm not saying I wouldn't use it, but I've written many java desktop applications, and I find it a far more mature and workable solution.
      To each their own though.

  • @judedashiell5390
    @judedashiell5390 2 роки тому +9

    Electron has serious screen reader accessibility prblems. Microsoft didn't start to clean up skypeforlinux until its second release using electron. Like javascript it's easy to write non-compliant code.

  • @thingsiplay
    @thingsiplay 2 роки тому +10

    The electron is a subatomic particle whose electric charge is negative one elementary charge.

  • @nosotrosloslobosestamosreg4115
    @nosotrosloslobosestamosreg4115 2 роки тому +7

    I'm on Linux just one year, never into informatics, but somehow Linux made me got this new interest.... Channels like this one shows me how dense and multilayered is the infrastructure our lifestyle relies on.

  • @knoopx
    @knoopx 2 роки тому +29

    electron needs to be shipped as a runtime and apps as packages, not full blown copies of chromium. that would solve many complaints against it.

    • @AwesomeOrange1000
      @AwesomeOrange1000 2 роки тому

      This!! Electron is a perfect candidate to become a runtime. It's only when an app uses custom builds of chromium or node that some duplication would occur, but I'd guess that the vast majority of apps don't do so.

    • @Servidor_Publico_do_Ancapistao
      @Servidor_Publico_do_Ancapistao 2 роки тому +1

      Java 2.0?

    • @leduyquang753
      @leduyquang753 2 роки тому

      The reality is going in the reverse direction, unfortunately. Oracle is no longer shipping Java runtimes after version 8, instead they tell people to pack the runtime along with their app.

    • @AwesomeOrange1000
      @AwesomeOrange1000 2 роки тому

      I feel like it'd be fine if Electron was bootstrapped by the installer as an included dependency. Like how many windows programs used to bundle .NET Framework 4 before windows started providing it. And also how old games used to include DirectX versions that they depend on in the installation. Technically it's a bit different from a runtime like Java but close enough. Even now multiple apps include redistributables as part of the install process and if it's already installed then no duplication occurs. I think the main reason why Java couldn't be included in the install process and had to be downloaded separately by the user was because of licensing issues, but I'm not sure so don't quote me on that. Electron as it's own redistributable package dependency thing would be perfect. But it'd need to be standardized by the electron maintainers and electron users.

  • @etaashmathamsetty7399
    @etaashmathamsetty7399 2 роки тому +12

    4:52
    it is way more difficult to figure out where javascript messes up, this was actually what caused a kde bug with the floating panel refactoring.
    JS basically just runs your code (without checking if it's syntax is ok!!!!) and just keeps running it until it crashes and burns, returning some cryptic errors for a simple syntax error like a missing semi-colon or curly brace. (or even reading from a variable you never created (which was what caused the kde bug), yep before you ask JS is that stupid)
    the creators of other scripting languages actually had a brain and implemented a system where it checks for basic errors BEFORE running the script.
    this is why most people prefer typescript now days instead of js, the creator of typescript actually had a brain and made a pretty decent language

    • @circuit10
      @circuit10 2 роки тому +1

      This is mostly wrong, of course JS checks your syntax. It just doesn't require semicolons, which is quite common in programming languages (Python, Kotlin etc). Curly braces in JS behave the same as in other languages. Here is the error Firefox gives for a missing curly brace (at parse time, not runtime):
      "Uncaught SyntaxError: missing } in compound statement (debugger eval code:6:2)
      note: { opened at line 1, column 7"
      That's not cryptic at all and even tells you exactly where you opened it.
      Can you link me to this bug? It won't just randomly read a variable that doesn't exist, unless you're using the old var syntax rather than let which does act a bit strangely and lets you read variables before they're declared.
      I'm not saying JS is perfect, but this is just not true

    • @etaashmathamsetty7399
      @etaashmathamsetty7399 2 роки тому

      @@circuit10 you can check Nicolo ve's channel its one of the more recent videos
      And Firefox has a good js linter and whatnot, vanilla js's error checking is just really bad and I hate js for that typescript is what you should be using, because JavaScript doesn't even care if a variable is undefined it just doesn't say anything and dies

    • @circuit10
      @circuit10 2 роки тому +1

      @@etaashmathamsetty7399 Oh, you mean JS returning undefined when a property doesn’t exist? True, that is annoying. I’m pretty sure the JS syntax checking is part of the language specification and should be consistent across browsers, though.

    • @etaashmathamsetty7399
      @etaashmathamsetty7399 2 роки тому

      @@circuit10 good to know I usually just avoid JS these days so yeah

    • @ajitmali3821
      @ajitmali3821 9 місяців тому

      whotever you say I like JS😁
      You just need more exp for JS

  • @notarandom7
    @notarandom7 2 роки тому +40

    I personally use Tauri. An Alternative to Electron that uses Webview instead of Chromium which makes it alot smaller and faster. It also uses Rust for the Backend giving it even more peformance!

    • @akza0729
      @akza0729 2 роки тому +3

      Ya. Webview's JS is not really performant enough like V8 is. So Probably most won't bother switching.

    • @notarandom7
      @notarandom7 2 роки тому

      @@akza0729 actually it is. Webview uses Chromium which is using V8 aswell ofc giving it the same if not more peformance because of how lightweight it is

    • @akza0729
      @akza0729 2 роки тому +10

      @@notarandom7 Um. Nope.
      Android Webview is Chromium.
      Linux users Webkit Gtk or QtWebview both off which are fork of Apple's Webkit.
      Mac uses Webkit same as Safari.
      Windows should be using Edge and new Edge is basically a Chromium.
      Edit: Remember. Tauri uses the OS's native Webview. It's doesn't ship a Chromium or browser parts.

    • @notarandom7
      @notarandom7 2 роки тому +6

      @@akza0729 webkit is faster than V8. You can see that with the recently released js runtime called bun which can be 30x faster than Node and Deno

    • @jan-lukas
      @jan-lukas 2 роки тому +4

      How about: link an actual benchmark?

  • @TuxPeng
    @TuxPeng 2 роки тому +24

    3:13 QT compiles nicely and the GUI in really close to native on Mac and Win. GTK took a bit longer to get there, but is pretty good with cross platform too

    • @ioneocla6577
      @ioneocla6577 2 роки тому

      Gtk looks pretty horrible on other platforms then linux. And the whole point of electron is is to reuse their web skills for desktop apps. Considering that qt is c++ only and gtk is junky in languages other then C C++ python or rust
      Don't get me wrong, i really don't like electron too but qt and gtk doesn't seem like a good alternative

    • @TuxPeng
      @TuxPeng 2 роки тому +2

      @@ioneocla6577 or some things electron does work but I generally don't like it either. Gtk actually looks okay on Windows and not too bad on Mac, I think QT is generally a good compromise. I haven't use them, but there are Go & Rust bindings for QT

    • @rkvkydqf
      @rkvkydqf 2 роки тому +4

      @@ioneocla6577 Qt has different bindings for different languages. It also has QML, which feels like Flutter with JS without the awful developer experience of CSS.

    • @ioneocla6577
      @ioneocla6577 2 роки тому

      @@rkvkydqf Can you name some well maintained qt binding please ? Appart from pyQT maybe

    • @bestledisthe
      @bestledisthe 2 роки тому +1

      @@ioneocla6577 ritual for Rust

  • @hindigente
    @hindigente 2 роки тому +16

    Despite personally leaning more towards the user side of the argument, I like your nuanced stance on this sort of things.

  • @PixelTrik
    @PixelTrik 2 роки тому +13

    The best way IMO to build Linux apps is to design your applications with loose coupling to begin with. From what I've heard about Adobe suite is that their software is tightly coupled with windows and Mac and will require significant work to port to Linux. Eric S Raymond has specified some of the best engineering practices followed on Linux in the book 'The Art of Unix Programming' which includes cross platform applications like GIMP and how they are designed.

    • @dealloc
      @dealloc 2 роки тому +4

      Unfortunately it's not as clear cut as it may seem. Tight integrations allows software to use the system's features for optimization reasons. Abstractions can add overhead and incompatibility issues (i.e. one system may not support the feature of another).
      Linux is especially difficult due to the distros having a different combinations of compositors, desktop environments, drivers, and more each with different levels of features and compatibility. Supporting that while providing high performance is not easy; in some cases impossible which results in inconsistencies.

    • @PixelTrik
      @PixelTrik 2 роки тому +2

      @@dealloc Since I develop games for Windows and Linux in my day job, I got stuff to unpack based on experience. If you're planning abstractions right, the cost will be low, especially with languages like C++ and Rust. That's what senior software engineers are payed for, they work on software to keep them maintainable and performant.
      From my experience of developing GUI softwares, desktop environments and compositors don't dictate the front end at all. It's the widget set that dictates aesthetic and application programmers don't interact with window managers or compositors. As about drivers, unless you customize your Linux kernel, they're standard across all distributions. The fragmentation isn't as bad as you're saying especially the parameters you've provided.

    • @dealloc
      @dealloc 2 роки тому

      @@PixelTrik Photoshop and other Adobe applications are doing much more than just rendering a GUI.

    • @PixelTrik
      @PixelTrik 2 роки тому +1

      @@dealloc Not sure how that defends your point.

    • @uis246
      @uis246 Рік тому

      ​@@dealloc least thing application programmer should care are drivers. What's next? Caring about GPU vendor?

  • @jgcodes2020
    @jgcodes2020 2 роки тому +2

    Qt is _designed_ to be cross-platform. While it still has the classic "write once, debug everywhere" problem, it's certainly lighter than an entire freaking Chrome instance.

  • @Dichill
    @Dichill 2 роки тому +4

    There is also QT & QML where they allow html and js in their own engine. QT & QML is also used a lot in IOT devices.

  • @daereanlegrand2471
    @daereanlegrand2471 2 роки тому +16

    As a electron dev I hate electron so much is easy to use but is the literal bloat hell.

    • @Rami-bi9xj
      @Rami-bi9xj 3 місяці тому

      any docs or books would you recommend for electron?

  • @nintendowiids12
    @nintendowiids12 2 роки тому +12

    Quite frustrating to see Discord, a very big and rich company slacking off at updating the Linux Discord app where its fixes are already upstream, so they don' t even have to bother doing much work!

    • @TheLinuxEXP
      @TheLinuxEXP  2 роки тому +4

      Yeah, it's really annoying. Porting their patches to electron to a new version would take them a few weeks at most

    • @DeeezNuts
      @DeeezNuts 2 роки тому

      @@TheLinuxEXP they can go open source and get free labor

    • @TheExileFox
      @TheExileFox 2 роки тому +1

      @@TheLinuxEXP The worst part is when your package manager lags behind. Discord will then lock you out until you obtain the new version. There is no option to skip an update so you just have to wait for it or pull from somewhere else (i.e. Manjaro could pull from AUR) - Alternatively you could run discord inside your browser and never get locked out.

  • @devin-little
    @devin-little 2 роки тому +10

    let's be honest, Linux is like 10x better than MAC OS AT GAMING. Years ago Linux couldnt even play a simple game now we can play AAA games. I'm happy

    • @TheLinuxEXP
      @TheLinuxEXP  2 роки тому +3

      Oh yeah. Linux isn't far from Windows nowadays for gaming

    • @talkysassis
      @talkysassis 2 роки тому +1

      @@TheLinuxEXP But we still have some problems.
      We can't use OpenCL outside proprietary drivers (mesa team is working on that) and AMD only ships their drivers to RHEL and Ubuntu
      Maybe SteamOS (when published) will create a real case to AMD publish the amdgpu-pro driver for all systems

    • @cacodemon345
      @cacodemon345 2 роки тому

      @@talkysassis AMDGPU-PRO is meant for workstations not gaming devices. Don't expect it to be published for all systems.

    • @talkysassis
      @talkysassis 2 роки тому

      @@cacodemon345 But what of I want to use my pc as workstation AND gaming?
      I want to make some 3d models on blender and use my gpu to render but still want to play my games

    • @cacodemon345
      @cacodemon345 2 роки тому

      @@talkysassis Honestly workstation machines do double as gaming as well but machines meant for gaming but not for workstation honestly are a poor choice to target professional drivers at.

  • @narutrixil
    @narutrixil 2 роки тому +24

    As a user and a developer I don't like electron, its too slow and bloated (Also makes XSS possible for desktop apps).
    2:56, Are electron apps native to all systems? They still run on the V8 engine, or do they compile ahead of time?
    3:10 Gtk and QT are cross platform, you can use them in windows and mac.
    Its obvious why developers gravitate to electron, the web is the most popular platform to deliver apps, so focusing you effort on your web app and using minimal code to deliver a "desktop" version is efficient for developers.
    From my experience most electron apps are just clients for a remote service (discord, slack, etc...), and most of them can live inside the sandbox of the browser. For these apps I just prefer PWAs (or even just a bookmark), since at least I won't have to run multiple instances of V8.

    • @talkysassis
      @talkysassis 2 роки тому

      The problem is that some apps have exclusive features to the desktop version

    • @narutrixil
      @narutrixil 2 роки тому

      Also, if you run web apps in your browser you can use extensions to block trackers or force dark mode.

    • @narutrixil
      @narutrixil 2 роки тому

      @@talkysassis Which apps? Web first apps I use on the daily run perfectly on my browser (even stuff like Zoom).

    • @talkysassis
      @talkysassis 2 роки тому

      @@narutrixil Teams have some features that came months earlier on desktop

    • @narutrixil
      @narutrixil 2 роки тому

      @@talkysassis Oh, that sucks :\

  • @justanaveragebalkan
    @justanaveragebalkan 2 роки тому +1

    Love it or hate it, it's the best we get for cross platform desktop applications on Linux. Lets be fair, before electron the Linux desktop experience was not an actual experience.

  • @mattfromeurope
    @mattfromeurope 2 роки тому +11

    Electron could have gone the Java route by adding some sort of "virtual machine" that's native to the system and build apps from there (installing the VM when it's not yet installed). But instead, they're adding the whole Chromium engine to the app EVERY SINGLE TIME!. That's real bloat!

    • @Tn5421Me
      @Tn5421Me 2 роки тому +2

      Because using system electron is too hard

  • @ruckboger
    @ruckboger 2 роки тому +2

    Developers love it because tools we use are based on Electron, like VSCode and Obsidian.

    • @Rami-bi9xj
      @Rami-bi9xj 3 місяці тому +1

      oh Obsidian use Electron ? did not know that , thats cool

  • @Philipp..
    @Philipp.. 2 роки тому +7

    I hope one day there will be an universal electron web view in every OS so the individual electron apps don't have to ship the whole browser

    • @imhemish
      @imhemish 2 роки тому +6

      it already exists in linux, just the companies wont do that, if you just install packages like electron, electron13, electron16, all the electron apps can run in same chromium windows. The company does not do that but community does, example arch user repo has discord_arch_electron which uses system electron packages, but there is catch in that too, discord would use electron 13, but other electron apps need electron 16 and some even 17, so in that case too, you would be running three electron separate electron instances

    • @knoopx
      @knoopx 2 роки тому

      @@imhemish to be honest there's a lot of room for improvement to be used as a runtime... that's probably why is not widely used.

  • @markaven5249
    @markaven5249 6 місяців тому +1

    So, you could use an OSes native webview right instead? I like using html, css and javascript to make apps too, it's really convinient, but then to deploy an app with this you could use the built in webview on Windows etc... right? Am I wrong about this? Make a C++ .dll for handling files and displaying the webview, it's not that difficult.

  • @hanzofuma
    @hanzofuma 2 роки тому +30

    I respect the Electron framework. Thanks to him we got a huge number of apps that we never thought it will be available on Linux. it's true that it has performance issues and all that but there is new frameworks like Tauri that hopefully can replace Electron one day. As a developer i understand why devs choose Web tech instead of native GUI toolkits cuz it's way easier thanks espacially to CSS that gives the dev the power to make awesome UI/Animations with less effort compared to Qt, GTK, Winui, ...

  • @Lampe2020
    @Lampe2020 2 роки тому +2

    Is there a Firefox-based Electron alternative?

  • @BenjaminWagener
    @BenjaminWagener 2 роки тому +5

    Microsoft is working on minimizing that problem integrating WebView2 not only in Windows 11, but also in Windows 10 in 22H2. So all the Webapps could share a central, always asap updated instance of Chromium (Edge Version) instead of running each their own, like they also do on Android and in iOS (WebKit). What would mean a way less usage of space in RAM and on Disk/SSD. MacOS has something similar build in based on WebKit. Linux distributions should have no problem to deliver such an option as well. Hopefully the developers will adapt to this very soon.

    • @ioneocla6577
      @ioneocla6577 2 роки тому

      It already exists with webkit-gtk on gnome/gtk based desktops and gt-webengine on kde/qt based desktops

    • @BenjaminWagener
      @BenjaminWagener 2 роки тому

      @@ioneocla6577 Don't know if they work equally well, but cool if so.

  • @mycollegeshirt
    @mycollegeshirt 2 роки тому

    yeah, I've had the distinct displeasure of programming in ajax. Where something is broken in you're app but since javascript is interpreted it doesn't know that part of the code is broken unless you use that part of the app. Which meant essentially any time you made a change you made a system-level change that affected every part, of the application you had to manually go to each part, the more complicated a javascript application gets to see a bug, the more you hate javascript. An experience like that makes you hate not just javascript, but interpreted languages, in general. It's why they invented typescript.

  • @kote315
    @kote315 2 роки тому +4

    Funny. Electron and Proton don't work well on Atom :)
    As far as I understand, Electron is used mainly for proprietary software. In the free software world, it's considered good practice to develop software as little platform-specific as possible from the start. But even if the program is originally made only for Linux, thanks to the open source, someone will be able to port it to Windows if he needs it. A good example is the x11 screensaver. Its developer doesn't make builds for Windows (he hates Microsoft for personal reasons), but the Windows port still exists without any electrons.

    • @gogudelagaze1585
      @gogudelagaze1585 2 роки тому

      And the plethora of lesser known apps? I'm sure that they also get plenty of developers just begging to go through the joys of writing a native looking GUI for their platform. And then when the bug reports come in, having to figure out in which project the problem actually lies. It's great fun, let me tell you.

  • @rougenaxela
    @rougenaxela 2 роки тому +5

    What I'd like to see happen, is for Electron to shift to a model where there only needs to be a single instance of the Electron runtime on a computer, and it's updated on it's own independent of the applications built with the runtime.

    • @uis246
      @uis246 Рік тому

      But that would mean developers should do what shitty developers can't: remember about package manager.

  • @mytho2630
    @mytho2630 2 роки тому +8

    I use Electron for various projects, thought I'd share a few thoughts.
    Memory usage is one of the low points of Electron. However, you can reduce it by writing memory efficient code and not creating additional processes. Electron has 1 main process and any number of renderer processes. As you increase renderer processes the usage goes up drastically. I'd assume that each process is something akin to a browser window in chrome. The less of them the better! I have all of my code in 1 process and use less than 200mb.
    The other way to reduce it is to avoid carelessly installing npm modules. I've seen projects with far too many third party dependencies. If what you want is simple its far better to build it yourself. Many modules have their own dependencies and this results in each module using its own instance of another dependency. This is more of a module/npm problem but it bleeds into electron as well. You really don't want 4 versions of jquery running at the same time...
    One extra method is to package your app properly. I made the mistake of not doing so because I thought it was solely to protect your source code (I was creating an open source app). While that is a goal of ASAR packaging the real benefit is it can cut load times down a ton. My app loads in abt 2 seconds now.
    Electron is easy to work with but its also easy to build poorly designed apps. However, if you put the time into it you can likely meet the constraints of your project.

  • @aresthedevil
    @aresthedevil 5 місяців тому

    Isn't it possible to recognize within the electron app to recognize if it's running on windows/mac/Linux and passed on that recognition change which css (look/style) to use?

  • @feralmeow
    @feralmeow 2 роки тому +4

    Someone said electron is like Flash on desktop environment.

  • @sharifm-is-here
    @sharifm-is-here 2 роки тому +1

    7:45 "we already have ___ for that" what's that word? Couldn't catch it.

  • @illya3859
    @illya3859 2 роки тому +8

    It's frustrating when devs don't want to ship applications as PWAs when apps like Discord would run perfectly with it.

    • @knoopx
      @knoopx 2 роки тому +2

      PWAs support on desktop is lame, you are limited to blink-based browsers and the integration is not great

    • @specy_
      @specy_ 2 роки тому +1

      I made many pwa, they just don't work that well yet, Firefox and Safari have dogshit implementation of pwa APIs, especially safari for obvious reasons (mehem, AppStore revenue). And even then, pwa lack the most important thing *access to the file system* the ability to write/read files is such an huge thing which is lacking in the pwa world, the best thing you can do is use indexeddb to save things, but then your user data relies on the browser wanting to clear your website data out of nowhere. And you still don't have access to file system

    • @knoopx
      @knoopx 2 роки тому

      @@specy_ fyi, blink implements filesystem api but it sucks (there's no seeking or partial read/write)

    • @specy_
      @specy_ 2 роки тому +1

      @@knoopx yes I know of it, but it's VERY limited and VERY annoying to use, both for UX and developer experience, you get a huge popup saying that the website wants to access X folder everutime u open it, if they removed the warning for PWA then it would be nice

  • @vicaf1617
    @vicaf1617 2 роки тому

    People hate it because there is literally no reason to render an entire web engine to make a multiplatform application when we already have tools that make multiplatform applications in a more efficient, safe way like java or c#.
    Devs use it because JS developers are everywhere (around 60% of developers use JS if I remember correctly) and most are too lazy to learn new, better tools.

  • @ProjSHiNKiROU
    @ProjSHiNKiROU 2 роки тому +3

    For resource efficiency, I want to see an Electron shared dependency so Electron is installed once if you have VS Code and Discord installed. To completely quell the complaint of memory usage, share Electron rendering/scripting processes between VS Code and Discord but that’s a security and stability horror story.

    • @uis246
      @uis246 Рік тому

      But that would mean developers should do what shitty developers fear to do: remember about user and package manager

  • @patrickhubler4650
    @patrickhubler4650 2 роки тому

    With the "Segway to our sponsor" you should call yourself the Linus experiment

  • @MarkDuncan1
    @MarkDuncan1 2 роки тому +3

    It's a real shame that Firefox abandoned PWAs and that it isn't promoted more in browsers that do support it. The vast majority of Electron apps would be perfectly fine as a PWA.

  • @404fox9
    @404fox9 2 роки тому +1

    Not necessarily "developers" but companies have basically no reason to not use electron since it saves them money.

  • @valwoe6727
    @valwoe6727 2 роки тому +6

    I don't have anything against electron apps other than the fact that if I open one, my computer is already on the knees...

  • @lespetitstrucsdelasemaine4047
    @lespetitstrucsdelasemaine4047 2 роки тому +2

    I quite not agree about the cross-platform argument. Nowadays almost every GUI framework is cross platform. Let's take Qt for instance, with C++, QML and QtQuick you can develop an app either for android/IOS, Windows, Linux, OSX quite easily. GTK nor wxWidget or god only knows what framework does almost the same, they're just not as user-friendly as Qt. I personaly think that Qt is the best alternative to electron. It is dead easy to use, you only have to know C++ basics, the documentation is great and you can make something up and running in like 20 minutes with 10x less RAM usage and CPU overhead. And on the top of that, almost everything in Qt/C++ has a cross platform way to be done, using Qt toolkit or C++ STL.

  • @arkoprovo1996
    @arkoprovo1996 2 роки тому +5

    The solution should be simple really ... standardize and make electron backwards compatible and then open only one instance of electron with multiple windows ... like multiple browser windows on chromium; i.e., if it is already running, just add to it ... basically the same thing a web browser does, minus combining tabs into windows.

    • @kingofgamesyamiyami6269
      @kingofgamesyamiyami6269 2 роки тому +2

      You've just described the System WebView, except it's not entirely standardized. MacOS uses Safari WebKit, Windows uses Microsoft Edge Chromium, and Linux is usually webkit2gtk.
      Tauri already supports this, but as a developer it's fucking awful because the nightmarish hellscape of cross browser compatibility shows up.
      Also, this wouldn't solve the RAM usage. Load up discord in a browser, that tab will be comparable in RAM usage to the actual native app. In my case, it only saved about 30 MB to use browser.

    • @arkoprovo1996
      @arkoprovo1996 2 роки тому

      @@kingofgamesyamiyami6269 Hmm. But shouldn't this be more popular? Also, cross-browser compatibility problems - shouldn't they be same for electron and this then?

    • @kingofgamesyamiyami6269
      @kingofgamesyamiyami6269 2 роки тому +1

      @@arkoprovo1996 electron ships the entire browser with the app. So your app is never relying on a different browser it's all the same.

    • @arkoprovo1996
      @arkoprovo1996 2 роки тому

      @@kingofgamesyamiyami6269 Yes but that's why it wastes RAM ... like runs a new browser instance for every app essentially.

    • @kingofgamesyamiyami6269
      @kingofgamesyamiyami6269 2 роки тому +2

      @@arkoprovo1996 No, that isn't why it wastes RAM. All modern browsers run separate instances of the browser engine per tab, so there is very little benefit to consolidating to a single browser.

  • @tiagotiagot
    @tiagotiagot 2 роки тому

    If it's all websites, would it be possible to extract the contents and run electron apps on Firefox or whatever is your engine of choice?

  • @FengLengshun
    @FengLengshun 2 роки тому +8

    Same, as long as it isn't the worst of all worlds like Discord. I can stomach flatpak, I can stomach electron. Just... at least make it function man. Doesn't have to even be the latest, but at least make it close enough that expected functions works, the bugs get fixed, and gets some of the performance improvements. You're lucky you only have 400MB RAM use but mine with all the betterdiscord plugin I use is at 900MB and that's just brutal man.

    • @TheLinuxEXP
      @TheLinuxEXP  2 роки тому

      Yeah, if people at least made sure the integration was working well...

    • @TheExileFox
      @TheExileFox 2 роки тому

      Discord is practically a joke. Because if it notices a new version and your package manager is a little behind, it will lock you out completely. Since there is no option to skip an update your stuck with an unusable version until it gets updated to a matching version,

  • @FunnyHacks
    @FunnyHacks 2 роки тому +2

    Thanks for covering this. The theming is a massive one for me. For accessibility reasons, I _need_ a black theme (grey doesn't cut it.) And accent colours matter just as much.

  • @anon_y_mousse
    @anon_y_mousse 2 роки тому +5

    This is why I develop with C. Write once, compile anywhere. As long as I don't use weirdo libraries most platforms have the same basic functionality and layout and things just work. Also, even though I'm a KDE user, I still use GTK to write GUI's because it's written in C and it just works everywhere. I can't recall ever writing something that took up 100mb of space, for just the program itself anyway.

    • @user-he4ef9br7z
      @user-he4ef9br7z 2 роки тому +5

      C varies vastly on different machines. I don't understand how you get the write once compile everywhere idea. You'd have to write gigabytes of macros for that to happen.

    • @isodoubIet
      @isodoubIet 7 місяців тому

      My computer graphics class had a lot of fun figuring out why the C code provided by the professor wasn't running.
      Spoiler, the code was written by some galaxy intellect that actually used "long" as a type.

    • @anon_y_mousse
      @anon_y_mousse 7 місяців тому

      @@user-he4ef9br7z No, you don't. Just write to the standard and it'll work.

    • @anon_y_mousse
      @anon_y_mousse 7 місяців тому

      @@isodoubIet Clearly that's not what was wrong with the code as `long` is a valid type in C. But I don't think UA-cam will send you a notification from my response, and you won't have a clue what the real problem was anyway. At least based on our past interactions you don't seem to have a brain.

  • @-aexc-
    @-aexc- 2 роки тому +1

    the discord app is a mess the back and forward buttons double click (once for press and release) and it's blurry and screensharing with audio doesn't work

  • @OmK-st2kk
    @OmK-st2kk 2 роки тому +3

    Not sure about the package size but flutter seems better than electron as of now, for these reasons:
    1. It is backed up by google and also incorporates their material design
    2. It is compiled so theoretically it should be faster and take up less space
    3. It supports Windows, Linux, Mac, Android, and IOS. It can also turn your code into Web
    4. It is based on Skia, google’s 2D rendering engine. I saw some benchmarks the other day and the speed was extremely close to the native apps
    I’m sure flutter still has its own flaws but a lot of developers are actually leaning towards it

    • @riganburnwal1012
      @riganburnwal1012 2 роки тому

      Flutter along which language?

    • @OmK-st2kk
      @OmK-st2kk 2 роки тому

      @@riganburnwal1012 flutter is based on dart

    • @riganburnwal1012
      @riganburnwal1012 2 роки тому

      @@OmK-st2kk Can't we use flutter along other languages too? I'm sorry if I sound dumb I'm just curious, I thought it's just an UI toolkit/framework.

    • @OmK-st2kk
      @OmK-st2kk 2 роки тому +2

      @@riganburnwal1012 I have searched along this topic myself and there doesn’t seem to be a direct way of using flutter with any other language than dart.
      The only approach is to create a rest API with the unsupported language and then call it in your dart code.

    • @riganburnwal1012
      @riganburnwal1012 2 роки тому +1

      @@OmK-st2kk Got it, thanks buddy!

  • @angeldude101
    @angeldude101 2 роки тому

    My biggest issue with Electron is the fact that I don't need another browser. Browsers generally work best when managed by a single instance, so I'm not a fan of Electron apps launching completely new instances of Chromium completely disconnected from the browser I'm already running. This has a very simple solution: _use the user's existing browser!_ Python apps usually expect users to have Python installed. Java apps usually expect users to have Java installed. As a result, they don't need to package the runtime environment with them. Just do with Python and Java already do. In fact, _this is already possible!_ They're called Progressive Web Apps. You install them through the browser itself, and when you open them they appear just like a standalone app, except that they use the browser that you installed them through.

  • @jongranada
    @jongranada 2 роки тому +4

    I don’t know why, but my favorite part of every video is hearing you say the phrase “a lot.”

  • @xperience-evolution
    @xperience-evolution 2 роки тому

    Flatpack version of Gnome Boxes does NOT support usb ports within the vm. Not sure if it's the same as mentioned in this video (as I have no clue about the technical things) but it sucks

  • @amminadabz
    @amminadabz 2 роки тому +3

    Title implying that devs aren't people

  • @Games-tx1zc
    @Games-tx1zc 2 роки тому

    Heavily disagree on JS being easier to debug. Compiled languages force you to fix the little errors before they even run and, despite how good Chrome and Firefox devtools are, it's always better to get the errors directly in your IDE. Means you can go directly to the malformed syntax instead of hunting through your code in two different applications.

  • @thalleshenrique9752
    @thalleshenrique9752 2 роки тому +4

    I had the displeasure of developing for and of using Electron. On the development side you have a mess they call "main processor" and "secondary processor" that turns sharing data between windows a nightmare. Anything other than a Single-Page Application is awful, hell, horrible or insert your worse curse here to develop. At the user side, at least on Microsoft Teams for macOS we don't have a good support either: I work as an iOS developer at a tech consultancy, and we use Teams for basically everything at the work. Some days it simply refuses to ring my calls, to send my message notifications, just works when it wants, and now I'm using iOS 16 Beta, even in my iPhone it isn't working well (the iOS version was the only one I was able to use properly). So for me, it's just ugly, heavy and lazy.

    • @wallyhackenslacker
      @wallyhackenslacker 2 роки тому +2

      MS Teams is by far the worst, most bloated, slow and outright painful program I've ever had the misfortune of using.

    • @mudi2000a
      @mudi2000a 2 роки тому

      @@wallyhackenslacker totally agree with that. It’s hard to believe Teams and VS Code (which I really like) come from the same company.

  • @bogaczew
    @bogaczew 2 роки тому +2

    ms teams on linux are pracictly not usable. just becouse they use older version of electron, which dont's support screen sharing on wayland. and it's browser version works perfectly fine.

  • @conradfalloff991
    @conradfalloff991 2 роки тому +5

    My main complaint about Electron? It uses Chromium, which has Google’s handprints alllllll over it.

    • @smileychess
      @smileychess Рік тому +2

      Chromium is an open source project, which is very different from the Chrome web browser.

    • @isodoubIet
      @isodoubIet 7 місяців тому

      @@smileychess Not really "very" different, no. It's still controlled and maintained by google.

    • @smileychess
      @smileychess 7 місяців тому

      @@isodoubIet - It’s very different in regards to most of the fears and complaints about Google’s data privacy practices. The code is auditable and scrutinized. Besides that, it’s a good browser (if you ignore its memory footprint).

  • @nextlifeonearth
    @nextlifeonearth 2 роки тому +2

    I have a far different experience with electron regarding debugging versus C and the like. With something like GDB you can debug just as easily as js in the browser, but if the browser code was a compiler target (like if your application was written in typescript) then the debugging will be bound to said target code, not the source code. There are ways, but it's not as straight forward as you make it out to be compared to compiled languages.

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 2 роки тому

    13:47 Except that apps written using any of those GUI toolkits will run under any GUI.

  • @GabrielM01
    @GabrielM01 2 роки тому +4

    "cross platform" "devs can focus on making new features and improving the app"
    Discord screen share audio on Linux: Hold my beer

  • @solomoncyj
    @solomoncyj 2 роки тому

    can programs thet run on electron go into npm and get the latest electron version for themselves?

  • @lokonu
    @lokonu 2 роки тому +9

    this was really informative, could you do one on flutter?

  • @luckyowl10
    @luckyowl10 2 роки тому +1

    I agree that having an Electron app than not having that app is much better. It might not be lightweight, but it works most of them time.

  • @Remigrator
    @Remigrator 2 роки тому +18

    I never liked Electrons, they are so NEGATIVE 🤣

  • @bluephreakr
    @bluephreakr 2 роки тому +1

    At this point, Chromium just needs to be a new SDI web browser which will open applications found in a repository on local filesystem, and all installing an app should do is add the web assets for that application.

  • @sohangchopra6478
    @sohangchopra6478 2 роки тому +5

    Only exception I would point out here is VS Code - yes it's an Electron app, but it still performs so good! (And of course, it's full of nice developer conviniences 🙂)

    • @gbfgtki
      @gbfgtki 2 роки тому

      I disagree, ridiculous performance for what it does.

  • @DMSBrian24
    @DMSBrian24 2 роки тому

    It's mostly corporations that like it rather than developers, most enthusiast devs will usually just develop for their preferred platform but for corporations being able to basically make a single website and then port it as an app to every platform out there is a massive time and money saving. There aren't so many foss apps that use electron, I mean there are some (like Joplin) but they're by far a minority.

    • @DMSBrian24
      @DMSBrian24 2 роки тому

      And like you said, they're so greedy and lazy they take it to the extreme and don't even bother updating the electron base, resulting in a total mess.

  • @kuhluhOG
    @kuhluhOG 2 роки тому +3

    13:00 Actually no, JavaScript doesn't leak memory.
    It's just that by default you create global variables with JavaScript, "var my_variable = 5; var my_variable = 5;" works and guess what happens if one of these two have a typo.

  • @xBZZZZyt
    @xBZZZZyt 2 роки тому +1

    Electron (chromium) is good at rendering text boxes with a lot of text.
    Most GTK text editors (gedit, pluma, xed, bluefish) just halt or have graphics bugs when scroll down (like black background) when displaying big text files.
    Only GTK text editor that I know and can display big text files is CudaText (replace feature is slow tho).
    Notepad++ and wine's notepad.exe running though wine are way better than gedit.
    VSCodium was less laggy displaying large js file than gedit.

    • @knoopx
      @knoopx 2 роки тому +1

      hahaha accurate messed up reality check. proof that native gui apps don't necessarily perform better. proof that runtimes don't necessarily add too much overhead. proof that is technically possible to have a better electron ecosystem.

    • @xBZZZZyt
      @xBZZZZyt 2 роки тому

      ​@@knoopxelectron still has very much unused stuff loaded into ram like balenaEtcher doesn't need stuff like webgl, video decoders, MathML, WebRTC...

  • @Tommy-the-coffee-addict
    @Tommy-the-coffee-addict 2 роки тому +6

    a native app almost always looks feels alot better while using alot less resources, it's just the way it is.
    the one good thing i will say is that i can instead of using an electron app, at least just use it in my browser most of the time, which is a good mercy for stuff like discord.
    and although i get your point, the proton comparison is not perfect cause using proton VS a native game is way less of a difference than a native app VS electron, proton is like 85-100+% of the performance (sometimes better than windows and/or the native port) with tons of nice features, vs electron which is a pretty sizable downgrade no matter which way you slice it.

    • @angeldude101
      @angeldude101 2 роки тому

      Proton also has another benefit over Electron: _It only installs once._ Games don't come with their own Proton distribution; they just use a Proton installation that's already on the user's machine.

  • @TayambaMwanza
    @TayambaMwanza 2 роки тому +1

    I hope there isn't someone out there who hates electron and loves VS Code without knowing....

  • @hiiaminfi
    @hiiaminfi 2 роки тому +5

    I have to be radically honest… I don’t care what an application is built with. I care about what it feels like and if it solves my problem. VS Code is the best non-commandline-editor in my book and I have wasted a thought about it being built with Electron while it was helping me finish an assignment.
    Edit: and yes it sucks that some companies that distribute 3rd class products to lesser used platforms. But the thing is … why would the spend equal time on a lesser used version of their product when it’s not part of their vision?

    • @hiiaminfi
      @hiiaminfi 2 роки тому

      @@Kuznet609 and I am very happy for the people that use it.

  • @robertc574
    @robertc574 2 роки тому +1

    Your channel is the best and most versatile for understanding Linux
    Tux up👍

  • @Al0011235813
    @Al0011235813 2 роки тому +3

    Why not just write the app in Python+Qt and then you deploy to Linux, Mac and Windows? You don’t need Electron for easy cross-platform development.

    • @talkysassis
      @talkysassis 2 роки тому +3

      From my experience
      Most Electron devs don't know anything outside JS
      Some guys that work close to me (not on the same company) don't even know what an interpreter is

    • @Al0011235813
      @Al0011235813 2 роки тому +2

      @@talkysassis That would explain the terrible quality of so many Electron apps.

    • @amirrezai9612
      @amirrezai9612 2 роки тому

      Because of Qt license
      Free version has a GPL license
      Not many people like gpl

    • @isodoubIet
      @isodoubIet 7 місяців тому

      @@amirrezai9612 LGPL

  • @RajvirSingh1313
    @RajvirSingh1313 2 роки тому +2

    As being a developer who uses electron, I think the new alternatives like tauri are getting better and better, so I think the future is bright both for devs and users

    • @uis246
      @uis246 Рік тому

      Tauri is same electron and has same problems.

  • @MarkHyde
    @MarkHyde 2 роки тому +4

    Inexpensive way to distribute multi-platform apps when companies like Discord can't be bothered to find other solutions.

  • @milasudril
    @milasudril 2 роки тому +1

    On debugging
    Developer who works in a permissive language: Let's write the code quickly so we can debug it
    Developer who works in a strict language: Make sure to write the code correct by design (using language features), so we do not have to debug it

  • @wolfgangschneider3743
    @wolfgangschneider3743 2 роки тому +4

    mostly true, except JS debugging is in no way special; this is available in more or less identical form for every serious build system and language.

  • @nocturne6320
    @nocturne6320 2 роки тому +2

    This highlights another issue, lack of good cross-platform UI frameworks

  • @adityabagrecha
    @adityabagrecha Рік тому

    Hi @TheLinuxEXP, I'm building an app for a physical game that controls lights, has several sensor input based actions, takes in camera feed, etc. Would electron be a good choice? Or should i go with QT?
    Assume that the PC will only run this or 1-2 more light weight desktop apps. Please help.

  • @matheussilveriosilva5412
    @matheussilveriosilva5412 2 роки тому

    Hey man what is the distro you have shown on the video for the app store?

  • @jgttech
    @jgttech 2 роки тому +1

    People don't realize some of their most favorite applications are written in Electron. Such as Discord, Guilded, Team, Slack, What's App, Telegram, Signal, etc. ALL Electron.
    I don't think Electron is as hated as you're making it seem.

    • @mwlulud2995
      @mwlulud2995 4 місяці тому

      Discord is write with C++ Qt ;)

    • @mwlulud2995
      @mwlulud2995 4 місяці тому

      *Telegram sorry

  • @jecajSudbine
    @jecajSudbine 2 роки тому

    Can we turn Electron into DE and then have React apps (electron browser tabs) as applications?

  • @coffee-is-power
    @coffee-is-power 2 роки тому

    There's already a electron alternative which lets you write a backend in rust and you can use any JS framework on the frontend, it's called tauri, also the bundle is much smaller and it's much faster, it opens almost instantanously, and also it's a lot safer.

  • @DistrosProjects
    @DistrosProjects 2 роки тому

    10:28 That's the Flatpak version. The native packages take up 60-100MB.
    Edit: You addressed this very poorly. GIMP takes up close to 400MB when installed as a flatpak, which is "only" half the size of Discord. Still high, but I feel the core problem is with Flatpak in this particular case.

    • @TheLinuxEXP
      @TheLinuxEXP  2 роки тому

      No, because out of the 400 MB for flatpak, more than half is reusable runtime that other apps will also use ;)

    • @DistrosProjects
      @DistrosProjects 2 роки тому

      @@TheLinuxEXP This is true. However, you're comparing Discord's "installed size" number (which includes all reusable runtimes) to GIMP's "installed size" number on a traditional package, which won't. The traditional package number is only for GIMP and some core libraries.

  • @Z-add
    @Z-add Рік тому +1

    I thought xamarin and qt allowed cross platform apps as well.

  • @jgttech
    @jgttech 2 роки тому +1

    If you aren't a developer I don't think you can complain about the resource cost. You want to have it on all these platforms as a non-dev user? Cool! Then you'll get an app using the best tool for the job. The job being supporting all these OS's. No developer is going to spend their entire life mastering a native language for every OS that exists just to rewrite their app 5 times and maintain 5 versions of, effectively, the same code. Not because they aren't able to, but because the time investment and overhead would be INSANE.
    Most non-dev normies have absolutely no clue how hard development can be or what goes into it. So unless you can code and have at least 6 to 10, or more, years of it then I don't think you really have a say.
    And, NO, I don't consider WordPress, Wix, and Drupal application development. CMS's are NOT app development experience.