Porkepix: And that's a bad idea. Packages managers are a really really great thing missing on other OSs. On Mac OS, there are homebrew/macport/fink to fix this missing feature. But it's easier as it still an Unix-like OS. Windows have nothing of this and that's really missing. So much space consuming to copy every libs and so on…
And guess what? I can work either with Linux or Mac OS (don't care of which one), but no way now to work on Windows. Too much problems, too much missing features…
shaddim: No, they are only a good idea for the core part, the OS. To use package management to glue everything together (OS and apps) is conceptually very wrong, in the words of
debian founder Ian Murdock:
"moving everything into the distribution is not a very good option. Remember that one of the key tenets of open source is decentralization, so if the only solution is to centralize everything, there’s something fundamentally wrong with this picture." Also Ingo Molnar, kernel developer, recently
wrote an essay with the same focus:
"Desktop Linux distributions are trying to "own" 20 thousand application packages consisting of over a billion lines of code and have created parallel, mostly closed ecosystems around them. The typical update latency for an app is weeks for security fixes (sometimes months) and months (sometimes years) for major features. They are centrally planned, hierarchical organizations instead of distributed, democratic free societies." It depends on which distro are you talking about. They just all have different policies. For example, Ubuntu's ppa, Archlinux's AUR and so on.
You'll never find an OS more up-to-date than Archlinux. Updates are present at least in AUR at a maximum of 24H after their release.
Btw, the packet manager don't glue everything. Peoples still put packets inside because they find it more practical and don't want to bother about creating and managing their own repository. But some companies did it, for example Opera browser offer their own repository for debian (
http://deb.opera.com/). More companies or peoples can just do it, and hence don't be linked and glued to distro/system.
Porkepix: If it was right, GOG would have no reason to exist. They work on compatibility on more reacent Windows OSs…because it doesn't work for a lot of them. And…have you even tried for Linux or is it just something you state? I'm really curious about that…
Stuck in the 70s? Right, Linux kernel was first released in 1991, but why not…
shaddim: I meant the outdated architecture behind, unix. It was a historical mistake to built a free and open source DESKTOP OS after the model of a (outdated) server OS. As the unix design is also older than the invention of the PC conecpt several innovations which were innovated with the PC are still missing in linux, for instance the clear separation beween OS and apps.
See upside. Repositories are centralized for user, but you have no obligation to centralize it on server side. The package manager centralize every repositories you need, but can use itself a very large bunch of repositories (tenths, hundreds…)
Porkepix: POSIX still very good standard and that's not for nothing if currently I still learn it at University.
win32 is old the same way, but documentation is really less useful, and same about usability.
Be curious. Try for example to create a little threaded program with
- posix threads
- Boost if you use C++ instead of C.
- win32
Then, tell me which one do you find the better to use, and which one had the best documentation ;)
About Direct X? OpenGL, SDL and all part on which the Khronos Group are working on are a perfect alternative.
You now have Unity 3D too. And probably others that I don't know as it's not my speciality at all.
shaddim: I indeed used pthreads some years ago for cross platform development.The linux port caused me no problem beside a performance one, the thread creation overhead on linux was way bigger than on windows. But the pthread lib provides no easy thread pool/ thread re-use possibility to compensate for that. I had to implement it myself, was a pain in the ass. But this is only one example: another one is the linux audio infrastructure: even Pulse audio creator
Poettering agreed that it is hard to know which library to use, another example might be the fragile compatibility of the glibc... and so on. Such issues are non existing on real desktop OSes which are designed as coherent platforms.
I had for my part to use threads for a project. I tried POSIX and BOOST threads. They was working fine, with very good documentation, portability and pretty much easy to use. But then my teacher required me to use win32's ones. The documentation was old (it was 4 years ago…he gave me a documentation not updated since Windows 95), very confusing and pretty hard to use…and worst of all, not portable at all.
It's even not easy to find precise documentation on Internet because all of the win32 API is just a huge confusing piece of lots of things, and find a good documentation for everything is just a pain in the ass (would like to explain it in an other way, but vocabulary is a bit missing ;( ). On my side, I just RTFM : open my terminal, man pthread_create or what else, and that's fine.
The choice is very easy to do for my part.