(i posted this letter to some other forums too.)
This is an open letter to GNU/Linux/Open Source application developers, who developing Desktop Linux operating systems.
First, i am sorry for my bad english.
Second, i must clarify, i like Linux.
Third, i am talking about the Desktop Linux ONLY.
Sometimes, i read articles, they saying the biggest problem of (desktop) linux is that multinational corporations forbids handling some necessary source codes. Sometimes, i read articles, how big problem if a software, or a game is not being ported to linux, even it would be easilly possible. But i see no articles from one thing: I think, the responsible for the linux problems is the linux community itself.
like…
WE ARE THE HARDCORE LINUX COMMUNITY: WE DECIDE, WHAT IS GOOD AND WHAT IS BAD FOR AN USER.
No. The life works not like this. Desktop Linux is made for the peoples. And the most of the peoples does not even understand computers. And does not even want. Why they should? If somebody is a car repairer, a welder, a house-wife, or a cook, why would want to understand, how the computers works? How much peoples care about the computer sciences? Well, not too lot. Dunno, skilled computer users and programmers is around 0.5-5% of the total population? Of course this eczact number is not important, the problem that just most of the peoples just simply does not even interested in computers.
But the desktop operating systems are meant for them. So these peoples are the end-users, and they using they computers to the folowing thigs: browsing internet, browsing social networks, e-mailing, using IM messengers, playing embedded or standard-alone games, typing documents. Etc.
The rules are created by the users. And creators must satisfy this. Its not the developers job to decide, what is a good or a bad user behavior. Developer must do only one thing: satisfy the requirements.
This requirements are the folowing:
-computer should start and stop the most fastest way
-computer should able to run the required applications without problems.
-user should be able to easy download, install, delete any kind of documents, applications, images, etc…
-Computer should be able to work together with all hardware
-User should be able to handle the computer witout professional IT knowledge
-Click click, click, clickclick, roll roll roll, click, roll, click
The operating system is not important. Nobody cares abould the work of an operating system. The operating systems job is to made connection beethwen the user, the programs, and the hardware. User does not interested in the architecture of the operating system. If user does not want some feature from an operating system, (s)he does not like to be forced to use it. For an example, if a user does not want a multi-user, password protected system, he will feel that the operating system forces him to do something, wich taking his time.
**ARROGANCE
**This community is the most arrogant community i ever saw. They think, they can decide, what is good or what is bad for an user. Here is the password thing. How you dare to calim that everybody should be logged in with an user name with password? You think, becouse you is an IT professional, you can decide, how other peoples should use they own computers? You have NO RIGHT to decide, how a user should use his own computer. You have the right to put this feature in: IF somebody want multi-login interface (checks this at the installer) then give him this secure interface. If not (not checks this box) then everyting just should load as root, even if you think, this
is unsecure. Becouse nobody cares, what do you think.
USER-FRIENDLY
Linux is not user friendly. Even if a colorfull penguin waves at the opening screen, that does not means that the system is user friendly. With modern operative systems, to incrase/decrase the volume, you press the volume buttons on your multimedia keyboard. Sometimes, linux cant even autodetect even this. ,Go to this file, and modify this line, and then go to’’ CMON WTF?
You put in your pendrive or HDD… if you got a bad day, you will not even see it in the /dev/, or ask an IT-man who opens a file, writes a line here and here to mount it at boot…
Hey guys! Look the date! Its 2011! Good morning! You have sleeped over the past 30 year, or what?
Millions of other problems like this…
Lets see, the user want to install a software. The user founds this software on the internet, or googles it: LINUX CAT DRESSER.
Oh so you gived some built in programs with the operating system? Shame, that 90% of this package-database is containing necessarry libraries and system applets, whose are not even installed by default for some reason. And the other packages are just simply unusable for the user, so nobody will use this package-set. And the necessary, basic-programs in linux sometimes not even get installed by default, and the community caliming, that this is feature, that you can add this packages later. Congratulations.
…Okay, (s)he found the software, downloads it. Its a .tar.gz. He clicks
two on the catdresser.tar.gz. And nothing happends. And he probably just call somebody to uninstall linux forever. You think, its user friendly to unzip something, then open a console window, type 3 command, and wait for 10 minute for the processes to be completed? Probably you have alreday noticed, there is 2011. But i personally would not
call this user friendly even in 1990. And i am not even told, that the compilation process will mostly fail becouse of the lack of the dependencies. Becouse even a cat dresser has brutal dependencies.
BAD API
In linux, the left hand does not know, what the right hand does. Linux is a library collection, wich lacks the integrity. The most of these libraries are coming as shared object, and versions changing rapidly. This libraries linking to other libraries, causing a very big compatibility chain. Just look at the user/lib directory. Whoa.
If cat dresser needs libsomething, and libsomething is not present, user must install libsomething somehow. Of course, libsomething is not an important library, just the developer was too lazy to code some very basic feature by hand. Like, he was lazy to add some matrix multiplication, so he links to a library wich contain these codes. Maybee the computer contains an old version from this library. Maybee 10-15 software or other library alreday depending on this library. Maybee, if you change this library to a newer version, your computer will not even able to boot anymore.
Becouse cat dresser needed it. Sadly, cad dresser need additional, 40-50 library to be used. Suddenly it can happend that the computer lacks 10 from this librarys. Suddenly, thise libraries alreday linking to other libraries wich are not installed. Let me show, how this looks in an user friendly operating system, with good API-s: clicklick, finish, click.
INCOMPATIBLITY, AND THE TOTAL LACK OF SUPPORT
In linux, there is much more compatibility problems beyond the library-problem also. Lets see an oldcomputer: A user got an old computer, and linux somehow does not boots on it. So the user just downloads some older linux. Oops, old linux does not even able to run the new linux applications, becouse the new applications depending on new libraries. But you cant install newer libraries, becouse these new libraries also needing newer libraries to be presend. So you maybee must get hundreds of new libraries, and chancing to newer version kill some necessary programs in your old linux, or the whole operating system. Your library installing chain maybee would be so long, that you even
must update your kernel: wich is does not runs on your computer, this is why you tryed the old version.
Sometimes, even your older hardwares are not supported any longer by the newer version of the operating system. The ultimate answer of the community: BUY A NEW COMPUTER. Sometimes, if you got a new computer, even booting the linux causes crash for some reason. The ultimate answer of the community: wait for new version, or BUY AN OLDER COMPUTER. For example, i got an old Seagate HDD. New kernels says block-not-found, errors, etc, and HDD can not even mounted. So i must use older kernel: wich is not supports my USB cable modem. Even if you got a new or an older computer, the compatibility of the linux miserable. And you are forced to use the newest operative system, becouse newest programs and services depending on it.
For example, if somebody is a windows user, simply can use Win7, Vista, XP, or sometimes even Win2000, almost all program will work on of them all, even if XP is now 10 year old. Under Linux, sometimes you get serious compatibility issues even when trying to use a 2-3 year old system.
IGNORANCE
Linux community is ignores the requirements of the users, but also ignores the requirements of the developers. Developers need stable API-s, becouse if they want to create a trustable application with long life-cycle, they need API’s wichs specifications will not be changed in every year. And if somebody found bugs in this libraries,
the bug will be removed. For example, i have found a bug in the freeglut (wich is an old library for windowing and imput for games). Its a very wide-spread library. And i have found another. And another… And i switched to new version. And i have found tons of other bugs. I have write a bug-report from the API, and have sent it to the leader developer. This was at last year. I do not even got answer on this. Now they even removed joystick support. They say, joystick support is deprecated. This is why they complitely skipped it in the newer version. These developers developing an input API for GAMES. And they think, they not needing joystick support. Are this peoples even saw
a computer game before? Ironically, i was googled, how to write a joystick support. Reverse engineering they code was taken 3-4 hours. And the code is ~30 line long. And the leader developers of this very important library was not able to write it.
ENEMIES
GPL license is our friend. Closed source is our enemy. Who are not our friend, is enemy. Told by Kádár János and the other hungarian communist leaders, before they executed 400 anti-communist prisoner and watched the escape of 100000 ,traitors’'from the contry. That system collapsed. Let me tell a beter ideology for you: Who are not our
enemy, is our friend. Linux need serious, commercial applications. If peoples had no chance to sell they products, they will be not interested in it. Ballmer once singed: developers, developers, developers. Yeah, this is what Linux also needs. Applications. And applications are written by the program developers. Linux community
is crying: oh dear god, why we got so low number of corporations, who creating softwares to linux? And if somebody appears, they yelling: OH WHY IS THIS CLOSED SOURCE?!?!?!? YOU DONT KNOW THE RULES OF THE OPENSOURCE, YOU DONT
FEEL THE BEAUTINESS OF OUR GREAT AND FAMOUS COMMINITY!!!444524524 YOUR SOFTWARE IS NOT TRUSTABLE NOW SO I WILL HURRHURRHURR
C’mon, without commercial appls, linux will stay always at this level. Some situations, a software must be opensourced. Like, the parts of the kernel must be opensourced. The most important, default applications in the OS must be opensourced. Like a calculator app should be opensourced. But except from this very few case, if somebody made a good software, he would be very crazy if he release the source code under GPL. If he got a bit brain, he will keep the code closed, and start to sell the application. So the most serious softwares are closed source, and becouse the linux community chases this developers away, linux starves from the lack of the applications. Believe me, GPL applications will never able to competite with professional applications. The dependencies of a closed application is also a bigger problem, becouse the compatibility with the system and common libraries must be perfect at binary level. If these binaries changing rapidly, that makes this difficult.
LACK OF THE INNOVATION
Linux lacks the real innovation, becouse the innovation limited only for the visible things. Sometimes, not even the visible ones. The structure of the linux is really bad. What a driver do in the kernel? Okay, hdd handling must be in kernel, usb handling must be in kernel, some basic video displaying abilityes must be in kernel. And nothing
more. Every other thing must be arrive as external, installable module. Some drivers must be not even loaded with the kernel. Why is a printer driver is loading with the kernel? Why is a webcamera being mounted with the kernel?
Why should write poems from every screw at the background while the booting procedure happens? Why linux community lie that Linux loads faster than windows, while in reality the booting of a desktop linux took 2-5 minutes on a generic computer? Why X cant even do alpha channel properly? Why a screenshot creation takes more CPU cycles than mounting a hard drive? Why calim that linux looks much better, while most of the built-in base applications looks and works like some bad prealpha Windows 3.1 clones? Why this problems exist since 14 years ago?
I think i have described my oppinions.
So here is my suggestions:
-Current linux architecture must be throwed out.
-Drivers, libraries must be clearly separated from the operative system and each other.
-95% of the libraries are unnecessary. Unify them. AND PLEASE DO NOT CREATE MORE. THANK YOU.
-Seriously. Kill this dependency problem.
-Most of linux softwares looks ugly. Its does not matter if it is good or bad, nobody will use it if it looks like some
2$ application for Windows 95.
-Create generic installer wizzards
-Binaries need icons. gcc blablabla -i mycuteicon.png
-If something must be done with shell, create GUI for it
-Unified System Control Panels
-Unified, complitely rewriten graphics system (X, kde, gnome, etc can go to the trash, of course must keep the compatibility,
something is alreday on way if i remember good)
-Compatibility (at least with different versions)
-Automatism
Greetings
Geri, Inlaid software developer, business man, game developer, driver developer, linux-fan
this open letter has also signed by:
TomX, developer, web-developer
Thomas V., website builder