GTK-based applications #1: Terminal emulators summary (3/3)

Here’s the summary of the GTK terminal emulator test. It provides four tables for easier comparison of the results.

Overall Ranking

I’ll begin with the overall rating here since that’s the most important thing. I’ve compared all DEs in terms of 1. memory consumption (most important for me and thus weighted *3), 2. disk space used (weighted *2) and 3. size of packages to download. So, here’s the result:

Rank DE Version
01 Lwt 20130625
02 Mt .1
03 Lilyterm 0.9.9.2
04 Ftjerm 0.12.3
05 MLTerm 3.2.0
06 Stjerm 0.16_19
07 Tinyterm svn-20100223
08*) Lxterminal 0.1.11
09 QuTerm 0.1
09 Tilda git-20130625
10 vTerminal 13
11 Sakura 3.0.4
12 Evilvte 0.5.1
12 Termite 6
12 Xfce4-Terminal 0.6.2
13 ROXTerm 2.7.2
14 Gnome-Terminal 3.8.3
15 Dwt 0.3

*) Needed disk space not measured for Lxterminal

RAM usage

Here’s the table that compares memory usage of the tested terminal emulators:

<110 MB 110 – 115 MB 116 – 120 MB >120 MB
Rank DE Version Memory usage
01 Lwt 20130625 106 MB
01 MLTerm 3.2.0 106 MB
02 Lilyterm 0.9.9.2 107 MB
02 Tilda git-20130625 107 MB
03 Lxterminal 0.1.11 108 MB
03 Mt .1 108 MB
03 Stjerm 0.16_19 108 MB
04 Ftjerm 0.12.3 109 MB
04 QuTerm 0.1 109 MB
04 Tinyterm svn-20100223 109 MB
05 Termite 6 113 MB
05 vTerminal 13 113 MB
06 Sakura 3.0.4 114 MB
07 Evilvte 0.5.1 115 MB
08 ROXTerm 2.7.2 117 MB
08 Xfce4-Terminal 0.6.2 117 MB
09 Dwt 0.3 120 MB
10 Gnome Terminal 3.8.3 121 MB

Drive space needed

Here’s the next table:

<5 MB 5 – 10 MB 11 – 100 MB >100 MB
Rank DE Version Disk space used
00 Lxterminal 0.1.11 not measured
01 Lwt 20130625 +4.6 MB
01 Ftjerm 0.12.3 +4.6 MB
02 Lilyterm 0.9.9.2 +5.3 MB
03 Mt .1 +8.0 MB
04 Tinyterm svn-20100223 +12 MB
04 Stjerm 0.16_19 +12 MB
05 Tilda git-20130625 +13 MB
05 QuTerm 0.1 +13 MB
05 vTerminal 13 +13 MB
06 Xfce4-Terminal 0.6.2 +17 MB
07 Evilvte 0.5.1 +104 MB
08 Sakura 3.0.4 +109 MB
09 Gnome-terminal 3.8.3 +111 MB
09 Termite 6 +111 MB
10 ROXTerm 2.7.2 +113 MB
11 MLTerm 3.2.0 +115 MB
12 Dwt 0.3 +137 MB

Download size

And here’s the last one:

<50 KB 51 – 500 KB 501 KB – 5 MB >5 MB
Rank DE Version size
01 Lwt 20130625 ~4 KB
01 Mt .1 ~4 KB
01 Tinyterm svn-20100223 ~4 KB
02 QuTerm 0.1 ~5 KB
03 Stjerm 0.16_19 ~20 KB
04 Ftjerm 0.12.3 ~25 KB
05 vTerminal 13 ~53 KB
06 Lxterminal 0.1.11 ~70 KB
07 Lilyterm 0.9.9.2 ~160 KB
08 Tilda git-20130625 ~193 KB
09 Xfce-4-Terminal 0.6.2 ~699 KB
10 Evilvte 0.5.1 ~14,6 MB
10 Sakura 3.0.4 ~14,6 MB
11 ROXTerm 2.7.2 ~14,7 MB
12 Termite 6 ~14,9 MB
13 Gnome-terminal 3.8.3 ~15,7 MB
14 Dwt 0.3 ~16,6 MB
14 MLTerm 3.2.0 ~16,6 MB

Conclusion

The range of needed RAM on startup is not very large. Still on machines which have little memory available it makes a huge difference if the system with LXDE and a terminal emulator on top of it needs 106 MB or 121 MB of RAM! The range of drive space needed is a lot larger. Here it’s primarily GTK2 applications vs. GTK3 ones. Same thing for the download size: GTK3 brings in a few dependencies which means there’s quite a bit more to download.

