C++ – How to explain that writing universally cross-platform C++ code and shipping products for all OSes is not that easy

ccross platformdevelopment-process

Our company ships a range of desktop products for Windows and lots of Linux users complain on forums that we should have been written versions of our products for Linux years ago and the reason why we don't do that is

  • we're a greedy corporation
  • all our technical specialists are underqualified idiots

Our average product is something like 3 million lines of C++ code.

My and my colleagues analysis is the following:

  • writing cross-platform C++ code is not that easy
  • preparing a lot of distribution packages and maintaining them for all widespread versions of Linux takes time
  • our estimate is that Linux market is something like 5-15% of all users and those users will likely not want to pay for our effort

when this is brought up the response is again that we're greedy underqualified idiots and that when everything is done right all this is easy and painless.

How reasonable are our evaluations of the fact that writing cross-platform code and maintaining numerous ditribution packages takes lots of effort? Where can we find some easy yet detailed analysis with real life stories that show beyond the shadow of a doubt what amount of effort exactly it takes?

Best Answer

Keep in mind the majority of people are employees, and thus don't live in a world where they need to care about making a profit. They show up at work, do their thing, and go home, never really giving a thought to how the whole process works. And while very smart, a lot of techies are positively ignorant about business, and often blinded by dogma.

You are right, of course, making x-platform software of that scale is not a simple thing. Particularly when you arent a company that has many dozens of developers and millions of users. And its not just technical limitations. Its all about cost vs benefit. Yes, you could spend then next year porting the app to Linux (despite, as you note, it already being runable in WINE). Of course, that year of development time doesnt come free. And in the end, will net you maybe an additional 5-15% users (based on your estimate). Or you can take the same money/effort, and focus it into your Windows development as a new version, or put it all into marketing, and add 50% to your user base. Which sounds like the smart choice? (obviously the numbers need to be customized to your company, and the final outcome may favor porting).

I dont know if that will help persuade 'true believers', but its the smart business move. And if you dont make smart business moves, you're out of business. And then there wont be a Linux version for sure.

Related Topic