Ask HN: What happened to binary sizes?
Graphical Win 9x applications installer download sizes:
* WinAmp 2.666 = 2.1MB
* Opera 6.0 = 3.2MB
* mIRC 6.0 = 1.1MB
* WinZip 8.0 = 1.2MB
You get the idea, why today's binaries themselves are so big, and the App bundles ridiculously big too?
I see that myself, I compile simple Apps and I see the executable size, and I don't know how I could program so many megabytes!
15 comments
[ 3.1 ms ] story [ 44.7 ms ] threadThese days apps have to compile for multiple architectures especially on Android. Those are all packaged up together. Not only that these days you have multiple sizes for image assets for various pixel densities. On top of it all these days people rely on a lot of external libraries which may or may not be on a phone or system. You can't depend on shared linking like when developing for Windows back in the day.
Not to mention, fonts. Apps these days package up fonts and send them along too.
[Edited for more content]
.app package: 112.9MB
Excluding all the frameworks, all the graphical resources, etc.
The binary is a whopping 30.7MB
Okay that it has armv7 and armv8, then again, it's already 15 megabyte per architecture.
And the App is really simple, specially compared to a fully featured web browser like Opera!
But how could the executables? You know, the machine code, get so big.
And I'm comparing installers with just the app!
When the user downloads, he downloads only the version that works with their CPU.
I, for one, like being able to install Linux on a 4GiB thumb drive. If your app doesn't work with command line parameters without a GUI and can't be installed in spare space on a 4GiB drive then your app probably doesn't target me at all.
Note that there are a TON of apps that do fit well within those requirements.
I know tons of people at small businesses who work with or on machines that are considered "new". But these new computers are as cheap as possible. $250 for a computer is amazing. Disk space is the greatest (maybe 500GB, but it's a spindle disk). RAM is starved (lucky if there's 4GB). CPU is typically, at best, a Core i3, and probably more like a Celeron, Pentium, or often AMD.
The real irony? Despite having a poor-man's CPU, its utilization is usually really low because of the amount of swapping that occurs to a spindle disk. Having superlarge pretty fancy apps (that, honestly, business users don't care about for productivity) really kills the user experience. That's, of course, assuming that the app doesn't have other shortcomings. Bugs and counter-intuitiveness really hinders things too, particularly when certain problems only show up when things run slow.
First thing I recommend to them is to invest in an SSD and some more RAM. But the $100 for that is often out of the reach of these people.
So, to reiterate: cheap resources to you doesn't mean your desired audience also considers these to cheap too.
Even if you would like to spend that time trying to optimize your application, my experience is that it's very difficult to get the mandate to do anything beyond spending a few hours on it when you could be spending that time making some new sellable feature.
[0] https://itunes.apple.com/us/app/telegram/id747648890