What’s next?

The post will begin with a GTK+ file manager test.

Advertisements

GTK-based applications #1: Terminal emulators (2/3)

Here’s the second part of the GTK terminal emulators test. It’s N – Z today. Again we have 9 terminal emulators to take a look at.

The candidates

Here are the candidates:

(Again: Since there’s a lot of them out there, I may well have missed some interesting ones. Feel free to tell me in this case!)

Not tested

Last time I forgot to mention 3 more terminal emulators which don’t run on my test system:

(If you happen to get any of these to work on Arch and care to tell me, I’d be happy for any comments.)

Testing system

The testing system was the same that I described in my previous post.

QuTerm

QuTerm is a Quake-style terminal emulator which uses GTK2.

LXDE with QuTerm

Installation

pacman -U quterm-0.1-1-i686.pkg.tar.xz (4868 / 5 KB)

Statistics

Memory usage after starting up LXDE and opening QuTerm via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE QuTerm 0.1
MemTotal: 3625888 kb
MemFree: 3514496 kb
Buffers: 10508 kb
Cached: 61876 kb
Rootfs: 830984 / 812 MB
RAM used at startup: 111392 / ~109 MB
Disk space (less LXDE system): 13504 / ~13 MB

ROXTerm

ROXTerm is a terminal emulator which uses GTK3.

LXDE with ROXTerm

Installation

pacman -S roxterm (230084 / 230 KB + 13 dependencies: 14899200 / 14,9 MB)

Statistics

Memory usage after starting up LXDE and opening ROXTerm via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE ROXTerm 2.7.2
MemTotal: 3625888 kb
MemFree: 3506020 kb
Buffers: 10552 kb
Cached: 68612 kb
Rootfs: 933296 / 912 MB
RAM used at startup: 119868 / ~117 MB
Disk space (less LXDE system): 115816 / ~113 MB

Sakura

Sakura is a terminal emulator which uses GTK3.

LXDE with Sakura

Installation

pacman -S sakura (40416 / 40 KB + 12 deps: 14899200 / 14,9 MB)

Statistics

Memory usage after starting up LXDE and opening Sakura via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Sakura 3.0.4
MemTotal: 3625888 kb
MemFree: 3508796 kb
Buffers: 10204 kb
Cached: 68288 kb
Rootfs: 929500 / 908 MB
RAM used at startup: 117092 / ~114 MB
Disk space (less LXDE system): 112020 / ~109 MB

Stjerm

Stjerm is a Quake-style terminal emulator which uses GTK2.

LXDE with Stjerm

Installation

pacman -U stjerm-git-0.16_19_g4038b07-1-i686.pkg.tar.xz (19564 / 20 KB)

Statistics

