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.