Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm still amazed how small the Godot editor is (last time I checked it was ~25MB). Just how are they able to pack this much functionality into such little space?



I guess its all relative.

In the late 80s I was impressed by a full Wordstar compatible text editor for Turbo Pascal which only occupied 25K (including the compiler). Times have indeed changed.


A lot of the godot size is the images it packs in itself.

When I cloned the godot repo, I could understand the architecture just by the file names.

I started falling in love with it as the easily understandable file names started streaming down from the cloud.

It's truly a public good.


> A lot of the godot size is the images it packs in itself.

For comparison, emacs's installed size is 76K [1].

[1] https://packages.debian.org/sid/emacs


That's the installed size of the metapackage containing no emacs executable, no elisp files, and no documentation.

On my system the emacs executable is 39M and the entire installed package is 128M. (Additionally, my Doom Emacs folder takes up another 840M.)


Ah so sorry about that. I should have checked.


I'm sorry if this sounds like I'm making fun of your Emacs install (I don't mean to) but how does this happen? Like, what is that when does it load all of that and how much memory/time does it take? I'm genuinely curious.


Nearly everything is loaded on demand. Start up time is less than 1 second.


On my Windows machine, the emax64 distribution (many packages) shows up as 491MB.

But on Windows, it seems that every app like this is essentially a Linux/mSys distro that just happens to run the application.

Of course, apps in general are getting that way.


> Additionally, my Doom Emacs folder takes up another 840M.

HOW?


Hd texture packs ?


doom emacs is just an emacs with a particular starting config.


Well, it contains 265 git repositories of packages I'm using.


Well, we should be impressed with 25MB for a decent game editor since the other players like Unity and Unreal Engine are probably around 25GB. It's also a fraction of Slack or Chrome or even the Rust compiler I believe.


The Chromium package on Arch Linux is around 68MB. The Electron runtime is a surprisingly reasonable size. Interestingly, the Go package is over 110MB. Rust is larger.


The Chromium package on Arch Linux is actually just a bit under 200MB when installed. Are you looking at the download size?


Yep, you're right, I'm looking at the compressed archive for both. Go must be huge then if the compressed package is 100MB.


I didn't check, but if the package consists mainly of binary, optimized executables, the compression may be very limited...


Or an entire MacOS like experience in 128k

https://en.wikipedia.org/wiki/GEOS_(8-bit_operating_system)


1 order of magnitude in 40 years? Doesn't seem a lot, but if applies exponentially would mean we will have some IDE in 2060 that's 25GB and someone will find it impressive. That's a lot of bytes for an editor.


Defining an 'order of magnitude' as 1024 seems a little odd to me. I would consider this to be closer to 3 orders of magnitued.


1024 (2^10) is ~10^3 (I know switching bases!) vs say 10 (10^1), so two orders of magnitude larger in general. A gig 10^9 would be many orders of magnitude. An order of magnitude is generally a jump to the next power of 10. So 10 (10^1) is an order of magnitude larger than 1 (10^0) as 100 (10^2) is to 10 (10^1), and so on. People frequently misuse the term when speaking in technical terms. When the average person uses it to denote a big jump, I let it go - usually ;) If you stick with base 2 I guess you could say many orders of magnitude (2^32 = 4,294,967,296 vs 2^8 = 256, or 24 orders of magnitude?).


But you could use Base-1024, in which case the term is used correctly. It's all relative ;)


Why? The common base is 10, and "orders of magnitude" is normally based on 10X between orders here. Ten fingers, decimal system, etc. Don't bring up metric vs. Imperial ;)

I work at an engineering firm, and that's how most engineers understand it.


Visual Studio is probably way more than 25GB, and it's 2020 still.


Depends on what packages you install, but my VS 2019 install folder is 2.5GB.


My VS folder itself is 4.1GB, but there are tons of other stuff that gets installed too. I know I downloaded about 28GB on my first install.


:) Before I read the link, I was thinking about a text editor I would keep on my rescue floppy disks. The method of distribution was typing the assembly out of the November 15, 1988 edition of PC Magazine.

http://texteditors.org/cgi-bin/wiki.pl?Ted

https://books.google.com/books?id=yFs-_3jT-5kC&pg=PA281


She's not as small as she used to be (Currently sitting at 61.1MB and has been over 30MB since 3.0) but to put that in perspective, that's smaller than the binaries for Half-Life 2 and even Half-Life 1. The release binary is even smaller at 33.5MB!


Having a little bit of discipline is all that's needed.


Or is a better question, what the hell is going on in other programs to cause them to be so gigantic?


Because some developers and project managers like, tolerate or even encourage complexity. I've read this comment on hackernews once about it, and it seems to be true.

There is Wirth's law ("software is getting slower more rapidly than hardware is becoming faster").

Generally, developers don't like performance, for some weird reason. The 97% Knuth quote might have played a major role, unfortunately it doesn't apply to game development at all. It's always a compromise between speed and code size.

For the rest, too many developers are not educated about electronics or physics, and often disregard important topics like memory management and data structures. But computer science always is complex. The generalization of garbage collected languages is also a big problem (see Minecraft)

Another problem is the lack of discipline and OSHA-like regulations in software development. The software industry is too anarchic and liberal-minded (Silicon Valley-style venture capitalism has a lot to do with this). It results in a lot of work being easily thrown away.


By not having massive dependencies?


Well, if you had massive dependencies you'd probably look at consuming them as shared libraries making your binary smaller than if you rolled your own solution, right?

The fact that the Godot editor includes the Godot runtime along with its own UI- and graphics stack (if I'm not mistaken?) in such a small bundle makes this even more impressive to me.


Godot has many parts besides the UI and graphics stack, and most of its dependencies vendored and statically linked. See the thirdparty folder for a list: https://github.com/godotengine/godot/tree/master/thirdparty

The official binaries include everything, but many of the larger bits are optional and can be disabled during build time to reduce the size of the executable: https://docs.godotengine.org/en/stable/development/compiling...


There's very little in the way of media or other assets -- it's all just code.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: