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]