7 ms·
I think it's all about branding, the same disgrace that plagues mobile operating systems: every software maker tries its best to force users install their logo
by squarefoot 5y ago
I think it's all about branding, the same disgrace that plagues mobile operating systems: every software maker tries its best to force users install their logo on their screen, so that if yesterday one could use 100 services just by saving 100 bookmarks on a browser, now they need 100 apps, with all the implications wrt waste of space and resources, security etc.
Although perfectly legit, it's a practice that cannot scale.
Drivers installers on Windows aren't exempt from this nonsense as well since years, so every driver started coming with its companion app, very often a huge VB "thing" that did nothing important except showing its shiny icon on the desktop. Then years later they started phoning home to profile users, attempt to offer purchases for consumables (as printer drivers do), etc.
In the old days however one had a way to control it: the .exe was often a self extracting .zip, so it could be fed to 7Zip and the like to extract the archive without executing it, then one would throw away the unnecessary bloat except the relevant .inf file and a few dlls or other small files, point to that location when searching for drivers, and voila: driver installed without the cruft.
The question is if a giant ball of Electron bloat could be dissected in a similar fashion in order to extract the important stuff and throw away the rest. I hope so.
- mr_toad 5y agoNvidia’s bloated GeForce experience is about 99% advertising and 1% actual driver. I hate them so much.
- dannyw 5y agoYou can just install the driver without installing GeForce experience.
- 5faulker 5y agoApparently bureaucracy is not just an office thing.
- amelius 5y ago> The question is if a giant ball of Electron bloat could be dissected in a similar fashion in order to extract the important stuff and throw away the rest. I hope so. Perhaps OSes could be smarter. After installing an app, it could monitor the "hot" paths in the code, and only load those instructions the next time the app is loaded. Also resources that are never used could be not loaded into memory. Etc. I know, it would be difficult to build this as you're basically instrumenting an app or driver and then rewriting it, but I guess it would be a great innovative feature in a time when OS research seems stagnant.
- arghnoname 5y agoWhat you're describing is some combination of stuff language runtimes and linkers do (shared libraries, runtime loading, JITting) and demand paging. It may be the case that one could optimize for the case where a bunch of applications ship that and are statically compiled but use the same underlying libraries. In this case, some agent on the system could analyze the code segments of these binaries and on demand construct shared libraries that strip the shared portion from the binaries. Subsequent invocations would load the constructed shared libraries for redundant sections. Still, this probably wouldn't help much and would lead to its own issues. One of the problems with these flabby things is just how the runtimes are themselves constructed. You still have per process data structures you'd need to populate and they probably have fat data structures that are not very space efficient, and so on. The size of the instructions is probably not significant relatively speaking.
- amelius 5y agoOne trick could be to run the program in a "lazy" way. E.g. don't run a statement like "a=b+c", but evaluate it only when a is needed. This would require a complete and automatic rewrite at the assembly level, but you wouldn't be doing anything that you don't need. Then from this you could determine the "hot" paths, and optimize those for speed (translate back into non-lazy form).
- wrs 5y agoI can’t find a reference now, but I believe Windows did (does?) have a page fault tracer that would preload from disk the pages that are observed to be needed. I can’t remember if this was just at boot time or for app launches too.
- thekingofravens 5y agoAvoiding this cycle of crap is my personal favorite thing about Linux.
- titzer 5y agoThe cycle of crap on Linux is different; less corporate and underhanded, but more of an ever-expanding bloat. Install Clang/LLVM. It's like 300MB. I remember when almost every system had a fairly small C compiler. It had to be small, because it was the basis of everything else. Now the base is enormous. OCaml is something like 200MB. And of course, it has its own package manager. So does Python, and Ruby, and all these other things that are supposed to be the base of so much other software. Take another example. Install LaTeX. It's something like 5GB. It's huge because it bundles enormous numbers of packages. It seems like there are zillions of Linux packages > 100MB. What does all this crap do? Why does everything depend on everything? Take another example. Node. Building it from scratch takes a pretty beefy machine and a lot of time. (It takes over 20 mins on my 6-core workstation with 32GB RAM). Most of that is building V8. When I worked on V8, we periodically spent some time trying to get build times under control, but the needle barely moved until it got going again. We spent months and months of effort, over years, splitting V8 into more source files and more directories and enforcing header discipline, but all of it made build times worse. Despite how cool V8 is, I feel embarrassed in retrospect that the build system is so bonkers. Linux is like this everywhere. Monstrous and labyrinthine. It really is impossible to understand it all now.
- NullPrefix 5y ago>Install Clang/LLVM. It's like 300MB Isn't this like a first computer world problem? How many gigabytes does current Visual Studio take? Not talking about VS Code, because it's only an IDE, which still requires the actual Visual Studio C++ as the compiler.
- AndriyKunitsyn 5y agoIt is possible to have “headless” MS compiler & build tools in Windows, by installing Windows SDK. It may be used with VSCode. The full Visual Studio is not required.
- jjoonathan 5y ago> attempt to offer purchases for consumables (as printer drivers do) Or to brick knockoffs! FTDI blazed the trail, now printers are doing it too. First party malware!
- chris37879 5y agoThe good news is, almost definitely! It's really hard to protect web apps from reverse engineering because a lot of decisions were made to make them out of human readable files ages ago, almost any electron app can be broken open and tinkered with, there are exceptions, though. VSCode, for instance, is an electron app, but basically only for their UI at this point, larges swathes of the app's interesting functionality is written in cross compiled C++. But for an electron app that's just tweaking settings in a Driver? Probably. Ultimately the electron code cannot be very tightly integrated since that's not how drivers work, but then it becomes an arms race of weird protocols to force you into using their app instead of an alternative and we're back to square 1, only now the device has this weird opaque, and possibly crypto signed api for controlling it instead of just bit banging values into memory
- freediver 5y agoWhat you described brings back distant memories of Windows. Since switching to macOS few years ago none of that behavior is a thing any more. Apps 'just work' and do so in a predictable way. There is no (noticeable) attempt from app makers to bundle bloat. This alone makes macOS much more comfortable to work with. And the bonus is there is an actual usable shell.
- cma 5y agoLogitech control center enters the chat.
- snth 5y agoTry installing an HP printer on macOS by following the provided instructions
- phkahler 5y agoThat's not macOS specific. My phone has HP crapware on it for some reason.
- nvarsj 5y agoHave you tried installing a gaming mouse driver on MacOS? Same deal. When I used it, MacOS also had the issue that some software didn't even have uninstallers. So you have to drag the app to the trash bin, then go and manually remove the various system software that it installed. Or run a script off of the internet. Software management on MacOS is no better than Windows in my opinion, and in many cases much worse.
- mr_toad 5y ago> The question is if a giant ball of Electron bloat could be dissected in a similar fashion If you could just assume Node and a modern browser already existed on the target machine you could just ship a node package and a minimal installer. But you’d need to deal with potential version and browser incompatibility.
- mattmcknight 5y ago> every software maker tries its best to force users install their logo on their screen, so that if yesterday one could use 100 services just by saving 100 bookmarks on a browser, now they need 100 apps, The other side of this is Android makes it really simple for users to drop a shortcut to your website on the home screen. Apple, to encourage people into their cash cow app store, does not. I was all set to get a company going with mobile web as their primary UI, but it was too hard to get users to put the home screen shortcut down on iOS, so we ended up having to pay to have apps built and now have triple the complexity.