« December 2006 | Main | February 2007 »

January 31, 2007

C# 3.0 adds categories

As a language geek, I found this discussion of the new extension methods in C# 3.0 fascinating. I haven't been paying as much attention to C# 3.0 as I probably should because I've been too infatuated with Ruby of late. I'd love to see someone from the C# team respond.

January 30, 2007

Some Reflection on the Market for Components

Once upon a time, there was a HUGE market for ActiveX components that would work with Visual Basic. After Microsoft introduced .NET and especially .NET 2.0, a lot of the energy moved from the ActiveX component world into the .NET library world (although it should be noted that this doesn’t necessarily imply that all the money has moved as well).

This morning I was browsing through the newest edition of MSDN Magazine (dated Feb 2007) and noticed that the vast majority of the ads were for .NET 2.0 stuff. So I asked myself: “I wonder how much take-up there has been for WPF components?” I remember going to PDC events a few years back where Microsoft brought Infragistics and others on stage and talked about how wonderful the new WPF market was going to be.

I guess I must have had too much free time, because I decided to do my own very unscientific survey. I counted the number of ads that featured a particular technology. Ads that mentioned more than one technology got counted multiple times, and I didn’t count the ads that were placed by Microsoft itself - just those from paying ad customers. There were 51 ads in total. I also checked for mentions of a few other terms that were near and dear to my heart: PDF, Java, and Flex. Here are the results:

Chart of Ads per Technology in MSDN 02-2007

There were a couple of things that jumped out at me:

  • As I mentioned at the beginning of the article, it appears that components for WinForms and .NET 2.0 in general have most of the energy in the Microsoft component space.

  • PDF was mentioned quite a bit in various ads, and XPS not at all. Again, not too surprising, but its nice (for Adobe) that developer take-up of XPS is still low.

  • Java is still doing quite well, even in the heart of Microsoft-country.

  • WPF & .NET 3.0 take-up amongst developers selling to developers is quite low. Of the 3 ads found, two were actually for training and not for software you could buy. Developers seem more exciting about products around ASP.NET AJAX, which I find interesting since both technologies went final around the same time.

  • Its also interesting that trainers seem to see a richer market for WPF than for ASP.NET AJAX. Maybe that is a reflection of pent up demand for WPF, or maybe its a reflection of the increased complexity of WPF development.

Not the most earth-shattering piece of analysis work ever, but hopefully something people will find interesting.

[Update 02-12-2007] I mentioned Infragistics and its announcements of WPF components at PDC events of yore, so I thought it would only be fair to point out the news on Mike Swanson’s blog that Infragistics has posted a beta of its NetAdvantage for WPF 2007 Volume 1 set of controls, and that DevComponents has its Office 2007 UI controls for WPF in private beta. Congratulations to both companies. I look forward to seeing them both shipped as final products sometime soon - maybe the market for WPF components will materialize then.

I also wonder what the licensing story is for all of these Office UI lookalike controls - do these companies have a license from Microsoft to duplicate the stuff in the Office UI guidelines? Do companies that ship applications using these control libraries get a license as part of the purchase price? Given how scary the Office UI license is for a typical ISV legal department, it would be nice if these sorts of libraries could make those sorts of issues go away.

January 28, 2007

A New Door Opens For PDF

Just in case you haven’t heard the news, Adobe just announced that the entire PDF 1.7 specification would be submitted to ISO via AIIM. The intent is to take PDF from its current status as a de facto standard and make it into a formally recognized international standard, controlled by a vendor-neutral standards body.

Eighteen years ago, Apple and Microsoft announced a joint effort to create a proprietary replacement for PostScript known as TrueImage and a proprietary replacement for PostScript Type 1 fonts known as TrueType. Only TrueType survived to this day, incorporated into the OpenType font standard format along with the PostScript font format (in CFF guise). When Bill Gates announced the joint effort at Seybold, John Warnock gave an impassioned speech where he announced the opening of the PostScript Type 1 font format specification and said:

This standard is so important in the printing and publishing industry that I’m not going to let it fail.

