WWDC2001 Session 708

Transcript

Kind: captions
Language: en
and your host for this afternoon session
is Godfrey de Georgie please welcome
Godfrey thank you very much it's a
pleasure to see so many people here
today you are the survivors there's only
a couple more sessions after this there
are feedback forums which we would like
you to attend and without any further
ado as tenacious as you are I'd like to
introduce Mike Rosetti
mr. tenacious himself okay thanks
Jonathan all right well welcome there
was there was this Microsoft engineer
and this cocoa engineer and Godfrey on
this train
sorry I'm not going there we'll do this
instead so welcome
no you're not getting that joke I'll
tell you later if you really want it
they should put a up this side up on
here okay why are you here today well
we're gonna be slightly irreverent in
this session maybe crack a couple of
inside jokes you'll pick them up but I
certainly hope that this session is
going to be full of good information
that will help you make a decision and
how you're going to approach your
development in getting your application
onto Mac os10 and so that's the intent
of the presentation today
now these objectives that are on this
slide haven't changed in years they
haven't changed since 1985 really and so
I don't think there's any need to go
through each one of them I mean the
languages have changed the operating
systems have changed but the goal of any
framework is to make it possible for you
to get your application out and going
and you know take advantage of the
wonderful Mac OS technology
and we think that the Apple C++
frameworks are are the key to success in
this realm here's what we're going to
discuss today many of you are familiar
with Mac app one more poll question how
many of you are familiar with Mac app
very good and there's a number of you
who'd like to be a little more familiar
because the C++ term is that correct
okay we're going to talk about the Apple
class Suites which is a new offering or
should I say an offspring of Mac app and
you may remember that you know
previously Mac app was this huge
monolithic framework where if you it's
like a camel you know the the nose got
in the tent and all of a sudden you had
this big beast well it's not that way
anymore and anyone familiar with Mac App
over the last few years knows that
that's the case we want to talk about a
few new Mac OS features and how you can
take it advantage of those in a CS and
Mac app and we want to talk about our
progress in the C++ standard library
adoption that we have and of course to
iterate over the project builder code
warrior development environments well we
won't discuss this is not a tutorial on
mac app so if you're hoping to learn
everything there is to know about Mac
app come next year when we'll have about
six sessions this isn't going to be a
tutorial on ACS we're not going to teach
you all about C++ what we're going to do
is hit the highlights of our C++
offerings that will leverage your
investment in your current C++ code or
what you'd like decide you'd like to do
it you know we want to help you get that
killer application out there now you
might have seen a slide earlier and this
is one of the advantages of having a
late afternoon Friday slide you can go
rip off the other sessions and well
there have been many frameworks
introduced since 1985 when Mac app came
out and and before Mac app there were a
few other things like class kal and some
small talk stuff and but Mac
was really the first
commercially-available framework and
some other frameworks like to roll out
their pedigree like that like there's
some royal heritage associated with it
but with Mac app and ACS we think we've
taken the next step so so 7 of 9 in this
slide represents Mac app release 15 and
then r2d2 represents ACS well how does
this all fit together essentially we
want you to take your investment in your
product your key points you know your
key offering we want you to be able to
take that mix it in with a little bit of
ACS and/or Mac App toss in perhaps a few
third-party ingredients mix it up with
project builder and with it we'll and/or
with code warrior and then bake it on
Mac OS 10 and Mac OS 9 and 8 and 98.6
and voila your award-winning product I
mean that's what we want you to be able
to do so I gave a little bit of history
on Mac out for those of you who aren't
familiar with it it started an object
pascal and over the years it's migrated
to c++ and it's gotten away from the
monolithic class hierarchy approach that
it had and then and now we're
introducing well we introduced a CS a
couple of years ago but we were able to
productize it now so that you can
actually download it and use it in your
applications without pulling it all back
out I'm going to talk about a little bit
that a little bit more in a second so
let's make sure I don't miss a note here
it's about Mac app and a lot more it's
maturing offspring so I want to
emphasize this ACS side of things
because now I don't want you to have the
wrong impression about Mac app being
this huge monolithic framework
for example Tom's going to talk a little
bit about see carbon event which is a
thin wrapper on the carbon events that
you've been hearing about all week
well this C++ wrapper class on carbon
events provides you nice convenient
accessors and mutators for that Carbon
event and preflighting a little
robustness you know and so instead of
checking for no we'll throw an exception
or something like that
things that a C++ person really want to
see all right this is this is way up
until you know last year so a
application written to Mac app might
have looked like before that it would
have just been mac out but we introduced
the Apple class Suites that's what ACS
is I think I forgot to mention that and
so your application mixes in a little
Mac App and a little bit of the Apple
class Suites now you can still build
your applications this way much to the
relief of those who have a lot of legacy
code in here but this is no longer the
only way to do it you could just use ACS
you could just pull in C string AC or
which is a thin wrapper on the standard
library string class provide and the
reason we did that one was because we
wanted to provide a little compatibility
with res files or resource files and
conversion to CS string you know things
like that and you know I mentioned
carbon carbon events and you can build a
CS as a static library or as a dynamic
library if you want and take advantage
of everything that's in it or just pick
and choose but what's in it so here's a
list of the Suites the class suites that
are available in the Apple class suites
the these Suites comprise ACS and
they're basically the conceptual
children of Mac Apple over the years
we've started to distill them out Mac
app pioneered things like a dependencies
and and adorned errs and and commands
and things that are now written about in
design patterns books so we allow you to
take advantage of that without pulling
in all of Mac app if you choose or you
you can pull in the heavier back app
classes
of course everything we do in the C++
frameworks group is buzzword enabled if
we didn't use standard C++ the cost to
you would to you would be much higher
you know you'd have two different types
of iterators you'd have the mac app a CS
type of iterators and you'd have the
standard library iterators well why do
that so we're we've been moving to using
standard library iterator standard
containers in fact we one of the suites
we provide an ACS is a thing called FTL
and it provides some compatibility with
the standard library iterator classes I
believe Tom might mention that so I
won't steal his thumper his Thunder
bumper you'll cut that want you so the
other thing is that we try to make it
easy to take advantage of those great
Mac OS technologies one of those is
Apple script use Apple script it's
wonderful
it makes products very valuable to
people when they can look at Photoshop
you know they they use script ability a
long time well Mac app makes it possible
to with very little effort scriptable
recordable attachable now mostly you
know what scriptable is I think all of
you know what scriptable is most you
know what recordable is but attachable I
mean this is really cool stuff you can
attach scripts to documents that you
save that do things like if you try to
open the document they ask for a
password or just something like that
it's way cool stuff and we make it easy
for you to use this I believe in Apple
script by the way the other key point
I'd like to make is that Apple class
Suites works with other frameworks such
as power plant in fact we do have an
example of that I believe in the release
that we have called the counter example
well with this brief introduction I'd
like to introduce Tom Becker who will
give an architectural overview of some
of the work that we've been doing and
with you know some emphasis on how it'll
affect your code and some topics about
some of the light
classes tom is an invaluable member of
the team and I certainly heartily
welcome him up on stage with me thank
you um here's a clicker by the way now
what button do i press that went
backwards okay all right so what I would
like to do is go into a little bit of
technical detail about some of the
design issues and architectural features
in what we've got pretty much focused on
the current release the stuff that that
is new that's available right now if you
go to the developer tools website and so
we're going to talk about the the Apple
class suites and how they work by
themselves talk about core foundation
and what we're doing with that what
we're doing a standard library and
Carbon events okay so the basic idea of
the Apple class Suites as mike has
explained is that it's a lightweight
utility class library it
I wouldn't necessarily use the frame
with the word framework to describe it
because it doesn't really affect the way
that you do your programming doesn't
affect your overall flow program or
overall design instead it's lots of very
useful C C++ classes that you can take
advantage of anywhere in your
application that you feel the need to
and it doesn't require Mac out so the
emphasis on this has always been
lightweight efficient easy to use and
let's see now one of the new examples
that we've got is the counter example
and that's an example that DTS did that
it's written in power plant and it shows
how you can use ACS in conjunction with
power plant
and it shows really how easy it is and
we just had to do a couple of little
tweaks in ACS in order to make sure that
it would go along with power plants way
of doing things so that means for
example if any code in ACS throws an
exception it actually throws an L
exception so that the standard power
plant exception caching code will catch
it and so the idea there is that ACS is
it's very good at fitting in and that's
the general philosophy that we want to
continue with it and you know it's
placing the emphasis again on being easy
to use and yeah in order for it to be
easy to use it has to work the way that
the calling code expects it to work and
there's there are a lot of classes in
ACS and you saw the diagram that that
Mike showed with all of the Suites there
and so I can't really go into it all in
detail in detail but if you're doing
some work in power plant and you're
going gee I wish there was a class that
did this take a look in in ACS like
we've got a really nice class for
working with quick time atom containers
we've got a really nice class for
working with Carbon events and there are
also some classes like templatized
handle Locker that works better than the
one that is built into power plant and
you can just use it the footprint
contribution on something like this is
in like you know single digit number of
K bytes kind of thing it's very very
small effect you know you pay for only
only for what you use so now there's a
couple of different ways that you can
use ACS so if you are using Mac app
you're already using ACS so that's
that's pretty easy right there like I
said you can create power plant
graphical applications and use ACS and
those you can also if you have have your
own framework or you
a different framework that you're using
ACS is something that could really help
you out and it helps us out with Mac out
it could help you out with your
framework and you can also do things
that don't have a graphical interface at
all
several of the ACS key samples that
we've got are for command-line tools
let's see so now moving forward want to
let's see
switch to demo I've got it and show a
little bit of what we've got with the
carbon event support that we have in Mac
out and so this is the standard mac app
skeleton sample application and this is
if can you see right here where the CPU
monitor is and now actually it took a
little bit of work to put this demo
together because we actually had to find
something where Mac app wasn't already
incredibly well behaved but we were able
to find that there actually is an issue
with Mouse tracking so if I click you
know just hold the mouse down you can
see that we're doing an awful lot of you
know while not you know while still down
Mouse tracking in here so I'm we're
taxing the CPU pretty heavily and of
course if you do this in your
application what's going to happen is
your customers are gonna ask if all of
your programmers are rejects from the
word six project and and so ego gosh
what can I do about that and the answer
is you can actually switch to using
carbon events so here's the carbon event
version of skeleton I'm going to click
the mouse down as you can see I'm doing
Mouse tracking and auto scrolling and
stuff like that and the CPU usage is
quite reasonable and the cool thing
about this you go well what do I have to
do in order to do this and the answer is
going to come up in a future slide
but it's pretty easy so there we go
in fact it's one line of code let me let
me actually go ahead and there there's
the line of code effuse Carbon events
equals true and now this is the very
first release where we've got carbon
event support in the framework and so by
default we're shipping with it with it
turned off for being a little bit
conservative about it and it's a sort of
thing where there may be some stuff in
your application where you might need to
write some code in order to fully
utilize the Carbon events but what we're
heading for is a future release where
it's going to be turned on by default
and you get all this stuff for free uh
actually I'm I'm I'm being a little bit
fast and loose here I actually changed
two lines of code the other line I as I
changed skeleton application to Carbon
event so you can see which is which so
let's get back to where I was okay
now talking about some other really cool
stuff that we've got in release 15 is we
have a set of C++ interface it's work or
find a ssin if you're using carbon or if
you're using math or if you want to use
Mac os10
core foundation is essential for doing
that and what we're trying to do is
we're trying to make programming with
core foundation natural for C++
developers so that it's object-oriented
the syntax is as simple and
straightforward as it can be the error
handling is done through exceptions the
way that you would expect it and we've
the way to think about it and actually I
should give credit to Andrew dem Ken on
the finder team who helped us out with
some really great ideas for
structure these these interfaces and and
so he's he's one of the key people is
responsible for making them as easy to
use as they are the idea is that we're
defining the interfaces that you would
expect ought to have been there always
and what you have to do in order to
actually start using core foundation in
an object-oriented way is include the
header and then all of your core
foundation type references that you
already have now our object references
if you just go and and you can start
making method calls on them and it just
works if you the one caveat one thing
you have to kind of watch out for is if
you use if you use C++ syntax for
calling core foundation if there's an
error it will throw an exception if you
use the procedural syntax which then if
there is an error it will return a code
or it will not return anything so but it
won't throw you know because you're just
calling this procedural interface but I
think that's also what you would expect
to okay now another another cool thing
that we have and this is really
something that we're just getting
started on it's it's going to be
something that I think will be very
useful but well we've got is we've got
the basic idea we've got an
implementation which is out there and we
want to get it out there get people
looking at and get people thinking about
the issues of how well does it work for
them and and giving us feedback on the
design and on the implementation and
what other stuff they would like to see
and this is bridge classes between C++
standard containers and style
programming and the core foundation
containers and so the first class that
we have is the foundation template
library string class and it stores a
string using a CF string
so that the it's fully compatible with
the Mac os10 a POS for unicode strings
and for all of the new features that you
really want to be able to connect to but
you can construct that string using
standard template library iterators you
can construct them from standard library
strings you can use standard library
algorithms and and function templates on
the FTL string and it'll compile and
just work it's this is not intended I
want to give a little bit of a caveat
this is not intended to be the absolute
best string for doing absolutely
everything what's gonna you're gonna
find that in some cases you really want
to use a CF string in some case you know
where a AC CF string which is our
object-oriented CS string in some cases
you're going to just want to use
standard strings or you may have a
library that that has come come in from
somewhere else that is implemented using
standard strings that's just fine just
keep on doing that and what FTL string
can do is it makes it incredibly easy to
build this bridge or connection between
the standard library way of doing things
and the Mac os10 interface that you want
that you want to connect to okay now
what are we actually doing with the
standard library itself our basic
philosophy is the standard library is
the wheel that is like the best wheel we
think it's great we are moving to
adopted we have done an awful lot
already in adopting it there are still
more that we need to do were taking a
stepwise incremental approach towards
doing it in part because we want to
bring you along with us and make it so
that it's easy for you to transition to
the benefits of using the standard
library and your stuff
and and we also want to make sure that
we're getting it right as we go along
but the basic idea is that where Apple
C++ frameworks we're making it easy to
use C++ on the Mac that means we're also
making it easy to use standard C++ types
on the Mac and so for where we're at
right now in this process if you use
release 15 you will be using standard
strings and we have put a lot of work
into compatibility so that are the
instead of using standard string
directly where we've created the C
string AC which is a very thin wrapper
on standard string and it will
automatically convert pascal strings to
standard strings for you and we're
making it very easy to convert back and
forth in order to work with the toolbox
because that's something that we know
that you need to do but the so that's
that's an area where we're already well
along on the conversion process and
let's see the next one
as far as standard containers we're
using them in several places now and
it's something that you really ought to
consider using the legacy containers
that we've got C list a cc dynamic array
AC the standard containers are going to
replace those in pretty much everywhere
in the framework I think we'll continue
to make the skin the legacy containers
available so that if you don't want to
change your code you don't have to but
as time goes on we really are going to
be moving towards using the standard
containers we think they're more
efficient and they're easier to work
with and now as far as streams are
concerned there's some really nifty
features in ACS streams and were we're
looking at ways that we can make
so that those features will be available
with standard streams as well but for
right now we're continuing to use ACS
streams because things like counting
streams and handle streams are so so
incredibly useful and we're not going to
get away from that right now okay for
Carbon events check out the see carbon
event AC class in ACS it makes it really
easy and convenient and safer to access
Carbon events whether you're using a Mac
app or or not actually you know
especially if you're not using Mac app
if you're gonna look at one class this
is this is the class I would recommend
that you take a look at because it will
make it an awful lot easier for you to
to get up and running on Carbon events
if you're using your own framework or if
you're using a different framework other
than Mac app if you are using Mac out
then you might want to consider writing
one more line of code
okay so let's bring back Mike okay thank
you Tom good stuff there let's talk for
a minute about the challenge of getting
your microphone in your back pocket
should shave this morning
okay I think you got the impression from
Tom
these aren't slides these aren't just
slides this stuff actually works it's
ready for you today go to the Mac App
website download ACS take a look at it
give us some feedback tell us if you
like it tell us what you don't like
about it we'll fix it but you can move
your applications to Mac OS 10 today and
take advantage of these features and
there are people who are actually doing
it
there's some in the audience who already
moved our 15 in fact there are some in
the audience who moved our 15 after it
was posted on Tuesday on their wonderful
power books that they are carrying
around with them using airport today
incredible technology isn't it I'll
mention a couple our themá-- medical
technologies they've got a couple of
applications virtual implant navigator
virtual implant simulator they use Mac
app in QuickTime scheduled for a summer
release this is an application that
helps dentists in the planning and
drilling of dental implants I was hoping
to have a demo Tom Myers and his crew
Pete Hawk this is beauty Biosciences is
that alright that's Pete that's Pete
well I mentioned Tom anyway Beedie
Beedie they're porting a suite of
applications and drivers to OS 10 that
use the flow cytometry this is like
blood analysis another wonderful demo
they're in various stages of development
looking to launch six applications and
three drivers by the end of the year
follow up follow it on my three more
text co has that's Anders isn't it
Anders Pitta
texaco is his client gene construction
kit 2.5 it's a ok coming he says on here
possibly a beta test version within a
week
and okay so what else I mentioned calc
and Apple system profiler and calc is
about my level of capability and then
we'll let mark take the real complex
Apple system profiler how we would have
had a really great experience converting
calc it just just was too short of an
effort you know it literally took
minutes of work the it essentially took
about five minutes to set up the project
builder project then I compiled and
unfortunately I shot myself in the foot
by changing do need disk space which
will be familiar to old Mac appers to a
constant C++ function and as you know
when you change a function to cost it
has this ripple effect but I'm happy to
say I've shot you all on the foot too so
the lesson for this is do not postpone
your day of constant this the other
thing I did was I used pre-built
resources in the example so when you and
when you take a look at calc you'll
notice that all the resources being
pre-built in there the reason for that
was because when I did this project late
last year the resource compiler wasn't
quite ready it is ready now and so we'll
put an update in that will actually
build the resources for you using
project builder it wasn't a big deal and
so quick build and calc was ready to run
as an honorable ma Co citizen
let's see now let me bring mark Dawson
up there we go let me bring mark Dawson
up he's the author I guess I could say
of Apple system profiler and Apple
system profiler is a wonderful
application for demonstrating Mac app
and ACS capabilities I'll let mark talk
to that but it is fully scriptable and
recordable isn't that is it recordable
these record okay well it's wonderfully
scriptable yes and I'll let him address
this mark okay
[Applause]
well for those of you don't know Apple
system profiler creates a profile of
your software and hardware on your drive
on OS 9 it can find a lot of stuff and
almost anak it actually using some
routines find even more stuff on your
drive using that gap it was extremely
fast to make the port someone who were
last year just before a few actually a
few hours before the demo I was able dim
Apple assistant profiler
coming up on OS 10 using carbon and Mac
app and the worldwide beta I was able to
ship a product and then around December
I was able to port in about one week
with the hood I had to mock oh and Apple
system profiler ships on OS 10 as a mock
oh application and then the ten point oh
release it on its a it was a very quick
transition I say two weeks for the UI
and going from the are 14 or 15 was only
about a couple days and most of the
transition time I took was to use a lot
of the new ACS classes that helped a lot
right now I have two versions of the
Apple system profiler one for OS 10 and
one for OS 9 the OS 9 one still uses
code warrior four just for compatibility
reasons I can ship the same exact source
code with only a few pound of lines from
ar-15 and mock oh and also OS 9 so it's
just a matter of ones compiled one code
warrior and once compiled in project
builder so it's actually that easy and
what really made that transition
smoother that was using the ACS Suites
as Mike said my application is very
scriptable I think I believe in the
carbon book there's an it is actually an
example of scripting and for apple
programs it's probably the next most
scriptable program after the finder and
what it really helped me was the ACS
classes for scripting you just take
basically you you shove a value in a
variable then you pass it in in Mac app
takes care of everything else I don't
really know how to script an application
to be honest if something breaks I have
to go to Tom
because it's so easy I actually haven't
had to learn which me is good maybe he's
bad but I haven't had to do it and Apple
system profiler is fully scriptable
again the transition was very very small
most the problems I had is I was the
test case the big app test case for most
of Mac app as it was being brought up
and as part of the mac app team if I
found something I had to fix it
so actually mac app has been tested on
on Apple system profiler and I use quite
a bit of Mac app and all my tabs and
controls and everything and fortunately
for some of you I don't use pop-ups so I
know that's one of the things that's
come up but it has been a very quick
transition it's gone very smooth again I
say the ACS classes have really really
helped I'm a I'm as much of a developer
as in a view I run into the all the same
problems I
I read the carbon lists all the time and
ACS again and again it has helped me and
then Mac app I really haven't had to do
much work it's outside of the initial
carbon transition so for me as a
developer and not just reporting to Mike
Rosetti over here Mac app has been a
great win for me I just haven't had to
do a lot of work it's lessons learns
things you all will run into carbonizing
will unearth bugs it did for me you'll
be really lucky if it doesn't for you
most of it a lot of times its memory
books OS 10 is a great platform for
catching memory bugs because if you
write to zero instead of the system
letting you do that in corrupting
someone else it just crashes and if
you've been to any of the gdb sessions
and stuff they have wonderful tools for
finding leaks something equivalent to
spotlight you can do using gdb and it's
really been very wonderful the other
thing I read to a lot and it's my own
programming fault is on OS 10 on project
builder bool is four bytes
not one bite and if you have structures
that require that you know where things
are in the structure you'll lose and I
had and those are my bugs doesn't mat
bugs I have to say they were just mine
those are the kind of things I ran into
you that had nothing to do with Mac out
but again that the stuff I had to do
with Mac app went very very smoothly the
things I've done it changed a little
with ASP I have a single source code
I've included the Mac App sources and
into ASP a lot of that was done just
because so the the build systems in
Apple could compile them they can't
compile right now sources that are
outside and in libraries and
applications together so I've had to do
that the other thing I did is just to
save time I ripped out files that I
didn't particularly use that saves time
compiling the other thing I did actually
this shows up in a post if you're
developers you can look on the developer
seed sites for ESP but I've created a
static text control using the current
ste static text map and Mac app uses a
edit text view instead of the kerbin
static text control and I've converted
that to use that and it's helped a lot
since the Attic text doesn't give you
anti aliased text and that should be
showing up in a future Mac app soon
but again the Mac App has made my
transition a lot and an ASP is a big big
app well probably medium I'd say it's
probably a hundred thousand lines of
code so it's not it's not tiny it's not
like I know some people have million
lines of code but it's a it takes a
while to compile so I'll leave it over
here to mike Rossetti and it's like
leave you with that Mac App has really
made my life Marty bundle
[Applause]
some of you saw this slide a little bit
earlier in the week and I'm not actually
with a slide I'm not actually taking you
know a license with what Edie said Edie
Bose who's done incredible work on the
the the carbon event model he was
explaining of course during the session
how back in the early days this is how
you wrote your application and all the
applications had to write their own
event loop and their own dispatcher you
know and their handlers for whatever
events came through and then he
explained that of course 16 years later
when he after he graduated he graduated
16 years ago
don't want to give the wrong impression
how the new carbon event manager
actually handles a lot of this for you
but now those of you with some
experience in my cab know that we were
doing this 16 years ago in madcap
because this is the responsibility of a
good framework is to take those things
that you do all the time that everybody
has to do and provide the the
implementation of them so we're we're
delighted that the new karmatit
mechanism provides us for us because now
we can take it's a wonderful fit for the
event dispatching that is taking yeah
you know that's implemented in in Mac
app and this just fits right in so
you'll see that the dispatcher and Mac
app will become extremely simple or
maybe just disappear so we're very happy
about this but we did it 16 years ago
so one perspective is when you build
your applications this is the model that
you could build against and and there's
nothing wrong with this
I mean build a carbon if that's what you
like to do but how does Mac happen and
ACS fit into this model well it provides
a nice higher level
framework on top of the carbon api's and
the and the carbon low level framework
that they're providing in and carbon
events and if I say so myself it's a
perfect fit
I mean do you want exceptions thrown you
know when there's a problem in carbon
yeah so I think you do
do you want robustness and the
interfaces so that if you pass a bad
value you know that's caught yes I think
you do so if you're using C++ this is
the way to get it a CS or Mac App
provide that for you so what does Mac
app and a CS release 15 bring to the
party besides adding 15 percent to 10
just kind of go over this quickly
project Miller support with the core
foundation classes the carbon events
support standard strings I think tom
said all of this have the slide get in
here and ACS is available all by itself
if you choose and in project Miller I
wanted to hit just a couple of
highlights here you can build the Apple
class Suites as a static library or is a
dynamic framework ACS dot framework we
provide some ACS stationery so if you
want to write hello world with ACS you
can put that together very easily Mac
App projects are provided as well debug
and a non debug version right now we're
only building them as static libraries
ACS has incorporated into it now you
might ask why we don't provide a
framework target for project builder and
the reason is because all you Mac
cappers like to touch the code so we're
gonna leave it that way for a while just
to see but see how it works out but ACS
framework is fine because I think very
few developers have any need to actually
touch the ACS code at this point in time
and of course the example projects code
warrior pro six support for all of the
usual targets including 68k still
alright and we're going to provide you
know really fairly quickly here some
code warrior pro 7 projects so that you
can you don't have to do that for
yourself now keep these things in mind
budget your time you know to manage the
changes that you're going to have to
adopt as you move to carbon because you
know there's changes in the api's and
the tools project Miller and gdb and GCC
etc GCC for example has pulled helped us
identify a number of problems that were
in the old framework that we never saw
with the old compilers so running your
code through this new compiler will
expose probably some errors you'd be
surprised at there will be a cost of
course you know there's a little
learning curve in that but I I think we
believe that the benefits far outweigh
the costs so be prepared for the
learning curve and so I call this like
the the the three curves of the
development biorhythm and I think
they're coming to a curve right now but
once you get over that things are going
to look a lot better important future
directions so keep up the work on Carbon
events provide a nice wrapper around the
data browser something that's long been
requested which is an MLT eview you know
TM LTE view whatever
the more work in the standard libraries
talked about unicode strings plus the
same work that has resulted in the Apple
class sweets where we've kind of pushed
down on Mac app and stuff of come out on
the bottom and ACS this is going to
continue I mean this is an evolving
process so I can't promise what you're
going to see there but I could say that
perhaps you're going to see things like
dependencies moving down there or maybe
event handling will become behavior
based you know I'm just spouting off the
top of my head here
and the thing I want to stress about all
of this so you know the future
directions and that is it whether you're
an old Mac a purr or a new C++
programmer you never use the framework
or you use some other framework I want
to stress that you take a look at ACS
Apple class Suites so that you get the
benefit of our working with the
people within Apple to make sure that
those capabilities are in the framework
that you want let us know what they are
the the email will bring up email
addresses there's a Mac app dev mailing
list you can send mail directly to me
but if we know what you want we'll
respond we try to do that that is our
ultimate goal we want to have fun we
want to have a great framework but we
also I think need to make sure that you
get what you want when you get what you
want that reminds me you know it's sort
of a we hope you have a good experience
you know the definition of experience is
experiences what you get when you don't
get what you want we don't want it to be
that way we want you to get what you
want
and before Godfrey comes back up I just
like to thank the developer community
it's given us a wonderful response and
feedback so far and it's helped guide
our efforts to provide like ACS and to
do things like make sure the carbon
events work and that your applications
are going to be speedy under Mac os10
and thank you for that feedback thank
you for the support that you provide
each other on the mailing list and the
news group because this is critical for
developing a consensus in the community
and making sure that we do what you want
so please keep that good work up and
also I have this little key cat up here
and some of you know what that means I'd
like to thank one of our developers for
his gift
Nouriel ootah who's sitting back here
and just wanted to tell you that if you
want to get faster email response to
your bug reports and questions gifts are
great but yeah and and gives her great
but wonderful Mac os10 applications are
even greater so we encourage you to do
that
Godfrey thank you Mike
so the whole point of the Apple C++
frameworks is to continue to support all
the developer needs new Apple
technologies and the industry standards
going forward this is a fantastic set of
technologies for people who are Carbon
developers who want to move forward who
have a large body of C++ code that they
want to move from another platform and
want to stay within the C++ environment
information resources those of you have
been through the other tool sessions
I've seen most of these most of these
addresses before our overall page for
Mac OS 10 tools developer.apple.com dot
slash tools and the C++ frameworks web
pages at the developer Apple comm tools
Mac app we get a lot of hits on these
pages we've gotten I think over the
course of the week we've had over 10,000
hits when I called in last so that's
quite a bit of activity and we have a
master master mailing list for all of
our for all of our mailing lists that I
mean a master web page for all of our
mailing lists Mac app dev is one of them
there's also the carbon dev cocoa dev
project builder users all of these would
be useful to you as resources we decided
to give you a back road map through the
show since this is Friday very nearly
the last sessions of the day these are
some of the sessions that hallmark our
tools various various other you know
things that you could use and when you
get your DVDs because everybody at the
show is receiving DVDs of these sessions
you can review these if you if you've
had to be at other sessions over the
course of the week questions about C++
frameworks you can always contact me as
the technology manager for development
tools I'm very interested in your
feedback ideas directions and Mike
Rosetti for questions on the frameworks
themselves is always extremely active
about answering those questions
you