Application Developer or O/S Developer ?

Just bringing a set of comments up to the main blog…

There’s an interesting discussion going on against the “Is Linux Fat” post, someone (no-name) posted the following…

Microsoft solutions empower Microsoft.
Opensource solutions empower the developer.

That got me thinking about the difference between an O/S developer and an application developer – as an desktop/embedded application developer I want to develop an application or service that runs on my PC/Device and in some way adds value to the PC/Device, whether this is the UI for an ATM machine, or the UI on a multi-lingual Travel Kiosk, or a real-time command and control application in a robotics system doesn’t much matter.

Surely the point is that an application developer cares about having great tools, great documentation, code samples that show how to call the API’s, a working debugger, and bells/whistles like intellisense, or the Whole Tomato plug-in for eMbedded Visual C++ or Visual Studio .NET 2003, right ?

I want to be abstracted from the underlying O/S and hardware as much as possible (which is why managed application development in C# or VB.NET is really, really cool). Here’s an example.

I want to send 5 bytes of data out of the serial port, I call the following API’s…




When writing and testing this code I don’t need to know or understand how the underlying hardware or device driver is implemented, is this a UART or FPGA, who knows… (who cares!).

Developers for the most part are divided into O/S developers, and application developers, the O/S guys are responsible for getting the o/s running on hardware, this is where bootloaders, device drivers, and access to O/S source is useful. Application developers on the other hand should be adding value to the finished device by writing a shell, or user mode application.

– Mike

Comments (2)

  1. Mike Dimmick says:

    A tenet of the FOSS (free/open source software) worldview is that an application developed _for_ Windows only benefits Microsoft. Or, indeed, that an application developed for any commercial platform only benefits the platform vendor.

    This belief can be traced through the common belief that since MS owns the platform, they can add hidden APIs that their applications benefit from, and therefore MS’ own applications will work better than competitors.

    In fact MS applications’ lead can largely be traced to greater attention to detail and good implementation of features – in addition, of course, to compatibility with previous versions of the same applications, and with selected competitors. The FOSSer doesn’t wish to see this or is incapable of understanding the difference between hacking together a tool for their own use and producing a whole productivity platform like Office.

  2. Mike says:

    How can an application developed for a platform only benefit the platform developer? – surely the application developer also benefits from developing the application or service – if the platform vendor is the only party that benefits why then is there such a large community of companies developing hardware and software solutions to add value to operating systems ? – The platform vendor and the application developer both benefit, this is called "Shared Success".

    – Mike