I completely agree with this post. It feels like it's the rage these days to 1) over-engineer everything by 2) using existing "full package solutions" to solve simple problems introducing...
I completely agree with this post. It feels like it's the rage these days to 1) over-engineer everything by 2) using existing "full package solutions" to solve simple problems introducing dependency upon dependency and ending up with slow, bloated products. It's how you end up with things like the Google app, which is basically just a package for Google Web Search, being 350 MB.
Windows 95 was 30Mb. Today we have web pages heavier than that
It's clear modern hardware is capable of much more than computers from a decade ago - yet modern software (how does Slack use 1GB+ of memory) is little more performant because developers opt for the quick or trendy solution rather than considering the impact on performance.
Jonathan Blow has a language he alone develops for his game that can compile 500k lines per second on his laptop. That’s cold compile, no intermediate caching, no incremental builds.
This is pretty impressive and I'd love to see how they managed the speed.
Blow talks a little about his compiler here. Apparently the entire compiler is 42kb. The language kinda looks somewhere between C++ and Rust, and it appears to be impressively fast. (But I don't...
Blow talks a little about his compiler here. Apparently the entire compiler is 42kb. The language kinda looks somewhere between C++ and Rust, and it appears to be impressively fast.
(But I don't think he's released it publicly yet!)
From the business standpoint it's cheaper to develop software by putting together bigger chunks and hiding the unneeded parts from user. Devs could even write the whole google.com in C, but every...
From the business standpoint it's cheaper to develop software by putting together bigger chunks and hiding the unneeded parts from user. Devs could even write the whole google.com in C, but every year, despite a lot of repetitiveness, software tools become more advanced and integrated, currently up to the point of making desktop apps on the basis of web browsers. Yes it takes some more gigabytes and loads a few seconds slower but companies make more money by developing investor-attractive changes for the sake of changes and profits, quickly. Software frameworks are being pushed as well. Unlike in the physical world, software bloat is a chunk of bytes invisible to user so it's an attractive way to stick to.
Non-commercial and enthusiast software, however, more often "cares" about efficiency, both due to dev passion and intentional simplicity (no need to impress investors and make an extra ad buck). An example is tildes vs reddit.
Kolibri OS harkens back to that, though it no longer fits on a single floppy disk. GUI, games, etc. As well as technical hurdles like NTFS support, EXT support, and sound and graphics drivers. It...
And that’s with no games and no music at all! Remember times when an OS, apps and all your data fit on a floppy?
Kolibri OS harkens back to that, though it no longer fits on a single floppy disk. GUI, games, etc. As well as technical hurdles like NTFS support, EXT support, and sound and graphics drivers.
It runs with 8mb of RAM, which is a decent bit over our past, but contains all the lovely features of a modern system. The OS is around 25Mb.
How? They wrote it in FASM, and optimised like crazy to make it fast.
TinyCoreLinux provides a minimal Linux, with Busybox, and a GUI, and all the basic utilities. It's about 16mb for the GUI version of the OS. Add in all your modern drivers like WiFi, NTFS suppport, etc. and it bloats out to 106Mb.
But... Android, an operating system sitting atop Linux, somehow bloats out to 6Gb? How!?
I could understand 2-4Gb if they threw every driver at it, maybe, because OEM drivers tend to be utter horse crap. But the thing is 24x bigger (math adjusted to best-case) than a fully working, fully driver-d, GUI Linux system.
It really is an achievement in modern software design isn't it? If I had to hazard a guess, I'd say it has to do with the sheer quantity of pre-installed software that's written in java and very...
But... Android, an operating system sitting atop Linux, somehow bloats out to 6Gb? How!?
It really is an achievement in modern software design isn't it? If I had to hazard a guess, I'd say it has to do with the sheer quantity of pre-installed software that's written in java and very clearly not optimized for space. Aside from carrier bullshit you'll have if you buy your phone through them, and occasional amazon partnership apps, the default google apps package includes over three dozen apps that can never be uninstalled without rooting the phone.
This blog post was refreshing to me because it put what I think of the current software development environment into words far better than I could. Everything is huge, slow and complicated, even...
This blog post was refreshing to me because it put what I think of the current software development environment into words far better than I could.
Everything is huge, slow and complicated, even though they don't need to be.
I completely agree with this post. It feels like it's the rage these days to 1) over-engineer everything by 2) using existing "full package solutions" to solve simple problems introducing dependency upon dependency and ending up with slow, bloated products. It's how you end up with things like the Google app, which is basically just a package for Google Web Search, being 350 MB.
It's clear modern hardware is capable of much more than computers from a decade ago - yet modern software (how does Slack use 1GB+ of memory) is little more performant because developers opt for the quick or trendy solution rather than considering the impact on performance.
This is pretty impressive and I'd love to see how they managed the speed.
Blow talks a little about his compiler here. Apparently the entire compiler is 42kb. The language kinda looks somewhere between C++ and Rust, and it appears to be impressively fast.
(But I don't think he's released it publicly yet!)
From the business standpoint it's cheaper to develop software by putting together bigger chunks and hiding the unneeded parts from user. Devs could even write the whole google.com in C, but every year, despite a lot of repetitiveness, software tools become more advanced and integrated, currently up to the point of making desktop apps on the basis of web browsers. Yes it takes some more gigabytes and loads a few seconds slower but companies make more money by developing investor-attractive changes for the sake of changes and profits, quickly. Software frameworks are being pushed as well. Unlike in the physical world, software bloat is a chunk of bytes invisible to user so it's an attractive way to stick to.
Non-commercial and enthusiast software, however, more often "cares" about efficiency, both due to dev passion and intentional simplicity (no need to impress investors and make an extra ad buck). An example is tildes vs reddit.
Kolibri OS harkens back to that, though it no longer fits on a single floppy disk. GUI, games, etc. As well as technical hurdles like NTFS support, EXT support, and sound and graphics drivers.
It runs with 8mb of RAM, which is a decent bit over our past, but contains all the lovely features of a modern system. The OS is around 25Mb.
How? They wrote it in FASM, and optimised like crazy to make it fast.
TinyCoreLinux provides a minimal Linux, with Busybox, and a GUI, and all the basic utilities. It's about 16mb for the GUI version of the OS. Add in all your modern drivers like WiFi, NTFS suppport, etc. and it bloats out to 106Mb.
But... Android, an operating system sitting atop Linux, somehow bloats out to 6Gb? How!?
I could understand 2-4Gb if they threw every driver at it, maybe, because OEM drivers tend to be utter horse crap. But the thing is 24x bigger (math adjusted to best-case) than a fully working, fully driver-d, GUI Linux system.
It really is an achievement in modern software design isn't it? If I had to hazard a guess, I'd say it has to do with the sheer quantity of pre-installed software that's written in java and very clearly not optimized for space. Aside from carrier bullshit you'll have if you buy your phone through them, and occasional amazon partnership apps, the default google apps package includes over three dozen apps that can never be uninstalled without rooting the phone.
This blog post was refreshing to me because it put what I think of the current software development environment into words far better than I could.
Everything is huge, slow and complicated, even though they don't need to be.