That statement applies equally well to PDF today, and the stakes are even higher. In fact, virtually every government and company around the world has a stake in the future of the PDF standard. I believe that the history will view this announcement as an historic one for Adobe and even for the software industry as a whole. There are several reasons why I believe this is so:

  • It shows how important the creation of vendor-neutral open standards is to the future of the tech industry. PDF has been an open standard for many, many years: anyone can implement the specification without any restriction. The specification itself was defined by Adobe, although we took input from many customers and partners over the years. Furthermore, there are a number of ISO standards that are based on the PDF specification: PDF/X, PDF/A, and so on. The openness of PDF has been sufficient to make PDF the de facto standard for document exchange, and, not incidentally, has helped make the Acrobat product family a significant source of revenue for Adobe.

    But recently an increasing number of customers have told us that they want document formats that are formally defined, freely available, and controlled by a vendor-neutral standards body. Sun and IBM deserve a lot of credit for being the first large companies to recognize this emerging trend and in response submitting ODF to OASIS (and then ISO). PDF following in ODF’s footsteps is important because the PDF format is one of the building blocks of the web.

    I hope this announcement marks a tipping point in the definition of openness for document formats, such that any future document formats that wish to get widespread industry adoption will need to be equally open.

  • It helps expose, by contrast, the weaknesses of Microsoft’s own standards efforts. Like Adobe, Sun, and IBM, Microsoft has also recognized the trend towards formal standards and as a result is shepherding OOXML thru ISO via ECMA. Unfortunately, Microsoft is trying to have its cake and eat it too, using a committee charter that is rigged: the committee is required to rubber-stamp the format as defined by Microsoft’s implementation for the sake of “compatibility”. Because the standard is really defined only by Microsoft, the OOXML standard fails the vendor-neutrality test in a fundamental way. It remains to be seen whether or not Microsoft will attempt to pull the same trick with XPS.

  • It makes Microsoft’s XPS format even more irrelevant and unnecessary. Why would anyone bother with a competing format this isn’t vendor-neutral, does less, and isn’t nearly as ubiquitous?

For myself, I’m proud that I got to play a small (and I do mean small) role in the process that led up to the announcement. My hat is off to the Adobe management team that made the decision and to the product teams that will have to execute on that decision.

Lastly, on an administrative note, I want to point out that Adobe isn’t announcing anything with respect to the submission of any other document formats to standards organizations, so I can’t speak towards such topics.

January 22, 2007

Java as a GUI Platform

Lots of people have been talking about the iPhone’s lack of openness and what it means. In particular, they’ve been discussing the news that Apple is at least considering putting Flash on the iPhone, but has dismissed Java as being too bloated:

Markoff: “What about all those plugins that live within Safari now, like Flash or like Java or like JavaScript?”

Jobs: “Well, JavaScript’s built into the Phone. Sure.”

Markoff: “And what are you thinking about Flash and Java?”

Jobs: “Java’s not worth building in. Nobody uses Java anymore. It’s this big heavyweight ball and chain.”

Markoff: “Flash?”

Jobs: “Well, you might see that.”

Lots of people have written about this statement, speculating on what it means for Java on Mac OS X, and wondered whether this should be seen as a eulogy for desktop java in general. Scoble and Gruber think Jobs may be spinning, and I agree - given how big the embedded version of Mac OS X is likely to be, calling JavaME heavyweight seems ridiculous. And because he’s spinning, I personally don’t think this will have any diminishing effect on Apple’s support for Java on the Mac - not that they were doing all that much to begin with.

I think the more interesting question is the one about the future of Java as a platform for GUI-based applications, on the desktop and in mobile devices.

The first thing I’d point out is that Java ME is a very strong player in the mobile space, used for all kinds of games. These games all have exactly the right kind of UI for their platform - a game UI. Should these games have an iPhone-esque UI when they run on an iPhone? Heck no! In fact, I’ll go even further and say that any game that every does get written with an iPhone-esque UI will suck.

Java ME is also used by companies like Google to build mobile applications that run on a variety of cell phones like GMail and Google Maps. Anyone who thinks these applications have inherently bad user interfaces is smoking something - they may not be Mac-like but they are very usable, very performant, and they have that “Google” look and feel (for better or worse). And while writing Java ME applications is anything but “write once run anywhere”, being portable is a lot better than being locked in to one OS or device.

But all that goes double for Flash Lite: richer interactivity, better authoring tools, and better portability. I’ll spare you any further proselytizing on the subject, but I’ve used a bunch of phones and the ones with Flash built in are the most usable on the market (the iPhone may very well change all that but I’ll reserve judgement til I get to hold one in my own hands).

Going back to the desktop, the choice is even starker: Java on the desktop just sucks. I spent many years at PlaceWare building user interfaces in Java, and spent way too many hours working around limitations in the platform. When I got to design and build a Win32 client to replace the Java version it felt so liberating! Isn’t that sad? So I completely sympathize with Jens’ point of view: native OS interfaces are vastly superior when it comes to creating great user experiences.

