Improving JavaOne for 2007
Wednesday, May 24th, 2006The Penny Arcade has a great idea for making any conference 1,000 times better. Isn’t Gavin speaking at OSCON this year? I recommend this approach.
(Note: mildly NSFW)
The Penny Arcade has a great idea for making any conference 1,000 times better. Isn’t Gavin speaking at OSCON this year? I recommend this approach.
(Note: mildly NSFW)
Tax prep in California has apparently become too easy in recent years, as the tax prep industry is lobbying to make it more difficult:
Soon after ReadyReturn was launched, lobbyists from the tax-preparation industry began to pressure California lawmakers to abandon the innovation. Their opposition was not surprising: If figuring out your taxes were easy, why would anyone bother to hire H&R Block? If the government sends you a completed form, why buy TurboTax?
But what is surprising is that their “arguments” are having an effect. In February, the California Republican caucus released a report highlighting its “concerns” about the program - for example, that an effort to make taxes more efficient “violates the proper role of government.” Soon thereafter, a Republican state senator introduced a bill to stop the ReadyReturn program.
I love the “proper role of government” argument. Lord forbid that government make things easy for its citizens. They don’t even charge for it! Clearly government’s role is to prop up industries when and if they become irrelevant.
I think Lessig’s parting comments are worth posting as well:
Free markets aren’t pro-business - they don’t favor incumbent companies if upstarts do the job better. Competition is good wherever it comes from - even the government - so long as it lowers social costs and increases wealth. And efficiency is good regardless of who it might hurt; it is especially good if it hurts those who feed off inefficiency. Thus, lawyers are good, but a world that needed fewer of them would be much better. Doctors are great, but that’s no argument against better health. And TurboTax is fantastic, but it shouldn’t prevent the government from making paying taxes easier.

