Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

July 15 2011

Top stories: July 11-15, 2011

Here's a look at the top stories published across O'Reilly sites this week.

What is HTML5?
HTML5, when used both as the 21st century web suggests and as the original HTML specification allows, is best at interconnecting things.
Who leads the Java parade?
Are any of the companies in the Java community willing to exercise technical leadership? Mike Loukides says the real leader needs to stand up.
If you can quantify the self, can you also program it?
Fred Trotter is examining the Quantified Self through the lenses of motivation, behavioral economics, and software. He expands on each of these topics in this interview.
Why files need to die
The idea of files and folders no longer fits today's connected world. It's time for new ways of organizing our data based on what data means, what it relates to, and how we think about the world.
Sustainable publishing is a mindset, not a format
Dennis Stovall, director of the Publishing Program at Portland State University, discusses the state of sustainable publishing and who's doing it right.

OSCON Java 2011, being held July 25-27 in Portland, Ore., is focused on open source technologies that make up the Java ecosystem. Save 20% on registration with the code OS11RAD

Reposted bydatenwolf datenwolf

The Java parade: What about IBM and Apache?

IBM and ApacheBefore I finished Who Leads the Java parade, Stephen Chin made the comment "what about IBM?" Since publication, I've had several Twitter discussions on the same question, and a smaller number over Apache. It feels very strange to say that IBM isn't a contender for the leadership of the Java community, particularly given all that they've contributed (most notably, Eclipse and Apache Harmony). But I just don't see either IBM or Apache as potential leaders for the Java community.

IBM has always seemed rather insular to me. They solve their own problems; those are big, large problems. IBM is one of the few organizations that could come up with a "Smarter Planet" initiative and not be laughed out of the room (Google may be the only other). So they're definitely a very positive force to be taken seriously; they're doing amazing work putting big data to practical use. But at the same time, they don't tend to engage, at least in my experience. They work on their own, and with their partners. Somewhat like Google, they're all the Java community they need.

"They don't engage? What about Harmony?" That's a good point. But it's a point that cuts both ways. Harmony was an important project that could have had a huge role in opening up the Java world. But when Oracle acquired Sun, IBM fairly quickly backed off from Harmony. Don't misunderstand me; I don't have any real problem with IBM's decision here. But if IBM wanted a role in leading the Java community, this was the time to stand up. Dropping support for Harmony is essentially saying that they're following Oracle's lead. That is IBM's prerogative, but it's also opting out as a potential leader.

There are other ways in which IBM doesn't engage. I was on the program committee for OSCON Java, and reviewed all of the proposals that were submitted. (As Arlo Guthrie said, "I'm not proud ... or tired"). I don't recall any proposals submitted from IBM. That doesn't mean there weren't any, but there certainly weren't many. (There are a couple of IBMers speaking at OSCON "Classic.") They are neither a sponsor nor an exhibitor. Again, I'm not complaining, but engagement is engagement, and disengagement is just that.

OSCON Java 2011, being held July 25-27 in Portland, Ore., is focused on open source technologies that make up the Java ecosystem. (This event is co-located with OSCON.)

Save 20% on registration with the code OS11RAD

Is it possible that IBM has decided that their best
strategy for Java is to unite with Oracle in pushing
OpenJDK forward? Yes, certainly. Is it likely that they felt
maintaining an alternative to OpenJDK was just a distraction to real
work? Very possibly. And it was unfair of me to characterize IBM as
insular. But good as IBM's decisions may be,
they're not the decisions of a company that wants to exercise Java

In the long run, does this mean that IBM is any different from VMware?
Both companies have large stakes in Java, lots of expertise, lots of tools
at their disposal, and lots of competing business interests. Is it
possible that they just want to skip the politics and
get down to work? Maybe, but I think it's something
different. If the question is getting in front of the parade and
leading, IBM has its own parade: using data to solve difficult
problems about living on this planet. When you're
almost four
times the size of Oracle
, 16 times the size of Google, and 50
times the size of VMware, you have to think big. Large as the Java
community is, IBM is aiming at a larger value of "big."

Now, for the Apache Software Foundation (ASF): when writing, I thought
seriously about the possibility that the ASF might contend for leadership of the Java community. But they're just not in the race. That's not their function. They provide resources and frameworks for open source collaboration, but on the whole, they don't provide community leadership, technical or otherwise. Hadoop, together with its subprojects and former subprojects, is probably the most important
project in the Apache galaxy. But would you call the ASF a leader of
the Hadoop community? Clearly not. That role is shared by Cloudera
and Yahoo!, and possibly Yahoo!'s new
spinoff, HortonWorks.
Apache provides resources and licenses, but they aren't leading the
community in any meaningful sense.

Apache walked away from a leadership role when it