Unfortunately, when you adopt native APIs, you also get something else: lock-in. It doesn’t really matter whether your native API is Cocoa or Carbon or Win32 or WPF - all of them severely limit the number of places your applications can run. None of them make it practical to make an application that runs on Windows and Mac and Linux and so forth. None of them has a real story for making your code portable between operating systems and devices.

Now Adobe cares a lot about applications that run on more than one operating system, probably a lot more than any other major software company. So we’ve invested a lot in building compelling cross-platform user interfaces, and the UI used in the recently released PhotoShop CS3 is the latest example of that. We’ve even released some of those technologies as open source. But building these types of cross-platform applications requires a huge investment, one that very few companies are willing to make.

So if you are looking to build a cross-platform application without making those kinds of investments, what are your choices? Basically, you can use HTML/CSS/JavaScript, and/or use the Flash/Flex environment. With Apollo, Adobe is trying to bring those two worlds closer together and bring those technologies to the desktop, and eventually Apollo applications will be able to crossover to the mobile side as well. I personally find this a lot more exciting than a world full of non-portable applications. And Flash/Apollo can make applications with UIs that are as compelling as those of OS X and Vista. (I could make the argument that recent developments in OS X and Vista are really just attempts to bring Flash-style user experiences to the native OS, but that’s a topic for another day.)

Now I know that someone will make the point that the Flash/Flex/Apollo world is also a form of lock-in, and to a certain extent I agree: Flash Player is still proprietary (although it is free as in beer), and we do want to make money selling Flex Builder, Flash Professional, and other tools for creating experiences for the platform (the shame! the horror!). But in the end I think developers should invest in a platform that works across multiple operating systems and devices over one that doesn’t. Java could have been such a platform, but it lost its way. How strange that Adobe has had to pick up the mantle.

January 15, 2007

Commenting reopened

On January 9th, I set up my blog to only accept authenticated comments, as described in this blog post.

Unfortunately, the net effect is that the number of comments on my blog has gone down greatly, even though the number of readers has gone up. I'm not happy with that, so I've gone back to moderating comments by hand and manually filtering out the comment spam Movable Type isn't catching.

January 11, 2007

Vista hurts casual gaming

Via Todd Bishop of the Seattle Post Intelligencer, I read a very interesting article by Alex St. John on Gamasutra.com. In this article, entitled Vista Casts A Pall On PC Gaming, Alex writes that the combination of Vista’s security changes and the parental controls in the Gaming Center will have a chilling effect on the adoption of casual PC games:

One of the pieces of information a game has to supply to register with Game Explorer is a ESRB rating. Games that do not supply a rating will be subject to the “Not Rated” parental control setting. Since games are “trusted” to supply accurate ratings information, one might expect that they are also trusted to handle parental messaging themselves. Not so, any game that registers with Game Explorer becomes “subject” to Vista parental controls which will proceed to block the game from running and offer to delete the link to the game if you try to run it from anywhere on the system other than within the Game Explorer.

The heavy handed implementation of parental controls presents several problems for PC game developers. First, most free family and casual games are “unrated” because the ESRB rating service, designed for multimillion dollar boxed titles, is too expensive for most small casual game developers. Any parent concerned enough about the games their kids are downloading online to use Vista’s parental control system are likely to block “unrated” content and break most family appropriate content that can be found online. Note that Vista’s parental control system does not apply to web games and is not accessible from the browser so parents who expect them to protect their kids from “all” online game content may be in for a shock.

The bottom line of all this is that the idea of just trying out a casual Windows game on Vista is gone. Alex says he can’t speculate on what Microsoft was thinking, and I won’t try. I will point out that the obvious solution to the problem is to make your games web-based using Flash - the problems Alex complains about only effect games written to the Windows APIs that need to be installed locally. Longer term, Apollo will let you bring those games to the desktop as well.

[Update 1-17-2006] GigaGamez has a good followup article on the story, where an anonymous Microsoft executive says:

“It’s unfortunately a mercenary way of doing things,” a Microsoft executive tells GameDaily, explaining why indy/casual developers are receiving less support. “Certainly we want Blizzard’s ‘World Of Warcraft’ to work flawlessly on day one of Vista because 8 million tech support calls would be a very bad thing. The casual developers don’t sell quite as many.”

That's pretty sad, and shortsighted to boot.

January 10, 2007

Hey Apple: Don't be evil!

