So here goes me trying to be smart again...
I've not been using linux that horribly long, only since about 2005 for my default OS of choice, but I've been messing around with it since 2003. I realize I'm pretty new in linux land, so my opinions may be off. I mean no harm. I am a programmer, and CS major, so I do understand some of the technical implications for what I'm about to speak about.
Anyway, I do feel that it aught to be easier for 3rd parties to build software for linux. I love how linux is currently, but as already mentioned, does definitely have some issues as well for some purposes. I do see packaging and dependencies being a major reason why we can't get 3rd parties enthusiastic about desktop linux. Here's how I think this could be solved:
Firstly, I think one thing MS has done right, is the win32 api. I'm by no means saying it's perfect, it's not...not close. But the concept is good, IMHO. Look at it like this. Right now, on any desktop linux installation, you can expect to see the common GNU tools. Sure, you will have many different versions of some tools on different distros, but you know you will have some gnu tools. Also, you know that for a modern desktop, you should be able to build against the 2.6 (or 3.0) kernel, and not have issues (hopefully). Then we have all this distro fragmentation. I've used almost all of the major distros at one time or another I think. I get that people think things need to be done different, but here's what I propose. Why can't a group of the linux desktop community build a base Linux Desktop Framework (LDF) and api to run off of. I'm talking make members from all major distros get together and say ok, so let's build this set of libraries and tools, and call it the Linux Desktop Framework (LDF). In the next/first version of the framework, let's target these specific versions of libraries and tools, (sdl, gnu tools, asla, pulseaudio, etc...) and also build an API for working with that framework. Every so often (a year, 6 months, whatever) a new LDF release comes out, and at most a vendor might have to target maybe 2-3 versions of the api and framework (depending on release cycle), to get all his boilerplate stuff working good and compatible. It could work much like building against gnome or kde, but at a lower level. In fact, you could have gnome and kde (or whatever DE you choose) target these LDF's too.
It seems crazy at first, but I've actually put some thought into this. People I'm sure will answer with "but then we can't choose a library incompatible with LDF and even have a usable desktop". Well no kidding...but that's the case already. You can always have libraries in addition to the ones included with LDF, or even maybe have multiple versions of LDF installed. Point is, I think it would be beneficial to have a standard linux desktop base, and iterate on that, usable on all major distros. Now, distros could always package different libraries in addition, in order to have a competitive edge, or do things differently in the rest of the userland, but would always target a specific version of LDF to have compatibility with. Basically, I think desktop linux needs to agree on a base for a userland, agree to work on it collectively, and make sure to keep it as API compatible as possible going forward (like MS tries to), and iterate it just like we do for distros, however, it would be the one common thing you could always expect, besides just a 2.6 (or 3.x) kernel.
What problems does this actually solve? Well, you no longer have people with up to date distros having compatibility issues as often with software released by third parties, because they should be at least close to the same version of LDF, which should be using an almost completely compatible version of the API as the game/software was written against. The less things vendors have to worry about, the more likely they will be to port/write software for the platform.
I know what I've said is a complete pipe dream, and flies in the face of so much of what traditional linux development has been about. I understand that. However, if desktop linux is ever going to attract 3rd parties really well, in my opinion, that's what would best benefit it in that regard. I do understand it would probably KILL the way some/many people prefer linux to work.
I've not been using linux that horribly long, only since about 2005 for my default OS of choice, but I've been messing around with it since 2003. I realize I'm pretty new in linux land, so my opinions may be off. I mean no harm. I am a programmer, and CS major, so I do understand some of the technical implications for what I'm about to speak about.
Anyway, I do feel that it aught to be easier for 3rd parties to build software for linux. I love how linux is currently, but as already mentioned, does definitely have some issues as well for some purposes. I do see packaging and dependencies being a major reason why we can't get 3rd parties enthusiastic about desktop linux. Here's how I think this could be solved:
Firstly, I think one thing MS has done right, is the win32 api. I'm by no means saying it's perfect, it's not...not close. But the concept is good, IMHO. Look at it like this. Right now, on any desktop linux installation, you can expect to see the common GNU tools. Sure, you will have many different versions of some tools on different distros, but you know you will have some gnu tools. Also, you know that for a modern desktop, you should be able to build against the 2.6 (or 3.0) kernel, and not have issues (hopefully). Then we have all this distro fragmentation. I've used almost all of the major distros at one time or another I think. I get that people think things need to be done different, but here's what I propose. Why can't a group of the linux desktop community build a base Linux Desktop Framework (LDF) and api to run off of. I'm talking make members from all major distros get together and say ok, so let's build this set of libraries and tools, and call it the Linux Desktop Framework (LDF). In the next/first version of the framework, let's target these specific versions of libraries and tools, (sdl, gnu tools, asla, pulseaudio, etc...) and also build an API for working with that framework. Every so often (a year, 6 months, whatever) a new LDF release comes out, and at most a vendor might have to target maybe 2-3 versions of the api and framework (depending on release cycle), to get all his boilerplate stuff working good and compatible. It could work much like building against gnome or kde, but at a lower level. In fact, you could have gnome and kde (or whatever DE you choose) target these LDF's too.
It seems crazy at first, but I've actually put some thought into this. People I'm sure will answer with "but then we can't choose a library incompatible with LDF and even have a usable desktop". Well no kidding...but that's the case already. You can always have libraries in addition to the ones included with LDF, or even maybe have multiple versions of LDF installed. Point is, I think it would be beneficial to have a standard linux desktop base, and iterate on that, usable on all major distros. Now, distros could always package different libraries in addition, in order to have a competitive edge, or do things differently in the rest of the userland, but would always target a specific version of LDF to have compatibility with. Basically, I think desktop linux needs to agree on a base for a userland, agree to work on it collectively, and make sure to keep it as API compatible as possible going forward (like MS tries to), and iterate it just like we do for distros, however, it would be the one common thing you could always expect, besides just a 2.6 (or 3.x) kernel.
What problems does this actually solve? Well, you no longer have people with up to date distros having compatibility issues as often with software released by third parties, because they should be at least close to the same version of LDF, which should be using an almost completely compatible version of the API as the game/software was written against. The less things vendors have to worry about, the more likely they will be to port/write software for the platform.
I know what I've said is a complete pipe dream, and flies in the face of so much of what traditional linux development has been about. I understand that. However, if desktop linux is ever going to attract 3rd parties really well, in my opinion, that's what would best benefit it in that regard. I do understand it would probably KILL the way some/many people prefer linux to work.
Comment