Friday, June 22, 2007

Buy High, Sell Low

Further on the discussion about porting to proprietary OS'

A recent experience of mine illustrates the point. Linux (and Unix) has a means of blocking on a device until there is something to read. Qt encapsulates this functionality in QSocketNotifier. Cool. If I open a serial port, I can be notified of incoming data. So I dutifully used QFile to open the port, and set up the notifier, then dented my desk wondering why it wouldn't work. Why didn't it work? Because Qt is cross platform, and the Other Supported OS' don't work that way.

In other words, I expended much time, inadvertently, supporting an OS that I have nothing in common with. The structure of my application became dictated by the vagaries of multiple OS'. I have studiously avoided learning anything about the win** api for the last 15 years or so, and have no intention of starting now.

Cross platform has it's benefits. Applications that take full advantage of the underlying services and features of a platform isn't one. Blood and treasure will be expended on getting the damn thing to run everywhere instead of running extremely well somewhere.


Comments:
Serial port and Qt? Just use QExtSerialPort
 
QExtSerialPort illustrates my point exactly. Since it is cross platform, you can't put a qsocketnotifier on the file descriptor.

Derek
 
Post a Comment

Subscribe to Post Comments [Atom]



Links to this post:

Create a Link



<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]