The iPhone is everywhere in the news these days. Like everyone, I enjoyed watching the announcements and think Steve Jobs did his usual brilliant job of pitching it. There are some curious omissions, though:

  • No VOIP even though they have WiFi. I suspect this is a concession to the cellular carriers.
  • No IM support - no AIM, no Jabber, no Yahoo! Messenger, etc. Using SMS to do chat sucks compared to any of the above. It should be a fallback to SMS when IM isn’t available. I’m mystified by this one, honestly - lots of other smartphones support IM, so it can’t have been the carriers who decided this one, right?
  • No tactile feedback on the touchscreen and no voice recognition. Guess Apple thinks no one will ever want to place a call while driving. (Yes, I’m aware this is illegal in some places, and unwise pretty much everywhere. But that doesn’t mean people don’t do so frequently.)

But enough about the iPhone’s limitations. I still want one!

But there’s a deeper, more disturbing undercurrent I noticed in yesterday’s announcements that I wanted to talk about. Here’s my “evidence,” such as it is, but keep in mind that this is based on early and incomplete information.

The first item is the lack of openness in the iPhone platform. Lots of people have written about this. Apple says it supports widgets, but it isn’t clear whether there is any support for third party widgets. Similarly, Apple says that there will be no ability to write applications for the iPhone without making some sort of deal with Apple first. To me, this means that it will be basically impossible for small developers to write for the platform, and difficult even for big players. Could Adobe do a free Acrobat Reader for the iPhone? Could Microsoft provide viewers for Office documents (assuming they’d want to, of course). Could Yahoo! build a widget that lets you view your flickr feed? Thats a lot of questions, with no answers. As a software engineer, though, I have to ask: if the iPhone is a closed system, how does the customer gain from it being based on Mac OS X?

The second item is Apple TV. Apparently it:

  • only supports Apple’s own H.323 codec for video. I can understand only supporting Apple’s own DRM for protected content, but what about content from the web? Shouldn’t I be able to stream that stuff without doing hours of downloading and conversion first?
  • doesn’t support third party extensibility, not even Apple’s existing iPod games initiative
  • doesn’t allow additional disk storage to be added to the box even though they have a USB connector on the back

The third and final item is the new Airport Extreme with support for 802.11n. According to Apple:

Most new Mac computers ship with built-in 802.11n wireless support that can be easily enabled with the installation of enabler software included with new AirPort Extreme wireless base station (see sidebar).

Get that? Apple’s been shipping computers for a while that supported 802.11n, but they crippled the feature until their own wireless router was ready for the market. But that wasn’t bad enough: now that they do have competitive products, they still won’t enable 802.11n on the Mac you already paid for unless you first buy one of their routers. I have no doubt the software will leak to the net, but that is besides the point: if I’m a legitimate Apple customer who has valid reasons to install someone else’s 802.11n routers in my home or business, Apple is going to make that customer do something illegal in order to take full advantage of their Mac hardware.

[UPDATE 01-15-2007] According to this article at iLounge, the reason why Apple isn’t providing 802.11 support on existing Macs is Sarbanes-Oxley. I don’t know that I believe this reasoning, but if true its pretty mind-blowingly weak. Rumor also has it that Apple will soon be selling the update for $4.95 to get around this issue. Here's the key quotes from iLounge:

I’m not going to claim to understand this next part, which really just makes no sense to me at all, but the claim Apple’s making is that it _can’t_ give you the 802.11n-unlocking software for free. The reason: the Core 2 Duo Macs weren’t advertised as 802.11n-ready, and a little law called the Sarbanes-Oxley Act supposedly prohibits Apple from giving away an unadvertised new feature for one of its products. Hence, said the Apple rep, the company’s not distributing new _features_ in Software Update any more, just _bug fixes._ Because of Sarbanes-Oxley. If this is an accurate statement of Apple’s position, which as an attorney (but not one with any Sarbanes background) I find at least plausible, this is really crazy.

Any one of these things on its own would raise questions in my mind. Taken together, though, they imply that Apple may now be putting their own plans for world media domination ahead of the needs of their customers. It also implies that Apple believes they no longer need a software ecosystem to make their products succeed. As a long time Apple fan and former Apple employee, these are both things I’m loath to see. Hopefully they’ll change their tune.

Updated 1-11-2007 to fix a typo and change the title to have a plain old single-quote instead of a curvy one...

Nice analysis of XML vs JSON

There's been a lot of back and forth between the XMLers and the JSON proponents of late. I thought this post by James Bennett to be particularly insightful.

January 09, 2007

A comment on commenting

I hate to do this, but I've been getting a lot of blog spam, so I've changed my blog to only allow comments from users authenticated by Six Apart's TypeKey system. I apologize for the hassle factor for those who wish to comment. Please keep in mind that this doesn't prevent you from posting without anyone really knowing who you are, in the sense that its pretty easy to set up a TypeKey account that points to a free email account.