For the past few years a lot of PM's that I've talked to want to create applications that are cross-platform; meaning they run on Linux as well as Windows.  One of the things they complain about it how MS enters in some proprietary code into languages like C++ so if they're going to use C++ in their project they'll need to make sure to write ANSI C++.  If they use JAVA, same thing, have to write code that works on both, no taking advantage of OS dependant functions. 

I don't get it.

Lemme get this straight, you know the goal of the software: you've drawn out tons of UML diagrams, done tons o' swim-lanes, got the requirements...but you can't choose an OS to create the application for?  It would seem for marketing purposes that you go with a single platform.  Make it the damn best you can using proprietary functions and then complete the project.  You'll have your product completed now, and by george it runs better (faster, cooler graphics) because you used them.  Now say Joe Blow company guy comes along and wants your program in a different OS.  No problem!  We'll need X more dollars and we'll get it done.  The fact of life is, the MS owns the business market.  Shoot, I see all the benefits of running Linux workstations and servers, but look around you.  Windows is everywhere.  If I was going to write a huge enterprise level program, I'd write it for Windows first.  Then if there was a need, I'd write a Linux one. 

Take for instance a computer game/simulation type program.  I'd probably write the sucker using C++ (and maybe some C#? - more on that in the next post) using DirectX with a SQL Server backend.  Wait a second, thats a bunch of MS products.  Yeah?  So what?  That's probably what the client is running...lets get real here.  SQL Server could be placed on it's own machine, and then the app could be re-written if it had to just going over to GL and switching the proprietary functions over to their Linux counterparts.  Hopefully I used abstraction and all that so maybe all my propriatary functions are held in a wrapper using the provider pattern...

What would it take, a few weeks to convert?  Whooptee do0 dooo