left the JCP
. That was a completely understandable decision, and
a decision that I agree was necessary, but a decision with
consequences. It's possible that Apache was hoping to spark a revolt
against Oracle's leadership. I think Apache meant what they said, that
the JCP was no longer a process in which they could participate with
integrity, and they had no choice but to leave.
Any chance of Apache retaining a significant role in the Java community ended
when IBM walked
away from Apache Harmony. Harmony remains interesting, but
it's very difficult to imagine Harmony
thriving without IBM's support. And with
Harmony marginalized, it's not clear how Apache could exert much
influence over the course of Java.

So, why did I ignore IBM and Apache? They've both opted out. They had good reasons for doing so, but nevertheless, they're not in the running. IBM and Apache might be considered dark horses in the race for Java leadership. And given that neither VMWare nor Google seems to want leadership, and Oracle hasn't demonstrated the "social skills" to exercise leadership, I have to grant that a dark horse may be in as good a position as anyone else.


July 13 2011

Who leads the Java parade?

Since Oracle's acquisition of Sun, we've been wondering who will lead the Java community. What sort of leadership is needed, and who will fill the shoes that, for better or for worse, Sun has occupied since Java was first released?

First, does the Java community need a leader? Significant portions of it are doing just fine without any "leadership," most notably the people working on big data. Their attitude seems to be "have JVM, will do great stuff, don't bother me with the politics." And granted, the politics of the Java world over the past decade have been worse than tiresome. But everyone in the Java community relies on a JVM, languages, and libraries, and none of the smaller players have the capability of maintaining and developing these themselves. What happens to the community if the JVM stagnates?

Oracle's community problem

Oracle's problem has been simple: while they've made occasional overtures and peace offerings to the Java community, they've also been, well, abusive. One need look no further than the departure of the Apache Software Foundation and Doug Lea from the JCP when it became clear that Oracle viewed the community process merely as a means to rubber-stamp their decisions. (Doug still contributes to OpenJDK, though through a stand-alone process that is then integrated into releases.) It is certainly true that Oracle is a very large company that has never had to worry much about community relations. I doubt Oracle developers expect much say in the future of the Oracle database platform. It's possible that this is just a cross-cultural faux-pas; I don't think it's Oracle's intention to kick sand into their developers' faces. I suspect it never occurred to Oracle's highest levels of management that the community would care.

In a nutshell, that's Oracle's biggest challenge. Can they win the community over, and convince participants they are at least trying to engage? Much of the creativity in the Java world has come from the community members. The current explosion of JVM languages certainly didn't originate at Sun or at Oracle, nor did most of the web frameworks in the Java space, nor did the thriving Hadoop ecosystem. At some point, developers may decide it's just not worth the hassle to be in an ecosystem where they're not respected as partners. There are alternatives: C#/Mono, the renaissance of the JavaScript space. It would be easy for enterprise developers to move to these alternatives. It would be more difficult (but not impossible) for large projects such as Hadoop or Cassandra to move. Oracle can't be displaced because they own the JVM, but I don't think they can assume the Java community won't just go elsewhere.

The puzzle of Google and Java

Google's attitude toward the Java community has been puzzling to me, though no doubt not to Googlers. Google is one of the biggest beneficiaries of the Sun diaspora, having picked up Josh Bloch several years ago, James Gosling very recently, Tim Bray and many others along the way. They've also consistently been the most creative and innovative users of the Java platform: regardless of whether you like GWT (and I don't), compiling Java to JavaScript is a brilliant and gutsy idea. App Engine's platform-as-a-service support for Java was unparalleled until Amazon announced Elastic BeanStalk. And the crown jewel, Android, is clearly the most interesting thing in the Java world today. Java ME's best hope for the future is to survive as a second-class citizen on Windows Phone 7. (I also see a sad future for a proud but fading mobile handset vendor, but that's another story.) But Google has never shown any interest in taking a leadership role. Their attitude towards most of their Java projects can be summarized as "We invented it; we use it; we like it; if you want to try it, go ahead; we don't particularly care whether it succeeds on a larger stage."

Google supports an active user group program (GTUGs), but as you would expect, they cover the whole range of Google technologies, not Java as such. And, like most technology user groups, GTUGs are largely inward facing; they don't create a lot of news on their own. Google's presence in the Java community at large is surprisingly low key.

