WWDC2001 Session 700

Transcript

Kind: captions
Language: en
[Applause]
good morning everyone very excited to
have you all here today this is the
first session of our tools tools of
track for the Worldwide Developers
Conference and we have a lot to talk
about this week we're highlighting tools
because Mac os10
creates such an enormous range of
opportunities both in applications
drivers and in the tools themselves now
we are all dependent upon tools you see
tools through the entire show they're
essential for all of us so we all know
the difficulties of working with the
operating system with pre-release tools
with tools that aren't quite ready yet
and what we want to do is we want to
make Mac OS 10 the premier developer
environment to do that Apple is very
very serious about developer tools and
about making sure that you have
everything you need to bring your
applications to market in this session
we're going to cover our goals and
strategy how we're going to get there
we're going to give you an overview of
the Apple tools we're going to give you
a look at the third-party tools that are
coming available and some of which you
have in your bags at the show today and
to start that I'm bringing to the stage
Steven our off our senior director in
charge of Java and cocoa development
thank you okay
so I'm just going to take five minutes
and try and tell you what what we're up
to
so one thing that's really important for
everyone to hear sometimes I get emails
voicemails or just talk to folks in the
audience who really sometimes want to
understand whether Steve Jobs and avi -
vania and other executives at at Apple
are really committed to tools and the
answer is is yes and it's not just
because it's the right thing to do for
you guys even though that is the prime
motivator it's also because it's just in
their blood okay it's in my blood it's
in their blood and ever since I've been
working with the two of them for 15
years like obvious work with Steve tools
have been a focus of their work and of
our strategy so I think you could be
assured that a we're making great
progress and I think you'll see that but
B this is a long-term proposition here
this isn't something that's going to
change overnight so we want to
participate okay for a while there Apple
wasn't participating in this activity it
was purely leaning on the third-party
community for for great tools the good
news is even though we're participating
even though we're investing even though
I think we're doing great work
we are also embracing our third parties
we work closely with Metro Works we work
closely with Borland we work closely
with a lot of the companies you're going
to hear about today and the simple fact
is we can't do it ourselves
okay the space is too complex and the
types of problems you guys are solving
are too broad for Apple to have or to be
the sole purveyor of tools so it's
pretty clear that that's our strategy
okay so I'd like to close by saying or
showing you this matrix which i think is
very important a lot of people again
think that just because Apple is
investing that we think our tool can be
used to solve all problems well that's
that's silly okay
that's not the case we do think if your
focus is cocoa that you should focus on
the Apple Apple tools okay Apple is
always going to be at the forefront of
supporting its own initiatives and
that's one of the reasons we do tools is
to support our framework and platform
initiatives okay however carbon clearly
Metro Works has been a leader in the
community for years again before we
decided to reinvest in tools so clearly
code Warrior is a superior environment
for doing carbon development development
on the other hand if you're doing pure
Java development when I say pure Java I
mean not programming to web objects not
programming to QuickTime and so on and
so forth but just doing swing
development because you need that
cross-platform application then jbuilder
is going to be the sweet spot okay for
that type so for those of you who were
in the Java talk it's the moral
equivalent of what I was talking about
in the Java talk which is decide will
decide where your brief fit in terms of
what you're trying to do you're going to
make a framework choice based on that
and then you're going to make a tool
choice based on your framework choice or
at least the framework choice might be
influenced by the tool choice but all
those things factored in to the path
that you guys need to take certainly
many of you have lots of legacy code in
that case the answer is fairly simple
I'm speaking to people who are doing new
things people doing new things have to
basically reflect on what it is you are
trying to accomplish and make decisions
based on that so with that said I'm
going to bring up Dave Payne one of my
development tools managers and he's
going to take you through the details
hey Dave thanks dude you go
the magic button okay
many of you may have seen me before here
on stage at WWDC s in the past speaking
about developer tools I'm responsible
for project builder the compiler
debugger and performance tools for Mac
OS 10 so we'll take a look at if I get
the right button there there we go
when you start the developer tools CD on
Mac OS 10 what do you get
well if you look the slash developer
directory in your file system is
completely created from the developer
tools CD in developer applications we
have a full suite of applications there
for all your development for Mac OS 10
on other interesting things out in that
directory include documentation and
examples so you can get to the
documentation through help viewer it's
also useful to navigate around through
the documentation directory and see what
I was there and the examples there's a
lot of examples for carbon cocoa Java
etc but the center of the development
from our tool suite is project builder
it's your development hub we interact
with the interface builder for cocoa and
carbon development and now with this
developer tools CD we interact with web
object modeler or web object builder and
i/o modeler for web objects 5
development we take alot advantage of a
lot of open-source compilers and
debuggers and other tools such as GCC
java c jikes
on the debugger front de b and the java
vm interacting with that through the
java debugging wire protocol and then as
you've seen yesterday we have a full
suite of performance tools as well and
I'll talk about some of those so what
we're going to do here is go through
this we've got a lot of other sessions
that cover these tools in more detail so
again project builder is Apple's
integrated development environments it's
where we're concentrating all of our
primary resources here it's got all the
features you would expect in a modern
IDE
so very flexible project layout and
editing a variety of navigation
mechanisms from very simple mechanisms
for switching between files bookmarks to
jump to places very quickly in your code
indexing mechanisms symbol pop-ups etc
we now have integration with the CVS
source code management system so you can
directly interact with that a very
powerful build system that hides a lot
of the complexities of the build if
you're not interested in seeing that so
you don't have to edit any make files
etc but we do have mechanisms in place
where if you need to do very powerful
things by taking advantage of the full
unix development environment underneath
us you can put in a shell script to
build phases or you can have targets
that build with make or with other tools
if you'd like but again that's not a
requirement and then we have full source
level debugging for all the C based
languages as well as for Java so with
project builder you can do all the
development that you need to do for Mac
OS 10 so again there's a whole variety
of languages the primary languages that
we support on the system C C++
objective-c Java with these you can
develop for all of our frameworks cocoa
carbon Java - as Steve showed you in a
previous session we've got a great job
environment and now web bob 6/5 a full
java environment for web objects the
project builder with the new developer
tools CD provides support for that you
can also do unix development you could
write tools or server daemon processes
that might want to interact with from
graphical applications and then IO kit
kernel extensions and device drivers as
well there was a question yesterday
about objective C++ development so we
are going to be resurrecting objective
C++ for the purpose of allowing cocoa
applications to use existing C++
libraries I'm not going to go into that
in detail in this session if you want to
hear more about that go to the compiler
Tecna
a session on Thursday morning um but
through all this technology you can
build the full array of things that
you'll need to do for Mac os10
sometimes people ask us so this project
builder real enough that I can use it
for big projects so we use it for all of
what we do for Mac OS 10 there's over
250 projects that go into Mac OS 10 at
Apple's or a using project builder today
there's a lot of facilities in there to
really help with team development so of
course every user has their own
preferences for the application but in
addition for each project each user has
their own settings for that so their own
active build styles their own active
target their own bookmarks their own
breakpoints and all of this is
integrated with the CVS source code
management systems so you can really
work effectively as a team UNIX has been
known for a long time as a great
development environment in terms of the
sheer power underneath it but it's been
very complex so again project builder
makes things simple for you but there's
a lot of power that you can tap the GCC
compiler we compile all of our code for
Mac OS 10 with this compiler so I've
talked about that we leverage a lot of
open source tools we are working to
actively give back to the community
we've started giving GCC patches back to
the Free Software Foundation we've
signed the copyright assignment
agreement with gdb as well so that we
can do that with gdb changes so for
example giving objective-c support back
in both cases project builder uses the
jam build tool but if you need to know
about that then we're doing something
wrong
CVS version control the file merge two
utility uses diff so we take a lot of
Vantage of a lot of this power so from
the very beginning project builder has
been designed especially to develop for
Mac OS 10 and in order to understand Mac
OS 10 development well and in order to
understand project builder well you
really need to study and memorize and
learn the system overview manual
you'll find this in HTML and I believe
even PDF on the system you can order
hardcopy like this from fat brain
there's a lot of concepts that you'll
hear about throughout the week that are
documented in a very good detail in this
manual I'd highly recommend that you get
a hold of that and really study it in
depth so for example project builder
builds properly formed bundles this is
all your application packages themselves
plugins frameworks inside bundles you
can put multiple localizations of an
application so English Japanese German
French in fact in the new developer CD
we've got project builder localized into
Japanese but you've got to build bundles
in order to support this project builder
you can localize files directly from
there if you're using carbon and carbon
resource files Apple strongly recommends
that you now use flat data files to
store the resource manager resources in
so that you can store this in a file
system agnostic way for file systems
like ufs or NFS that don't support
resource force again this is the default
way the project builder builds on Mac
os10
we generate ma Co binaries which is the
primary formats for binaries of Mac OS
10 this provides you direct access to
all the system api's that we've got
throughout the system and that also
enables full use of all of Apple's Mac
O's 10 tools frameworks you'll hear a
lot throughout the week about frameworks
it's a very fundamental concept in Mac
OS 10 these are macro stands shared
libraries so for example project builder
itself the application is a very small
application that links with a couple of
large private frameworks and a couple of
smaller frameworks we've really factored
the application out in that manner
project builder gives you full access to
all your system frameworks so for
inclusion and searching of header files
you get direct access to precompiled
headers for our umbrella framework
carbon and cocoa and application
services course services as well as if
you do fines across API documentation
you see book icons that let you go
directly to the API for them you of
course can build your own frameworks for
your own applications and then project
builder gives you facilities to allow
you to test your application with your
development versions of the frameworks
without needing to install either of
them fully into the system so you don't
have to trash your working versions that
you may be depending upon moving on to
other tools you saw a great demo
yesterday in the keynote
when Scott Forstall showed you interface
builder this is our user interface
construction tool for building aqua
compliant user interfaces for cocoa and
carbon there's a lot of great new
supports in interface builder for what
we call guides that let you see exactly
when you're compliant with the Aqua
guidelines a very powerful feature to
learn more about that come to the
interface builder session this afternoon
this is integrated with project builder
and that you can now directly launch it
from project builder and move back and
forth on interface builder makes it very
easy to use Coco's outlets and actions
paradigm so you can directly set up your
connections there and with carbon you
can create carbon nib based applications
with interface builder this it really is
the easiest way to use the carbon event
model and so you might find that useful
as well another tool that you might find
useful is the file merge
utility again in developer applications
let's let's you compare files or full
directory hierarchies of text files so
for example different versions of source
code and also interface builder nib
files that runs it through nib tool and
gets an ASCII representation so you can
see what's changed to new user interface
project builder has direct connections
from our CVS facilities to launching
file merge to see different versions
that will show that in the project
builder intro session this afternoon
another one icon composer of course
you'll use some graphic utility to
create your photo realistic icons but
you need to have a dot icns file for the
icon of your application you can drag
images directly into this and create
that dot icns file if your documents and
your applications we've got a full suite
of performance analysis tools have you
as you've heard the performance
characteristics of Mac OS 10 are much
different than those in Mac OS 9 in some
cases so it's really important that you
use these tools and understand those
differences and optimize for 10 so
there's a variety of categories here to
watch what your CPU is doing you can use
tools the sample or a graphical
application or its equivalent
command-line tools sample to see where
your application is spending its time to
examine what what's going on with your
memory use we've got tools like malloc
debug and object Alec graphical tools
for displaying where in your application
you're allocating all your memory from
and how many objects you've got at
various times there's also a set of
command line tools heap sleek and malloc
history check out the man page of malloc
to see information about malloc history
for all of these tools go to the
performance tools session on Thursday
afternoon Robert will give a great demo
at that point quartz debug shows you
really are you drawing too much on the
screen sometimes you'll be drawing the
same thing multiple times in the same
place you don't even know it you can't
tell but it's taking time away that
could be used for other things in the
system FS usage for file system usage
seeing what all calls are making SC
usage for system call VM map for VM
usage top for overall system and
performance analysis got really a full
suite here and it's important that you
take advantage of this so how do we
deliver this
on the Mac os10 developer tools TV so as
you've seen we ship this CD with Mac OS
10 we think it's really important that
we get the development tools out there
and widely available for people to
really start ramping up on Mac O's 10 as
quickly as possible I'm sure that you
all are at the leading edge of the curve
we plan to do quarterly releases of new
developer tools CDs and we're sort of
still working out the precise details
here but as you've seen the first
quarterly update here is at WWDC you
should have all received a new developer
tool CD if you didn't check downstairs
make sure you get one the CDs are free
to all ABC premiere and select members
and you'll also be able to download the
packages from the web the currency any
packages are not yet up there but should
be soon so on the CD is a whole what all
do you get so you get the developer
applications that I've talked about in
addition you get the open source
development tools and the BSD tools from
UNIX underneath and you get what we call
the Mac OS 10 SDK so the headers for all
the system frameworks you get profile
and debug libraries so that for example
in project builder you can switch easily
to use a debug variant of your
frameworks so you can get more
information about what's going on inside
the frameworks the debugger session on
Friday will tell more about that as I
mentioned you get sample code there's a
lot of documentation on the system and
the tech pubs people are hard at work
creating new documentation all the time
and you've also got carbon web SDK on
the CD itself not in Mac OS 10 packages
but out there so you can copy it on if
you're still doing carbon Live
development for Mac OS 8 and 9 so what's
new and the CD that you got here at the
conference so the primary theme of this
CD was support for web objects 5
developments you can use this for all
development for Mac OS 10 there's some
general purpose enhancements but the
primary theme is web objects 5 because
web objects 5 is a pure job
environment we've done some enhancements
in the Java supports in this build and
will tell a bit more details in the
project builder intro session and then
the Java sessions throughout the week
also on the CD you do get the web
objects 5 developer packages and in
addition a time-limited license for a
restricted version of the runtime so all
of you can start experimenting with web
objects 5 today we don't plan to put
that on the CD forever in the future but
this is a great opportunity this time
around there's new documentation
additional examples so you'll find a new
performance manual out there this is
very important again to study this one
also you can order from fat brain get
hard copy it'll make the performance
characteristics of the system a lot more
understandable also there's an accessing
Hardware document for those of you
writing apps that you want to get
directly to characteristics of a device
and a quartz primer to understand the
graphics system better
in addition updated API documentation
for cocoa and carbon and there was a bug
in the original developer tool CD that's
been fixed here so you can get directly
to the Carbon api's help information
from project builder again now so with
that that's a quick summary again
there's lots of distal sessions
project builder intro this afternoon but
let me turn it back over to Godfrey to
learn more about the third-party tools
thanks Katherine thank you very much
they can't forever put our development
tools team they've done the tremendous
amount of work and obviously have a lot
more to go and we're gonna continue to
be upgrading those let's talk now a
little bit about our third-party tools
and our collaboration with third-party
tool vendors we work very closely with
these people we give them engineering
direction we give them engineering
assistance on a direct basis we seed
them with early versions of the
operating system that none of you in
general would want to run because
they're too fragile we also help them
with business coordination so that our
tool strategy internally coordinates
well with their with their tools and
that they have the right things on
target when we go to market with our
with our pieces just thought I'd walk
through and review some of the tools
that are currently available for Mac OS
10 development many of whom you you're
well familiar with already AB soft is
doing their pro Fortran product they've
got a Mac OS 9 version they've got a Mac
OS 10 version in beta they tell me
they'll probably be GM about the end of
June and be ready for all of the science
and technical industry that has this
huge codebase millions and millions of
lines of Fortran code Metro works with
code warrior they're releasing here at
the show you have in your bag the early
access pro 7 release and had lots and
lots of enhancements I actually have the
folks from etch works here to talk about
their release and give it give us all an
update on their products real software
with real basic to answer the basic
challenge they've had a GM Mac OS 10
application for some time now and
they've done some updates and I have
them here to talk about that today
another category of tools that
developers need our installers and
utilities we have both of our external
vendors of installers Aladdin systems
and mind vision with GM Mac OS 10 ready
products now so once you've finished
your development you can wrap it you can
package it you can deliver it to your
customers mathema stetic s-- has done a
marvelous job of updating resource
server and bringing it to Mac OS 10 for
all of you who have been using
traditional resource manager resources
for many years and who have need for
lots of new features Apple script
debugging and all kinds of other things
they've gone GM with the new version of
Mac OS 10 resource error and they're
here with it at the show in the exhibit
fair and then for the Java specialists
in the audience we're working very
closely with Borland you have a new
preview of jbuilder in your bags also
zero-g with their install anywhere and
vm gear with optimize it they're all
ready for you and they're coming up on
Mac OS 10 in the very near future so I
think we have a very complete very
complete set these are only a sampling
of what's available there are many other
tools available how many of how many
here have gone to the to the exhibits
fair already about three-quarters of the
audience as a hands up I'd like
everybody to go visit them
we're running it all the way through
Wednesday this year so you should be
able to visit and talk with each of
these people and see how their tools
meet your needs now let's talk a little
bit I'm gonna have I'm gonna have our
friend from from real software come up
let's talk about the basic challenge for
a moment when the when you look at the
industry when you look at when you look
at the industry journals and read what's
out there you always hear that there's
three times as much four times as much
software for the Windows platform as
there is for the Macintosh and when you
look in the industry journal and look at
the statistics what you find is that 60
to 80 percent of the additional packages
out there are implemented with Visual
Basic why is it so successful rapid
application development and ease of
access nearly anyone can learn basic
well we've had we've had a big hole in
this area for a long time and now I
think we have a real contender to fill
it with a Mac os10 solution let me
introduce Lauren rivers the product
manager from real software thank god
free thanks for for having me and Oh
excellent
there we go so Mac Weston is the present
if you're here for Steve's presentation
yesterday talking about the likely
adoption of Mac OS 10 and how people who
are running Mac OS 10 feel about running
classic applications I think you got the
message about how important it is that
you also support Mac OS 10 and our
relationship with Apple enabled us to
deliver real basic for Mac OS 10 in
February and through our collaboration
with them we've also been able to
release two updates our most recent one
adds a lot of support for the latest and
greatest Mac OS 10 functionality macro
stands not just for for early adopters
you know I'm a marketing guy and I'm
running it and Mac OS 9 is not just for
people who are Luddites you know it's
it's got a lot of there's a lot of
legacy software the people need to
continue supporting and this opportunity
as Steve alluded to yesterday is very
similar to the introduction of the
PowerPC if any of you were in the Mac
market at that time there were when
quark released QuarkXPress for native
for the PowerPC it really exploded and
it's a it was a great opportunity for
for quark to gain huge amounts of market
share and real basic runs on the
Macintosh in fact it you can run it on a
you know Quadra 660 AV running seven six
one and it's not as fast as it is on a
g4 but but it's certainly capable and
the really cool thing about it is is
that even if you're running on an
antique piece of hardware like that you
can create a Mac os10 native application
with you know nothing special it'll just
compile it for you so we run on
Macintosh Mac OS 10 and we compile for
those two as well as for that other OS
and it's a great opportunity for you to
possibly expand
your market if you're able to without
changes generate a Windows executable as
well so you know create on the Mac
deliver on on three other platforms and
real basic it's compiled it's it's not
basic like ten go to it's a it's a it's
a modern version of basic that uses the
familiar you know object dot property
kind of syntax it's professional
strength there's plenty of commercial
developers using real basic it's
completely object-oriented from the
ground up designed that way and and very
rigorously so at the same time you know
sure it's basic but you have direct
access to all of the power of the
underlying OS direct access to Mac
toolbox calls PowerPC shared libraries
as well as the win32 API through
declares it supports sequel and you can
connect to almost any database you my
name we provide plugins and it uses a
single API to access all of them so you
you can do your development running
against real basics native relational
database and then deploy on Oracle for
example or open base or front base or
any of the other ones that we support
plus we have direct support for Apple
events you can drag a compiled Apple
script right into your project and
access it
QuickTime and plenty other great Apple
technologies why would you use real
basic well Michael Connolly and his team
at Microsoft to use realistic
extensively for prototyping any new
feature that they add to the new version
of Office and to an explorer 5 was all
prototyped in in real basic thank you
Michael and another example would be my
OB account edge made in real basic but
the engine was written in in C and this
tool allows my OB adopters to convert
their crafty old QuickBooks
documents over to my OB someone who's
supporting the Mac OS and the real basic
also provides a rich plug-in SDK so say
there's something that that real basic
doesn't provide you that you need you
can write it and see you go out in a
cross-platform fashion and access it
very easily from within real basic
without having to write a bunch of
special code inside a real basic real
basics are a rapid application
development environment it's very
similar to interface builder in many
ways except I can use it you know I'm a
marketing guy again you know I have a
degree in geography with a minor in
philosophy and I can use real basic and
you know I'm not stupid or anything but
I'm certainly not a computer programmer
or at least I wasn't until I started
working in real software and the really
cool thing about it is is that it's
again it's an iterative process what you
see is what you get you've put some
stuff in your window you test it to see
if you like it you add a little more
functionality and next thing you know
it's 4:00 in the morning and you know
you got bags under your eyes the next
day because you're having so much fun so
real basically gives the ability to be
both productive and have a great time
using your tool concentrate on the value
add that you have which is making great
software going forward we've got big
plans for real basic and we're enhancing
the performance of the compiler we're
going to make much smaller applications
we plan to begin addressing other
operating systems and platforms and also
be able to create plugins for other
applications which is something I'm
really excited about because I think I'd
be really fine and so before I before I
go on let me let me mention something
real quickly you know there's a couple
events in a software company or a
technologies lifespan that are they're
defining so one of them would be the
appearance of an O'Reilly book and you
know you're really it's a validating of
and that's really cool and this is a
fantastic book if you're interested in
getting deep and dirty with real basic
you can you can't do any better in this
book which is gonna have a second edit
Edition out this summer but and that's
all great you know Riley stuff top-notch
technological things but but you know
that you've really arrived when there's
a real when there's a real basic for
dummies book and actually the fact is
this is a fantastic introduction to real
basic and it's a very well-written book
and full of pithy 50 information I
encourage you to take a look at it so I
want to show you around a little bit you
know in real basic what I want to do is
show you how easy it is to to use real
basic to to go from like say you are
real lacing developer to go from your
old world basic code to Mac OS 10 so let
me go and find so here's real basic to
running in a classic one thing I love
about Mac OS 10 is being able to do
other things while applications are
launching I was a Holden next user and
it really spoiled me yeah so here's my
real basic project this is actually this
is a this is version 1.2 of real bugs
it's the tool we use to ask our
customers to provide us with feedback so
this is version 1.2 I just dug around in
my my desk I had a you know two-year old
version of a source you know open it up
run it in classic and simply run and you
know you want a you know a summary you
know real basic so rocks you know and
then you submit this bug and it'll sit
you'd use an apple script to communicate
with the email program that you're using
and sends us an email and then we can
automatically track it and that kind of
stuff and you know you can see this
looks like a standard
Mac OS Platinum user interface and and
what I'll do now is open that same
project and the latest version of real
basic which is real basic three and I'll
just drag that same real basic to
project on to the icon run it and yeah
this is two year old project I hadn't I
hadn't run it in two years so um you
know it's just that easy and you know
creating it you know people talk about
eating eating their own dog food we
don't we don't do that we weed our own
caviar and we're using a more and more
of real basic inside a real basic and
that this version of 3.2 all the lists
are actually real basic list boxes so
it's a powerful motivator to update and
fix any you know missing features in
your products so I want to thank God for
you very much for having me out today
thank you for your attention and we get
a lot of value out of our relationship
with godfrey he's he's the bomb
thank you very much Lauren so for more
information about real basic Lauren is
here all week and he'll be over in the
exhibit fair there's some contact
information you can find him and real
basic has a birds of a feather tonight
and that's their URL so you can you can
find them easily on the web they deploy
a lot of their software via the web so
you can download an evaluation copy and
just try it out see if it works for you
extremely useful product tremendous
capability of bringing apps to the Mac
os10
at this point in time I believe there
are about 40 or 50 applications in the
shareware domain that were written with
real basic and are immediately native
Mac OS 10 apps this is a great a great
story now I'm sure all of you are
waiting for this a lot of you know I
think it goes without saying that 95% of
the Mac OS 9 commercial apps on the
market are from are made with code
so I felt it important to bring them to
talk with us today there are leading
third party supplier development tools
and we are working very hard to get
together on Mac os10 with them and to
talk about that I'm bringing Mac
Henderson the technical lead for a code
warrior sake okay so I'm here to talk to
you today about a number of things first
off I just want to say that we've been
on Mac os10 a long time we've been doing
this I've been in charge of getting
everything on Mac OS 10 running and
targeting Mac OS 10 for almost two years
now so Mac OS 10 with the release of
public beta and maybe with the release
of Final if you haven't moved to wraps
yet is new territory for you but it's
we've absolutely been there from the
very beginning and it's been a lot of
great fun for us all so in your show bag
speaking of that is your code where
seven Pro early access CD that has our
latest stuff for Mac OS 10 so if you
haven't gotten that CD out and tried to
use it yet you should
we've experiment but it's a good cross
the board improvement for every aspect
of the code we're tools running on Mac
OS 10 and so after we cover what's on
pro the pro 7 or the XS CD will go into
the future directions and how we're
going to continue to enable you to make
cool apps for Mac OS 10 and take
advantage of new Mac OS 10 technologies
so first thing and most important to
everyone who's developing on Mac OS 10
is debugging which was probably the
weakest part of the Mac the code word
pro 6 of Mac OS 10 experience so to talk
about debugging I've got Ken rile our
director of the bugging technology he's
going to cover in depth what's new with
the code we're pro 7 or the excess stuff
in regards to Mac OS 10 to buggin thanks
so for the past couple years Metro Works
has come to WWDC and shown you code
warrior debugging applications on Mac OS
10 but of course the operating system is
evolved since we shipped the pro six
tools last fall so as matt said in your
bag everyone's got one of these CDs and
we want to update the tools we shipped
last fall so that they work a lot better
with the release with the final release
of Mac OS 10 now that the OS is out the
door and in your hands since most of our
developers are working with with carbon
perhaps initially we focused on
improving debugging performance for for
CFM Carbon applications so the tools on
this CD are faster they're more reliable
and and work better than the ones that
that we shipped with the pro six tools
in particular we worked on improving
debugging of shared libraries we worked
a lot of our larger customers that have
big applications lots of shared
libraries big plug-in architectures and
so we worked with them to improve the
whole shared library debugging
experience to try and get get better
performance in trying to approach our
real goal which is to give you the same
kind of debugging experience on ten that
you've had on nine with our tools for
years we also cleaned up some things
about the tools I no longer require some
of the helper apps that we've had before
like debug knob or metro nut backs that
you may have seen in some of our tools
releases before so we streamline that
process we've we've also been working
with Apple to improve performance
earlier Dave Payne talked about
leveraging open source Pro Tools on Mac
OS 10 and the code warrior debugger on
10 uses gdb so as the low-level debug
service so we've been working closely
with Dave and his team to improve gdb
for our customers as well and
consequently just improve the debugging
experience on on Mac OS 10 so we've been
doing all those things for people
developing carbon pepper applications
but we've also been working on mock o
debugging mock o has a different
symbolic format than
carbon or rather pep applications do
they use sin which you've seen on a Mac
for years and in ma coops use you staffs
so on the CD there's a new plugin to
code warrior
that's a stab Symbolics reader that will
let you do applications built with GCC
and with our own Mapo tools that are
also on the on the CD we've the Marco
debugger is ins polished as the pep
debugger is but we're going to be
working on both in the future a lot and
also improving the experience if you're
debugging both binary formats in the
same process if you have a mock o
application hosting a CFM bundle and
vice versa so that's that's what's new
in the debugger and this CD and we're
also going to be doing more releases
over the summer through a beta program
there's an email address on the CD that
we'd like for you to to contact us at
let you know your experiences with this
CD and the tools in general and let us
know how we're doing with that and that
way we can update you with additional
debugger components as as we improve
them towards our pro 7 release later
this year so that's our debugging story
and I'd like to get that back up to tell
you about the rest of the tools on the
CD and what we're going to be working on
in the future thanks again so after the
bug are probably the central central
tool that you use the most on Mac OS 10
will be the new IDE the process of an
early access CD that you have includes
the new 4.2 IDE and it has a number of
new features to make Mac OS 10
development much better first and
foremost it handles untyped files as
with Mac OS 10
Apple has rolled out the support for non
HFS file systems and so you can no
longer rely on the HFS types and creator
codes that no FS PDF info gives you back
so the ids is a variety of mechanisms
including content sniffing to identify
files by what they really are and not
just you know what the file system says
they are and so as a consequence you can
open both the untyped text files that
Apple installs with our dev tools
also any files on a ufs volume so that's
a let's just makes actually looking at
the Mac os10 header file is actually
possible now with the codeword ID also
when one of our biggest features for the
new 4.2 IDE is support for Mac OS 10
frameworks you've heard all the Apple
guys talking about frameworks which is
their new mechanism for distributing
headers and libraries together in a
bundled package and the IDE can now use
those to build and link against so you
can add a framework to your project and
will show up in a new tab in the project
window for you to see which frameworks
you're using and once you've added them
you can you're effectively linking
against the mocker library that's in the
framework and so you can use that to get
it both the headers that are provided by
the framework and the library and you'll
be linking against the the library and
you get full access to the API so
through frameworks you can get all the
access to all of the MA code only API
such as quartz core core foundation but
launch services and some of the other
native API s that aren't available via
path and of course to support frameworks
fully apple has introduced a new include
directive syntax where you qualify your
file name with the framework name in
order to find the in order to find the
actual file so for example include
carbon slash carbon data H really means
find carbon H wherever it is within the
carbon framework we didn't support that
before we do now so you can say include
use that that exact syntax on the screen
it will compile fine with code word if
you have your framework set up and
you'll be able to use the you'll be able
to compile apples headers and use
framework notation in your own include
directives as well and of course to
prevent us to not break all of your
existing source that's assuming our sort
of flat access path mechanism include
carbon H without the framework and
without the framework qualifier
continues to work so you won't have to
make massive numbers of source change to
your include directives also for the IDE
Apple has been talking for is over a
year now about distributing applications
and binaries and bundles which is sort
of a magic directory structure
that contains both an application and
all its resources so we've added support
for building bundles from the ID and all
our other various tools and in
particular the IDE has a converter that
will easily update your existing project
so that they output bundles so you can
run this simple converter it will
generate the bundle directory structure
for your target output it will create
your plist risk P list resource for you
based on your old old style finder of B
and DL resource and will create mamako
targets for your for your project so run
this once and you're ready to go to
build a completely Mac os10 native
application so MSL has been updated with
a few future tweaks we've added support
for various HFS feature
hfs+ features the most notable of which
is on long filenames so you can use an
MSL now you can use filenames that have
more than 31 characters and when we're
building for ma Co R we don't use M SLC
we use the NCC implementation that Apple
supplies and system dot framework and
our NC C++ application will link against
apples implementation and save you some
overheads since Apple's version is
really just a shared library that's
available to all system app so you don't
have to build MSL C into your Macchio
applications and waste a bunch of code
into space the power plan has been
revved as well it now builds for Mach o
so you can build your power plant for
Mach o and get complete access to all of
the new native you know API is on Mac OS
10 that aren't available for path we
fixed a number of aqua related bugs in
the appearance manager related code in
power plant so your power play knight
applications will in general if you're
using a parent's manager come out
looking much nicer when running on tin
now and we have a new version of
constructor that outputs Apple's new
recommended flat resource fork format
where the contents of the resource fork
are actually stored in a files data fork
so that file can live easily on flat
file systems like ufs and and be
transported over the internet easily so
all that all those features are in power
plan and constructor now the compiler
and linker have been revved as well we
continue to crank away
optimizations for the compiler with the
new high-end high-end power max a 667
and 733 megahertz power Macs Apple
introduced the PowerPC 7450 chip from
Motorola which has a longer pipeline and
enhanced altivec performance and the
compiler on the pro 7 tool supports
optimizations specific for that chip
that will make the code one faster when
you target when you target that chip the
pet flanker has been revved in a manner
similar to our other tools that deal
with resource fork so it support our
resource file sort supports flat
resource files and it supports building
application bundles easily as well and
we're completely noose or not a
completely new set of tools but new
tools that are actually beginning to get
into the realm of being very useful our
mock au compiler and linker we've put
them before as extremely extremely early
access thrill-seeker on past releases
and now they're getting to the point
where where you can start using them to
build big things the mock o compiler is
exactly the same C C++ front-end as our
existing peph compiler so really unless
you're using new mokou api you want to
use new maka api's there's no reason
you'll have to change our source to
switch from F to mock o using code where
our maka linker right now we're using an
interim linker that we've developed in
collaboration with Apple it's based on
apple's darwin open source linker it
uses stabs for debug debugger symbolics
like an indicated earlier and it's a bit
slower and stabs is quite a bit bigger
and more inconvenient than us the sim
Symbolics are so we're working really
hard on a new much work smacko linker
there will be just as fast as our pet
linker will use sim for Symbolics and it
will have all the features that you
expect in the nemetrix linker so all of
this is on the CD in your bag that you
got in the show bag it's called CW from
code word for mac 7 early access its
pre-release software don't use it for
production development that being said
there's a lot of big customers doing a
lot of good work with it now and since
Pro 7 will ship and fall if you're
getting
started on a project or moving a project
to Mac os10 then seven early access
stuff would be great to get as a way to
get started on that virtually everything
in the seven early access stuff works
better on Mac os10 that it did in six so
I said we don't encourage you to ship
final versions if they have to ship now
but if you need to do the work to get on
macros tin and you're looking at
shipping in a fall timeframe then you
need to start using seven soon and of
course we've revved all of the example
code to you know for both so that ever
we have targets for Mac o carbon and and
we have a few test cases for Coco our
cocoa support is not yet finalized but
we're going to be working on it and we
have some preliminary work to show you
that it actually Coco de Ville and it
can be done with good work
so future directions this is what we're
going with code were and we think that
it's all solid you know fundamental
stuff that needs to be done for you know
to keep you as customers and to keep you
targeting me to keep you targeting Mac
os10 first and foremost in the compiler
maker we're going to finish off our
cocoa and objective-c support we
initially added Objective C syntax
support quite a while ago in the back in
the days of yellow box and Rhapsody we
haven't really gone through a rigorous
validation of that support though and
we're going to fully validate it qualify
it make sure it's you know 100%
compliant and you know it's fully
integrated into our compilers we're also
as I mentioned earlier working on a new
ma Co linker based on our own linker
technology and not the apples darwin
open-source linker it will be life had
inherit a lot of code from our existing
PowerPC linker it will be very fast it
will dead strip unused code that you
know is not called by your application
but it's actually included in your
project and it will output sin for
debugger Symbolics which are
traditionally much smaller and tighter
and faster to use then stabs this up
backwards
sorry so for the IDE in the immediate
future you'll see hopefully for the four
pro seven final you'll see long filename
support so you'll no longer be have to
worry about headers and sources having
only 31 characters in the filename
you'll be able to use full 255 character
Unicode filenames and have the IDE be
able to deal with those source and
header files easily we're in the initial
planning stages with Apple about
integrating code warrior and interface
builder together to provide support for
both carbon nib based development and
cocoa Objective C and Java development
we would like to have something to show
for seven final we may not though but
it's very interesting to us and Apple
and we intend to fully fully explore
that Avenue of them supporting cocoa and
of course we're always working on our
user interface to make code we're better
easier and faster to use and we're
always working on performance both in
our own tools and in cochin so that your
software will run faster when it's built
with code where the debugger our
ultimate goal with the debugger is which
has been you know the most frustrating
aspect for people using our Mac OS 10
tools so far is to make the debugging
experience a smooth and work as well on
Mac OS 10 as it does on line that being
said we're not there yet with the seven
early access stuff but it's gotten a lot
lot better since 6 and some of the beta
releases that some of you have probably
seen between 6 and the 7 early access
stuff and it's going to get a lot better
in the future and it will be better for
seven and we're going to keep hitting on
it until it works like you expect it to
work and even more exciting for the
debugger stuff is that Mac OS 10 allows
us because we're using gdb as the
underlying low-level debugger now and by
the way you will never see gdb when
using code warrior you'll you'll be
completely isolated from it so really
the fact we're using gdb is a technical
detail that doesn't concern you we will
we'll be able to do a few cool new
things like adding support for viewing a
peg datatypes Apple rolled out
completely opaque data types in the
carbon API such that you can't see you
know the actual values of the members of
your
window pointer for example or you can't
see the contents of a control handle so
hopefully we'll be able to integrate in
some support that actually lets you tell
you what what the values of your control
are or what the position of your window
is from the debugger even in spite of
the fact that it's an opaque data type
and another thing a long requested
feature for our debugger is support for
calling functions while debugging
because on Mac OS 10 because it's you
know UNIX and has printed multitasking
protected memory we think we'll be able
to get that feature into our debugger
and you'll be able to just use function
calls and expression evaluations without
any difficulty so powerplant
we continue to adopt new Mac OS
technologies in powerplant as rapidly as
possible with the appearance manager we
gained a lot of Aquos support with this
release of powerplant that's on the
early access CD we've polished up the
aqua aqua support a lot more so it's a
lot cleaner and easier to deal with we
have initial support for carbonate
events in the early access power plants
an initial implementation of a view
class to support an LTE which is Apple's
new text API for editing both in
multibyte lingual scripts and for
greater than 32 K anything so if you use
ml te you'll be safe for localization
and you'll have you know a full size or
a full featured text editor that doesn't
have text edits on 32k limit and we're
also have started investigating a
wrapper class in power plant for the
data browser which is Apple's new
ListView API that the Mac OS 10 finder
uses so that's it on the who to contact
thing before I talk about sending a C
mail I'd like to mention that tomorrow
at 12:30 we have our very own lunch
presentation at the Civic Auditorium
across the street lunch will be served
there in case you didn't want to go and
you know and not in this lunch so if you
show up in time you should get lunch and
you know we'll have a number of cool
things there David Perkins the president
of Metro Works will be talking Bertino
barata the CTO will be talking will be
giving away to a Playstation 2 to
somebody at the presentation so please
show up about that you'll learn a lot of
great things about code word and you'll
have a chance to win a Playstation 2 and
of course contact me you have questions
about macros Tim tools contact Joe
Hayden if you have questions about Mac
os10 tools and when you start using the
pro sev and early access tools send your
bug reports feedback feature requests
whatever you want to that email address
that email address is actually in the
package so don't feel obligated to write
it down and with that I'll hand it back
over to Guthrie thank you very much Matt
the guys at Metro works have really been
amazing they come to most of our carbon
kitchens they support our engineers Wow
our engineers support them we work
tremendous tremendous amounts of hours
with them and I can't thank them enough
for the fantastic that job they've done
with the early access so again for more
info from Metro works there's their URL
and remember the lunch presentation
tomorrow 12:30 to 1:30 p.m. putting it
all together for Mac os10 development
tools are a very healthy very healthy
state now we've you saw in Steven our
offs slide that we've covered the basis
for all of the work that needs to be
done obviously all the tools are young
all the tools will take more development
and have better features and more
performance as time goes on the Apple
tool suite is ready now it builds all of
Mac OS 10 and all of the 50 or 60
applications that we deliver the
third-party tool developer products are
ready now and there are lots more coming
so there really isn't any excuse the the
goal is to get your applications to
customers to make mac world New York and
Apple Expo Paris a tremendous success
information resources at Apple we have
an information page for all Mac os10
tools all you have to do is go to that
one URL and you can walk through all of
our products and all of our third-party
products we also support a mailing list
server so you can do self help with
other members of the development
community we have mailing lists for
project builder for cocoa dev for carbon
dev for Java dev and several others as I
think about 15 or 20 development centric
lists they're a road map this is just
the first session of our tools track
we're really highlighting to
throughout WWDC this year you can see we
have a tremendous number right here in
this fall today after lunch we have
project builder a full full detailed
feature presentation on project builder
we have at the same time for the web
objects community and introduction to
the web objects tools over in civic
auditorium we have interface builder
again here this afternoon and then
continuing through the week tomorrow
project builder Java development tools
application packaging and document
binding compiler technologies very
important session apple performance
tools we want not only your applications
to be there we want them to perform at
their best and our tools can really help
you in that all the way through Friday
and we capped the week with a developer
with a developer feedback forum on
Friday afternoon and with that we've got
about 10 minutes left you can contact me
if you're a vendor or if you're just a
developer and you need to know something
about tools this is my contact
information if you want to give feedback
to the Apple tool developer group
developer tool group excuse me there's
there's a mass mailing address for us to
receive your input
you