WWDC2003 Session 601

Transcript

Kind: captions Language: en [Music] ladies and gentlemen please welcome vice president development technologies Ted goldstein thank you very much looking for a job at apple today and Java is in a class by itself an apple uh it is a critical critical important technology or you'll hear why and I think apple is critically important member of the Java family companies and we are extremely well suited for each other people have heard me talk about this before know that I think the two are very well married besides I love apples and I love coffee don't have any here so we like to say that apple loves Java apple loves job is great symbology and and such Java is Apple's strategic cross platform technology for people who need to develop applications that run on multiple platforms at least one of who you do do need to run on something other than Macintosh we think job is the way to go and Apple has made a tremendous commitment to the job to make that happen it is a key component of many many enterprise solutions including Apple's own running of its business and we also think that Apple and Java is extremely important to Apple itself because it has brought many applications to Mac OS 10 and that in once we were able to bring in and bring and make a beautiful aqua interfaces for many many applications offering arm with no tuning at all or maybe we just a little bit of tuning things can become leather sharp and very perfect and technologies and techniques that we've done are making that even better you're going to hear today about some of the infrastructure we've changed and improved r22 to make Java on Mac OS 10 the best it can possibly be to be a full first class citizen with all everything else that Apple does of cocoa and carbon and such but first let's talk about Java and where it sits and in the landscape so when we think about programming languages and great languages of classic time we think about things like Fortran and COBOL these are great business processing languages great scientific languages and you know I want to actually hand it to Microsoft they they've they've made a language as bad as popular as corbel unfortunate something called C sharp and I think that's crew you know very thankful for Microsoft to remind us again about the bottom of the scale basic and pearl far far outstrip what's going on at that end and that's because of the accessibility see in C++ which are the main languages that people develop our desktop applications in Dwarfs even those but Java Java is the monster java is you know a 51-percent more market share it's going to take a long time for languages like C sharp or cobalt to catch it and I think it's critically important to realize that because while the Microsoft PR machine is manufacturing information about c-sharp Java is the winner Java is the winner and enjoys the mindshare at universities are you know we hire summer interns at Apple and you know almost unanimously if they've had any programming classes at all they've had programming classes in Java and they are well trained and it helps us both to mold what they do for the technology they develop at Apple and for the end for languages that we develop applications in so really we feel very comfortable very comfortable with Java as a fundamental mainstay of the Apple development tools story java java demand has increased their nap three million Java programmers out there over half of the world's pcs have Java natively installed HP and Dell have recently saw into they have copied apple and now shipping Java as part of the platform and our shipping son's latest version of Java that we're shipping and one of the nice things that I'm happy to say is that son has we committed itself to desktop Java for many years you saw them putting their attention on either end on this on the enterprise side and on the micro java java j2me job on the phones and smart cards which i'm very happy about but you know somehow they seem to be something missing from the middle on the on the desktop platform and i'm very glad to see it to see is java one we saw tremendous burst with enthusiasm of renewed energy of revising rjs RS and such and i think that this is extremely important all these factors together show that java has legs it has long sustained spirit to create our great applications we use Java ourselves to run our business so when we think about the kinds of applications that it takes to bring money into the company right so do the accounting services to do the financial reconciliation to and website java itself is perfect as a business enterprise application and Matt let's begin switch there's a sound no sound well so this is a I'll do a voiceover then Apple uses Java press/ap all of our salespeople I use Java in its to book its numbers our website is used uses Java it is based on web object technology Apple music store 99 cents a click and this is critically important Apple technology of in every facet is it's devoted in many ways to create a tremendous desktop application experience to create and as well to create a tremendous server experience and these things combined together Java is a critical element when we talk about and celebrate many applications such as iTunes and such these are complementary technologies to provide the fabulous interactive experience but also jobs as part of that Java is also in the products that we sell and we develop ourselves so of course we ship j2se and Jaguar and in Panther and a job in a mac OS x server dot mac is built itself using the java technology so the dynamic creation of the web pages uses the web objects application server and many ways also hooks up to our very various third-party our java application servers as well and of course our web objects platform which runs not only a mac OS 10 but on solaris and on windows 2000 platforms that it itself is a portable application environments to create applications for server based applications so let's also talk about applications that you brought to Mac os10 so shall we switch so here for example smart money are terrific application for monitoring this is what does this one can't see Borland this is jbuilder ide think free terrific our word processing system was named disley rocker crocker right so crackers a understanding tool for the java of understanding the web and such the visual streets the tourists from design many many applications all having tremendous visual appeal using the the interactive approach when we flip yes good we also want to introduce a new application server on the mac OS 10 platform called j boards this is something that you've asked us for it allows you to deploy enterprise javabeans it is jake inspired by j2ee it has incorporated in it as part of it apache tomcat system it's one of the things we like about it is it's very good for hosting web objects 5dr to web applications and if it's extremely well and integrated into our the apache web services and one of the things that we like about gay bars of course is it is a cross-platform standard it has that capability our own sending is roughly about forty percent of people who do this type of application or supporting and running j boards including and about of those seventy percent of those companies that use de Bourgh's have deployed it so it makes j boards actually I think I believe the largest largest of the j2ee like application service more information on jboss will be talking about that in the 605 with objects and j2ee session and 612 enterprise app deployment section so great great new technology that I think you'll enjoy using and which has a tremendous amount appeal for our customers the thing that we'd like to say and critically important is Java hands in every Mac os10 box it's bundled in every system including our job in pencil release will include both Java 1.3 and 1.4 that's slightly subtly different API some applications prefer one that 3some will prefer one dot for and Apple tools support java we're very focused on this the new Xcode tools will be supporting java fully in the GM release but in fact even today it will support it with the the jam based build system that we've had for several years jboss will now be included in the mac OS 10 server product so you can see that Java really is getting very rich and fully integrated into all aspects of what Apple does I think one of the things that Apple has very focused on is improving performance and so gypsy technology just-in-time compilation it's critically helpful for making things go faster to as your application is running the Java Virtual Machine is optimizing we've put in technologies to optimize and improve for the new g5 system she fought in fact a perfect machine and their hardware features designed specifically to support java and you'll see that some of the scientific benchmarks and floating-point benchmarks java is terrific on we've added it supports for do i owe you extremely fast streaming i/o into the java application environment and support to allow you for your applications to select between different versions one of the things that I think is a as a Java programmer you can actually be a more much more insulated from the hardware architecture so whereas if you're developing in C or C++ or objective c you do have to actually know while you're running on all of g 3g 4g 5 or you can optimize your code and selecting the compiler GCC compiler to target specific hardware platforms in java that worry goes away because your applications dynamically loaded and the Gypsy compile it selects on the fly what it's going what and knows what hardware it is being executed on it can choose the best optimization technology for you so this is one of the things that makes Java in this type of just-in-time compilation technology an extremely good match especially when you have multiple machine architectures you're targeting I think one of the things that is also very interesting here is no matter where we go when we get to g six seven eight nine ten whatever you'll know that your java application is architected in such a way that it is obviously not migrate able and so the applications you create today are going to have a future role in the future life in a binary compatible way um one of the things that is really great about to do java 1.4 implementation from Apple is we've made some big changes in how we've implemented Java previously java was built on a carbon sub structure and various layers that allowed us to have some support for mac OS 9 days but also tremendous and and to migrate over DeMeco is ted much is that as many of you developers to develop carbon applications you have wanted to deploy both online and 10 but of course now that we are fully are on 10 and really 9 is sort of a dot of disappearing in the rearview mirror we want to we actually took the time to re-engineer from the ground up the 1.4 environment so so previously with java one that's three that one as provided some sun there is 1842 classes from sun we get in one dot for Elmo 3020 991 our classes but if you look at it the code that Apple ads on top of it right in the one that three case we had to put in about 900 classes of code to connect it up to the carbon and and carbonate APRs and such in within 14 we're cooking up to cocoa we've only had to add 300 much less code and yet we have more functionality more infrastructure that we have to bind to provided by Sun and what's interesting here is it is a very nice match a very sweet marriage if you will between java and and the cocoa and objective-c environments many of the people in factual designed sons window its swing system actually were original next day and so it's not illogical that that should be true so one of the nice things here is with less code it then be helped Apple put its attention on issues of fit and finish and performance and other things so this is one of the things I'm really proud of in the cocoa in the carbon to cocoa transitional and with that I want to invite up Scott Adler the Mac Mac os10 classes technical need so it has done a really good job of explaining why job is important to us at apple and some of the basic things we've done in 14 in our new architecture but I want to talk a little bit about where we've come from so we can look at a time line here and you can see that back here we had mac OS 10 and we ship Java 13 with mecos 10 and then 10-1 we shipped Java 131 but that's all way in the past then we had our 131 update that we shipped plus a13 one version that came with Jaguar and then recently we shipped another version 13 but you can see we have fairly regular releases of our of our Java platform now over the past year we shipped a year ago a little over a year ago we shipped at 14 preview that would still based off of our carbon api's at the WWDC then from november to about februari we shipped must in between 10 to 20 developer previews of our 141 our 141 java jdk so the deal is here is we were shipping you our code as we were working on it and we got lots of feedback from you we got so much feedback that we kept on adding to this and doing more developer releases and this was a new thing for us where we were shipping out things to you and any ABC member could download our 141 so this is a great way to get feedback directly from you without just dumping a release on you and saying oh my application doesn't work so we took all that feedback and then we released Java 141 in March of this year so what we've been doing since then is we've been working on fixing all the bugs and improving performance so what you have right now is you have a panther preview that has a version of 141 bundled inside of it and also you can download a one-for-one update preview there will be eventually 141 updates but there's a preview available for all ADC members so you can again download this and then tell us what things what issues you have there there's so many Java programs out there that are best bet is for you to try out your application and let us know if their issues specific to you so what you can see with this timeline is that we have all these regular releases of Java and we now have 14 and 13 and we still have regular leases of 14 going on into the future and you can see that we have our releases with the operating system and obviously we're going to have 14 and 13 release to its Panther so multiple versions support we've been talking about this if you were here a couple years ago we had one version of Java on Mac OS 10 and that was 131 and that's what you got as opposed to other platforms where you can install whatever version happens to work with your application and everyone edits to install their own gres and it gets all confusing because you then have like six different Jerry's on your system so we have a version that we ship now we have two versions so you have to be able to handle two versions well we knew we had to have backward compatibility apps that work with 131 and may have issues with the new API 2141 still have to work so our double clickable applications will still work with 131 but we also have to allow you to specify the version so you can specify it the same way the java web start does by saying what version or hire you work with or saying i'm locked into a specific version so that's really easy for you to do so you can ship your apps working with whatever version that you need and we're also going to include both of them and panther now if you have a 14 app you can be confident that your users will be able to have it because we're shipping 14 through software update most people just automatically download I know my aunt download it she didn't even realize it so we have over a million downloads of 141 and we're going to keep shipping our updates to 14 as software updates and then when Panther comes along it will be bundled right inside the OS so you'll have both of them right side by side 131 apps can run 14 apps everything's happy so now I want to talk a little bit about the Java platform we do if you were here two weeks ago at moscone at the old Moscone there was javaone going on and they talked all about the Java platform and it's huge you probably know about it you're probably a Java developer but the platform is pretty huge I just want to run through really quickly the 13 to 14 differences so we have all the OS releases that runs on on the bottom and then we have the actual virtual machine or the runtime as we like to call it which includes all the hot spot compiler and its small on this chart but it's actually a big deal there's a lot of stuff in there going on for figuring out when to compile your code then we have all the core api's this is the basic stuff in your application this is things like all the collection classes to make it easy to do sorts all the networking classes utilities string classes all the basic things that Java just can handle for you then you have your integration api's things like connecting to databases and remote method in vacations and on top of that the UI toolkit switch swing and awt are obviously the most basic things in that toolkit and then you also have info Mehsud's for getting foreign language supports java 2d if you just our graphics application accessibility support which is definitely a big user interface issue and sound support then on top of that are alternative deployment techniques other than just jars and double clickable applications things like java web start and the java plugin for applets now when we went from 13 to 14 there were some new packages brand new packages some extensions that were bundled in some other things that people just wanted that Sun at its 14 and people looked at this and say hey that's all this in one for no big deal well actually all of these packages have had major API changes swing has had brand-new components awt has had lots of fixes and there's just all a list of api changes across the board and then there also are all the other packages that have been touched or change that have bug fixes inside of an under the covers especially the hotspot compiler and vm there's lots of changes between 13 and 14 and almost none of them will you actually have to do anything to take advantage of they're just things that happen under the covers that make your application run better but it's things that we implement so I want to talk a little bit about Java 14 on Mac OS n and what the performance things we've changed so first starting at the bottom there's the runtime improvements so the biggest thing here is that these will directly affect all your server and scientific applications so any runtime improvements we make immediately if we fix floating-point we make it work faster your server applications will just start working faster we have some things like aggressive inlining that's been implemented the new I ofe API that we've talked about earlier and then of course the biggest thing that you get for free is support for new hardware now this morning in the keynote you heard some talk about a developer who ordered their application to work on the g5 and recompile in something like 15-20 minutes well you don't have to do that you guys get that for free your class files come over they run through our compiler which is now optimized for the g5 so let's just take an example there's a benchmark which is thus I mark benchmark it's a scientific calculation benchmark and we just looked at the composite score and so on a C on a g4 1.4 gigahertz dual machine we score a hundred and ten which leaves is somewhere in the 50 top 50 compilers out there now if we look at the new machine which is a 2 point 0 diggers duel we scorn out to 32 which brings us into the top 10 and this is just with a couple optimizations for the g5 so we already are taking more than a hundred percent improvement on this one score just from optimizing things like our long instructions and all the things the g5 can take care of so this is some great news for your applications because you just get this when you run on the new hardware your apps will be that much faster so I really encourage you to go look at session 625 there is more info about the side mark composite score and all the different portions of sci mark and what they did they'll actually break down how they compile your bike codes into better instructions on the g5 and how you can set up your applications to better take advantages if you want to but again it'll just automatically happen for you so also in the graphics area we know we had a lot of work to do and so we put a lot of effort into some graphics improvements so the biggest thing is that we're faster across the board even on Jaguar systems this update should be faster for your applications and graphics we heard a lot of criticism about this and we've tried to respond to it we did things like our graphic system sits on top of courts and the Java graphic system doesn't necessarily understand all the interest intricacies of courts so we did things like we know more about it so we put in a new state management mechanism which should help all your applications be faster for basic drawing routines we also have lots of bug fixes so i have 1 benchmark i stole from the performance session which is the java wireframe demo which measures basic primitive lines and i may be arks drawing performance and in a one-for-one release we got 20 frames per second and then in our 141 update we ended up with 35 frames per second so you can see that's a pretty significant increase in just our update release so you can find out more about this as a session again on Friday the performance session so now in Java 14 there's also all the UI toolkits and I want to talk a little bit about those so awt this is the big change we made over the past year we change the architecture of a WT so a WT is the whole tool kit that has the pure toolkit so peers are these native widgets that Java relates to sew a wtm windows has windows widgets awti Mac os10 now uses cocoa widgets now the big deal here is it's transparent to users they don't know whether its carbon or coca we don't want them to know but what happens is the cocoa widgets now have support for our native services so the services menu just works the speech and spelling in a to bt controls if you control click on your awt text field you'll get that services menu and you'll be able to select speech and speak those items or see the little red dashed underlines and be able to get spelling right there or send something to a male client because it's in their mail has implemented something so you can say click send to mail the other thing is you get things like the colors and the artwork automatically so if you use a WT colors or system colors those automatically are mapped to our UI system colors so if you change the highlight color and an application in the system preferences it'll automatically be reflected in your application if you use the highlight color plus their things like input methods are now supported in all of our awts so that means you can get your complex fonts and complex foreign language support and also things like inkwell if you happen to have a tablet you could use inkwell right in your awt text fields plus we have accessibility for our awt widgets and also for some reverse swing widgets and that means you can script everything you have things available its accessibility up to it you can use it using UI scripting in apple script so the swing aqua look and feel this has been rewritten with the architecture change to use the native cocoa rendering so what that means is when you draw a swing widget instead of pulling the whole thing into Java and trying to draw it in Java what we do is we go down into the native code and behind the scenes draw it with the same routines that cocoa uses to draw it so when you ask for a swing button it's actually drawing a cocoa button behind the scenes and then putting a lightweight view of that thing up on the screen so it means that you're your components will be more consistent with other swing apps and with other native apps the other thing excuse me I'm grab a drink so the other benefits you get from this is the native menu bar you can actually use the menu bar at the top of the screen if you want plus you can also get the brush metal look and feel if you want you can set a property get brushed metal and then you can set backgrounds on windows and they all all the sudden become translucent windows and it's really cool you can make if you do a non-title window you can make the background transparent you just have floating swing controls if you want it's kind of cool there also are some new widgets there's the indeterminate progress bar the spinner and plus we have new internationalisation support so with that there's more info on at session 608 they'll be talking about creating great job applications they'll talk about how to do all these customizations now I'd like to introduce Greg bowls Inga whose title is up here hey that is high demo machine too please I've got a pure java swing application here this is it right here it's using the aqua swing look and feel and in this particular case I've started to use the brushed metal look and Jaguar we had some trouble with this but with the cocoa fixes that we got from the system now it works we didn't I don't believe we had to do any changes to get that so you're a java swing program will look and behave as Mac OS 10 users expect the what I'm going to be showing you today is how the Java accessibility has been tied into the Mac os10 accessibility and you get all these great features for free michael has turned accessibility allows your program to be used by all users people who may not be able to use a mouse or see the screen or hear some such but there's a lot of features that are cool for a whole lot of people as well so what you're going to use our pure awt and swing components if you have a custom component control you'd have to integrate it with the job of accessibility API and then when you use it on Mac OS 10 you'll just get it for free so the first thing I'm going to show you it's a spoken user interface it's part of speech and if you have it mount do the text under the mouse will read it out loud so again stop adding this these are just pure Java widget all images that are getting this for free so it's a pretty easy to use screen reader and we also have speech recognition you'll see here in speech recognition that there's the front window command I'm not doing that in here because the microphone in a big room don't work too well but what i could do is go to this program and say add image and it would click on it for me this comes for you to you for free with java you have to do no additional java programming nor any native mac OS 10 program and here's another really cool feature that we have is the UI scripting pardon me so this is a JavaScript that's going to click on button and it's going to fill out this little goofy program I wrote while the script is running so have it tell you about it thanks really first going laughs he had the logo now add agility logo now i might get your think so it's filling out all these text fields ethical it lastly you pinch your call now it will start bouncing around now let's turn on the transparency best are you Frank okay so what we have here is still obscure Java program we use you standard awt components and we're able to script them this is pure Java you'll notice this transparent window i have here all i have is a java.awt window where i've set the background color to have an alpha and the quartz extreme compositing takes care of the rest of it for us you can hear more about Mac os10 accessibility at sessions for 21 on friday and i'll have more about this program on thursday in session 620 so i'm going to run one more thing and it's going to open a website where you can learn about it no use oh cool before you hang that up i just want to show them show them the the other thing you had so Greg's been working on this demo just for like a day and I said it'd be really cool if everything blew up so he had something where he could add a whole bunch of mission and it's happening so I just thought that was kind of cool so this really shows things like you know your transparent window the scripting now what you don't realize is that's all swing those aren't cocoa control the system doesn't know that those are cocoa elements in there it was awt it would know about that but these are swing controls so we implemented things so that your swing controls can get access to the outside world and so that any other developer who goes in can see that yes there is a button there even though that's a jbutton behind the scenes which on any other platform they just think it's lightweight I don't know what it is on our platform we'd expose that to our accessibility API so this is a big advantage to your swing applications because awt applications are kind of boring sometimes and swing applications can be really complex and you can also is a true Greg you can expose your own custom component you just time in with the standard Java accessibility API is provided by son oh one thing I forgot to mention on other platforms to get java to native accessibility you have to do next additional download we don't believe that additional Java downloads except when it's a new release I guess but so you would just get java to Mac os10 accessibility linkage for free great thanks a lot great thank you [Applause] so that's the basic java jdk right there you have swinging of a WT and all of your accessibility we also have some enhancements for for java because we know that to be what was called a native citizen which the native term is way over loaded but to be a good Mac os10 application there's something you have to do users expect it they expect things like you're about box to be under your applications menu that your preferences are not hidden under the the file menu or something like that they're actually under your application menu so we have this in what we call extended awt so we extended awt but in a java specific way so you can actually use our classes and you can bundle these into your jar file but if you're on another platform you don't have to even use our classes so you can have one jar file that will know about Mac os10 when it's there but that same jar file on windows or linux or solaris will still work so you're not tying yourself to the mac we don't want you to have to embed native code in there and become non cross-platform because Java is our cross-platform strategy so there are other things we also have runtime options we have lots of options available for you that's actually how you trigger things like turning on the screen menu bar and some some of our other native options you just specify these runtime options which are not intrusive we look for them on our platform other platforms won't even look for them they'll just sit there doesn't matter if you say you screen menu bar it's an apple dot lasu screen menu bar no one else is going to look for apple laf so it's not going to harm your application anyway on other platforms also with deployment we have a couple things for deployment the first thing is that you can deploy your applications as just plain old double clickable jar files now that's good because a lot of people deploy them that way so we want to support it it's bad because it's a jar file users don't understand that a jar file is something I should launch it looks like a file you get info on it it's a little confusing but it's something we want to support because there are a lot of files out there that people want to just double click and launch what you really should do is you should turn your application into an application bundle and this is really easy to do if you're creating your app through project builder it'll automatically do this for you and you can specify things like what your icon is what the name should show up in your in your about menu and in your application menu you could also do things like specify here I think I said all your your custom icon you can also specify things for Apple events so you can say my application supports these types of files with these extensions and then you can drag those files to your application and then you'll get Apple events notified to you if you've registered for them with extended a bit awt so this makes it really easy to make a thing like a real word processor that you could drag your text files to and actually have them open up on the Mac the way users to expect them to work so that's what we recommend you do and we've built an application called jar bundler which lets you bundle up your jars into bundles that are applications on Mac OS 10 there's also another thing for mac OS 10 that's these OpenGL bindings that were announced at javaone called joggle or Jo GL and what these are these are brand-new OpenGL bindings it's the new way to talk to OpenGL from Java and it's an open source project there is a mac OS 10 version of it up on their server so you can download that it's been contributed through the open source community so you can run that to get to OpenGL if you want to skip all the other UI toolkits and go right to OpenGL and do some game or something in Java you can do that using joggle so again if you want more information about these go to the creating great job applications that session 608 you'll see at the end all the times for these sessions so now we have the other thing which is tying yourself into some of apple's api's now some people might not want to do this but there's a lot of good reasons to do this we have some great things that you can do on the mac with java and they're exciting actually there's this the whole web kit SDK allows you to build WebKit applications that you can just embed java applets right inside of so that's really cool then the other way around is you can take a java application and you can embed a cocoa view inside of your java application so you can take some custom cocoa component and embed it right inside of your swing application and just have it sitting there interacting with the user just alongside all of your swing controls it's really cool it means you can take almost anything from other projects and just pull it into your java application there also are ways to get to other api's through native interfaces to get to things like our disc burning API our cryptography api's it's it's really cool you'll see some of this in some of the later sessions building a disc burning program with almost all pure Java with very little native code but then you get all of the disc burning utilities we also have quicktime for java 6.1 which is being seated it's a developer seed if I'm if I remember correctly it has new bindings for for new quicktime api's so it's a little different than the quicktime for java that you might have used with 13 the big deal here is that it works with 14 on mac OS 10 and i recommend you all check it out anyone who's used quicktime for java before check it out give us feedback on it talk to the QuickTime team because they want a lot of feedback on this and they actually are having a session session 708 is where you can learn all about the new quicktime api's and i really encourage you if you're a quicktime developer who uses java whose use the old quick-tempered java or has taken a look at the new one to go there and give your feedback and learn all about it at that session there's also some sessions on webkit session 420 we'll talk all about WebKit and how you can get out WebKit in your own application which means you can then access to applets in your application and then also session 620 we'll talk in depth about these features native integration on Mac OS 10 so you can learn all about the different ways to embed native services in your application so now I'm going to do a quick demo of access to native services all the extensions so if we can switch the demo machine one so what you see here is this is actually a sample app I downloaded from our from our developer site and it's actually something that lets me connect two video cameras which was really cool because we announced a new video camera today I didn't even know so so i made this app and I it was developed by attending our DTS group to show how to embed cocoa components inside of a job app so how you can get some native functionality inside of your pure java app so i just gave it this great icon and I you know named it after my favorite 80s name super video pro and so it's got a real icon it actually is a real application you know everyone thinks it's just a plain old application they don't know there's Java under the covers so it's already launched here so here's my camera view now this is really exciting it's it doesn't look like much well what's actually here is this area right here is the cocoa component inside of this cocoa component is an NS quick-draw view which is then talking to quicktime so we've got everything in this one little application now according to Java there's just a component in there that's going to give us pixels and it's just going to fill the screen fill this section of the window so as soon as I say connect there I am so this is getting stuff directly from quicktime all there's nothing tricky going on here you can download this exact source so I can just pick this up maybe not I'll just leave this right here I don't know how that's attached there I was going to show you how that the demo guys doing back here but I don't think we'll be able to see him so you can see that we're getting live stuff right here in our application and then there's some other things like I used extended 80 BTW and i added a man about Bach with some custom Java inside of it so just to show that there's real job in here I just threw some goofy things in my about box and this is just a regular old Java stamp i threw in here and i can click here and see Ted who wrote the sample and all this exciting stuff so this just means you can do your own about box in here and then we also have the Preferences menu so this again is hooked up to just my plain old java code and i can change any preferences so one of the cool preferences in here is show DB set up when connecting so i could turn this on I say ok and then I I stop and I'm stopped now if I reconnect it goes directly to the native TV setup video setup so this is now no longer java code this is a native window that's come up inside of my job application it took I think one parameter that I passed to the QuickTime set up that says now I want this native window and now I get things like our vector scope in here so there's all these cool things we can see what what color am I and things like that you can also decide if you have other sources you can choose different videos and things like that so this is a real easy way to get to native functionality in your java application ok go back to slide [Applause] so web integration when you use Java most of you when you develop Java you're developing java applications or applets now a lot of users run into applets all the time and don't even know about it so we have to do a good job with web integration so the biggest thing is Safari Safari is our browser our main browser on our platform and we have to have good at that support for it so we have 14 applet support in Safari Safari is a cocoa program and so our new Koko architecture works really well with Safari so you actually have a much more seamless integration between Safari and our 141 so now we can actually say that we have more athletes than ever running on Mac OS 10 using the combination of Safari you also have a pleasant side of internet explorer we also are working on a 14 plugin that will work with carbon browsers so all those people are writing carbon browsers out there maybe they won't be around for long because of WebKit and how cool it is but there still are some people who are writing carbon browsers and people may want to embed their app applets inside of there so we have a way to we're going to have a way to put 14 content inside of those browsers and then Java Web Start which is kind of lonely at the end here but it's actually a really important technology and it's not that many people know about it but it's a way to deliver applications through a web browser so the deal with Web Start is that it's a Sun specified way of doing things and you can have your jar file up on a server somewhere and you just have a link to a jnlp file which is the thing that will then launch your application and you click in the web browser and it downloads your jar file puts it into cash and then create it runs the application and on the Mac we've actually extended that so that if you download that more than once you could actually have the option to create a double clickable application of your Web Start jnlp file so what will happen is you'll then end up with an application bundle that knows where it came from so you have all the advantages of web start because one of the big things about Web Start is that you can actually go to the original website every time you start the app and check to see if there states you can automatically put updates out there and then anyone who's using your app will get an announcement saying there's an update do they want to download it so there a lot of things there where people want to deploy through the browser but don't want to be an applet inside the browser process they want to download something and not just be a dmg file or something like that and this is a cross-platform way it works on windows with other jreeves so there'll be a lot of talk about this at the job on the web session 619 there's a lot of details about the new things in Safari we actually have support for cookies in Safari now which is a big deal and then all the details about then you plug in and many details about how to specify your java web start application so Java moving forward so we've been talking about our Java update and other things like that let's talk a little more detail about it so the future of java on mac OS 10 the first thing in our future is the 1401 update for mac perd for jaguar mac OS 10 10 dot too so what's in that well we have hundreds of bug fixes we've been fixing lots of bugs we've been getting the biggest issues and knocking those down the other thing that we've been working on a lot has been performance enhancements so what's the biggest thing their graphics performance enhancements which you saw some of and you'll see more of on friday if you go to that session the vm which has been optimized for for the g5 but there also some other optimizations in there that can work on jaguar and then aquas had some improvements in it so we actually have some updates to our aqua look and feel and to our awt components and the big thing here is that will be developed as a software update now it's available to you through a DC download as a preview and we really encourage you to download it try out your applications see if you have any other issues that we don't know about and give us feedback on it so now I want to give you a little demo of one of the things that we've seen in the in our release versus our software update so we can get demo machine one this is a little application called Robo code how many of you help you out there know about Robo code how many of you tried running robo code on 14 okay so be lucky you haven't because you're about to see what robo code looks like I'm 14 so robo code is actually an interesting application it's developed by IBM alpha works and it's a program where you program little AI robots in Java that are subclassed off of a robot type and you can compile your robots and everything it's very cool and it's very cool to us developers outside people might not care about it but developers think it's really cool because you actually get to you know it's kind of like or wars and all those kinds of things you get to program your robots and have them faceoff and teams or whatever so this is a kind of a graphics intensive kind of thing and this is running on our 14 release from March and if I just resume the battle you can see up here this is our frames per second which this was I think one of our developers deemed this unacceptable performance which i think is completely correct so so what do we do well we looked at this and we said we know there's something wrong here we can do a little better so I'm going to switch from this machine to demo machine to which even though we have a rack of excerpts here this is the exact same configuration machine as this one here you'll have to believe me on that and we set up the exact same battle except it does random placement so the guys aren't meaning the exact same location but you might be able to notice a difference so this is running our 141 update 1 and if I resume here now we're actually getting but we're getting 20 22 this is let's see we this is a little less than what we were getting in our innards okay so we're getting about 20 22 this is a lot less than we got a rehearsal but it's still an order of magnitude better which is pretty good so what I wanted to do is show you that we actually have let's cancel this battle let's open a battle that I saved which is a really big one here that I enjoy and let me pause that and I I like doing this too let's see if this works now here we're only getting about 10 frames per second but it's probably because we have another thing going but you can see that this is actually an order of magnitude better than what we had before and you can actually run this in it's actually usable now and we found out a couple reasons why this was happening and we fix those reasons and hopefully we can find out why it's only 10 to 15 frames per second here and not 30 which I was getting in my my test run earlier today but it's still better than before so we can go off of this one go back to slides so that's the update and now the future of Java is actually going to be Panther that's the future of Apple so what's in Panther well what you got in Panther was pretty close to what's in our update that you can download now it's a little different there aren't all the exact same bug fixes but we're going to have all those bug fixes in there so when Panther is released it's going to have everything that was in our update so one for one update one is going to go out before Panther and then when Panther is final it's going to have everything that was in that update plus all the pants are graphics improvements so everything the Panther did we've what Ted told you earlier is we've architected for the future and this is actually where we start reaping the rewards of that architecture because we're living on top of all of the core AP is we live on top of core graphics we use all the text API so if you're at Scott for cells discussion about text and all the changes that have happened there we immediately get those two times performance gains so every every Panther performance improvement those will affect us aqua improvements were revving our aqua look and feel to match the new aqua look for Panther font performance is huge the font performance change in Panther and we should be gaining most of that also things like the improved i/o performance and then the big deal with panther is that will include 141 so you can count on your applications having one for one they if you need it you don't have to get download for Panther and then the other big thing which is to mention in the last session and this session is that jboss is going to be bundled with mac OS 10 server so you can count on having something that is close to the j2ee standard and be able to run your j2ee applications there so with that I want to bring up allen samuels who is our java technology evangelist and a little bit today with actually one of you from the audience a developer now the story on this is my counterpart actually in our in our Swedish office mark turner actually we had I think had a phone call one day told me a little bit about this developer that he was working with that had developed this really cool product in Java originally developed on Windows and solaris I believe believe it's even over a million lines of code a pretty hefty application it was in a video conferencing space my first thought when Mark told me this was like these guys crazy it was going to take this on in Java and I want to show you guys what these guys have done in a very very short period of time they've taken this product and I think it's one of showcase applications on Mac OS 10 unlike some of the things that you saw today with our video conferencing off offer with ichat AV you know more of a peer-to-peer Mac only solution they're offering works on both Macintosh windows linux and solaris it also offers a whole host of things like white boarding and other features to sort of more on the lives of a group where application but i don't want to take too much more time i'd rather have you guys see it but i think no matter what application framework this was developed and this is going to be a showcase application for the platform so with that I want to go ahead and bring up Magnus Hedberg chief strategy offer with ameritech and actually have him give you a demo of their incredible product don't shut up thank you what we go to demo one just a second I want to make sure we are online before we switch or here we go and we are online with Sweden and I'm just running on my microphone here what you want the answer I'm going to put my headset to just to make sure that them I colleague stuff one can hear us in Sweden you hear stuff on that's good and I'm actually going to turn the camera around here so that you can see that you have a very nice audience today this is one of the nice features with you you isight camera pan Apple that you can actually turn it around like this and you can you know very much I've been looking at you all week that yeah I know it's our data so I'm stop on it tonight with us from Stockholm Sweden and the reason I say nice is because it's pretty much night over there it certainly is and it my other thing it has nothing to do with the application but with the time [Music] what time is it we n3m okay we're always like dedicated staff we we don't have all the dedicated staff online we have a few more actually hear in the background the time we have 22 bring in one nice feature with this system is that we can actually do a little recording and playback so what I'm going to do now is that I'm going to you know bring in some of our friends from earlier tonight before they left for home that's how we can deal with that I'm just going to press the play button here and you will see some more colleagues showing up and this is really the beauty of the system good collaboration I'll now let them stop on run a little talk about the application itself and then we'll get back and i'll finalize talking about our job experience so stop on the word is yours thank you very much and also just introducing myself is my name is stuck on together and i'm sitting here insulting sweden says just we give up we are very come from sweetie software development company solid or defect 95 and mainly sponsored by harrison which is expelling where the mobile company has the experience miami in the woods and the purpose was to create a solution that supported the interview today and mainly distance education and market amounts led to that went from of the country back in 98 insist then you have 130 clients that are verified the solution and certainty technology so they have to get rid us made what you see here today possible the part of our mission is to create a truly distributed workplace and that I mean you are right now so here and I'm from the dairy and that is a digital work place tonight for the global peace is very early this morning I had a bit of a conversation with some clients of ours in Sydney hunting first earlier I had the last week i will in concert with germany with UK and even more so with our development team that it's based way up with being sweet that was close to the Arctic Circle so this is kind of intimate workplace is what is what we are that that's how the world basically this has been possible to convert the convergence of audio video whiteboard shot that page what we believe to be very efficient collaboration over in and that is the public Internet ok just take you through some of this two-tier now what you see on the top of your screen is what we call video for Prentiss basically it increases the success you see everybody there you see if they pay attention or if they know not if they might officers everyone all the participants have a people that stands the fire meaning i can set private chats to anyone in the in the audience participants and I guess we'll have a private conversation going on with one particular participant without disturbing the rest of the group right now you probably just see one or two or queue for you to compare but I think they eat well and record it goes to 500 people simultaneously in one session the voice quality and I really hope that you hear in even quality over at your end we usually we usually do you have to do thank you you're welcome and it develops we use over internet and since we don't really have that quality of service over as soon as people have to be the bottom and hasn't packet loss of efficiency it's a wide path towards actually it's a lot better than traditional collecting and a lot cheaper the video between the largest video screen that you see on the right hand side is a strong tool because it increases commitment considerably it's a lot easier to say it will be done one day over the phone and don't mean application so it's a very good tool for in gruesome barks when you want to have things done the shaft is kind of course the use in any way but the dueling higher during a regular meeting uses a question spellforce well name or type a URL wherever I like my email address so we take any questions don't send me them we have monkeys there make them and that the definitely not being the wife hilaria you could about using it right now to present the desktop or make annotations okay highlight stuff and share ideas and share documents regardless of where the application that's wrong we you can be on an application that i don't have my machine but we can still share the information and make us patient and discuss the topic this is nate available now in a cross-platform environment we are strongly everything cross-platform communications and the client that you see on your screen the big screen right now is available for fourth uncle Ollie's for windows for linux ah as of tomorrow for windows or it is 3am in the morning or they're there remember the server the negative meaning that created this virtual meetings that we mean right now is also available for variety platform and as of tomorrow for macro is that we are actually running this of an X server and located in stock on right now yes yes we don't want to vent people from participating and easy that's what we have in client software freely available so anyone can download the client software and connect to the server that is hosted by someone in this case it's tough everything that I said as of now has been encrypt other language in question him to end meaning that regardless if someone else is sitting on the server they cannot listen in on our conversations that goes for all media for video or voice or shaft for white horse won support so it's dead st. which is crucial especially for professional users the audio / mention it earlier it's probably more crucial because the voice is such a corner sword in all human interaction so I can lift the video maybe but I can't use voice because then our conversation is is not really efficient and that's my way why we are focused to create a very robust solution that hasn't network packet office so we can even lose up to thirty percent packet and other statements myself understood on my broken English it is very easy to get up at night the clients that you see on your screen right now you will probably have it up and running in five minutes unless than you're a technician because then you probably need 15 minutes if you just have to fiddle around with all the settings and preserve is equally easy to get up and running they then you can have it up the running meaning creating these virtual meeting rooms on a server and invite people to join you in less than 30 minutes the whole solution is also not compatible and verifiable frenzy meaning it cuts through it's like butter and I speak sure is that you can't record and playback recession say you missed your management meeting is it's a very good thing that you can visit into what was actually decided is everything properly hundred unfortunately it's also used in specially in education students can listen in on the recorded lectures that they wish for one reason or the other take them 20 lectures that won't until late the exam at the end of a semester that concludes the features so now i'll leave you with martha that will guide you through some of the experiences that we had developing this for Michael thank you as you can hear the audience is impressed by your ability to work late at night yes as you have a new future and as Alan mentioned we have our roots all the way back in in Java actually at the time which was called oak back in 1994 1995 we worked very close with Sun and we later took up to like 99 actually before we went on to the Windows platform and we have been staying away from the max until Mac os10 that was a huge relief for us because we have a lot of users in the occasional appealed and they really love the mac and so do we these days it's beautiful and the way it comes across with a UNIX operating system in the bottom and we started playing around with Java 13 and the performance it just sucked so once we got to know the world wide developer team and we started working with Java 141 it which was a brief the service side it took us less than a day to reuse the linux version putting it on the unix part the only thing we had to do was to change installation script no that was about 15 minutes of work and we're up and running so we've been running this in mixer environments in November last year and another time of one more than six months beautiful so it's really straightforward even though it's a very complex server functionality on the server side when it comes to the client side it's a different story that's why we have had our biggest challenges and that's really when we throw the big improvement from Java 13 to 14 1 now this application is really usable as you've seen on the screen today most people wouldn't have an idea a clue that this is implemented in Java and we have of course has to pull up some tricks and pretty much the way the super video demos done earlier tonight we have uses in the same technology with quicktime video basically accessing the native code for doing rendering and grabbing and it comes out pretty good and when it comes to audio we have always been working very close to the hardware because that's really a need to be able to reduce latency and to handle the packet loss etc we have had a lot of issues in the world of windows because every machine has a different sound card and the operating system is not that stable I must say when it comes to real-time audio when we come to the mac OS 10 platform we've been astonished about how smoothly and how easily it was to implement this with audio quality it just works and it works so well so if you want to have great audio quality it's always tend to go we have also truly appreciated the support which is finalized 10 and the easy to access the the PDF functionality supported by quach and it just took us a day of work to have full support to import PDF into our interactive whiteboard and that's also really need to be able to do that and what we see is how easy it is to develop in terms of how difficulties many times can be to develop another platform such as the window and what we have learned is really that it takes collaboration and we have been working very closely with the world wide developer team over the last I would say six months or maybe even longer and we really love the brushed metal look and to be honest it really doesn't look this beautiful if you just do it with Java you have to pull some trick but with the world wide developer team that is available viewer you can do those things it takes some effort but if you ask them they will help you out and they will guide you to make it look truly great so we are very happy with what we achieved so far and we would like to thank the world wide developer team a lot and I'm know that you will get to enjoy their services as well thank you thank you we go back to fly to New abeka scenario one thing i should add today this is a little itch magnus didn't know about the little surprise with a new camera so we have not actually tested this until last week actually had one of the prototype units and had to hide from everyone and and go and test it and we had some of the Apple hardware people that were in and we were use it a couple of the cameras we were actually connecting to their xserve in Sweden and but I was really only going two doors down to Apple so as video conferencing me to basically from my office you know Cupertino to Sweden and then back and you know the product manager was say to me well you know the video is really really great you know this is great it was just like the peer-to-peer stuff you know that we're doing I said no we're actually going to Sweden them back and we're you know we tested out the cameras everything worked great these are I think these are going to actually be eyesight's going to be a nice compliment for from airtex offering yep thanks so this is just a kickoff session you guys all probably Scout it out what sessions you want to go to for the rest of the week we've tried to highlight them in the content so I'm not going to go over all of these but between java web of objects quicktime networking all of the things we're going to be talking about this week there's a whole lot of job in all of it oh we go ahead and show you the last one sort of an enterprise side with all the way of objects pieces I encourage you to get to all the sessions especially the people that are doing the quick time for java stuff please go to the QuickTime an API session and give them feedback on that and with that I'll give you guys our contact information and I want to thank you very much for coming and we appreciate your time with tortoise ting you guys the rest of the week [Applause]