|
|
||
Eamonn McManus's BlogThe Spring Experience 2006 (2)Posted by emcmanus on December 18, 2006 at 06:54 AM | Comments (2)I'm writing this in what I used to think was the world's nastiest airport, where I have a five-hour stopover. I'm somewhat revising my opinion of the airport because I discovered a "Quiet Seating Area" with real seats and real quiet. A bit like a business-class lounge but for the plebs. So I'm sitting there typing this, with my laptop on a table and the charger plugged in and everything. As I mentioned last time, I was at The Spring Experience 2006 in Hollywood, Florida where I was speaking about JMX stuff. I had been surprised at how close the conference hotel was to the sea. In France, the infamous loi littorale forbids construction within a certain distance of the sea, unless you are a member of the Saudi royal family that the French state doesn't want to displease. The idea is of course avoid the sort of concrete nastiness to be seen in certain neighbouring countries. Anyway, some local friends set me straight. When the hotel was built, the sea was further away! That doesn't happen much with the dull old Mediterranean, but over there in hurricaneland it's a different story. A constant battle with a shifting shoreline, in fact. But back to your regular scheduled geekery. Here are some of the talks I attended. Rapid Web App Development (Rob Harrop)This was mostly about Spring Web Flow, so I'll leave detailed comments to the Spring experts. I came away with a few items of general interest:
Spring and dynamic languages (Rod Johnson, Guillaume LaForge)Rod presented the general Spring support for dynamic languages, such as Groovy, BeanShell, and JRuby. Then Guillaume, who is the current holder of the Groovy torch, talked about that language in particular. Script languages lend themselves well to interactive demos, with the presenter typing in some stuff and showing what it does. Several speakers showed this in fact, with varying degrees of success. Guillaume's demo went off well, except when he was smitten by the demo gods. His computer went spontaneously into hibernation in the middle, which caused Guillaume to emit a bad word. I'm not sure what to think of Groovy, myself. On the plus side, it is very similar to Java, so easy to learn and read, and it has some powerful features. On the minus side, it smells a bit like Perl, with these individually-nifty features slapped together without a coherent philosophy. JRuby (Rob Harrop)There was some overlap with the Groovy talk here. Rob walked
through some examples of Ruby programming, stressing the
interactivity and the access to the Java platform classes. One
thing I picked up on is that Ruby (and Groovy) can make the JMX
API's Open
Types much more palatable. You can set things up so that
instead of accessing a field in a
Code organization for large systems (Jürgen Höller)I went to this talk because I work on a large system (the JDK) and thought it would be interesting to see how others approach the problems that arise. However, I was a bit disappointed, because the talk was actually about one very specific problem, namely inter-module dependencies. Furthermore Jürgen's presentation was based on an assumption that I don't agree with, that modules in this case correspond to Java packages. The key message was that there should never be cyclic dependencies between packages. For example, java.lang and java.util have a cyclic dependency because java.lang.System.getProperties() returns java.util.Properties, and all the classes in java.util depend on java.lang, if only because of their common Object superclass. An enormous amount of effort has been spent on Spring to ensure that there are no cyclic dependencies between packages, and Jürgen explained some of the details. But I don't think it is right to forbid interdepencies between closely-related packages. Minimize them, sure, but forbid them? The problem is that the Java language doesn't currently have any higher-level way to organize code. What we really want to avoid is interdepencies between modules, where a module can be made up of several packages. But there is no way in the Java language to represent this explicitly. (There will be; see JSR 294.) To my mind that means you need an extra-linguistic representation, for example a file listing the packages in a module, or the de facto grouping into jars. Then you can check that there are no cycles. Forcing yourself never to have cycles between packages seems like much more work than it's worth. Glassbox - Open Source Automated Application Troubleshooting (Ron Bodkin)There was a bit of a screw-up for this talk, which was printed in the conference agenda with a different subject. As a result, there were very few people present. This is a great pity because Glassbox is an excellent piece of work. I had already demonstrated it briefly in my talk and encouraged people to come to this one, but to little avail. I wrote about Glassbox here before, but as a reminder it basically does two things:
Glassbox also supports clustered monitoring, meaning you can see the analyses on several VMs from the same web app, including remote VMs. Trends and the Future of Enterprise Java (Floyd Marinescu)Floyd fired over 90 minutes of rapid and continuous speech at his audience in the last session slot of the conference. I left bewildered but informed. It was also the second time in less than 24 hours that I heard a Canadian say that what defines Canadians is that they are not American. So it must be true. The technology trends he identified were these (quoting the slides, with [comments]):
Many of these are self-explanatory, but a few merit some further words. Death to components - the object fights back. As I understand this the idea was that J2EE was not really Object Oriented. There was an unreasonable focus on remoting of application objects which led to twisted designs. With the switch to POJO-based frameworks (including EJB3) and better Object-Relation Mapping (again including EJB3), this changes. Well, I'm not really a J2EE expert so I might be misrepresenting the position here. Domain Driven Design wasn't in Floyd's summary but he spent some time talking about it anyway. It was a strong theme at the conference with an entire track devoted to it, but I admit I had other interests so I put off learning about it for another day. I did notice that Domain-Specific Languages were mentioned frequently. Especially in conjunction with Ruby and Groovy which make it possible to construct DSLs that domain experts can read directly even if they are not programmers. In the spirit of objectivity, Floyd also mentioned Buko Obele's skeptical position regarding DSLs. Regarding OSGi, it's clear that there was great interest at the conference in this. The talk on the subject by Adrian Colyer was very well attended and from what I heard extremely interesting. (Unfortunately it would have been technically rather difficult for me to attend since my own talk was at the same time.) Floyd felt that OSGi will lead to increased componentisation of the Java EE platform, so you could configure just those parts of the platform that you need, or deploy a bundle that contains not just your web app but the Tomcat server and configuration that supports it. I'm not completely sure that I'm representing his position correctly or that I agree with if so. In the second part of the talk (I said it was long), Floyd talked about "Business/Political Trends", namely:
On Dilution of influence of Sun and the JCP, Floyd wandered off a bit into hyperspace and ended up not even agreeing with himself. But I think it is legitimate to note that there is a lot of de facto standardization going on through open source projects independently of the JCP. We were at a Spring conference after all. The only question is whether the word "standard" is completely appropriate in cases like this where there will in all likelihood only ever be one implementation. Concerning Emerging Economies and Open Source, Floyd's most interesting point was that countries like Brazil want pure open-source platforms to protect themselves against the effects of possible future US trade sanctions. I don't know what to think of that position (whether it's true, and whether it's reasonable if it is true). Concerning Apache Harmony and Open Source Java, the printed slides I am working from are seriously out of date and I admit I wasn't paying attention during this bit to see if the slides Floyd was presenting from were less so. Sun has announced the licensing terms, one of the two "success factors" covered. It's true that the full governance model has yet to be decided. This slide was sufficiently striking to quote in full: Harmony's only purpose was to slowly chip away Sun's resolve and force them to eventually open source Java, under constant threat that IBM would open source it's own Java. Whether the meaning of the text is more accurate than its grammar is up to you to decide. (Oh all right, I don't really think that the two split infinitives are incorrect, but that apostrophe is.) JMX Technology - Using it with Spring, and how it is evolving (me)Here's what I learnt at this talk:
Blog timeI'm no longer in Heathrow as I type this. I'm in a TGV, four days later. It's been a busy ten days. I'm wondering what sorts of interesting philosophical things I could say about "blog time", the fact that you're reading in continuous time my text written in highly discontinuous time. Although I suppose that is true of most non-trivial amounts of text, and generally less so of blogs than of other media. Bookmark blog post: CommentsComments are listed in date ascending order (oldest first) | Post Comment
| ||
|
|