So, you are a Tech Giant. At least 1% of the world's population uses your devices or software, and at least 10% of them (maybe more) know your name. Windows, and possibly Macintosh users get your most stellar support.
...and then there is this thing called Linux. Ah, the good old oddball. The "developers-only", enthusiast-breeding, too-many-flavours-to-target Linux. Yes, that strange, little known operating system that hardly anyone, save for many of the world's schools, governments, and millions of average Joes and Janes, have even heard of.
What do you do with such a novelty?
Here are the usual options:
- I know! Ignore it! (That should work!)
- Hmm... maybe if we stick a half-baked Qt application at it, it and its users will be happy.
- Claim it is inherently broken and tell the users to get a real operating system. (All while using it internally for your servers, development environment, recreational platform, mobile OS, etc).
- Oh dear, we must rewrite everything from scratch! What to do? What to do?
- Poke an outdated, undocumented source code and binary blob combo at them in a tarball, that should shut them up.
- Release the kraken! Er, documentation.
(Let them handle it themselves).
Let me just say before we go any further, don't be that company. If you are, change is possible.
What's worse, is the way how marketing is handled.
How many times have we seen this:
- Start developing in Xserver, OpenGL, Some-alien-script, Shattered Cuniform Tablet, etc... with our cutting edge drivers!
(I just want to run Unity or Pantheon and maybe play a few 3D games, thank you).
- Our application uses Alib version 10.0.1.2.3.6.8, Randlib version 184.108.40.206, YetAnotherLibYouNeverKnewExisted 220.127.116.11.0.1 - make sure you have them installed.
(The package manager could handle all of this quite ably if we simply use the standard package formats).
- Linux version coming soon!
(Just wait another unpredictable number of years, we're not really actually working on it).
- Here is our (woefully broken) Linux version (which we will never update... ever)!
- Unneccessary mention of penguins, unusable application or driver.
And finally, the most frustrating problem of all.
The never ending, never featureful, eternal "beta". Or Pre-Alpha. Or abandonware.
The source of all of these issues...
can be put down to one thing.
What motivates you to create Linux software/hardware drivers?
- Is it the good old addage "everybody's doing it"? I sure hope not. Of course, that would be fine, if "everybody" were doing it, and doing it well.
- Is it that you've suddenly realized that Linux does more than just "exist", and don't want to miss out on a little extra profit? Nothing wrong with that, except you should learn why Linux is successful before diving in.
- Or is it that you want that small subset of very vocal users on your feedback system to finally just shut up!? :)
What should motivate you, is:
- Your humanity. Would you really want to know that someone can't reach a loved one because your application just doesn't work (Skype, I'm looking SQUARELY at you).
- A vision of the future.
With Linux, you control your future. You control your success. You get to choose just how successful you want to be. If you put in the work, your product could be twice its worth. Or it could be a complete failure - but, that ball is completely in your court, if you choose to go with Linux.
- Common courtesy. This requires no explanation.
- Developer/maker culture.
Just think, almost every major player in the game started out pretty much the same. You were a tinkerer and an explorer once, weren't you? So why stifle the opportunities of someone else?
And a finally, word to the unwise (for example, Google... hello!), don't release a service and then lie that you will support all the major platforms when you know that you won't. Just be honest.