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