Memory usage after starting up LXDE and opening Stjerm via run (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Stjerm 0.16_19
MemTotal: 3625888 kb
MemFree: 3515092 kb
Buffers: 10552 kb
Cached: 61552 kb
Rootfs: 829620 / 811 MB
RAM used at startup: 110796 / ~108 MB
Disk space (less LXDE system): 12140 / ~12 MB

Termite

Termite is a terminal emulator which uses GTK3.

LXDE with Termite

Installation

pacman -U vte3-select-text-0.34.6-1-i686.pkg.tar.xz (356904 / 357 KB 12 dep: 14899200 / 14,9 MB)
pacman -U termite-6-1-i686.pkg.tar.xz (19520 / 20 KB)

Statistics

Memory usage after starting up LXDE and opening Termite via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Termite 6
MemTotal: 3625888 kb
MemFree: 3510272 kb
Buffers: 10220 kb
Cached: 67108 kb
Rootfs: 931076 / 910 MB
RAM used at startup: 115616 / ~113 MB
Disk space (less LXDE system): 113596 / ~111 MB

Tilda

Tilda is Quake-style a terminal emulator which uses GTK2.

LXDE with Tilda

Installation

pacman -U tilda-git-20130625-2-i686.pkg.tar.xz (64824 / 65 KB + 2 deps: 133120 / 133 KB)

Statistics

Memory usage after starting up LXDE and opening Tilda via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Tilda git-20130625
MemTotal: 3625888 kb
MemFree: 3516252 kb
Buffers: 9800 kb
Cached: 62824 kb
Rootfs: 830976 / 812 MB
RAM used at startup: 109636 / ~107 MB
Disk space (less LXDE system): 13496 / ~13 MB

Tinyterm

Tinyterm is a terminal emulator which uses GTK2.

LXDE with Tinyterm

Installation

pacman -U tinyterm-svn-20100223-1-i686.pkg.tar.xz (4180 / 4 KB)

Statistics

Memory usage after starting up LXDE and opening Tinyterm via run (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Tinyterm svn-20100223
MemTotal: 3625888 kb
MemFree: 3514148 kb
Buffers: 10520 kb
Cached: 62804 kb
Rootfs: 829576 / 811 MB
RAM used at startup: 111740 / ~109 MB
Disk space (less LXDE system): 12096 / ~12 MB

vTerminal

vTerminal is a terminal emulator which uses GTK2.

LXDE with vTerminal

Installation

pacman -U vterminal-13-3-i686.pkg.tar.xz (11988 / 12 KB + 2 deps: 40960 / 41 KB)

Statistics

Memory usage after starting up LXDE and opening vTerminal via run (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE vTerminal 13
MemTotal: 3625888 kb
MemFree: 3510000 kb
Buffers: 12940 kb
Cached: 62480 kb
Rootfs: 831176 / 812 MB
RAM used at startup: 115888 / ~113 MB
Disk space (less LXDE system): 13696 / ~13 MB

Xfce4-Terminal

Xfce4-Terminal is a terminal emulator which uses GTK2.

LXDE with Xfce4-Terminal

Installation

pacman -S xfce4-terminal (300188 / 300 KB + 4 deps: 399360 / 399 KB)

Statistics

Memory usage after starting up LXDE and opening Xfce4-Terminal via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Xfce4-Term 0.6.2
MemTotal: 3625888 kb
MemFree: 3505716 kb
Buffers: 11160 kb
Cached: 63488 kb
Rootfs: 835304 / 816 MB
RAM used at startup: 120172 / ~117 MB
Disk space (less LXDE system): 17824 / ~17 MB

What’s next?

The next post will be a summary of the GTK terminal tests and provide a table for easy comparison.

[Update (08/10): Corrected Termite’s disk usage values – copied the wrong ones before.]

GTK-based applications #1: Terminal emulators (1/3)

Today we’re in for taking a look at the various terminal emulators out there which are based on GTK+. This first part deals with the ones which start with A to M.

The candidates

Here’s the list of available GTK+ terminals I got working on Arch:

(Since there’s a lot of them out there, I may well have missed some interesting ones. Feel free to tell me in this case!)

Not tested

Here’s the list of GTK-based terminal emulators which I didn’t test because they didn’t work (since there are so many available I didn’t have much time to mess with these here):

(If you happen to get any of these to work on Arch and care to tell me, I’d be happy for any comments.)

Testing system

For the coming tests I set up a new, clean Arch VM (25.06.2013). The basic system looks like this (after cleaning pacman cache):

Arch Linux “base”
MemTotal: 3625888 kb
MemFree: 3586228 kb
Buffers: 5404 kb
Cached: 18556 kb
Rootfs: 488660 / 478 MB
RAM used at startup: 39660 / ~39 MB

Then I installed a typical LXDE:

pacman -S xorg-server xorg-xinit xf86-video-vesa lxde (132 packages; size: 59914 Bytes / 59 MB)

Memory usage right after starting up LXDE (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux + LXDE (0.5.5)
MemTotal: 3625888 kb
MemFree: 3522368 kb
Buffers: 9740 kb
Cached: 58860 kb
Rootfs: 817480 / 799 MB
RAM used at startup: 103520 / ~101 MB
Disk space (less basic system): 328820 / ~321 MB

Dwt

DWT is a terminal emulator which uses GTK3.

LXDE with dwt

Installation

pacman -U dwt-0.3-1-i686.pkg.tar.xz (7272 / 7 KB + 19 dependencies: 1689000 KB / 17 MB)

Statistics

Memory usage after starting up LXDE and opening Dwt via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE dwt 0.3
MemTotal: 3625888 kb
MemFree: 3502520 kb
Buffers: 11648 kb
Cached: 67740 kb
Rootfs: 958252 / 936 MB
RAM used at startup: 123368 / ~120 MB
Disk space (less LXDE system): 140772 / ~137 MB

Evilvte

Evilvte is a terminal emulator which uses GTK3.

LXDE with Evilvte

Installation

pacman -U evilvte-0.5.1-1-i686.pkg.tar.xz (28244 / 28 KB + 13 deps: 14899200 / 15 M)

Statistics

Memory usage after starting up LXDE and opening Evilvte via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Evilvte 0.5.1
MemTotal: 3625888 kb
MemFree: 3508236 kb
Buffers: 10292 kb
Cached: 68140 kb
Rootfs: 923508 / 902 MB
RAM used at startup: 117652 / ~115 MB
Disk space (less LXDE system): 106028 / ~104 MB

Ftjerm

Ftjerm is a terminal emulator which uses GTK2.

LXDE with Ftjerm

Installation

pacman -U ftjerm-0.12.3-1-i686.pkg.tar.xz (24968 / 25 KB)

Statistics

Memory usage after starting up LXDE and opening Ftjerm via run from the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Ftjerm 0.12.3
MemTotal: 3625888 kb
MemFree: 3514480 kb
Buffers: 10556 kb
Cached: 62180 kb
Rootfs: 822280 / 804 MB
RAM used at startup: 111408 / ~109 MB
Disk space (less LXDE system): 4800 / ~4.6 MB

Gnome-terminal

The gnome-terminal is a terminal emulator which uses GTK3.

LXDE with Gnome-terminal

Installation

pacman -S gnome-terminal (16056320 / 16 MB)

Statistics

Memory usage after starting up LXDE and opening Gnome-terminal via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Gnome-terminal 3.8.3
MemTotal: 3625888 kb
MemFree: 3501640 kb
Buffers: 12000 kb
Cached: 69792 kb
Rootfs: 931004 / 910 MB
RAM used at startup: 124248 / ~121 MB
Disk space (less LXDE system): 113524 / ~111 MB

Lilyterm

Lilyterm is a terminal emulator which uses GTK2.

LXDE with Lilyterm

Installation

pacman -S lilyterm (163840 / 160 KB)

Statistics

Memory usage after starting up LXDE and opening Lilyterm via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Lilyterm 0.9.9.2
MemTotal: 3625888 kb
MemFree: 3516284 kb
Buffers: 9748 kb
Cached: 62648 kb
Rootfs: 822928 / 804 MB
RAM used at startup: 109604 / ~107 MB
Disk space (less LXDE system): 5448 / ~5.3 MB

Lwt

Lwt is a terminal emulator which uses GTK2.

LXDE with Lwt

Installation

pacman -S lwt-20130625-1-i686.pkg.tar.xz (4380 / 4 KB)

Statistics

Memory usage after starting up LXDE and opening Lwt via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Lwt 20130625
MemTotal: 3625888 kb
MemFree: 3517248 kb
Buffers: 9776 kb
Cached: 62272 kb
Rootfs: 822204 / 803 MB
RAM used at startup: 108640 / ~106 MB
Disk space (less LXDE system): 4724 / ~4.6 MB

Lxterminal

Lxterminal is a terminal emulator which uses GTK2.

LXDE with Lxterminal

Installation

Included with LXDE

Statistics

Memory usage after starting up LXDE and opening Lxterminal via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Lxterminal 0.1.11
MemTotal: 3625888 kb
MemFree: 3515556 kb
Buffers: 9728 kb
Cached: 62020 kb
Rootfs: same as LXDE
RAM used at startup: 110332 / ~108 MB

Mlterm

Mlterm is a terminal emulator which uses GTK3.

LXDE with Mlterm

Installation

pacman -U mlterm-3.2.0-1-i686.pkg.tar.xz (622240 / 622 KB + 19 deps: 16404480 / 16 MB)

Statistics

Memory usage after starting up LXDE and opening Mlterm via the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Mlterm 3.2.0
MemTotal: 3625888 kb
MemFree: 3517600 kb
Buffers: 10120 kb
Cached: 61444 kb
Rootfs: 935600 / 914 MB
RAM used at startup: 108288 / ~106 MB
Disk space (less LXDE system): 118120 / ~115 MB

Mt

Mt is a terminal emulator which uses GTK2.

LXDE with Mt

Installation

pacman -U mt-.1-2-i686.pkg.tar.xz (4260 / 4 KB)

Statistics

Memory usage after starting up LXDE and opening Mt via run from the menu (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux LXDE Mt .1
MemTotal: 3625888 kb
MemFree: 3515324 kb
Buffers: 10504 kb
Cached: 61212 kb
Rootfs: 825676 / 807 MB
RAM used at startup: 110564 / ~108 MB
Disk space (less LXDE system): 8196 / ~8.0 MB

What’s next?

The next post will deal with the rest of the GTK+ terminal emulators which I got running.

Linux GUI toolkits

We’re going to examine 7 toolkits in just a minute after discussing how to deal with this topic. These 7 are:

Some people say that Linux is all about is choice. True or not: When it comes to toolkits, it’s usually the programmers who have to make a choice. They have to check if a toolkit provides all the features they want and if they feel comfortable with its syntax and so on. However this blog entry is not about recommendations for programmers (there’s probably enough material out there already).

From which perspective are we going to look at them, if not from a programmer’s? Simple! From the perspective of a distribution creator wannabe! 😉

Distributions and toolkits

For a distro creator things are much easier here – he could decide at will or even decide not to make a decision for one but support several (or all) available toolkits instead. There are reasons why this makes sense. Many modern systems combine for example Qt and GTK+ since the users often “mix” applications of both TKs. You like the well-known VLC? Then you have Qt on board. Using GIMP, too? Not without GTK+! Thanks to the theming ability, you usually won’t even notice that your default applications relay on different toolkits.

However there’s also a very good reason not to provide several toolkits by default: They all use up valuable system resources! In the planing especially for a light-weight distribution, it’s a very good idea to make a decision towards one standard toolkit and package default applications which use this particular one.

However it’s not as easy as that in this case. There are lighter and heavier toolskits. Of course the lighter ones lack several features that the others provide. But even more importantly for us: There are huge differences in the number of applications available for each TK! Unfortunately it’s the lightest TKs which have the lowest number of programs using them… So let’s take a closer look at this post’s topic!

Test criteria

As I said before, we won’t examine the TKs in their technical aspects (or distinguish between toolkit, development framework, etc). Of course things like FOX not supporting themes can be very relevant when deciding on the right standard toolkit for our distro. But that’s beyond the scope of this blog entry.

We’re just going look at the various TKs in terms of how “heavy” the are. To do this, we compare the amount of drive space they need, how long they take to compile and how many dependencies they have. The first is done with the Arch Linux packages for the particular TK and the rest on a fresh Gentoo VM (emulating a single core 2.66 GHz pc with 2 GB ram and compiling with -j1) with just X11 installed. There are however a few things which make our comparison a bit difficult – for that reason I’ll explain each toolkit on its own first and provide a table at the end of the post.

Qt4

I thought about including Qt3, too, for a moment. Why? Well, it would have made a nice comparison on how much heavier Qt4 is and besides that, Trinity DE still uses it. But Qt5 is already on its way and so I decided to discard it.

Qt4 is one colossus of a TK! The Arch package (qt-4.8.2-3-i686.pkg.tar.xz) is 21.0 MB in size and 80.4 MB uncompressed!

It’s so big that it was split into smaller packages on Gentoo (qt-script, qt-bearer, qt-sql, qt-xmlpatterns, qt-opengl, qt-core, qt-phonon, qt-test, qt-declarative, qt-demo, qt-mobility, qt-qt3support, qt-svg, qt-dbus, qt-multimedia, qt-webkit, qt-openvg, qt-assistand, qt-gui). 115 packages have to be compiled and installed and 386 MB downloaded from the net to do this! The source code for Qt alone (qt-everywhere-opensource-src-4.8.2.tar.gz) is 234 MB in size; the total compilation process takes 3:20:45 of which Qt alone takes 2:32:14!

GTK+3

GTK+3 is not actually a stand-alone TK but in fact extends and as such depends on the older GTK+2.

The Arch package (gtk3-3.2.3-3-i686.pkg.tar.xz) is 6.6 MB in size (together with GTK+2: 13.3 MB) and uncompressed it needs 51.5 MB (together with GTK+2: 106 MB).

Building it on Gentoo means compiling and installing 89 packages whose source code is 132 MB in size of which the GTK+3 source makes up 12 MB (together with GTK+2: 24.6 MB. Compiling takes 45:51 minutes of which 5:37 are for compiling GTK+3 (together with GTK+2: 11:27 minutes).

GTK+2

The Arch package for GTK+2 (gtk2-2.24.10-3-i686.pkg.tar.xz) is 6.7 MB in size and 54.4 MB uncompressed.

To install it on Gentoo, 88 packages have to be built and 120 MB of sources downloaded. GTK+2 source code makes up 12.6 MB of that. Compiling the whole thing takes 40:00 minutes and GTK+2 alone takes 5:50 minutes.

GNUstep

GNUstep, being based on the objective-c language, has the disadvantage that the whole GCC needs to be recompiled with OBJ-c enabled on Gentoo. This is of course a very big factor, but while I wanted to mention it, I’ll subtract the GCC recompile on the comparison.

GNUstep consists of several packages by default. The Arch packages (gnustep-back-0.22.0-3-i686.pkg.tar.xz, gnustep-base-1.24.0-3-i686.pkg.tar.xz, gnustep-gui-0.22.0-3-i686.pkg.tar.xz, gnustep-make-2.6.2-2-any.pkg.tar.xz) are together 3.9 MB in size and 16.7 MB uncompressed.

Building on Gentoo means installing 93 packages for which 206 MB of source code needs to be downloaded (including GCC recompile) or 92 packages, 141 MB in size (without GCC recompile). The packages (gnustep-base-1.24.0.tar.gz, gnustep-gui-0.22.0.tar.gz, gnustep-make-2.6.2.tar.gz, gnustep-back-0.22.0.tar.gz) are 7,0 MB in size. Compiling takes 1:27:13 (including GCC recompile), 43:51 minutes (without it) and 4:22 minutes for GNUstep alone.

FOX

The Arch package for FOX (fox-1.6.40-1-i686.pkg.tar.xz) is 3.9 MB in size and 13.8 MB uncompressed.

Building it on Gentoo means compiling 6 packages whose source is 5.0 MB in size of which FOX’s source code makes up 4.3 MB. Compiling it all takes 5:59 minutes and FOX alone takes 4:49 minutes.

OpenMotif

OpenMotif’s Arch package (openmotif-2.3.3-2-i686.pkg.tar.xz) is 3.3 MB in size and 10.3 MB uncompressed.

Installing it on Gentoo means building 4 packages for which 6.7 MB of source code has do be downloaded, 5.9 MB of source for OpenMotif alone. Building it takes 3:29 minutes while OpenMotif alone takes 2:58 minutes.

FLTK

FLTK (pronounced “fulltick”) is a very light toolkit. It’s Arch package (fltk-1.3.0-3-i686.pkg.tar.xz) is just 1.0 MB in size and uncompressed it only takes 4.7 MB of space.

To install it on Gentoo, 7 packages have to be built, which needs 7.2 MB of source code downloaded from the net. 4.0 MB of which is for FLTK source. Building only takes 2:42 mintes and for FLTK alone it’s as little as 1:04 minutes!

Comparison

Toolkit Arch size Gentoo Src size Build time (h:m:s)
FLTK 1.0 / 4.7 7 pkgs 7.2 / 4.0 0:02:42 / 0:01:04
OpenMotif 3.3 / 10.3 4 pkgs 6.7 / 5.9 0:03:29 / 0:02:58
FOX 3.9 / 13.8 6 pkgs 5.0 / 4.3 0:05:59 / 0:04:49
GNUstep* 3.9 / 16.7 92 pkgs 141 / 7 0:43:51 / 0:04:22
GTK+2 6.7 / 54.4 88 pkgs 120 / 12.6 0:40:00 / 0:05:50
GTK+3** 13.3 / 106 89 pkgs 132 / 24.6 0:45:51 / 0:11:27
Qt4 21.0 / 80.4 115 pkgs 386 / 234 3:20:45 / 2:32:14

All sizes in MB.
*) without recompiling GCC for OBJ-C support
**) Including GTK+2

Conclusion

The winner and most light-weight toolkit is easily FLTK. It has the smallest installed size, smallest source and shortest compilation time, both including dependencies and on its own. Only in the number of dependencies it’s beaten by OpenMotif and FOX which are quite light-weight in the other aspects, too. With GNUstep things become a lot more heavy and GTK+ or Qt are of course full-blown toolkits which provide about every feature you’d need but are also very bloated.

We’ll drop FOX and GNUstep from now on, since there’s no working desktop environment using them at the moment (There’s a project to create a FOX DE, but it seems to be inactive since 2005 and Ètoilè (GNUstep) is a mess right now) which makes them irrelevant for our purpose. There was of course some value in adding them to this comparison, though.

What’s next?

Before we go on with comparing TKs and DEs while running some standard applications somewhen next month, the next post will deal with creating a live-cd. This will be an essential task sooner or later and I also need it for “DDD”, one of Eerie’s sub-projects which was not yet revealed (don’t expect too much, though).