[CSS 2006] Mike Milinkovich's Keynote
I'm sitting in Mike Milinkovich's Keynote at the Colorado Software Summit in Keystone, Colorado. Mike is the Executive Director of the Eclipse Foundation - his picture can be seen on his IT Conversations page. Mike had fun getting up here - driving through the snow - and waiting on the freeway for a couple hours while the "rock slide" was cleared.
Mike's presentation is titled "All About Platforms, Lessons learned from Eclipse". Mike used to work for Oracle, and he's been at the Eclipse Foundation for 2 years. Before that, he was at WebGain. The company that "would not believe that Visual Cafe sucked". He's been in the Tools Business for a long time, and has never bothered to learn Java. He used to do a lot in SmallTalk and that's they last time he programmed. The "repository thingy" in Visual Age for Java was his fault.
November 7th, 2001 was the day the Eclipse servers got turned on. November 7th was when the code shipped, November 29th was when IBM got their act together and did their press release. The biggest thing that's come out of Eclipse is the consortium of companies around it. There's an online birthday card for Eclipse.
Agenda: Why Platforms Matter » Four Key Elements of a Platform » What the Future Holds.
Part of what happens in "platforms" is building software architectures that will stand the test of time. Today's programs are expected to last all the way until 2050! 80% of the code that goes into a product or application just doesn't matter. This is STDNM = Shit That Does Not Matter. Not enough time is being spent on real innovation and differentiation.
"One of the great things about open source is it allows the collaboration of organizations to build software together."
WebTools is the best example of this - it's lead by BEA, but worked on by Oracle and JBoss folks as well. They get to collaborate on the STDNM. Focus on More Cool Stuff and make $$$ for your company. The companies that build the platforms that stand the test of time have generated more wealth than any other part of any other human endeavor.
"In the very beginning, people said you couldn't make relational databases fast enough tto be commercially viable." - Larry Ellison
There is an entire generation of software developers that think Win32 is the de-facto development platform.
Four Key Elements of a Platform
- Great technology
- Community Passion
- Culture
- Wide Adoption
Changing to the OSGi model was a good idea, they never expected it to be a great idea. The folks that are building the Eclipse project are using the same plugin API as plugin developers are. The real goal is software modules that you can simply plug in. The amazing thing is it's scaling really well - they've heard of folks running the Eclipse Workbench with over 1000 plugins (yeah right!).
The Java Community thing of Eclipse as a "Java thing", but it's always been designed to be a "Tools Framework". There's a ton of tools today being built on Eclipse: RadRails, CFEEclipse, PHPEclipse, fx, PyDev, SQL, D, Photran, TI, RDT, Eclipse JDT, Eclipse CDT, Eclipse PHP. Texas Instruments designed an environment for building digital equipment processors on top of Eclipse. And then there's Eclipse RCP - the Rich Client Platform.
RCP was one of those things that Eclipse didn't want to do. They were dragged kicking and screaming into it. One good example of a company building something in RCP is JPMorgan. They built a tool to do currency training and bond valuation. They used to be doing it in Excel. They used RCP and they built their own domain-specific platform.
Community Passion: Brand Hijack is a book about "marketing without marketing". Let the community define what "Eclipse" means. It's the antithesis of traditional marketing where you let the community take over. If you dive into the "Eclipse Community", you will find their 3 sets of folks: Users, Committers and Plug-In Developers. Past that, there's technology-based communities: Java Developers, rich client, modeling, embedded developers, PHP Developers, Report Developers, etc. Within each of the technology-based communities, the triangle exists as well.
Metcalfe's Law works for communities as well. The value of a community is proportional to the number of functioning relationships b/w the people and the groups within the community.
What is the interaction b/w the users and the development team? Eclipse 3.1 metrics:
- Number of newsgroup posts: 32,233
- Number of mailing list posts: 7,792
- Number of Eclipse-specific blogs: 27
- Bugzilla reports fixed: 9,871
How do you get there? How do you "create passionate users"? Mike has a picture from Kathy Sierra's blogs and tells how it's one of his favorite blog posts. Blogs are (of course) "conversational marketing" and work well for building communities.
what really distinguishes open source is not just source, but an "architecture of participation" - Tim O'Reilly
There are 152 members of the Eclipse foundation. There's 15 companies that pay over $200K per year to be Some Fancy Title of the Eclipse Foundation. Governance matters in open source. It helps to manage the project and make it a viable product.
The Board of Directors has "elected committer reps". All the votes from the committers are collapsed by company name. This means that all the IBM votes only count as one. Projects at Eclipse are lead by many different companies - there were 8 major companies listed on the slide that Mike showed.
Company Behavior regarding open source appears to follow a maturity model:
- Denial
- User
- Collaboration
- Champion
- Strategist
- Aggressive
Marketing 101 talks about the product lifecycle - where the graph shows a bell curve. In the 1990s, there were many books about this topic, explaining how to get from the early adopter stage to the next stage. Earlier Adopters are folks like us at this conference. Early Majority are the guys you know, that listen to what we have to say. The Guys you don't know are next, followed the Guys you Don't Want to Know. The last two are located on the right side of the bell curve.
Success Means Broad Adoption - when pathfinders start to adopt the platform, things are moving in the right direction. Following these folks are ISVs, Product Developers - followed by the build of people: Application Developers.
What does the Future Hold?
He's got a picture of a little chawawa talking to a big dog with a little note in his mouth. The note says "Fuck you". Mike says "bullshit" to the fact that future platform for desktops is up for grabs.
The .NET 3.0 Stack in Vista is what he's referring to - not Vista itself. Microsoft has had an unparalleled string of successes, but one "oh shit" can erase a thousand "atta boys". WinFX is backwards compatible, but it's not forwards compatible. No matter how good of a partner program that Microsoft builds, it's still not open source. They're locked into the "volume geo markets" - they're going to have a hard time getting penetration into those markets. To outfit hundreds of millions of users in China would be extremely expensive. Many of these counties are using open source because they can't afford Windows.
A couple of years ago, folks thought the desktop wars were over. However, today you're seeing a lot more Macs and a fair amount of folks using Desktop Linux. It's not just a Windows world anymore. If you think back to Windows 95, try finding the products build for Vista. When 95 and XP where launched, there were literally hundreds of products listed on their website. This isn't happening with Vista.
The world's Largest Software Company has forgotten how to ship software. They can't get an operating system out the door. They tried to scale something that worked for small projects, but got surprised when it didn't work. They didn't plan ahead enough to figure out what they needed to do to scale their world.
Microsoft's Avalon is the J2EE of GUI APIs... Avalon marks the end of the American Dream. - Miguel de Icaza.
The Challengers to Microsoft: Eclipse RCP, OpenAjax Alliance, KDE, Flex, Java, Flash. Lessons of History: "Hubris gets 'em every time." - William Shakespeare, 1596. The sin of pride leads to downfall. Other examples of this are IBM PS/2 and the Intel Itanium. A lot of money went into these platforms and not a lot of money came out.
.NET 3.0
It's a great technology; it solves a hard problem with grace and style. It has a single standard and implementation (which is actually a plus). It used to have a passionate (and happy) community, but there's been a lot of unhappy blog posts lately. Historically, they're good at developing a Culture of Participation. They fail on the ecosystem and governance model. Once you start making real money, Microsoft gets mad.
Ajax
It is a great technology, but XHR is not a platform. There's no single Ajax technology beyond the simple stuff. There's definitely no single standard or implementation. It doesn't have a passionate community, but it fails both architecture and ecosystem in its Culture of Participation because it's just a bunch of stuff. The ecosystem is not sharing technology, they're just rallying around the word. The good news is there is a lot of broad adoption.
Desktop Linux
It's a great technology, but doesn't really solve a hard problem with grace and style. Now Mike is dissing on OS X because it doesn't run on "commodity hardware". Apple isn't aspiring to be the volume leader, that's why he didn't analyze it. Mike thinks that Linux developers have failed from the Ecosystem perspective because there's not a lot of company's building products for Desktop Linux.
Eclipse RCP
It's a great technology and solves a hard problem with grace and style, as well as has a single standard or implementation. Interest and awareness in RCP is going up really fast. It has a good architecture and has a strong ecosystem.
Microsoft is becoming IBM because they're going to have incompatible platforms to support. With RCP, it works on all Microsoft platforms/versions.