From: Patrick Finnegan <pat at
computer-refuge.org>
On Saturday 11 August 2007 17:55, Roger Holmes wrote:
Anyway, do things like QuickTime, OpenGL and
Quesa exist on Linux?
QT: xine, mplayer. Both are way more compatible with more formats
than
Quicktime is. QT and Window Media Player don't come close to
supporting all the variants of just MPEG-4, that xine/mplayer do.
I see. Thanks.
OpenGL: It's called the same thing on MacOS, Windows, Linux, and every
other UNIX. There's lots of high-performance graphics work that gets
done on Linux boxes with nVidia cards.
I understand that 'Open' in this context does not mean open source,
just an open specification. Apple, Microsoft and presumably the Linux
volunteers had to spend a lot of time writing their own versions. I
also understand that Microsoft's version is getting left behind and
may be axed at any time. Maybe I am out of date on this though as we
don't currently have a windows versions of our 3D products, only the
2D ones.
According to Quesa's website, "Quesa currently supports Mac OS 8/9,
Mac
OS X, Linux, and Windows."
Yes I should have known that, sorry.
It would take me time I do not have (and human
memory) to keep up
with what is and is not in yet another operating system. Apple
spends a lot of money keeping developers like me up to date with
their developments, I presume nothing similar is done with Linux.
What spare time I have is more enjoyably spent of classic cars and
classic computers.
I don't understand what to make of this. Basic OS API features
tend to
change slowly... and if you want to keep track of GUI or other random
library/toolkit updates, just pay general attention to the mailing
lists they have, download new versions as the come out, and see if
your
code still compiles against them.
Speed is relative. If you have a million lines of code to keep up to
date and sales revenues only allow you to employ yourself and one
other programmer, then the speed of development is not sufficient to
keep up with API, OS and processor changes AND add the features,
which you need to stay competitive, to your programs. One of our
programs, which was first issued soon after the first Macintosh
shipped, has been rewritten from Pascal and assembler into C/C++, its
basic drawing engine has been changed from using QuickDraw to using
Quartz, the user interface has been partially rewritten to use Quartz/
Carbon and look like Aqua, but a lot more needs to be done. The
printing side has been updated to use use the OS-X printing model
rather than the OS1 to OS9 model. The clipboard handling has been
changed many times and needs to be changed again to support PDF input
rather than PICT vector format. Its been moved from 68K to PowerPC
and now to Intel. Its been moved from development on Lisa to MPW on
Mac, to CodeWarrior and now onto X-Code. Debugging has moved from 2
machine debugger to MacsBug to CodeWarrior's debugger to GDB under X-
Code, and not always for the better. GDB under X-Code is still not as
good as CodeWarrior, it fails to show some variables, cannot display
dynamic arrays except as a hex memory dump and cannot single shot
over some C++ constructors.
Another program has been updated from using QuickDraw3D to using
Quesa, from using PowerPC to Intel (with lots of endian problems),
from using PowerPlant under CodeWarrior to using Cocoa
under X-Code.
Its been partially re-coded from C++ to Objective C. We've only
re-
issued two thirds of the program, dropping the less useful features
until (if ever) we get the time to do the more exotic parts. Its been
changed from the classic event handling system to Carbon events. Its
been changed from using a single processor to using multiple
processors in critical parts. From using resources and Resourcerer to
using NIB files with Interface Builder (despite that, in my opinion,
Interface Builder is still incomplete and that MacOS is still not as
well documented as OS9).
I could go on, and that's just two programs of all the ones we ship.
There's been some issues with newer versions of
GCC breaking older
code,
but in general, if that happens, its because your code was written
poorly and not to the language specifications.
It been moving TO GCC that is one of the problems. It does not allow
temporary variables which need to be constructed, to then be passed
as procedure parameters. Debugging of anything using templates is
very confusing (presumably because the compiler does not output the
correct source code references), displaying source code which has
nothing at all to what its actually executing so that you have to
look at the object code, which is Intel code which is another
learning curve I need to master to add to my repertoire of a dozen or
so machine codes. Any recommendations of a good book on the latest
Intel processor instruction set? GCC does not even generate very
efficient object code when optimisations are all turned on.
Worst case, you can just install whatever version of
the libraries
your
app uses along with the app in some out of the way place, and ignore
changes to the system libraries, GUI, etc, pretty trivially.
Rather difficult when the libraries are in PowerPC code and you're
running on Intel, and when the libraries make OS calls which are no
longer available.