I am having a lot of fun with Keynote recently, and the coolest feature in Keynote ‘08 is the instant alpha tool which I show above. What makes it so good is the UI representation. You are basically pinching the areas that you want to make transparent, and as you go in and out you get an instant feel for what you are doing. It is as close to tactile feedback as you can get. Compare this to the magic wand in Photoshop, which is a nice precise tool, but doesn’t give me the same feedback and often drives me nuts. Now, don’t get me wrong, the alpha tool sometimes does an amazing job, but often comes up short, as you see in this video.
I talked about how I thought Sun was drowning back when Chet Haase left Sun and joined the Flex team at Adobe. It wasn’t that without Chet Sun was screwed, but rather it was a sign of how things were going. The client team lost big players like Scott Violet, and then Chet.
Well, more heavy hitting engineers are leaving. When the CTO of the client division moves on (to Adobe again, no less), we yet again have a reason to wonder what is happening at Sun.
It is ironic that the exodus of talent has happened at the same time as Sun promotes JavaFX at JavaOne. As I asked people “How is JavaOne going for you?” at the end of last week I got a common response “Cool to see everyone, but I don’t get JavaFX.” JavaFX is a mistake in my book. I haven’t met anyone who was truly excited about it, and who didn’t think that Sun could be putting their engineers on better tasks.
When talking about the symbolic “Why <> instead of !=” in JavaFX Script, I was told “JavaFX Script isn’t meant for you, it is meant for designers.” Fair enough, but:
- What a gratuitous change. Designers somehow feel closer to <> ??
- Do you realise that you have THOUSAND OF JAVA ENGINEERS at JavaOne that you are talking too? I may have seen one designer.
Shouting about JavaFX is like shooting fish in a barrel, and it is easy for us to sit on the sideline and quarterback Suns demise, but what I find so frustrating is that Sun has a ton of assets. It doesn’t actually HAVE to go this way. Although there isn’t a Steve Jobs to come back and save the day, like Apple did (even if Steve didn’t do it all), Sun could change course.
I personally think it is time for Sun to be humble. Re-engage the Java developers. There are more Java developers than any other platform …. still. The army at JavaOne filters into the keynote ready to be inspired. They don’t want to feel ignored thanks to JavaFX.
Along with your Java army, you also have a fantastic platform that is deployed all over the world. The JVM is phenominal, and could be the platform for much more than Java the language. JRuby is doing great. Scale is promising. Jython. Awesome work, but lets put more into it and take it to the next level. Make the JVM the best platform for dynamic languages as well as static. Don’t through every dynamic feature into the Java language as they will split the community. Instead, keep Java Java, and dynamic folks can jump into JRuby, Groovy, and the myriad of other choices on the JVM.
Although people weren’t head over heals with JavaFX (and its non announcement), I did talk to people who were actually excited about the Java Plugin. Ken Russell is doing a great job, and imagine what they could do if they pushed there. The Web has won. Java could be a great way to push the Web forward. Instead of thinking about the applet as a way to draw rectangles, think of it as an extension mechanism. Using it for our Wii demos was simple. There is much exciting work that could be done here. My old “Ruby in the browser” work is not a lot cleaner with JNLP support, and JRuby builds out a JNLP package ready to rock and roll.
Use your power in the Enterprise. Instead of the current Java EE focus, how about also making a productivity play. Make Java the most productive way to build phenomenal applications. Come out kicking and screaming at next JavaOne saying:
- No CEOs of Sony Ericsson this year
- No Neil Young
- This keynote is about YOU, our developers, and everything we show in the next two hours ships TODAY
- In the next two hours we will show you how excited we are about how you can deliver world class applications on the Java platform.
Get people off their seats. Inspire them. Cull the bleeding and move on. The assets are in place, now it is time for the momentum to change.
Someone shoots you some Java source code, you try to just open it up in IntelliJ, and then you realize that you need a freaking project. Instead, you open it up in Textmate and go from there.
Hence, the definition of an IDE:
If you have to create a project before you to open a file, you are using an IDE
Good tools can be very rich, but not enforce this. Emacs can act as the mother of all IDEs when it comes to functionality, but you can also right click and open a darn file. At this point, I would never build a programming tool that didn’t work in either mode.
I love how Firefox lets me hit Apple (or Splat as James Strachan calls it!) plus a number to go to the given tab in the browser window.
I often follow the pattern of “open new link in a tab and go to it at the end” and also have windows open with known apps up in the same tab location so I can get to them quickly, without even thinking. Being able to Splat-9 to go to the end is key to this of course.
Although Firefox does this by default, WebKit/Safari does not, so I changed it via a simple hack that others have mentioned. Some people saw me doing this at JavaOne and asked me how I did it, so I decided to quickly show how it is done in the window below.
The steps to follow are:
- Generate AppleScripts to tell Safari and WebKit to go to the right tab. This is talked about here, and I have a slightly modified version that I will paste at the end of this post
- Tie together the AppleScript to the browsers. I tried to use simple keyboard bindings in the keyboard pref panel, but that didn’t work, so I ended up using Quicksilver triggers
See how it all fits together below!
I had a conversation at JavaOne yesterday with a couple of chaps who had some interesting thought processes on taking a new job.
One of them had an offer from a company that he liked, that would have him changing location (which he wanted) but he was wondering if he should wait for WWDC and see if a new Macbook Pro comes out, and thus join afterwards getting the laptop. The thought of joining now, getting a current version, and then seeing a new one came out would be torture.
I sat and listened for quite some time before suggesting that if this was SO important to their package, that maybe they just tell the prospective employer and if they want them, they will probably buy the bugger a new laptop when it comes out.
Always funny to hear the priorities of the developer. Laptops, free t-shirts, and free food.
JavaFXOne kicked off yesterday, and I captured pieces of the keynote which are seen below as separate videos in the custom player. Someone nailed the keynote pretty well when they said “Shouldn’t this have been last years keynote?” Nothing was actually announced here. The only “you can get this today” code drop was for Update 10 which has been out for months!
Update 10 has some cool features though, and the updates to the Java Plugin are key. If Sun spent a tenth of their time on that versus JavaFX they could do great things. Use it as an extension point instead of a paint mechanism!
Well, now off to polish the presentation that Ben and I give at 4pm today. A sneak peak: If you fancy watching a demo that involves the Wii, show up for a bit of fun!
The last week or so has been a stark reminder of how hard it is to do “Open”, and how the term itself doesn’t mean anything. There are many shades of grey when it comes to open. Let’s take a peak at what happened, and then try to come up with some tools to help us communicate what we truly mean.
This one has been talked to death. At its heart, the project originally had a license that was hard for people to understand. The “LGPL unless” clauses were unclear, and many thought untenable. At best, it was very cloudy.
After some people discussed the issues, mainly in private, with Jack we saw a new Ext 2.1 release until the GPL license (no more special clause). Some were unhappy about this, mainly because it was also unclear that the team actually said “we were wrong” and that these folks had a right to fork the project due to LGPL. Jack quickly came out with an exceptions clause and people are trying to iron this out.
SpringSource Application Server
SpringSource announced a new product for JavaOne, an application server. The Spring Framework itself is licensed under the Apache license, yet the new application server is GPLv3.
This caused a bit of a stur, as people were unclear of the difference, and I read a few posts saying that everything had been changed (which is totally untrue).
Marc Fleury came out of the biotech wilderness to comment on this all, claiming that this is just a packaging of the old stuff with a new license to kick into gear a new business model:
So voila, we now have a box drawn around an OSGi kernel, the Spring framework and Hibernate/Tomcat, and it has a name: it’s an application server. It is the same thing you had yesterday for free, except it is now under the GPL and a proprietary subscription license.
Rod and the team consistently argued that there is actually a lot of engineering here. One little embarrassing moment was in one of the TSS replies. Both Rod and Adrian replied to a message with the same boilerplate response:
Creating an application platform that makes the benefits of OSGi available to end users was a huge investment for us. There’s a *lot* of technical innovation under the hood which won’t be immediately apparent but which enables us to make a generational leap. If we’re giving that technology away in open source, we wanted others who build on it to also give away the results in open source.
When the community saw that, they thought that this was very much canned.
Adobe SWF / FLV Binary Specs
Adobe made a big PR announcement around the opening of Flash and more.
When you come out and say “now we are Open” it gets everyone excited. Their stock bumped up, which may or may not have been related to this (a lot of stocks went up at the same time).
I was ecstatic to see the news on the wire, because I think this will be great for the Web. If we could get Flash to be part of the Open Web, I would love to see it as a win-win.
Unfortunately, when I looked into the details, there wasn’t much to see. The claim was that the FLV/SWF/F4V binary formats will be Open, and there will no longer be the restriction that said you can’t RUN the code.
The problem was that there was no license to go along with this claim, which means that we can’t actually do much with it yet. Adobe isn’t more “Open” today than it was the day before the announcement. This will hopefully change very soon when we actually see the license, and hopefully see even more.
Time to learn
What did I learn through all of this? All of this licensing lark is about clarity and communication. I actually like all of the three parties here. I consider Jack, Rod and many Spring-ers, and lots of the Adobe folk as friends.
When it comes to licensing:
- You need one, please
- Please make it a standard one
- Be careful which one you choose first, as changing it later will cause a lot of issues.
All of the concerns have been due to communication through licenses and on top of them. The license is a great starting point, but it isn’t enough.
So, what does it actually take to be Open?
- 0 points: Say you are open
- 10 points: Choose an OSI license
- 20 points: Define the governance of the code, or the protocols / specs. If the spec gets a license that is great, but how does it get changed? Does Adobe hold all of the cards still? Can others participate? For code, who participates? Can anyone patch? Can you, and if so how do you become a committer? At the core: HOW ARE DECISIONS MADE
- 30 points: An reference implementation under an open source license
- 40 points: Where does the IP stand? Did you donate it to Apache or some other foundation? For an example, you can see Exhibit B: Patent Non-Assertion Covenant for the OpenSocial Foundation Proposal
Now, this can be a gradual thing. It is common to start at one end and then slowly move down the stack. It took some time to get the OpenSocial Foundation in place for example, and everyone involved is still working out the governance model.
Also, no answer is “right”. You can put code out there as open source and hold all of the cards. That is your prerogative. It is so easy for us to sit back and say “Oh come on Jack, just put it all out there!” or “Spring? GPLv3? Come on!” or “Adobe, just open source the entire Flash VM!”. These decisions have huge business ramifications, which huge potential consequences. You can understand how it is hard.
All we can really ask is to have the clear communication. Just be honest with us. Be clear with your intentions. The ramifications really do effect us too. I may get more involved in a project that isn’t just run by one company, where they can change things on a whim. If the purpose for using open source is more than the insurance of “if they do something I can fork it” then this stuff matters hugely. Some are in the game for insurance, but in general I think that people like to also get behind causes. They want to put energy into something they believe in. As soon as this happens your project has a part of us in it, and you need to respect that.
I am really excited to see a day though where SWF/FLV does have a clear license, thoughts on governance and how the community can get involved there, and frankly, guidance from Adobe on why they are doing this. Based on that information, people will get more or less excited. Others have already reverse engineered the Flash formats, and a Flash player that lives in the wild under full control of just Adobe means a certain kind of “Open”… one that isn’t very. I have belief that over time, the need and desire will push Flash over the edge. You only have to look at where things have gone with Flex, Tamarin, and other open source projects at Adobe. Macromedia is winning, and over time Flash will surely be open source, especially as Silverlight gets better.
The Peeps Don’t Care
Finally, I know that 99% of the developers out there may not even care, let alone users. There are open source wonks who like to argue about licensing and methodologies. As I watched the John Adams HBO series, I felt a little like those fine chaps arguing over the finer details of things. Many of the people didn’t know what was going on there, or why a particular Article was written the way it was. But, they had drastic implications for the people. I think that the same can hold here for some of the projects.
We need to pat backs when they deserve it, and hold the feet to the fire a little when the details don’t match the rhetoric. I can’t wait to see a better software world continue to grow over time.
I was sitting in a session at Web 2.0 Expo last week with Salil Deshpande, one of the original investors and advisors to Ajaxian and a former boss at CustomWare. (Salil is now a VC at Bay Partners, and you can follow his new blog here).
We started on the observation that the bay stacks up with technology somewhat similar to a stack of technology itself. We then took the analogy to the extreme as we plotted it out, as seen above.
At the bottom of the stack you have the hardware crud, such as chips (Intel), networking (Cisco), disk drives (Seagate) and hardware (Sun). The operating system should go next, but that was a tough one to squeeze in. Oracle and the database is up in Redwood shores. BEA is further down in real geography, but Oracle has now bought BEA, so it also lives in Redwood shores (phew, thanks for the purchase!).
Then you get up into the city itself, where the hipsters define Web 2.0 (Twitter) and design cool things (Adaptive Path).
And what is missing?
O’Reilly is further up in Sebastopol, above the city. Maybe that is symbolic of Big Tim watching over the entire stack and giving companies, and the public, advice? :)
And what about the big Web folks such as Google, Yahoo, and Facebook. They are in Mountain View, Sunnyvale, and Palo Alto… which is in the middle of the stack. Maybe that symbolizes how they are “everywhere”.
Anyway, thanks for staying with me on this pointless analogy. What did I miss? :)