CARVIEW |
May 09, 2008
What is Java good at
I'm not the blogger police, but I don't understand these blogs that are just a bunch of pictures. Arun Gupta has posted ten collections of pictures without any context.
"Oh Daniel," you say, "you're so old you just don't appreciate that blogs can be many things."
Actually I do appreciate that. And I'm not opposed to pictures in blog postings. James Duncan Davidson posts pictures in his blog all the time. He is, on the other hand, a photographer. The blog is telling a story and he uses pictures in an integral way. But Duncan is selective. He uses flickr for the pictures he likes enough to share and his blog for those few pictures he wants to tell us something specific about.
Of course, this isn't really a blog post about blog posts and photographs. I've been listening here at JavaOne to people talk about all the things that Java could be. They talk about some feature that this language over here has and they say Java should have that.
I don't know. I think that people reached for Java because of what it offered at the time and there are plenty of people who still want to use Java for those same reasons. You can't panic just because the cool kids have moved on to other things. You can invent another cool language that runs on the JVM -- but why must you change Java into something it fundamentally isn't?
"Oh, Daniel," you say, "the times have changed and Java has to change to keep up."
Sure, but if Java isn't the best language to handle the multi-core world we're heading towards then should we turn Java into that language or should we start again and write something clean that does what we want it to.
Sun is telling us that the dynamic languages like Ruby and Python and hundreds of other languages can run fine on the JVM. That is the "Java" they should care most about. The platform. There's nothing wrong with the language maybe Java, the language, should be frozen.
"Oh Daniel," you say, "you are so old. You just don't understand change."
Maybe not. And I'll grant you that spoken languages change and grow over time. But I don't want to get to the point with my programming language that code that I read doesn't mean what I think it does. "Wow, cat, that's bad." Where in this case "bad", of course, means "good."
Java was the language designed for us to figure out what was going wrong at compile time not run time. We were supposed to be able to not have to worry about the things that tripped us up in the days of C. I'm not opposed to metaprogramming and not having to catch exceptions and not having to write a ton of template code -- but I'm not sure that Java, the language, should change to accommodate all of these ideas. Also, did we learn nothing from the EJB wars about what can be added to a spec and why?
It's not an argument for purity or the right way to do it - but flickr is a pretty good tool for sharing pictures. We can use blogs to do so but that really isn't what blogs are best at. I think we should use Java for what it is best at. If another language meets our needs we should feel free to use it and not try to change Java into this other language.
Posted by daniel at 06:56 AM | Comments (3)
May 08, 2008
Swarms for good not gossip
I don't understand Twitter.
Please feel free to use the comments below to call me a stupid old-fashioned luddite who wouldn't know the next big thing if it tried to add its second life avatar as my facebook buddy. Or you could use the comments below to imagine the Twitter log for your favorite Sun exec this week. In my midwestern ill-informed opinion, either would be a better use of your time than Twitter.
That's not to say that there aren't good uses that could be made of this sort of technology. But it seems to me that Twitter is like People magazine for geeks.
Instead, I'd like to know how much you just paid per gallon for gas, how long it took you to drive along a particular stretch of road, or where you found the perfect cup of coffee. Well, maybe not you exactly. More, I'd like to know this for people who are nearby me for some situation dependent definition of nearby. Then I can make decisions about where to get the cheapest gas near me, what movie to watch, ...
Yes, there are people who use Twitter to find out where to go to meet up with their friends. They use it for real and useful reasons. I wonder a bit if the weak link is communicating with people.
Years ago, Bill Joy gave an example for a use case for JXTA. He said that every car would have computers on board that could be networked together. He asked us to imagine driving down the highway as our fuel gauges dropped below 1/4 our car would contact other cars driving down the road and build a cartel of thirty cars (and their drivers of course) willing to stop for gas soon. The network would then negotiate with gas stations up the road for a cheaper price for everyone in this ad hoc group if they all stopped together at this station. In a sense, the group would be getting a bulk price for buying a total of several hundred gallons of gas.
This is cars twittering each other years before Twitter. That is something I understand.
Now that so many of us carry mobile devices, what are the useful apps that we can use to gather information painlessly from the people out and about and communicate it to others. Tim O'Reilly talks about how Amazon builds value to their platform by making it easy for people to rate and comment on the books. In the mobile village at JavaOne there are a couple of booths showing similar platforms for mobile phones. People adding useful information that is time and location specific.
Of course, as you can tell by now, my current Twitter message would be "Need coffee -- haven't slept much in three days."
Posted by daniel at 07:13 AM | Comments (0)
May 07, 2008
The Lightweight U I Toolkit
Jonathan Simon popped up in IM as I was leaving for JavaOne.
"Dude," he said --- it's his standard greeting, "check this out."
He directed me to Terrence Barr's post on the LWUIT (Lightweight UI Toolkit). Jonathan had worked on something similar a while back and was glad to see someone else making progress on this problem. He told me to see if I could find these guys at JavaOne and so yesterday I went to their session.
It was very impressive. It was what I was hoping to see at JavaOne this year. The engineers showed a demo working on an emulator and then they walked over to an over head camera and showed phone after phone running the same demo on the actual device. They were downright giddy as they placed another phone under the camera and said "and look at it running on this one."
It felt like an old Ron Popeil commercial. After showing us the 3D transitions and scrolling and font substitutions the presenter said "But that's not all." The audience ooohed and ahhhed a bit like an infomercial and applauded at the right moments. Like demonstrating a knife that slices and dices, we were shown just how easy it is to customize the theme with different colors and animated images and a transparent title bar. After showing how to use Matisse and NetBeans to create the new theme, we saw it running on an actual phone.
These guys couldn't or wouldn't say it -- but this is what we should have seen a year ago from Java FX Mobile if it was real.
LWUIT is real. You can use it today. I know it's not just vaporware because Jonathan Knudson leaned over to show me it running on his phone. Roger Brinkley pulled his phone out of his pocket and showed Jonathan and me that it was running on his phone as well.
So not only is LWUIT real today, but soon it will be open sourced. Look for an open source release sometime this summer.
Posted by daniel at 06:15 AM | Comments (0)
May 06, 2008
The Mobile and Embedded Ecosystem
The main reason that I am at JavaOne this year is that I produce the weekly Java Mobile and Embedded Podcast hosted by Roger Brinkley and Terrence Barr. My voice doesn't appear in the show so many people don't know that I'm involved, but I have really enjoyed working with this project over the past year and getting to know the members of the mobile and embedded community and the many cool projects you can find there.
One of the fun things about the mobile and embedded community is that they get things done -- a lot of things done. This is a community that builds on each other's work. This is a community that makes announcements when a project is ready or well along the way and not when a couple of developers have a "what if" discussion over beers.
And yes -- they've always had the cool toys. You may mainly associate this community with Java running in cell phones but there's so much more going on.
At Community One yesterday, Roger presented a session on "Extending, Expanding, and Porting Mobile and Embedded Community Projects." Roger wore a classic golf outfit that included knickers and a matching cap along with patterned socks and a matching sweater. He fastened a Sun SPOT to the end of a hickory golf club and the SPOT helped him analyze his swing.
It's all about the toys.
And yet it's not. The Sun SPOT is one of the core projects for Mobile and Embedded but there are tons of projects being built on top of the phone ME project. The CQME project is all about tools for testing ME projects. It lives in java.net's tools community but, if Java allowed multiple inheritence, would also extend the Mobile and Embedded community.
Brinkley explained that one of the advantages of the Trackbots or Sun SPOTs is that if you take a software person and let them touch the hardware that can do cool things because of their software -- it inspires and energizes them.
For me the takeaway is that this is a community that is actually a community. They are building on each other's work. They are sharing ideas. They have built a culture of creating and shipping very cool projects.
Posted by daniel at 06:45 AM | Comments (1)
May 05, 2008
Preparing for JavaOne
I can't remember if my first JavaOne was the second or third but I've been to every one since and I'm still not considered Alumni. I've been to enough of them to remember when there was a huge buzz around the conference and you would walk out of the keynotes energized and couldn't wait to write something using the new toys.
I also remember Pat Sueltz on stage in her Howard Dean moment screaming "You can make money with Java" over and over again. I remember when Bill Joy would say something years before the rest of the world would understand it. I even remember when James Gosling (who is still an interesting guy) had interesting things to say.
So I wonder which sort of JavaOne this will be.
Here's the sort of JavaOne I hope it will be -- I hope it will be the kind of conference where they announce new things that I can actually play with. The JavaFX stuff last year looked nice but there was no way for me to know. There was no tooling and nothing much that I could do with it. It looks to be a big part of this year's message as well.
At Gosling's keynote at the Mobile and Embedded Developer Days back in January, he put a lot of emphasis on JavaFX being a big part of the future for the platform. I would like to know that consumers can use it in the next six months and developers have access to tools now.
From the banners around Moscone, it looks like a theme this year is "Java+you". I'm not sure if that is pronounced "Java and you" or "Java plus you" but in either case I hope that Sun really does put "us" back in the Java story.
Posted by daniel at 07:01 AM | Comments (1)