Re: OTCreateSystemTask() Replacement?
Re: OTCreateSystemTask() Replacement?
- Subject: Re: OTCreateSystemTask() Replacement?
- From: Frederick Cheung <email@hidden>
- Date: Sun, 8 Apr 2007 23:58:57 +0200
On 8 Apr 2007, at 22:38, email@hidden wrote:
On Apr 8, 2007, at 2:48 AM, email@hidden wrote:
Now I might offend some people, but I must say that Apple really has
been letting me down on stuff like this the last few years. If you
look at trends in languages like javascript and lua, people are
going
to coroutines and functional programming and methodologies that
avoid
multithreading altogether. Multithreading is a disaster. It has
its
place, but general programming, especially a simple game loop, is a
shining example of where the best practices just aren't good enough.
We shouldn't have to learn the intricacies of synchronization and
mutexes and atomicity and on and on just to get 2 games to talk to
one another, but that's where we're at.
I ordinarily love to go on for days about the myriad ways the OS X
way of
doing things feels like taking a great many steps backward, but
this just
isn't a complaint I find particularly valid. You wrote a ton of
questionable
code a decade or more ago and are upset with Apple because now you
have to
rewrite some of it? This argument bears a frightening resemblance
to that of
the Dantz engineers (I actually don't think there was more than
one but I
can't remember anymore) who insisted upon a complete port of the
antiquated
SCSI Manager oh so many years ago just so they could continue
collecting
paychecks without doing any actual work. Apple entertained their
ridiculous
demands, and Retrospect has languished in a thick froth of its own
inertia
ever since. It's gotten to the point where it's really more of an
overpriced
joke than a viable backup solution, and if Time Machine works as
advertised,
Dantz' ossification and lack of willingness to adapt will put them
out of
the Mac software business entirely.
I miss the good old days, too, but I think you really need to move
on with
this one. Either that or take it to the blogosphere.
Ya true, I know I sound like a broken record. I look back on my
posts in google groups and it's scary how many are complaints
haha. But maybe that's how it is for a lot of programmers, we
don't speak up until we feel something is wrong. OS X is really
great for certain things, it's good to have a unix mindset most of
the time. What concerns me is that at least from a programming
standpoint, OS X has moved so far away from the original Mac vision
in 1984 that it's almost unrecognizable. I think all this emphasis
on reference counting and message passing and objective-c style of
thinking, and then the complexity of threading and micromanagement
that comes with unix, is maybe not the future of programming.
What I am trying to say is, carbon event handling is really good
conceptually, infinitely better than a kludge of installing a
system task whenever we need to show a dialog. But are carbon
events better than a standard WaitNextEvent() loop? I don't think
so. Event handlers are called outside of regular program flow. It
takes a lot of explaining to learn how to use them vs a WNE loop.
And the implementation is not nearly as clean as say javascript
event handlers. I know why that is, for instance, javascript is
only single threaded (not even cooperative threads yet), which
simplified design decisions. But that's not much of a comfort when
I keep having to go to google to look up how to do a carbon event
handler.
Quite personally I think Carbon Events are light years ahead of WNE,
all that messing around doing all the dispatching by hand etc...
Being able to override behaviour by handling the appropriate events
is equally nice. (And I'll write an HIView any day over a CDEF). Part
of the "problem" is that users expectations have grown, they expect a
lot more from applications - eg Modal dialogs just don't cut it any
more, interfaces have to be richer etc... You used to be able to
just stick up a modal progress dialog and do your thing, but these
days people want to be able to continue working with your application
(and rightly so). Multithreading isn't easy, but a lot of the type
you don't need it. Just about anything you can just schedule with a
cfrunloop.
Again speaking from my own point of view, I don't remember the good
old days being that good. Sure there was maybe less to learn, but you
ended up rolling a lot of your own stuff. I used to have a custom
written http layer because URLAccess was nowhere near complete for
what I needed, whereas now I just use CFHTTP. I also have horrible
memories of writing OpenTransport code that ran at deferred task
time, calling into code to do async file IO with completion procs
that ran at interrupt time - MP code is a piece of cake compared to that
Fred
Ok I have a better example. Try applescript studio in xcode
sometime. It works with interface builder but you get to skip the
pitfalls of working in c++ or obj-c. If Apple is going to go
rewriting the OS all the time, I'd like to see them look farther
down the road. They could write more of the OS to work at a high
level. Plists are a really good start. But from everything I have
heard on this list, SystemConfiguration is a real pain. Yet
configuring the system as a bunch of key-value pairs in a language
like xml is conceptually a brilliant idea. So my complaints are
really with implementation I guess. CFHTTP is marginally better
than URLAccess, packages are marginally better than resources,
SystemConfiguration is marginally better than InternetConfig. Why
couldn't these have been revolutionarily better? I think it's
because NeXT sits halfway between c++ and a scripting language, but
every passing year decreases the need for low level programming.
I'll stop whining now since this is all a moot point. It is how it
is. And I'm grateful for being able to speak my mind and maybe
have it be heard by someone at Apple, whereas that probably
wouldn't happen at Microsoft, for instance.
----------------------------------------------------------------------
--
Zack Morris Z Sculpt Entertainment This
Space
email@hidden http://www.zsculpt.com For
Rent
----------------------------------------------------------------------
--
If the doors of perception were cleansed, everything would appear
to man
as it is, infinite. -William Blake, The Marriage of Heaven and Hell
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
email@hidden
This email sent to email@hidden
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden