Thursday Oct 20, 2005
Thursday Oct 20, 2005
Last week I was in Holland and Hungary for more developer events.
The event in Holland was JFall,
which is a twice a year event (strictly speaking JFall is an annual event since
the other event is called, not surprisingly, JSpring). I did a
presentation on the Sun SPOTs;
the audience seemed to enjoy it, especially the demo (anything with
flashing blue and red LEDs gets people's attention). Sadly I was
not able to stay for the whole day as I needed to catch my flight down
to Budapest ready for the 5th Sun Java Developers conference.
In Budapest I
started the day with a short presentation on the history of Java as
part of the tenth anniversary celebrations. Putting together the
slides for
this was quite a trip down memory lane since I've been at Sun for
nearly all of those ten years. One slide I included had several
things that
hadn't made it in the Java
world. Hands up those who remember the Java
Station? (the 'Krups'
version that looked more like a coffee machine was the
best), the MAJC
chip? (last heard of inside some graphics boards from
Sun), HotJava?
(the browser) and last but by no means least Java Workshop?
(the original, not the one that we're shipping now). I couldn't
even remember the name of that product, but it was the first IDE for
Java. I had breakfast with Onno Kluyt of JCP fame and we
discussed some other things that have drifted off into obscurity such
as picoJava
and the JavaOS
(which has sort of come back again in the
form of the Squawk
VM project being used in the Sun SPOTs). After
that I
talked about the future of Java in the Enterprise with Java EE 5.0 and the
future of the language in the form of Mustang and Dolphin. My
last session was about Java
Studio Creator and I basically spent half
an hour doing a demo of the product. Sadly the demo Gods were not
smiling on me and the last part didn't work according to plan, Mozilla
giving me a long stack trace from a well nested exception.
Faced with the choice of trying to debug in front of several hundred
people or exiting stage left a few minutes earlier than planned, I
decided
discretion was the better part of valour and took the second
option. Needless to say it took me all of 15 seconds to figure
out the problem; I'm sure that would have been ten minutes on stage.
I spent the afternoon listening to some of my Sun colleagues, including Tim Boudreau describe
the new features that have been added to version 5.0 of NetBeans (just
released in beta). It's been a long time since I've learned so
much or been so attentive at a Sun event. Even to an old hacker
like myself NetBeans is seriously, seriously good. When I started
programming writing code was complicated, but the interfaces and APIs
were simple (or at least there were a small number). BASIC
was
just that, basic. The difficulty was that everything had to be
written out longhand in effect and even saving a file was an involved
process using cassette tape (the good old TRS-80 and the early days of
the BBC Micro).
When I started real programming I got to use
tools like vi and make. Make is a good tool, but I don't think
anybody would describe it as a breeze to set up (I'm sure that all the
makefiles I ever created could be traced back to one file that I
created at the beginning of my programming career). Again, this
was complicated coding with a smallish set of interfaces (when I
started C programming I could almost hold all of the system calls and
most of the library calls in my head). The early days of Java
were the same: vi, make (and later Ant) with a small set of class
libraries. Always the complexity was in creating the code, not
the standard components that you used. Today, the situation has
been reversed. The complexity is in the standard components (just
look at EJBs to see why version 3.0 with
its emphasis on 'ease of
development' has become essential). There are more standard Java
class libraries than all but those with photgraphic memory could
realistically remember (even James Gosling refers to the API docs when
coding). Now, however, tools like NetBeans make the coding
simplicity itself. Features like autocompletion no longer simply
take the first few letters as their cue. If you type in Class foo
extends AL and hit Alt+Enter, the system is clever enough to use the
capitalisation as the clue to what you mean and will present you with
options like ActionListener. Refactoring can actually be used to
fill in things like accessor and mutator methods for private class
variable. OK, I'm new to this whole IDE thing, but it does just
make productivity so much higher. The fact you don't even need to
compile the code to find typo errors is another great help to improving
efficiency. These things are all fairly minor though compared to
what can be done to help with the bigger jobs. Watching
demonstrations of Matisse
and the Mobility
Pack were very, very
compelling. Creating complex GUIs no longer requires a piece of
paper and lots of boxes to work out which components go in which
sub-panel and which layout manager to use to get the right arrangement,
which panel goes in the North, Center (sic) or South position. No
more trying to figure out what all the different parameters in
GridBagLayout
really mean. Life is a breeze. The Mobility Pack takes all
of the basic grunt work out of creating J2ME
applications. Helpful wizards guide you through the basic set up
and then a nice simple GUI tool lets you quickly and easily link the
various buttons and menu items to create the flow of an application.
I remember going to a computer show at the beginning of the home
computer era, before the IBM PC hard even started to appear, and seeing
a company advertising "The Last One". This was a program that
wrote programs. Clearly, this wasn't the last one but it's
interesting to see how far we've come in terms of realising the dream
of applications that write applications. NetBeans takes the
drudge out of programming and leaves the
interesting, challenging parts for the programmer.
Tuesday Sep 13, 2005
Once again it's been a while since my last entry, and once again that's because of my insane travel schedule at the moment. Last week I set a new personal record I don't wish to break: sleeping three nights out of four on a plane. I left London last Tuesday and flew to Johannesburg for some developer events on Thursday (this was supposed to be a longer trip, but the SAP event I was involved in got postponed). I then got the Thursday night flight back to London arriving at 6.30am. I then had a whole five hours at home before it was back to the airport to get a flight to Shanghai and then Beijing. Both the Shanghai and Beijing flights got delayed meaning it took me 43 hours to get from Jo'burg to Beijing.
I'm now in Xi'an, which is the home of the famous Terracotta army. I'm here as part of JavaChina 2005, which is probably the biggest Java event Sun have ever held. The idea is to have the main event in Beijing, where all the keynotes (Scott McNealy, James Gosling and co) will be, and then have regional events held simultaneously. The keynotes are fed via satellite to the regional events and then the rest of the presentations are delivered locally, hence my presence here. The other regional venues are Chengdu, Shanghai, Hong Kong, Guangzhou, Shenzen, Dalian and Nanjing.
Everything went extremely well today, we had a packed room with over 300 people and, most importantly, the satellite link worked flawlessly. I really didn't want to be trying to fill in for Scott as a keynote. We managed to get all but my presentation locally in Mandarin and one of my colleagues, Lei Liu, actually did sequential translation for my session (a heroic undertaking given that he'd already done two presentations himself). He's even agreed to translate my J2SE 5 two hour session tomorrow morning.
After that it's off to check out the clay soldiers.
Friday Jul 01, 2005
Well, so much for my good intentions of blogging every day from JavaOne. There's just too much to do all day and all night and the only breaks you get everybody else wants to use the SunRays to check their e-mail. So here's a summary of the rest of JavaOne from my last entry, just before I head off to the airport to make my way home.
Tuesday I started out with the session on real time java spec given by Greg Bollella, whom I've met a couple of times. Unfortunately, I got a phone call which meant I couldn't see all of that. Next up was an update on the ARM processor, which I figured would be interesting as that's what powers the Sun SPOTs. After lunch I attended the two GUI makeover sessions that were extremely good. Since I've done a few GUIs in my time it's always nice to know where I'm going wrong so the next one looks better. The last session of the day was on JSR-133, finalisation and threads. In depth techie stuff and surprisingly (to me anyway) extremely popular. When I turned up there was a massive queue to get in and it even made it into the top ten most popular sessions at JavaOne. Who would have thought so many people would have been interested in finalisation?
After that it was party time again and we managed to get to the SalesForce.com party and then the XFY party (which was frankly a little weird due to the people dressed up in primary colour kimonos banging plastic bottles together; I began to think I was joining a Japanese cult). Lastly it was the Borland party at club NV. Live band, free drinks and sushi, which all made it go with a swing. After one final nightcap on the way home it was time for bed.
I didn't make it to the keynote on Wednesday; not because I got up late, but because I had to review materials for our presentation. My first session of the day was, for me, the best session of JavaOne, project Tommy, which is an entry for the DARPA Grand Challenge, a competition to build an autonomous vehicle capable of navigating its way around a course of over 175 miles in less than 10 hours. No mean feat, just look at the poor showing in last years event. The really cool thing for me about this project is that all the software running the vehicle's systems is written in Java. I spoke to the presenter, Paul Perronne, afterwards and I'm hoping that there's some way we can help him win. Not only would this be $2 million in prize money for his team, but it would be immense kudos for Java. They've made it through to the semi-final and, judging by the video of the vehicle in action, I'd say they're in with an excellent chance.
Next up was a session on evolving the java language from Graham Hamilton, Mark Reinhold and Gilad Bracha. Interesting thoughts on how the Java language could change, especially in the area of using XML directly in programs (obvious compiler issues around the fact that the < and > characters have been used for generics). Also, interesting to see the list of features that are unlikely ever to make it into Java such as multiple-inheritance and operator overloading. After that it was the session on layout managers; more things about how to create good GUIs in a cross-platform, L&F independent way.
Then it was time for our session. I felt that everything went pretty well; I'll be interested to hear any feedback from anyone who was there. Certainly a number of people came up to me afterwards with good questions, which I always take as a sign of a reasonable presentation. The demo worked almost without a problem (I did notice at the end that one of the SPOTs seemed to have crashed, but this didn't seem to cause any real problems. I didn't get to any more sessions as I ended up in the press room doing an interview for a Columbian newspaper and an Argentinian TV station (if you see this interview, let me know).
We were going to the after dark party, but first it was another extended team dinner with some old friends. We went to Buca Di Beppo, which really impressed me. I've been there before and the food is good, but what was even better was when we turned up and asked for a table. I was supposed to have made a reservation somewhere, but due to other things hadn't had time. I spoke to the Maitre'D and asked if they had a table for eighteen (thinking this was an almost certain impossibility given the number of people waiting for tables by the door). "Sure, give us about ten minutes" was the reply. Phew!
After that it was a brief stop at the BOF given by our good friend Daniel DeOliveira of DFJUG. He was talking about the Rybena project that I've mentioned before for helping people with hearing and vision impediments communicate using J2ME enabled cellphones. We finally got to the After Dark party around 10.30pm. Bit disappointed with this, although we had missed the main attractions of Zepperella and Dennis Miller, the 'comedian'. Apparently Dennis Miller did not go down too well thanks to some of his less than politically correct humour. Since I dind't see him, I can't comment. We didn't stick around too long.
Thursday was James Gosling's keynote and I was pleasantly surprised to find that the organisers got the doors open and people into the venue before the scheduled start time. There were some interesting demos and one of the things that really came across to me is that sensor networks are going to be big in the future. The discussion panel had some interesting points, but nothing really memorable.
I dropped into the session on Games servers, but this was too much about the server side, and not much about games so I switched to the GUI puzzlers session. Much more fun and a very lively session with Chet Haase, who's one of the lead Swing engineers. Next I went to the session on Concurrency programming, which actually helped me realise how easy it is to fix one of the problems in my SPOT demo using J2SE 5.0: ConcurrentHashMap is all I need.
I then went to the Java robots session given by Bruce Boyes of Systonix. A great session and I had a good chat with him afterwards about a possible collaboration for the RoboNexus show in October to highlight the new robotics community on java.net.
After that, it was all over and time for a beer in the sun on Union Square. We went out for tapas in the evening and ended up at a bar called Zeitgeist which, frankly, was a pretty rough place, although we did get to play pool for most of the evening. By the time we got back to the hotel we were hungry again, so took advantage of Denny's 24 hour service. I have to say it was surprisingly busy at three'o'clock in the morning.
All in all a great JavaOne, lots of great technical content and stimulating ideas, catching up with people I haven't seen in a while and having a great time.
Tuesday Jun 28, 2005
Day 2 of JavaOne.
I managed to attend all the sessions possible yesterday and they were pretty good. I started with the session on Tigers, Mustangs and Dolphins, which I was most relieved to find was not just a repeat of Graham Hamilton's general session presentation. There was a lot more detail of the features being considered for Mustang and Dolphin, and an explantion of the new release schedule. Next up was the great Programming Puzzlers session with Josh Bloch and Neil Gafter. This is the 4th time I've been to this session and I find it a somewhat masochist experience. I consider myself to be a pretty fair programmer, but the puzzles they come up with really tax your mind trying to work out what would happen and, more importantly, why. Essentially you need your mind to have a complete copy of the Java Language Spec (the JVM spec would also be useful) and to work exactly like a compiler. No easy feat, and I won't reveal how many of the puzzles I got right (since it's rather embarassing). After this it was Files from Mars which covered how Java was used in the Mars Rover project (sadly, Java did not make it into the Rover that went to Mars. That's still a proof of concept). Lastly, I went to a session on 3D visualisation, but I was beginning to get geek overload and didn't make it to the end of the session.
After that it was time for more of the other side of JavaOne: partying. We had a team dinner and then ended up at Jillian's at the Sun Develeoper Connection party until they threw us out at the outrageously early time of 11.30 (felt just like being back in the UK where pubs close at 11pm).
This morning was Scott's general session address. Very, very poor organisation for this. The schedule said 8am start, so lot's of people turned up and ended up queuing like the day before. It's fair enough that there are a lot of people to get into the venue and that takes time. What is not acceptable is the fact that they didn't even appear to start letting people in until 8.30am. The organisers need to do a way better job than this; it gives Sun and JavaOne a bad reputation for this. It also meant that Scott's address went over time and actually over-ran the start of the first technical sessions. I didn't see all of Scott's address as I had to go and do some admin work for my presentation tomorrow.
Let's hope the timekeeping gets better.
Monday Jun 27, 2005
Day one of JavaOne. I figured I'd arrive a bit early to get settled before the start of the first plenary session (apparently, we're not supposed to refer to it as a keynote). The queue went all the way from Moscone back to the Metreon centre and then round the corner back towards third street. I figured since the queue was back to my hotel (the Marriott) there was no point in leaving until the queue started moving.
As you'd expect the session started late. Jonathan Schwartz brought on a bunch of people to talk about different Java things, the best of which to me, was the fact that the Blu-Ray disc group were using Java for the user interface part of their system. This basically means that every Blu-Ray DVD system that ships will have a JVM in it. There were some other announcements like project glassfish, which is the open source (under the CDDL) version of Sun's App server. What impact this has remains to be seen. The other significant thing is that we've finally decided to tidy up the Java naming, which means no more 2. Instead of Java 2 Standard Edition we now have Java SE, and with the Mustang release we'll drop the .0, so it'll be Java SE 6.
Graham Hamilton revealed some interesting things that might go into Mustang and Dolphin. I'm hoping the session this afternoon will provide more detail.
I managed to get to the NetBeans day; even though I was only 45 minutes late, all I missed was some of the registration and the free lunch. The highlight of this event was the demonstration of the Matisse project for simplifying GUI development. Having written a number of GUI applications I know how difficult it is to do layout and get it to look right and to get it to look right when the window gets resized and so on. Matisse provides a GUI editor where you drag and drop components into the builder window, apply constraints graphically and let the tool do all the hard work. Seriously, seriously cool. The demo showed the creation of an MP3 player which looked a lot like iTunes, all done in the space of about 5 minutes. It also included some really neat 3D CD selection which was all written in Java2D. The project is being made available on java.net under the project name Joplin (you'll need a java.net login to access this).
I had hoped to attend the usual pre-JavaOne fireside chat, but my hopes were dashed due to being a Speaker. The fireside chat is only open to Alumni, which presumably means people who've been to JavaOne before. Despite this being my 4th JavaOne I was politely refused admission by the security people for not having a badge that said Alumni. "That's because I'm a speaker, they don't have badges that say, Alumni Speaker, it wouldn't fit on the badge". This still didn't work and even consulting with the registration people couldn't resolve this in my favour. Apparently, Sun has changed the rules relating to the people who fall into the intersection of staff and alumni and speakers. I have to say I'm disappointed by this.
One of the things I love most about JavaOne is the networking; not of the ethernet and TCP/IP variety, but seeing people you haven't seen in a while, catching up and usually having a beer. Even before the conference has started I've been bumping into people I know on the streets around Moscone.
Sunday Jun 26, 2005
As would be expected the day before JavaOne life is rather busy at the moment and I find myself, once again, sitting in a hotel room, surrounded by bits of computer, trying to get my demo finished (and working) for my session next week. (Shameless plug: TS-8601, Java Technology and Smart-Dust: Building Intelligent Sensor Networks, 2.45pm Wednesday, 29th June). I've been working with the people from Sun Labs, many of whom I got to meet for the first time on Friday, and I think this should be fun.
I'm going to try to get to the NetBeans day, but I have to drive to San Francisco and, as it's the SF Pride weekend, I imagine traffic is likely to be quite heavy. I actually went out for dinner in San Francisco last night as the local anarchists in Palo Alto had scheduled a riot on University Avenue for 6pm and I didn't want to get caught up in that. This struck me as rather odd, as I sat in StarBucks yesterday morning having my triple grande latte breakfast and reading the paper. The time of the demonstration had been announced in advance: organised anarchists. Isn't that an oxymoron?
More tomorrow from the 10th anniversary Java celebrations.
Wednesday Apr 20, 2005
Once again, things work gets in the way of blogging and so it's been two weeks since my last entry.
We finished off the TechDays in Sao Paulo and then went to Recife in the north of Brazil to do a developer day in conjunction with the Recife Center for Advanced Studies and Systems (CESAR). Recife was very, very warm and needless to say we went out for a dinner at Porcaos when we got there. The next day, we went out for dinner with the people form CESAR which was a very relaxed affair finishing at two in the morning. I had to then be up at 5.30 to catch a flight to Brasilia to present at the DFJUG Kwarup event. This was an unusual presentation from my point of view, since I'd been asked to talk about Ada Lovelace, daughter of Lord Byron and the world's first computer programmer (she wrote an algorithm for Charles Babbage's analytical engine). Not the usual type of thing I present on, but lot's of fun. As usual, after that we all had to go out for dinner and it was again after two in the morning before I got back. Another early start to catch a flight to Rio and I was really beginning to realise that I needed more that 4 hours of sleep a night.
Last week having got back from Brazil I went up to Durham University to talk to one of the professors about software visualisation since we wanted to exchange ideas about project DAVE. There was a comment from my last post that asked for some screen shots of DAVE, so here they are:
This one shows a full graph of a ufs_write call
Since the graphs big we can zoom in and use some colour coding to show the hot paths through the graph based on time spent in each function. We can also see the temporal ordering of the function calls and step though the call sequence.
Even more zoom with time values included in the labels.
We definitely want to make this available to the world, but at the moment we can't quite do that. Since we're using some third party libraries to do the graphing we need to make sure we're squeaky clean from a licensing point of view. If your a Sun employee you can get access here.
Tuesday Apr 05, 2005
Day one of the Brazilian TechDays and the usual hussle and bussle. We have somewhere in the region of 1300 developers here which means the communal areas are just a little bit crowded. Thankfully we're having the event in the conference centre almost next to our hotel. This is a far better layout than the previous venue, which had more in common with an aircraft hangar than a conference centre.
James Gosling did the keynote; he talked a lot about the ubiquity of Java after ten years and also about the tools available from Sun. If you haven't done so already, you really should check out the NetBeans open source IDE. Version 4.1 is seriously cool.
After that it was the demo shootout and I'm happy to report that my team (as in the team I was on) won! I showed an early prototype of project Dave (DTrace Advanced Visualisation Environment), which draws pretty call graphs to show what happened when a system call is made by an application on Solaris 10. The GUI is all developed in Java, which taught me a lot about just how difficult it is to design a good, ergonomic, consistent user interface.
As predicted we did indeed go to the Jardiniere Grill last night and it was just as good as I remember. I have a feeling we'll be going back there again tonight.
Wednesday Feb 16, 2005
I've just spent the day reviewing sessions submitted for this years JavaOne conference. Thankfully I don't have to review every session, in fact there are so many that I only get to review sessions from people who's name starts with one of two letters and for one track. I'm not revealing the exact details, so nobody can either try to bribe me to get their session in (very unlikely) or complain to me when their session doesn't get accepted (more likely).
As ever, we're trying really hard to address the feedback we get from people about the level of technical content, the skills of the presenters and so on. This is always a bit of a juggling act since until you actually see the presentation it's very difficult to judge what it will really be like. Also, what might be the perfect session for one person is not for someone else (remember, you can't please all the people all the time).
If anyone wants my advice on what makes a good submission here's a few things I'd recommend based on the last few hours of looking through sessions that ranged from the exceptional to the down-right bizarre. (I'm not giving specifics, but there were a couple of sessions that reminded me of a quote from Buffy the Vampire Slayer, "I think I speak for everyone here when I say, huh?").
Best of luck to anyone who's submitted a session.
Thursday Jan 20, 2005
I've set myself the goal of one blog entry per week so that I can keep my New Years's resolution (I might post more often assuming life is that interesting).
Part of the reason for my blogging hiatus last year (aside from being lazy) was the travel schedule I had. One of these trips was to South America, my second favorite continent (Africa is still first, but it's a close run thing). This was one continent, three countries, five cities, twelve days and a lot of time in airports and on planes (the flight from London to Buenos Aires is a brutal 17 hours). As usual this was a series of events to spread the word to developers about Java and as usual for South America the reception was warm, friendly and full of enthusiasm. The second part of the trip was in Brazil where our group have been a number of times and is a place I know we all really like (what's not to like about restaurants like Marius in Rio De Janeiro, Jardineira in Sao Paulo, and Porcau's in Brasilia, or the beach in Rio?) I was there on my own to present to two of the top 25 Java User Groups (JUGs) in the world: DFJUG in Brasilia and SouJava in Sao Paulo.
I've presented to the DFJUG group in Brasilia each time I've been there, which means four times now. Daniel, the organiser, is always full of energy and passion for the events; not only did he collect me from the airport this time, but took me to meet his family and his wife, Lu, cooked me dinner. Such hospitality! The event was held at one of the universities and the room was packed. As usual we had simultaneous translation from English into Portugese, which in turn was simultaneously translated into sign language for the members of the audience who were deaf or had impaired hearing. I am full of admiration for the people who do this at these events; spending almost two and a half hours signing a technical Java presentation is a pretty epic undertaking!
The DFJUG group are very active in the area of using Java technology to help deaf people and have a project called Rybena. This provides graphical sign language on a J2ME enabled mobile phone so that deaf people can communicate using the mobile phone and not be restricted to the use of SMS messaging which can be prone to delayed delivery or even non-delivery. I've seen demonstrations of this and it just blows me away; another example of innovation coming from Brazil.
For pictures of the JUG meeting (which was as much fun as it looks), check out the web page, here, and an earlier event, here
I'm off to Russia tomorrow to present to the Java User Group in St Petersburg. The organiser says we'll have a drink afterwards. Hopefully this will be a little less hard on the liver than previous trips I've made to Russia (national vodka day in Siberia springs to mind...)
Tuesday Sep 07, 2004
A couple of weeks ago I got the usual update from the Java Developers Journal which contained an article related to an essay written by Paul Graham. The subject of the article was "Great Hackers" and he had stirred up considerable controvesy in the Java world through some of his comments.
I read both the article and the feedback in the JDJ and this got me thinking about the whole hacker thing. Of course, here we're talking about hackers as in the original use of the word, rather than the more modern meaning of someone who likes to break through the security systems of computers.
From the original Hacker's Dictionary (circa 1983), not Eric S. Raymond's new one:
Hacker (noun)
One phrase in Mr Graham's article really struck me as the crux of the matter: "A programming language is a medium of expression". As much of the article says, hackers are people who really love to write programs; they're people who derive great pleasure from the act of creating an application, not just using it. However, whilst clearly identifying the ethos of the hacker he then goes on to say things like, "The programmers you'll be able to hire to work on a Java project won't be as smart as the ones you could get to work on a project written in Python", and "But as a medium of expression, you could do a lot better." (referring to Java).
Whoa! Talk about sweeping and inflammatory statements! To my mind this is the same thing as saying that people who speak French are smarter than those who speak English, or that Swahili is a less expressive language than Inuit since it doesn't have as many words for snow. It's quite true that the analogy between spoken languages and computer languages is not completely fair, but I think it helps make the point.
The simple fact of the matter is that certain computer languages are better suited to certain tasks, and just as people have widely differing tastes in music, art and literature, so programmers have different tastes in languages. From the article, it's clear that Mr Graham likes Python and doesn't like Java. I've never written any Python so I'm not able to give a informed opinion on this.
However, having written a lot of code in Java, I can safely say I like Java. Even if I didn't work for Sun I would still think Java was a great language. To me it is a very intuitive language. Having also written a lot of code in C, the switch to Java was easy from a syntactic point of view. Once I'd switched from thinking procedurally to using objects (which is in many ways more natural when trying to model the real world in a program) using Java was a breeze. I remember that one of the things that has always struck me about Java is how quickly you can create a program that runs. True it might not do everything in quite the right way, but it does something the first time you run it. As a C programmer you get used to writing code which will core dump and require extensive debugging before you can even get it to start (maybe that's more of a reflection on my programming ability than the language, but these are my experiences). The other thing that, in my mind, makes Java so powerful is that there are so many standard APIs to use. In C if you want to do graphics you either write your own libraries based on X11 or you get someone else's which will need to be shipped with your application (incurring licensing and distribution issues). In Java you have the AWT or Swing (which, it's true could produce a whole article on what's good and bad about those, but the important thing is that you can do graphical user interfaces in Java far more easily than C).
Java may not be perfect, but then nothing in computing is. Let's face it, if you have to put things on a sliding scale I'd have to say Java is a lot closer to the perfect end than many other products out there. Judging by the number of people who use Java and certainly judging by all the developers I meet in my travels around the world I'm not alone in this view.
Conclusive proof then that Java is a cool programming language, and I am unanimous in my personal opinion of this.
Thursday Aug 26, 2004
Despite being at home for a couple of weeks I'm still amazed at how many things I want to do and yet don't seem to have the time for.
Most of this week has been occupied with looking at how to use Java to develop games. This is obviously a lot of fun, and since I've never been much of an active game player has really opened my eyes. (The only two games I've ever played for any length of time are Galaxians and Rogue. This should show my age nicely). I've been looking at JOGL, JOAL and JInput along with some other open source projects like the Lightweight Java Games Library and the slightly misleadingly named Java is Doomed project (that's Doom as in game, not Doom as in condemned). My presentation for this year's TechDays is coming on nicely (good job too since the first draft is due next week); next I'll be trying to sort out what are the most impressive demos. Then of course trying to work out what hardware will be required since 3D hardware acceleration is essential and I don't have the right drivers for my Toshiba Tecra 9100 to do this in Linux.
In doing the research for this I've also been looking (as usual) at what's right on the edge technology-wise. Given the success of the Sony EyeToy my first thought was to try and replicate this in a Java environment using the work I've done previously in JMF with webcams. However, after a bit more googling I came across the Track IR product that will track movement of your head rather than using a mouse. Sadly at the moment there is no Linux driver for the latest version of the product, but the forums say that there is work going on on a new driver. This could make for a very cool demo.
After being teased by one of my colleagues yesterday I finally unpacked the HomePod that I bought at JavaOne back in June. (This is what I mean, I have a cool new gadget and it takes me nearly two months to get around to playing with it). Setup was a breeze and it even integrated with the iTunes setup on my PC to provide me with all those hard thought out playlists. It even has an optical output that I can plug into the surround sound amp. The biggest challenge associated with this will be convincing my girlfriend that this in no way spoils the look of the living room (and look how useful it is, you don't even need to get up and change the CD anymore). Since I bought the developer version of the product I can actually telnet into the device and potentially write my own code for it (shoudl I ever have the time). I'm always happy with amy new gadget that I can telnet into.
Tomorrow my good friend and colleague Jon Haslam will be back in the office so we'll be putting in some more work on Project Dave. More of that tomorrow since we may actually have something to show by then.