Sitting in the FindBugs session, it’s pretty interesting. The last time I interacted with static analysis it was a product from Parasoft (?) and it wasn’t that compelling. FindBugs looks interesting, simple, and is integrated with Hudson. Everyone seems to be moving to Hudson, Kohsuke has created a very compelling CI server.
Participated in a Q+A session after yesterday’s keynote. Sat down with Neil Young, Larry Johnson, some Sun executives, and a small group of reporters including Tim O’Reilly. Young and Johnson struck me as animated and excited about both the archive project and the electric car (more below). Marshall Kirkpatrick of ReadWriteWeb also covered the Q+A session on ReadWriteWeb. Here are my informal impressions / quotes from the meeting. Read on for quotes and details…
My entries are a day behind. I’m not a reporter, I’m a blogger, and I think it is more important to spend time talking to people than it is to work to some deadline in the press room. There’s a lot of interesting stuff going on this year, a general sense that Java has it’s mojo back. Here are some quick observations (a larger piece on Neil Young is in review at the moment):
Bob Lee has a lot of energy, you can just tell when you meet him. People are flocking to the Google booth to hear him speak of Guice. Go to his BoF tonight, whether you use Guice or not, he’s an interesting dude.
The video codec is welcome to many. This neutralizes hundreds of negative blog posts from me about video on the Java platform.
Rod Johnson is impressed with Glassfish. He’s as surprised that he said this as you are. Rod talked to me about the new application platform Springsource released, the Covalent acquisition, and business in general. In short, the app platform is all about OSGi, the acquisition with Covalent gives them really deep coverage of both Tomcat and HTTPd, and there’s more to come.
Schwartz is definitely “on message” this year. He does seem a little weary, no? Maybe that’s just me seeing the conference through the lens of the 4 cent per share loss. When asked in a press conference if he would comment on the upcoming layoffs he answered with, “I’m here to talk about JavaOne”. Everybody seems to think he’ll be gone in a year, I disagree. I think the MySQL acquisition and the down market provide a good cover for him to restructure without looking like a bad guy. I think he’s a developer’s CEO, and I shudder to think of a Sun run by some soulless suit. Keep the blogging long-hair, everybody likes him.
The Maven dudes wants to hear your feedback positive or negative. Seek them out - twitter BrianEFox. Seek out Jason van Zyl, he wants to talk to you about Maven, Nexus, all that stuff.
Met Raible for the first time in person, everyone was enjoying themselves at Zebulon last night. It is scary to be in the same room as all these open source people. From what I see, everybody gets along well. Everyone was making fun of my Mr. Maven sweatshirt (I wouldn’t be surprised if it shows up on someone’s blog.)
Bruce Snyder and I talked about writing, he’s writing his current book (Manning) in DocBook, says I helped him make the decision. I’ll have to pre-emptively apologize, DocBook is a PITA, but, at the same time, I love it. Bruce is really committed to writing, we need more people like Bruce. We need more people to write.
I found myself in a small group briefing with Neil Young yesterday, he’s an impressive (legendary) dude. A real geek, I kid you not. And, he’s focused on stuff like the environment and peace. Good choice for the keynote. I spoke to him and he spoke back to me, that’s when I realize I was speaking directly to Neil Young in a small group. Crazy, that dude’s famous.
Geertjan is everywhere. Turn a corner, Geertjan! Open up a door, Geertjan! Netbeans is impressing some skeptics. Schwartz singled out Tor and Geertjan as great bloggers in response to a question (from me).
Sun employees, business is pretty good out there. Every business owner I talk to at JavaOne thinks they’ll have a job for you. That’s the sense I get.
I skipped the scripting stuff, not because I didn’t want to go, but because I have to go talk to some OpenLazslo dude. Ooops, I’m late. I’m always late, I’m a jerk.
So, the big kickoff for JavaOne. I guess there was news. Solaris on EC2, which is fine. More JavaFX demos. Expected that. Other than that, what?
So one thing that really struck me: Project Hydrazine. Can someone tell me what the hell that is? Listening to people talk it sounds like yet-another JINI style initiative, but nobody seems able to give me a straight answer. “Service discovery and auditing on the cloud” is no nebulous it might as well be a cloud.
Of course, getting a decent codec in the JRE is something that you would have though was obvious sometime around when, oh, YouTube fetched billions of Google dollars. At the end of the day, getting the On2 codec stack is the same as using Ogg anyway, no?
If there was one thing that really made me pay attention today, it was the tools demo at the end of the TechNote. Thank God someone at Sun found a clue on this one. Basically, the story is this: Sun has plugins for Photoshop and Illustrator that let you (read: your graphic designer) export to a JavaFX file with assets and appropriate names. This is a huge one. Whether it is GWT or Flex, the process story between design and code has been a rough one. Microsoft has Expression, which I think is a really amazing tool, but they are never going to be able to sell it to designers. The artsy side of this business is definitely filled with creatures of habit. They don’t change tools nearly as easily as the nerdier side. Adobe Thermo is promising, and they at least have a brand in that arty space. This is the first clearly smart thing I have seen do in a long time.
As for sessions, if you missed the Fortress session with Christine Flood, you missed something great. Fortress really excites me as a technology and she was a really great presenter. Will Pugh can certainly pack a room. The big session hall was standing room only for his Defective Java session. The multi-touch interface session was cool, but disappointing. Given that we are talking about Java on the iPhone, and multi-touch seems to be becoming more popular, I was hoping we would see something more like a new JSR for working with it. It was really DIY session on stuff I have seen a number of times now.
I also just have to mention I went to a Q&A with Schwartz and Green. Honestly, I hear stuff about Sun poking at people they want to work with — Apple, Google, etc — but Rich Green couldn’t seem to utter three sentences without making some seriously passive aggressive aside. Speaking on Android he noted, “They call it an open platform, I don’t know how many people have seen the code.” Well hell Rich. Sun calls JavaFX a product, I don’t know how many people have actually gotten their hands on it. Say what you want about Google source release strategy, they have an emulator, IDE support and first class docs available. And JavaFX has…
Seriously, though. What the hell kind of leader even makes that kind of comment. In the grand scheme of things, working with Google and Apple is in Sun’s interest. Why they would poke a badger with a pencil is beyond me.
Last year JavaOne got the UN guy and was trying to eradicate poverty; this year they got Neil Young and were showing off the cool stuff. CNET blogger Dan Farber has a good write-up and the video that tells you all about Neil Young’s appearance at JavaOne. Read it from the source. I will avoid repeating it.
The good part of this year’s showoff is that Blu Ray and BD-J are cool in reality and they do what they promise. It’s not poverty eradication, its higher resolution and better interactivity and better digital archiving so I guess its more achieveable ! If you know nothing about Blu Ray or are confused on the value it adds then maybe you will benefit from seeing Sun’s Webcast on Blu Ray and browsing hdcookbook.
With the web continuously morphing into the read-write digital media network, applications becoming increasing interactive and the dividing line between business applications and entertainment getting twisted if not necessairly blurred, its not far when quite a few Java developers may use technologies like BD-J to write their applications. To some of the so called — “enterprise developers” — this may seem alien and surely we are not talking about universal applicability of this technology, but don’t be surprised if such stuff starts creeping into your realm too.
The moral of the story (for Java developers) — “Start becoming cool, if you aren’t already !”
The question (for Sun) — “Is coolness directly proportional to increase in revenue?”
A request (to Google and Steve Jobs) — “Please stop driving everybody up the wall.”
A word (to the users) — “You are loving it :)”
A word (to speakers and event organizers) — “Start making friends with rock stars”
JavaFX.com is up and running! The problem is that it doesn’t work well on most browsers. The small fonts are unreadable when viewed in FireFox or Safari. The site takes a long time to load up. The only thing notable is the transition from one window/panel to the other. Considering almost everybody else can do this as well, I am a little confused what to look at and be impressed about :)
Maybe, I should be happy there is finally something there and not just vapourware, like we saw at last JavaOne.
For a second, lets take a look at what competition’s got :
CommunityOne was huge. Having been to various what-use-to-be NetBeans Day at what-used-to-be the Argent, seeing the Moscone filled with people for C1 was actually quite strange. In real terms, the experience didn’t seem that different, however.
CommunityOne works the big room
Again this year, another “panel” discussion about things that I really found mostly uninteresting. The chat centered around community and businesses relationships with the open source world. Given the people on the stage, I would have expected a much more interesting discussion. At least Tim wasn’t there being marginally on topic this year. (Sorry Tim :P)
Charlie preaches to the converted
The list of sessions for C1 was really overwhelming. It was impossible to get to everything you would have wanted to see. I opted to open the day with Charlie Nutter’s presentation on JVM languages. While obviously discussing JRuby, the presentation was a much more general discussion of how the non-Java Java languages can coordinate efforts: MOPs and invoker infrastructure, code generation, etc. I found it interesting, but the room was filled with serious language geeks (I was sitting with Jim and Tobias from the Jython team) and I suspect there wasn’t a whole lot there that these guys needed to be in a room to hear.
Big hats are in this year.
The Java Posse were the lunch entertainment again this year. They were, again, great. It is really a tough balance doing a gig like that. Last year they had prepared slides and a pretty firm script, but it felt a little artificial, where the best stuff from the Posse is usually relaxed. This year they were less formal and it was much more like a regular episode of the podcast, but it seemed they were having a discussion with each other and not engaging the audience fully. Like I said, that’s a tough problem.
The Atlassian guys ran a session of lightening talks, in which I represented my GWT spew. It felt very much like a re-run of the JPR evening session, given that all but one or two of the talks were given at the Roundup this year.
In the afternoon I went to the Redmonk Unconf in the hall. Wow, that was a spectacularly bad place to have the side events. It was incredibly noisy and traffic heavy — people basically had to walk through the Redmonk stuff and the Startup Camp peeps to get their free turkey sandwich. Even worse at the end of the day the crew started tearing up the whole facility to prep for the evening party. The content seems OK, but it isn’t on the list of great unconfs I have participated in.
At dinner a number of Java bloggers had a passing discussion of what we expected from the keynote. Mostly, nobody had any ideas aside from “Get Sun’s business house in order.” Well, let’s just say the actual discussion was much more colorful, but that was the gist.
At any rate, to summarize: C1 huge. So big I feel like I barely got to see any of it
Although JavaOne 2008 officially starts tomorrow, it commenced today with CommunityOne. Carrying on the trend that started a couple of years back JavaOne is continuing to emerge as an event for things more than just Java. For statistics sake at least 10% of the 391 sessions that make up the content catalog are about Groovy, Ruby, PHP, JavaScript or Python. Also like Java the conference itself it becoming a “platform” , with many mini events within it. There is the Groovy Meetup and the Agile Event and the Adobe presentations to name a few. Not to forget the numerous gatherings sponsored by Eclipse, JBoss, Adobe, Oracle and QCon are becoming events in their own right. Then there is the excitement around social networking at the event. So hope all of you at the event have fun mingling, learning, discussing and catching-up.
If you are following JavaOne on Twitter, you should “track javaone”. If you haven’t already signed up, you should read Bob Lee’s Going to JavaOne? Sign up for Twitter blog entry from two days ago. People were using Twitter last year a bit, but this year is the year Twitter is going to change the JavaOne experience for attendees that are using it. In fact, it looks like Charles Nutter has already changed the name of JavaOne on twitter:
Not only is that easier to type and write, but it’s the new name we’ve all been looking for. He goes on to write a piece about how Groovy and JRuby attained massive performance improvements…
Nutter On How the JVM was made for Dynamic Languages, and how it only gets better in the future…
Charles’ post from yesterday is getting loads of attention, it was #5 on Reddit homepage this morning… The Power of the JVM.
… JRuby’s performance regularly exceeded Groovy’s, even though several Ruby features require us, for example, to allocate a synthetic call frame for *every* Ruby method invocation and most block invocations. And JRuby had only received serious work for about 1.5 years. The problem was not that Groovy was an inherently slow language…the problem was the huge amount of code that calls had to pass through to reach their target…
He talks of the recent 2x to 5x speed improvement in Groovy in the context of call path optimization in JRuby. He references Guillaume Laforge’s Groovy 1.6-beta-1 release announcement.
Nutter goes on to talk about how the JVM is best suited for Dynamic languages because it has a JIT and a VM that is always watching for optimizations (he points out that the most important part is that it can deoptimize). Another quote from Nutter:
…The JVM’s ability to deoptimize and return to interpretation gives it room to be optimistic…room to make ambitious guesses and gracefully fall back to a safe state, to try again later.
He continues to paint a picture of a bright future thanks to John Rose’s work on JSR-292 “invokedynamic”. In a related note, if you are interested in Nutter’s post, you’ll be interested in John Rose’s blog post n Method Handles, here’s a great ending that relates to Nutter’s post:
But the point is not calling or using these things from Java; the point is using them, down near the metal, to assemble the next 700 witty and winsome programming languages.
Groovy’s Been on a Bytecode Diet
This is the weekend before J1, so everyone tends to make releases. Groovy, releases 1.6-beta-1. Looks like they focused on performance over features. Read Laforge’s announcement he talks of the performance improvements, multiple assignments, and AST transformations.
Beyond delivering stable and quality releases, our main focus over the past 10 months has clearly been on performance.
Between Groovy 1.0 and 1.5.1, on these same tests, we had already gained up to 80% speed improvements, and even between “dot releases” (1.5.1 and 1.5.6) we gained again up to 40% more. However, it’s really in the development branch that we’ve integrated advanced call site caching techniques and bytecode diets in the runtime to get the 150-460% speed improvements mentioned above.
Apache built a great infrastructure around SVN, lots of sweat and tears went into making it happen, and at first I felt like we’re circumventing all of that. But the longer I thought about it, the more I realized that Git is just more social than SVN, and that’s exactly what Apache is about.
Read more at Assaf’s Labnotes blog… Assaf discusses how Git specifically changes the dynamics of open source development, how it makes it easier for non-committers to contribute. He continues:
Come to think of it, just giving all that power to contribute to developers who are not yet committers is a killer feature, and why I’m writing this piece to begin with.
Subversion Remains Relevant
Don’t think this means that Subversion is going anywhere soon. B. C. Sussman comments on Subversion’s Future? in iBanjo. He writes:
I have to say, after using Mercurial for a bit, I think distributed version control is pretty neat stuff. As Subversion tests a final release candidate for 1.5 (which features limited merge-tracking abilities), there’s a bit of angst going on in the Subversion developer community about what exactly the future of Subversion is. Mercurial and Git are everywhere, getting more popular all the time (certainly among the 20% trailblazers). What role does Subversion — a “best of breed” centralized version control system — have in a world where everyone is slowly moving to decentralized systems?…. (Read more)
Hint: It plays a pretty big role.
Adobe Preemptive Announcement? (Or, When am I going to be able to play an $%#$ing FLV from an Applet?)
Open Screen Project is important. We’ll see how it hits people… long story short, you couldn’t read the swf and flv specs before this project unless you agreed not to build a player. This likely doesn’t address Sun’s objections to the video format, but it could free up others to build (legal) support for FLV into JMF. Better yet, maybe someone would implement a Flash player in Java….. (OK. That’s insane. But, think about it. No really, think about it. Now stop thinking about it.)
Methinks, that Adobe is sensing some announcement at JavaOne. I’m going to guess it has something to do with the JDK on a mobile device, probably Google Android. From what I hear people are busily trying to get some cool applications to run on an Android phone. We’ll see what happens. The idea is that Sun + Google might be the only combination innovative enough to take on Apple’s iPhone. If Adobe frees up the SWF and FLV spec then what’s stopping people from implementing players on both the iPhone and the Android. (Again, I know, crazy idea.) In other words, Adobe might actually be able to get to the elusive “Write Once, Run Everywhere” by way of the Open Screen Project. We’ll see. It certainly moves the bar just a little higher right as the Sun people are banging away at JavaFx.
This is a direct shot across the bow of both Apple with the iPhone and Google with Android. Adobe has far more 3rd party developers than Apple does with Mac OS/iPhone or Google does with Android, and if they can make it totally seamless to develop for desktop or mobile, it will radically change the dynamics of the business. Presumably Adobe will be able to port this next version of Flash to the iPhone as well, though the politics of that will be interesting given Steve Jobs’ antipathy for Flash.
From a business perspective, Adobe seems to have everyone onboard that matters including Nokia, Motorola, Sony Ericsson, Qualcomm, Samsung, Intel, and lots of others. Now that Flash is free and presumably easy to embed, it instantly becomes the mobile and embedded software platform to beat.
It’s been a long time since “Hibernate: A Developer’s Notebook” came out. In terms of Hibernate’s evolution, it’s been an era or two. Things were changing so fast back then that the code examples ran into trouble very quickly. I wanted to put together an update, but other issues in life and work kept intervening, and the best I was able to do for a while was an online PDF that made the introductory chapters work better with Hibernate 3.
Well, I’m happy to be able to say that the wait is over! Thanks to help from Tim O’Brien and Ryan Fowler, “Harnessing Hibernate” is now a reality, meaning you can actually get your hands on it.
We’ve updated all the content from the Notebook that was still relevant, and added a bunch more. Tim contributed great information about working with Apache Maven and the Spring framework, and Ryan added interesting ways to integrate with Stripes. The Hibernate Tools for Eclipse have their own chapter now too. It’s grown some heft, while remaining a great way to come up to speed quickly.
And despite the increased page count, I don’t dread being quickly overtaken by a flurry of incompatible changes this time. Hibernate is at a much more mature stage in its own development, which will help a lot. But we’ve also leveraged the Ant Tasks for Maven to do most of the work of downloading and organizing the many libraries needed to work with Hibernate in our examples. This means not only that there is less busy-work for readers who want to play with Hibernate and the example programs, but also that the examples will continue to work even if Hibernate changes, because they’ll always be able to find the version of Hibernate they expect.
So we hope that people coming to Hibernate today can benefit from an even smoother learning experience.
For all the hot air that is thrown around by the self-appointed luminaries of dynamic languages and enterprisey platforms comparing everyone’s favorite language and engaging in an endless back and forth. Nothing beats a press release like this. Listen people, Java is going to run a 143 foot tall, 1250 ton radar array that puts out 32 MW and is used to track objects in space. That’s cool. Here’s a quote from the Sun press release:
The Eglin Space Surveillance Radar (FPS-85), which schedules and tracks catalogued space objects, is currently undergoing a complex modernization process to replace legacy mission-critical components built from one-of-a-kind equipment and custom software. The Sun Java Real-Time System, a high-level development platform for creating applications that require unprecedented execution predictability, will enable ITT to run the new solution using Java technology on Solaris 10 OS and standard hardware.
Right, right….. ok, I hate to parrot the Sun Press Release, but it gave me an excuse to quote the Global Security page on the AN/FPS-85 Space Track Radar. This thing sounds like it is from the Deathstar. Here’s a quote form that page, I added the emphasized text to provide some clarity.
The AN/FPS-85 can detect, track and identify up to 200 satellites simultaneously. The maximum beam deflection is 60 degrees on either side of the antenna center line which provides 120 degrees azimuth of azimuth coverage. The antenna is inclined +45 degrees for scan coverage of +3 to +105 degrees elevation.
Generating a combined output of 32 megawatts, the AN/FPS-85 is the only phased array radar capable of tracking satellites in deep space orbit. A study was conducted in 1976 by the Air Force Rome Air Development Center to determine the feasibility of extending the AN/FPS-85 radar performance to synchronous ranges. Several modifications involving mixed integration, coherent integration, and transmit power increases were examined considering the target effects of six typical objects and considering the Faraday rotation propagation effects. It was concluded that the AN/FPS-85 radar can achieve synchronous capability at a relatively modest cost and with varying levels of radar time penalty depending upon the modification and target of interest. The radar can track an object the size of a basketball at a distance of more than 22,000 nautical miles [in Java].
The transition is happening faster than I had expected.
The transition from hiring a team of Java developers and Linux sysadmins to sit down for a few months and develop an application to a world where you can just provision a platform on a compute cloud just became more of a reality. And, from this desk, it seems to be happening faster than one could have predicted.
Here’s the announcement, Salesforce for Google Apps. This isn’t related to the Django-based Google app engine idea introduced two weeks ago, rather this is the Google apps that you can use today GMail, Google Docs, Gtalk, Google Calendar. Today’s integration isn’t the real news to me, the real news is that both companies are working on generic hosted application development platforms. Continue reading after the video for the real impact on developers.
googleApps.add( salesforce )
Wait, I’m a developer, who cares…
Both Salesforce and Google are working on general development platforms for hosted applications, add a year or two to the system and you’ve got more fodder for the idea that application development is right on the cusp of a rapid evolution. When you can fire up Eclipse and deploy a custom application to Salesforce to have it show up for your users in the context of Google Apps (Gmail, GTalk, Google Calendar, Google Docs), your own in-house applications may start to look a little pale. Five minutes later when the damn thing shows up on your boss’ iPhone and the CEO’s blackberry, you are going to sound crazy when you tell them that it is going to take your development team a few more months to integrate your legacy applications with mobile devices. They are both going to look at you and say, “well can’t you just get the data into Google Apps?” Hopefully, when this happens to you in about a month or two, you won’t be surprised and you’ll have an answer ready.
I guess what I’m trying to say is this…. you are going to find it very difficult to compete with continued integration between salesforce, google, ec2, and the twenty or thirty other companies that are going to join the industry. If you are working for a company that is paying you to develop some custom reporting and customer management application in a framework like Struts, Rails, Wicket, .NET, etc., you are going to have to confront this growing pressure to integrate with offerings like this or compete with them directly. I’m convinced that in two year’s time, the entire discussion of development is going to be fundamentally affected by Platform-as-a-Service. We’re not going to be talking as much about the 30+ web frameworks in the Java stack as much as we are going to be talking about which cloud provider we are using.
If you’ve been following efforts like Shindig over at a Apache, you might just think that Opensocial Widgets are for silly little social network applications like “What German Philospher are You?” or (the now in legal trouble) “Scrabulous”. These applications are just the testbed for a new paradigm of development. When projects like Shindig, Caja, and OAuth mature, we’re going to see real business applications developed in such a way that they can be executed with similar “gadget engines”. The future seems to be one of hosted, multi-tenant applications that run within one of several application execution platforms being mashed-up and combined in ways unpredictable to the original application developer.
EC2 Adds Persistent Storage
EC2 is adding persistent disks. If you’ve considered using EC2 in the past, you’ve known that the fleeting nature of a disk on EC2 is probably the biggest sticking point. It is tough to get your mind around the idea of using a machine with a disk that doesn’t survive a reboot. The solution up until this point has been to use S3 to store persistent data or use Amazon’s new SimpleDB service to store data.
Here’s the quote from the Amazon Web Services blog that matters. Note my emphasis:
These volumes can be thought of as raw, unformatted disk drives which can be formatted and then used as desired (or even used as raw storage if you’d like). Volumes can range in size from 1 GB on up to 1 TB; you can create and attach several of them to each EC2 instance. They are designed for low latency, high throughput access from Amazon EC2. Needless to say, you can use these volumes to host a relational database.
Right, there it is. Very soon, you’ll be running your application on EC2. For me, the game changer is the ability to just run a database on a machine within EC2. I understand that I could’ve changed my application to work with SimpleDB or run a series of clustered MySQL instances on multiple EC2 machines with a frequent snapshot to S3….. No. I, like most of you I’d guess, just want to be able to run a database.
EC2 just became obvious with this announcement.
If you want to tie the EC2 announcement back to the Salesforce and Google Apps announcement, you should note that the blog post before the EC2 announcement discusses a company named Appirio using S3 as a storage mechanism from a Salesforce application.
If you haven’t read anything really silly in a long time, then here it comes!
The caption of a picture in the Wired magazine reads –
“Jason Fried (left) and David Heinemeier Hansson of 37signals helped develop much of the software that has enabled Web 2.0. Photo credit: Jessica Wynne.”
I am wondering if Wired has created a new definition of web2.0! Folks at zillions of companies including Google, Yahoo, Wikipedia, Adobe, Sun, Microsoft and ….developers programming in tons of technologies including JavaScript,PHP, Python, ActionScript, Java and ….you are all out of luck :)
In the last few years India has emerged from being a small outsourcing destination to a large computing powerhouse (especially as far as programming resources and their critical skill sets go). Its one place that boasts of millions (not just thousands anymore!) of Java programmers. One reason for this growth has been the love for Java among enterprise customers up here in the United States, who outsource work down to India, and another has been the continued support from Sun and its affiliates (many of who train around its well recognized certification programs) in providing ample training and mentoring infrastructure in India. Yet, one more important reason has been the use of Java (over its traditional counterparts — i.e. C & C++) as the language of choice for instructional purposes in teaching programming languages at educational institutions. Finally last but not least, Java is easy to learn and there is too much out there on the web to help you get started :)
In the last couple of years Java has seen strong competition from two directions. The growth of Rich Internet Applications (Ajax and Flash platform based) got many Java programmers to use non-Java UI technologies with there Java servers and the advantages of dynamic languages (like Python and Ruby) lured the Java programmers away from the language towards efficiency and “more-with-less”. This phenomenon is global but local impact (in the United States) has so far been the greatest. However, it got me curious to see how these changes were impacting the millions in India. I started out by finding out the “State of Flash based RIA Adoption” by engaging in a conversation with an active developer and community leader to get a feel of what’s its like out there in the field. I plan to cover Ajax and the dynamic languages related discussion in subsequent posts.
I’m back in the Dirty South from my trip to Crested Butte for the second annual Java Posse Roundup. As you can see in the photo above, there was 6 to 10 feet of snow over the whole area. Far and away the most snow I have ever seen in my life.
Once again, JPR was a great experience. Unfortunately, it seemed harder this year to make it to all the sessions I really wanted to attend, because I wanted to attend most of them. While the theme of “Don’t Repeat Yourself” was honor to some extent, the session topics ran the gamut from examining the Java EE roadmap to Networking for Geeks, and from Agile development to “Why open source people are weirdos.”
Interestingly, a good bit of the discussion this year was not directly about Java-the-language. Jim and Tobias from the Jython project were there and providing a lot of perspective on JVM language implementations. There were hack sessions with Scala, organized by Joel Neely and Dianne Marsh. Chet Haase flew his new Adobe flag and gave a “Filthy Rich Flex” boot camp. On the “off-Java the platform” tip, the week opened early Monday afternoon with Dick Wall holding court at Bruce’s house with a great Q and A on the Android platform and philosophy.
The evening lightening talk this year, once again, stand out as a highlight of the week. 5 minute blitzes on topics like Django on Jython, the history of the lowercase “a”, Yahoo! Pipes 2.0, Marketing for Javapolis, and the operation of the four-stroke internal combustion engine. Video of these session was taken this year using Joe’s camera, so expect some (perhaps not so professional) video of this to wind up on a *Tube near you soon.
Flex is gaining adoption among Java programmers and I must confess it’s a fantastic match in my experience. With Java, you get the robust server side that integrates and works with pretty much every useful technology in the enterprise and with Adobe Flex you have a super nice highly interactive rich interface for your application.
For those of you, who have similar opinion or those of you, who are wondering why I am saying such a marriage is excellent, a full day of sessions on the topic is something you want to participate in. Its another Flex Camp and this time it’s in New York City. Not to forget it has an excellent lineup of speakers. (Your truly is speaking at the event as well)
Scheduled for April 18, 2008 Flex Camp Wall Street — https://www.flexcampwallstreet.com – is a unique event that will provide practical tips, techniques and actionable advise for adoption of Flex and AIR based RIA within banks, brokerages, fund management companies, insurance firms and other financial services institutions. Sessions have plenty of emphasis on real-time updates, portal integration, hibernate integration, advanced data visualization and offline applications, so most of you may find the event extremely useful. Please read the session descriptions — https://www.flexcampwallstreet.com/session_descriptions.html — for details.
Lastly, for those who are tracking the world of Flex, the famous evangelist bloggers — Christophe Coenraets (https://coenraets.org/) and James Ward (https://www.jamesward.org/) — are going to be at the event.
Its a day long event. The cost of the event is $99 per attendee.
Everyone using Maven should pay attention to what Don Brown is doing. He’s reached a level of frustration with Maven, and he’s decided to start working on his own branch. Luckily some people on the core Maven team have noticed and have started porting some of his performance changes back into Maven proper.
Branching, forking, whatever you want to call it… should be much more common in open source Java. Even though we use tools that support it (or do we? see my previous post about SVN vs GIT), you rarely see the discussion on a developer list that mentions someone’s branch. Hopefully people like Don will inspire more people to start forking the projects they use.
Open source isn’t about convincing a centralized “project committee” that your changes have merit, it is about decentralized innovation. Over the last few years, I’ve come to the realization that open source communities can be detrimental to innovation, real innovation comes from ad-hoc, decentralized code revolutions like Don’s. Too often, open source Java dev lists are full of noisy arguments about what to do and how to do it while building consensus. We’d all be better off if people forked first and discussed later.
Bruce Eckel says Java is at an “Evolutionary Dead End”. His perspective is that retrofitting newer features into Java is making it absurdly complex. He states the choice is between no more evolution or breaking away from the past. In any other scenario he suspects things are only going to get worse. As a passing by remark, he proposes moving on to Scala as an exit strategy, if Java continues to evolve while honoring backward compatibility.
Technically his point is valid, realistically what are the millions of Java developers who build Java applications at thousands of enterprises going to do if they can’t incrementally take advantage of some of the newer features? It may be possible for Ruby or even Python to radically break away from its earlier versions and start on a fresh slate because not only do they have lesser number of deployments but on an average they have programmers smarter than the average corporate journeyman.
Java has evolved from being a replacement for C++ to an all pervasive cross domain programming language. One of the primary reasons for this growth has been the abundance of features, availability of commercial and open source implementations of these features and wrapping up of these features in all sorts of APIs, with the assurance of stability.
If we drop everything and restart, won’t Java be a completely new language? How would we guarantee we get everything right this time around? Which portions of Java will benefit from reinvention the most? What will we do while we are busy reinventing, knowing what we are doing is soon to be rendered obsolete — it won’t get done in a jiffy in any case?
In a recent interview Dr. Gosling said -
“If you look at something like Flash, when you get to the much more advanced stuff — with richer interfaces, more complex network protocols, more complex APIs — it really falls short.”
Source : Redmond Developer News
While, I would agree with Dr. Gosling, that the Flash VM, the ActionScript library and the Flex framework is not a be-all and end-all RIA solution (remember that its incarnation as a application developer’s tool — as opposed to a designer’s easel — is fairly recent and it is continuously and rapidly evolving as we speak!), I have a feeling Dr. Gosling is actually saying that the grapes are sour ! (For those who may not be familiar with the fable of the The Fox and the Grapes read on and you will quickly see the connection.).
At this time in its current form and shape Flex is a great option. Further, far from being competitive, at Saven Technologies, we have experienced that Java and Flex are complementary and can help build rich interfaces fairly effectively. Let me explain some more of this, but before that let me dissect Dr. Gosling’s comments and set the context.
Dr. Gosling has specifically pointed out that the shortcomings are related to support for networking protocols and complex APIs. My reply — TCP and UDP are two popular transport level protocols. Flash supports TCP. It does not support UDP. At the application level Flash supports HTTP and HTTPS. It supports AMF, which is a SOAP like but more efficient message format, and RTMP, which helps stream audio, video and data across the Internet. It does not support many application level protocols including SMTP, POP3, RTCP and many more. With the protocols in Flash repertoire one can build most consumer applications that utilize HTTP, Web Services and RESTful constructs.
One of our financial services clients was not satisfied with this. Not only did they want remote procedure calls, they desired real time data push and secure connectivity. With the help of LifeCycle Data Services, a server side integration technology that runs without a fuss in any Java application server, and the protocols mentioned above (AMF and RTMP), we could easily achieve what our clients desired. LifeCycle Data Services has open source cousins — BlazeDS, GraniteDS and more.
So while Dr. Gosling is right that Flash does not support as many protocols as Java does and he is also right that it does not have direct support for complex APIs, let’s say for messaging systems or database connectivity, the question is that does flash (with its Flex framework) really fall short because of the lack of these. Not really, on the contrary it piggyback on Java and PHP and others for such extensions. We are primarily Java experts who graduated to using Flex as the RIA and we see no trouble in leveraging the Java infrastructure that is so rich and robust. In the application that I was talking about earlier, that required real time updates, we used JMS for subscribing to the market data feed publications. Flex messaging and JMS worked well together and it was just fine.
Finally, Java Applets has support for many networking protocols and complex APIs, then why is it falling short of expectations? Weren’t there other things, including the well known JRE version mismatches that brought it down? Why is Sun creating JavaFX if the most critical ingredients — at least the way its worded it makes me believe that these are so — are already brewed in?
I feel very disappointed when a person I deeply respect and revere needs to make such comments. Java as a language and platform is very comprehensive, user friendly and productive (despite all the noise from the Rubyists) and works in harmony with many other technologies, including Flex. If JavaFX and the Consumer JRE deliver the promise I am happy to adopt it, as I have adopted Applets, Swing and the Java web application technologies so far.
Gosling dragged the crew into the Dirty Dirty for the second (annual?) Sun Tech Days Atlanta. Last years STD I was pretty down on. It is 100% recycled JavaOne content from 9 months earlier. This years had a better mix with a good bit of new content. One comment from the other Manheim people that were there is they had a general feeling that it was better organized and orchestrated this year. I think that is fair, but I didn’t notice a huge difference. The event was also expanded to include tracks for Solaris development and administration, which was good too. There was some good stuff there even if that wasn’t your field directly.
One thing, though. I want to say to Sun…again.
TAKE POWERSTRIPS WITH YOU.
Jeez. JavaOne, STD, doesn’t matter. There seems to be a critical shortage of places you can plug in your laptop at all of these events.
Anyway, the one big complaint I had was the feeling of Bait and Switch I got from the whole EE program. Last years was bad because it was all intro to stuff that was so old everyone in the room had already seen it. This years was the exact same thing, the difference is they titled the affairs like they were going to be legitimately interesting. One session about “Everyday webservices: Metro and Rest,” where you expect to see the new JAX-RS stuff from metro was… wait for it… all SOAP and WS-* and the same demos I have seen 3 years running with a brief bit on RESTat the end. I didn’t even see the REST bit because I didn’t want to sit through 40 minutes of old content for 10 minutes of new. The “SOA Grid Computing” Oracle session (hey, doesn’t that sound great?) Literally started with and intro to WSDL. “Are you frakking kidding me?” was the general response from my compatriots.
One the flip side, the Glassfish session was really good, and my group seemed to get a lot of good information out of it. The features list for GF3 is so long that just getting a handle on what is there is going to be an issue for a lot of people. I kind of wish there had been a little more tech content there, but it was generally good. The SE6uN session was good, and Rags was once again in good form as a speaker. All of the evangelists seems at least a little more comfortable with what they were doing over last year. There were also session on JRuby on Rails, which I wanted to go to but had to duck out for to get back into midtown for…
Sort of heels of Sun Tech Days, the GWT team had a meetup with the team and a few external developers to discuss the road map for GWT in the future. We are all waiting for GWT 1.5 to drop, promising another round of big compiler optimizations such as expansion/in lining of methods and the much anticipated support for SE5 language constructs. All in all it was a good chat.
The Google meeting was a good idea, especially since STD now seems to be becoming a regional event. I can’t help but wonder if next year we will see more things orbiting around STD as a mini-JavaOne.
If you are interested in learning more about Adobe Flex or understanding how it could be integrated with other technologies, including Java, then please come to Flex Camp Chicago. Its a day long event at the Illinois Technology Association in downtown Chicago on January 18, 2008.
An audience member suggests that splitting up the JDK platform by defining core-subsets of functionality would be desirable. Chet disagrees, suggesting that it would break things. Guice Bob says Java Kernel will help, which is a small downloadable bootstrapper that downloads needed JDK components on demand instead of all in the up-front download.
The predominant topic of conversation continues to revolve around adding or removing to the Java platform — new features, language or otherwise. Rod seems in favor of adding, while Charles hints that he’s been tempted to use the Open SDK project to create a stripped-down version of the Java JDK.
Erik states matter-of-factly that it is impossible to take things out of a mature platform. “You can never take anything out!”
Josh speaks about JSR 277 and its infrastructure for addressing versioning issues.
Now Josh Block is saying we should create a new Java platform. Everyone agrees that there are real dangers in choosing that road.
One of the things I hope is that OpenJDK will make possible big changes. Once there is an open source Java 7 that still runs Java 1.0 code, it can be there and be maintained for people who want that forever. Java itself can then move forward, perhaps even to Java 2 (:P) with real generics, adding some bloody keywords (@interface still makes me hate people), and other things that we haven’t been able to do because of this legacy requirement.
There’s a good chance that someone out there is using Slide, it used to be distributed as a WebDAV library with Tomcat 4. If this is you, or your organization, you should know that it is no longer “a project”. Here’s the announcement from Roland Weber of the Jakarta PMC:
The Apache Jakarta PMC is sorry to announce the retirement
of the Jakarta Slide subproject. After it’s last release in
December 2004, development activity was significantly reduced
and came to a total standstill this year. Without a minimum
developer community that can release security fixes, we have
no choice but to retire Slide. We’ll keep at least one of
the mailing lists open for a transition period, so users can
discuss alternatives and migration away from Slide. Further
use of the Slide codebase is discouraged.
One alternative to Slide is provided by the Apache Jackrabbit
project. Jackrabbit has a healthy, active developer community
and provides, among others things:
- a server-side content repository
- a WebDAV server component for access to the repository
- a WebDAV client component
Please visit https://jackrabbit.apache.org/ for more information.
Nick Sieger announces the availability of a new release of ActiveRecord-JDBC on his blog in ActiveRecord-JDBC 0.6 Released! You might just let this piece of news go by unnoticed, but if you read Nick’s blog entry, you’ll see that it is a turning point for people who want to get a Rails application running under JRuby, Nick writes (emphasis mine):
..to make your application run under JRuby, no longer will you need to a) find and download appropriate JDBC drivers, b) wonder where they should be placed so that JRuby will find them, or c) make custom changes to config/environment.rb. All that