I've been puzzled by this attitude, though perhaps it isn't strange. Google is a very large company that's interested in many things, from medical records to self-driving cars. But they know exactly where their money is coming from, and that's their advertising business. Projects that are related to selling advertising get marketing effort; projects that protect their ability to sell advertising in the future get marketing effort (I've argued that that's the motivation behind Android, and it's certainly somewhere in the background behind Chrome); but projects that are merely internal tools that they release to the public get short shrift. App Engine? Google is interested in providing tools to help developers build applications, but I don't think they see App Engine as a moneymaker; they're willing to let Amazon be the leader in cloud services. Contentious Java community relations? For Google, that's a distraction. Google's own Java developers are all the community it needs. Google has the resources to maintain its own JVM, should it come to that. That's probably a reasonable corporate policy, but it does not do the Java community any good.

OSCON Java 2011, being held July 25-27 in Portland, Ore., is focused on open source technologies that make up the Java ecosystem. (This event is co-located with OSCON.)

Save 20% on registration with the code OS11RAD

VMware's role in the Java world

VMware probably acquired more talent from the Sun diaspora than any single company. And they've also made some interesting purchases over the years: SpringSource gave them a viable alternative platform to Java EE, with the Groovy language thrown into the bargain. They have made some very important moves with their open cloud platform, CloudFoundry: an open-source platform as a service (PAAS) framework that features a wealth of open source frameworks, including Spring, Rails, Sinatra, Node.js, and Grails and other JVM-based technologies. Again, Java is so important to the enterprise computing space that building a cloud platform around Spring is a no-brainer. But outside of the Spring community, VMware has played their cards close to their chest. Am I the only person who has had trouble figuring out where they're going or what they're doing?

VMware's aims are not unlike Google's. They have more to be gained from the success of their properties — Spring and Grails are much more than tools for internal use. But they're very focused on larger corporate goals, as they try to move from domination of the virtualization world to domination of cloud computing. Their latest purchases show that they see the cloud as providing corporate applications to end users. With the addition of Socialcast to their portfolio, it's clear they see that cloud computing is essentially social, and that thriving companies must have a social component. All this is well and good, but it's a strategy that can succeed with or without Java. While they have a definite interest in seeing Java's Open Source community prosper, as far as I know they haven't shown any interest in the community as a whole. They've bought companies formed around open source projects, but they haven't, at least up until Cloud Foundry, started any projects of their own. And while Cloud Foundry provides a great platform for running Java applications in the cloud, it isn't itself a Java project: it's written largely in Ruby on Rails and Erlang.

So while VMware has an important role in the Java community, they're not a Java company as such. Indeed, they're using what they see as the best tool for the job. That's certainly a good practice, and perhaps the hard lesson we've learned after a decade or so of language wars. VMware has talent and some wisdom — but as a company, I don't think there's a desire to be a community leader.

What do we want from a Java community leader?

JavaPerhaps we should be asking the bigger questions: What do we want from a community leader? Is that role necessary at all, or is it just a holdover from Sun's often inept attempts to deal with the movement they created? I've already mentioned maintenance of the JVM, and the job of pushing it (and the language) into the future. We've debated new language features long enough; at some point, someone had to own the job of implementing Java 7, with closures or without. Oracle has taken on that task, and succeeded. I think they've made some hard decisions, and good ones: deferring closures until Java 8, while keeping the invokedynamic bytecode instruction that makes it easier to implement dynamic languages in the JVM. Bringing Java 7 to closure (if not bringing closures to Java 7) is a significant achievement, and something that could have wandered on for years under Sun's leadership.

But is that all we want? Sun's tenure as leader of the Java community was stormy, with Sun probably not getting enough credit for keeping the fractious participants together. As I said many times, the JCP was the "least dysfunctional standards group out there." But that came at a cost. In my admittedly idiosyncratic reading, the train-wreck that was EJB 2 came from Sun's inability to say "no" to powerful vendors, who wanted certain kinds of features. If you remember JINI (and you probably don't), Sun's marketing told a bizarre story about Jini-enabled Internet refrigerators, rather than treating it as an enterprise technology that would compete with J2EE. As a result, JINI died a slow death. The history of Java is littered with initiatives (Java Media; Java Communications; even JavaFX, in which Oracle has taken a renewed interest) that Sun hyped briefly because it fit their strategy du jour, then dropped.

I'm not asking for Oracle, Google, or VMware to re-start any of these dead technologies. That's probably water over the dam, though should it happen, I'd be cheering. But being a technology leader doesn't just mean declaring yourself a leader and standing in front of the parade. You have to understand where the parade is going and lead. And that's a deeper role than just pushing the Java language and the JVM into the future. It requires understanding what developments are important, and valuing those developments for what they are even if it conflicts with your own story. It requires pushing back against other JCP organizations that "need" arcane features at the cost of sane design. And it requires doing so without appearing to abuse the good will of the millions of developers working with, and on, Java. Are any of the companies in the Java community willing to exercise this kind of technical leadership? Are there any organizations willing to think about what features the Java platform really needs, and bring those ideas to fruition? That's what we need for leadership in the Java community. It's time for the real leader to stand up.


Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!