Linked by Thom Holwerda on Tue 27th Oct 2009 11:02 UTC
Thread beginning with comment 391432
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
I partially agree with you, but only when it makes sense to re-implement the missing 2%.
Just for the sake of the example, lets say your application makes heavy use of OLE/COM in Windows. What would you do in another platforms, implement it from scratch? What for? No other application would understand it.
Or your application makes heavy use of the BeOS filesystem metadata. How are you going to provide similiar funcionality in another platforms?
Sometimes the 2% are just too much effort.
Just for the sake of the example, lets say your application makes heavy use of OLE/COM in Windows. What would you do in another platforms, implement it from scratch? What for? No other application would understand it.
Well what are we using COM for? To allow other applications to control/embed ours? Then we can use Apple events or whatever the equivalent is on OSX, and dbus on Linux.
If we're embedding some OLE app into ours, then that might be a feature we can only offer on Windows. Not the end of the world.
Or your application makes heavy use of the BeOS filesystem metadata. How are you going to provide similiar funcionality in another platforms?
Fake it with an internal database. Whatever, this is completely beside the point. If you didn't use a cross-platform toolkit, you'd be implementing 100% of the functionality on each platform, including that difficult 2%.
Of course there are certain apps that are so dependent on the unique features of a certain platform that they make no sense on others, but that is the extreme minority, and not the subject of this discussion. The whole point here is how to make cross platform apps with minimum effort, while still fitting in on each platform.






Member since:
2005-09-21
This is of course an experience that cannot be made multiplatform.
Sometimes you can only target a specific platform.
I just have to correct this, because for some reason this is a mistake I see so often from people when talking about cross-platform toolkits (most recently Google made this mistake).
Just because you use Qt doesn't mean you can't put in platform specific stuff. I have apps that run on Windows, Mac, and Linux using Qt. 98% of the code is cross platform using Qt. On Windows there is platform-specific code to do things like speech synthesis and some specific Windows behaviour that's not in Qt. On Mac I have mac-specific code to integrate into system services like spell checking.
Qt doesn't stop you from adding platform specific code to integrate into the environment. If a cross-platform toolkit doesn't provide 100% of people's needs, they seem to be inclined to throw the baby out with the bathwater and just start from scratch. We'll I'd much rather share 98% of my code between platforms than rewrite the UI on every single one.