The Kid and I went to the open house at JPL today. It was pretty cool. They had all sorts of sciency stuff out to look at and sciency people out to answer questions about the sciency stuff.
There was a machine learning booth towards the top of the campus where they demoed some of the technologies that I worked with at Yahoo Research. They had an SVM hooked up to the audio input of a Mac, and when you spoke in to it it built a model of your speech and used it to determine who was talking at any given time. Not surprisingly, it worked really well. Those wacky kids at JPL and all their science. It was a lot of fun to show The Kid a live demo of the sort of stuff that I worked with.
Also worth noting: big ups to public radio for letting me know that this event was on. Hooray for community news that focuses on science from time to time.
Come to JavaOne and stand in lines. The good people at Sun seemed to have taken full advantage of the programmer’s natural love of queueing and put huge freaking lines in front of every class. This is amusing, because the bigger classes hold upwards of 1,000 people. Those are some long freaking lines.
The way around this, I’ve found, is to just skip out on the line and wander in to the “overflow” room. They had them for every session with lines, and there was always easy and available seating. You could hear just as well, and honestly, given the stage presence of most technical presenters, you’re probably better off not seeing them in person.
By today I was pretty burnt. No way in hell was I going to sit through another EJB session. No sir, thank you kindly. I rather unfortunately missed my first session on account of schedule confusion — it started at noon while I thought it started at 1:00 — so I only had two talks on the day.
I was monstrously unexcited about going to this, but all the other talks were booked up or as boring. I briefly considered ditching it entirely, but when I got to the room, they were playing Rage Against the Machine on the loudspeakers — “Wake Up” off of their self-titled album — so I felt compelled to attend.
Big. Mistake.
First off: SOA. What a 2003 buzzword. Even better is that the sales droids insist on pronouncing it. “Sew-ah.” It made me want to punch them all right in the face. Perhaps I should have.
The talk was a pitch for some product with a name I don’t recall. What it does, and I couldn’t possibly make this up, is “Enable Business Agility.” What in the hell does that even mean? If you need meaningless buzzwords to describe your product, it’s junk. Period.
The talk was amazingly tragic. The two presenters were sales droids with a canned banter built in to their talk. “Great. Thanks, Ash. It sounds like SOA architectures really need….” Yeah. That’s some amazing shit right there. The very best part was that they didn’t really have their schtick down, so they were reading it off of note cards. It was like a freshman year forensics class on quaaludes.
What I learned is that I want nothing to do with “business agility.” I’m pretty sure that it’s the corporate equivalent of syphilis. The presenters certainly could have passed off as a couple of French Pox sufferers.
OK, one more and then I get on a plane for Burbank and head home. I love San Francisco, and the conference has been generally informative, but I was pretty ready to see Stephanie and the kid and sleep in my own bed.
The talk was given by a couple of Sun grey beards who didn’t seem like they could possibly have been nicer. They had the cute old-man skepticism of new technologies, asking at one point “how many people want to sign up to maintain the Ajax applications being written today?” Only one person raised his hand, cleverly citing “job security.” Cute.
My one beef was that their thinking was orthogonal to that of many Ajax people. They were worrying about applications that need to have everything just so, managing cached objects in a controllable way, having all its interactions elaborately planned and in general be “enterprise” grade.
Most Ajax applications that I’ve seen shoot more for “good enough to use and get feedback on” rather than The Complete Enterprise Solution. So you’re going to rely on the perhaps-flaky browser cache. Oh well. It’ll work for most people. There’s some sort of bug? Oh, well, we’re super light-weight process- and tools-wise, so we’ll just patch it and move on. It’s getting things done Well Enough rather than spending the time and effort to build some pipe-dream perfect thing.
It’ll be interesting to see what the Java community does with tools like Ajax. No doubt they’ll build heavy components that require a cluster of Sun E420’s and $200,000 worth of portal server software to provide dynamic drop-down menus. Meanwhile, developers who aren’t held back by enterprise-think will actually be building useful applications.
Wow, I sure have gotten snarky towards the Java world over the last few days. One too many hits off the EJB, I’d wager. Somehow, I don’t think that’s what Sun had in mind. Either way, it’s useful to know where the community is headed, given that I have to use their tools.
Amusing things that I learned more about and will probably check out:
Things that I’ll stay the hell away from as long as possible:
Well, I’m glad at least the first group is heavier than the second. Good times.
Hoo boy, am I attending a lot of sessions on Enterprise Java Beans or what? This is my first time at the conference, so perhaps I’ve done things sub-optimally. All I know is that I’ve heard pretty well the same thing at every EJB talk I’ve been to: “Wow, look, we can do all that stuff that previously needed a good-sized novella worth of XML with annotations now! Except don’t use annotations for this big bunch of things over here. And probably not for production code, either….” I’m glad that Sun is working on making EJB simpler. Looking back, however, I don’t think I needed to go to quite so many talks on it. Perhaps next year they could just call them all “Same old EJB talk that you’ve already been to three times,” and I’d be able to more easily avoid this sort of thing. Anyway, this brings us to:
This was a talk about developing with the new and improved simplified programming model in EJB 3.0. Can you guess what they talked about? That’s right: all the things that you use to have to use XML for before that you can now either use annotations or somewhat less XML for now. Woo, exciting, party hats….
They did go over how class hierarchies would change in the new world order, down from an interface and an implementation and a magic class over here to do some sort of stuff to just an interface and an implementation. Which, I guess, is a good thing. They also covered some set of XML files that you need to have in all cases.
My big takeaway from all of the EJB talks is that I still probably want to avoid EJB if I can. There are almost certainly problems that EJB would be useful for, but I’d bet dollars to doughnuts that I can come up with a simple solution for most problems out there.
Java “Enterprise Edition” version five has this whole huge new data access model. I was pretty sure that the talk would be about it. Not so much. The presented gave a freshman survey course overview of every data access method in the universe, covering everything from JDBC to every flavor of web services under the sun to HTML page scraping.
He spent a solid half of his time discussing “mashing up” Swing applications and web services. DJ Sun and DJ Java are really in to this sort of thing. They’ve got an admittedly cool Swing application that uses Flickr, Google maps and Yahoo maps to build a photo sharing application that you can use to tie photos to physical locations and show where they were taken on a map. It’s neat, but you have to download this huge freaking Swing application to use it, and you need to have some version or another of Java installed, and gee I bet you anything I could build the same thing on the web or with flash and have it work with no download at all. Anyway, I should also mention that they called Swing applications that use web services “smashups.” Get it? Swing + Mashup = Smashup! Very clever, Sun marketing!
One useful thing to come up in this talk was the fact that there’s a ResponseCache mechanism that can be pretty easily plugged in to Java’s URI fetching mechanisms. This is useful for sometimes-disconnected applications, and I can see it being useful for a couple things that I’m working on. Something to look in to at any rate.
OK, this one sounded boring going in to it, but also like it might be very useful. I’m all for new debugging techniques, as is every developer, right? Well, the talk turned out to be some guy droning on in monotone about how to point and click your way using Sun’s NetBeans IDE to something something something oh god I can’t take this I’m leaving where’s the closest bar to the Moscone center?
Dude from dojo and dude from Sun gave a brief but good overview of the popular Javascript application framework. Dojo seems a pretty good mix of useful event handling tools and UI widgets, and Alex Russell, the president of the dojo foundation, seemed pretty cool. There wasn’t any of the “dojo is the answer to every problem that anybody has ever had” vibe from him, which I always find refreshing. I’ll have to give it a look for the next GUI application I write.
After Alex introduced dojo, Sun guy got up and prattled on about how you can and indeed should use dojo with Java technologies. OK, fine. This is a Java conference and all. You do your thing.
I guess this sort of thinking has always given me an uneasy feeling about the Java community. There’s this attitude that Java is the one solution for all problems, which is absolutely ridiculous. Java is a solution for a great many problems, but it’s hardly the best for any number of them.
Sun pushing this line of thinking I can understand. It’s their product and it makes sense for them to want people to use it. Why anybody other than Sun would, however, is quite beyond me. Any company that adopts this line of thought is tying a big boat anchor to both its own feet and the feet of its developers’ sure to stagnate careers. Every problem isn’t a nail, so you need much much more than a hammer to get things done properly.
Maybe if there were more tools — languages in particular — that ran well on the JVM I would feel better about this Java-everywhere thinking. That I know of, there’s only Java that both runs very well and isn’t super super fringy. Jython is slow and a year behind its C counterpart. JRuby is, from what I’ve heard, similar. Even Groovy, built “for Java developers by Java developers” gets at most 1/10th to 1/5th of the performance of Java. Microsoft is really eating Sun’s lunch with the CLR in this respect. They’ve got C++, C# and VB running exceptionally well. They’ve hired on people to work on a CLR version of Python, that, while behind the curve in terms of language features, performs at least as well as the native version. There’s no reason that the JVM couldn’t have the same breadth of tools available. That it doesn’t is a shame and keeps me from taking it very seriously as a platform. (Robert told me that Sun is planning on offering more languages that target the JVM for Java v. 6 or 7, which would be very, very cool. I hope it happens.)
I was so sick of EJB at this point that I ditched my last scheduled session and sat in the overflow room for this one. The basic idea here was that they got a couple of Ajax guys — leads from the DWR and dojo projects — in a room with a “technology evangelist” from Adobe’s Flash/Flex project, a lead from the “Java Server Faces” initiative, and a Java Swing developer.
There was all too much talk about “what’s better, Java or Javascript?” To which I say “who cares, they’re different.” End of story. But no, the thick client guys had to do their thing.
Flash dude went on and on about “flash can open sockets to arbitrary computers.” Nobody said “that’s cute, but Javascript can’t for security purposes, not because of any inherent language limitation.” Oh well.
The Javascript folk seemed to have the attitude of “look, use our shit if you want to. We do and we like it,” while the Sun folk had very much of a “ooh, Javascript might be bad. Why don’t you stay over here in thick client land where it’s safe?” thing going on.
Whatever. Use the right tool for the job. Maybe it’s Java and maybe it isn’t. Don’t let religion get in the way of your software and everything will work out just fine.
JavaOne marches ever onwards. Yesterday was a pretty busy day. I had a huge block of classes in the afternoon, some interesting, some… otherwise.
Joshua Bloch from Google, who I gather writes a book called “Effective Java,” gave this one. It was fast paced, informative and in general a really good talk. He spent a lot of time on the various dangers of Java 1.5’s generics, delving deeply in to wildcard generics and their various ins, outs and what have you’s. Java’s generics always throw me off because they’re just different enough from C++’s templates to not quite make sense to me. This talk helped clear much of my confusion up, though.
At a bunch of the EJB 3.0 talks, “Interceptors” have been touted as the elegant solution for this, that and the other damn thing. Which, ok, fine. It’s good to have a way to solve a lot of different types of problems. I applaud this.
Interceptors are basically Aspect Oriented Programming constructs. The fun part is that instead of just going out and using one of the existing AOP frameworks, EJB built its own. Yeah yeah yeah, EJB is a big and complicated environment and you probably couldn’t just throw J-random AOP tools in there to make it all happen and you need to be able to make it work elegantly with all their different deployment techniques. Whatevers. This is why I try to stay away from EJB.
Also, memo to presenter: “Aspectizing” isn’t a word.
I totally misread the abstract for this one and thought it was going to focus on porting scripting languages to the JVM. Turns out that Groovy is an entirely new — well, relatively new at three years old — scripting environment running natively on the JVM.
This really put me out at first and still sort of does. There are plenty of good scripting languages out there and people are pretty good at using them. Why write another one? Their reasoning was that they wanted something that would work like Java, make sense to Java developers, and play real real nice with existing Java code.
I was skeptical until I saw the demo. In maybe fifteen lines of code, the presented fired up an ActiveX proxy, fiddled around with an Excel spreadsheet, and created an admittedly small Swing GUI to control it. This is all stuff that you could do with regular Java, but it would take dozens and dozens of lines of code.
The Groovy folks have done really nice work using Java reflection to implement a Do What I Mean idiom — for example, you can pass a list of two integers to a window constructor, and it will figure out that the window has a constructor that takes a Dimension which has a constructor that takes two integers. Good stuff — that could make a lot of tedious tasks in Java not nearly as bad. This is definitely something that I need to look in to.
I signed up for a bunch of EJB presentations because that’s one of the areas where I’m most behind. Holy shit was this a mistake. With the “Java Blueprint for the Simplified EE5 programming model,” they definitely started repeating themselves. I couldn’t take twenty minutes of this before I had to bail. Oh well.
Yahoo, my esteemed former employer, is training a monkey to fiddle with gadgets. This is the Best Thing Ever. Google, watch out. (The monkey even has a Flickr account, which is braggable.)
A quick recap of today’s classes at JavaOne.
So EJB. It’s the complete enterprise solution. It’s web. It’s database. It’s mail. It slices. It dices. It’s everything you always wanted as a child but couldn’t have. Also, Sun apparently thinks the current version of it sucks.
Well, maybe that’s a little strong. They don’t like the version 2.x API. Nobody likes the API. It’s overly complex, requiring mounts and mounds of code and XML to get simple things done. Cleaning this up was one of the major points of EJB 3.
With version 3, you can pretty spell out plain old classes and interfaces, throw an annotation or two on various classes or methods and everything Just Works. Pretty appealing stuff. Apparently going from class to web service is an annotation away, which is braggable.
Other than that, though, it was a really high-level talk. Oh well.
Remember the presentation on caching that Flickr gave? Take that, replace all the memcached and apache stuff with hand-wavy “Java” and you’ve got this presentation. If you’re unfamiliar with caching at any level, maybe there’s something to be gained from this talk. Eh.
This was pretty cool. It was nothing that you couldn’t get on your own with the internet and a couple of hours, but it’s useful sometimes to have somebody else wade through the legion web services libraries, pick one out and explain it to you. It seems that JAX-WS can do everything I’d want from such a library. It works on the client and server ends of things, supports both SOAP and REST (the presented was an unabashed REST believer), works in J2EE containers as well as servlet containers, etc etc etc. A useful overview for useful stuff.
Heh. Microsoft just got up on stage to prattle on about their “interoperability” framework called “Tango.” There’s been a constant sream of people leaving the auditorium ever since.
Greetings from the JavaOne conference in sunny (or foggy, whichever) San Francisco. I’m sitting in Sun’s “general” session where they’re talking about something called “GlassFish,” which is apparently some sort of new J2EE thingamajiggy. Oh, and look, Sun just open sourced JMS (their messaging queue) and NetBeans (their Java IDE). Neat.
It’s been a long time since I’ve been to one of these conferences. I think the last one I went to was Software Development back in ‘97 or ‘98. I don’t remember them being anywhere near this big. There have to be a couple two or three thousand people in this room right now. They’ve got the presenters on a huge PA and up on five screens. It’s like a tent revival for a set of technologies that seem to have a religious following in corporate America.
I’m spending most of today at classes on all those newfangled java technologies — none of which are particularly new for people who have been paying attention — that I’ve been ignoring for the last six or seven years — “Enterprise” java beans, JAX, something from Apache called “Derby.” There’s an hour on distributed caching thrown in there so I don’t get too much new stuff clouding my brain.
(Holy god, they’re making Monty Python jokes. Please kill me now.)
There seems to be a lot of talk about Ajax, web services and other Web 2.0 hoo haa that I wouldn’t think would be so popular in the “enterprise” universe where Java is quite so popular. Huh. Well, I guess it makes sense. I’d just as soon be using web front ends where I currently have Swing applications, and my existing web applications — circa 1998 — could definitely stand to be freshened up. Cool.
This is a free Wordpress template provided by Mathew Browne | Web Design | SEO