Developing cross platform program/game from ground up - part 4

Cross Platform development by standardization.
Because is a developer if your going to make program working different operating systems, you need a lot of know how about etch of operating systems, in order to support all operating systems.



The alternative is using cross platform development libraries.
First of all I'm going to talk about SDL and Allegro this two provides every thing you need to make games, the idea is that you have standard commands you can use to make sure that your game works on all operating systems they are ported to.
SDL
* Support Graphics 2D and 3D
* Handel display window/full screen window
* There events for Mouse/Keyboard/Joystick/ Multi-tosh.
* Audio 8bit and 16bit.
* Filesystem
* Threads
* Supports big and little endian cpu's
Allegro
* Support Graphics 2D and 3D
* Handel display window/full screen window
* There events for Mouse/Keyboard/Joystick/ Multi-tosh.
* Audio 8bit and 16bit.
* Filesystem
* Threads
* Supports big and little endian cpu's
So they are similar and provided the what you need to make games, some even make programs in this but, that's not a good idea, there are better cross platform libraries.

There is QT, GTK, MUI (Magic User Interface), Reaction.
  Linux Windows AROS AmigaOS4 MorphOS MacOSX Haiku/BeOS Score
QT yes yes no yes no yes yes 5
MUI no no yes
(Zune cone)
yes yes no no 2 (or 3)
Reaction no no no yes no no no 1
GTK yes yes yes
(Zune wrapper)
no no yes yes 5
Windows Forms yes
(mono)
yes no no no yes
(mono)
no 1 (or 3)
wxWidgets yes yes no no no yes no 3



Best score is 7 in this table, but no GUI system support all 7, so in other words GUI's are the tricky part when creating a cross platform application, the best GUI's to support is GTK and QT, then depending on what OS you wont to support and programming language you use MUI (Magic User Interface) or Windows Forms.
While no GUI support all the 7, the build system is what solve the problem, this how you can have different GUI's for different operating systems, you really only need to support two MUI & QT or GTK & MUI and all 7 operating systems are supported.
Different Linux distributions are listed here because they are just repackaged libs and programs, with different install process and package managements, I know some might disagree but lets keep this about cross platform development and not about what brand you put on your Linux distribution.
Anyway GUI and how things works is what makes operating systems unique to the users, if all operating systems behave the same there is not point having option to choose is there?