Category Archives: software development

Blast from the past: how Adobe praised XAML at PDC 2003

I’ve been trawling back through material from Microsoft’s Professional Developer’s Conference in 2003 for a piece that will be posted shortly. I believe that the vision that was presented at PDC 2003, and how it fell apart, sheds a lot of light on why Windows is as it is today.

In doing so I came across this snippet about Adobe’s participation in the PDC keynote. It’s still online in Microsoft’s PDC press release:

Adobe Systems, a leading developer of software for consumers, creative professionals and enterprises, demonstrated the possibilities for ISVs created by integrating the new "Avalon" presentation technology and declarative programming techniques for Windows. Using these technologies, a prototype version of Adobe After Effects showed how developers could unify documents, cutting-edge graphics and media. For example, developers would now be able to build animated charts and graphs that are linked to back-end data sources to produce a smart solution that displays stock prices, sales and other information within a high-end professionally designed format.

"Many developers have not taken the visual design of their applications seriously enough, with the most innovative work restricted to creative professional software and games," said Greg Gilley, vice president of Graphics Applications Development at Adobe. "Longhorns new Avalon technology brings the designer and developer closer, so they can truly collaborate on creating software applications that are as beautiful as they are functional."

The odd thing is, this quote could come from the Adobe MAX 2009 conference from which I have just returned. “Animated charts and graphs … linked to back-end data sources” is what we saw in applications build with Mosaic, Adobe’s new framework for LiveCycle ES2 clients.

The difference: Adobe is doing all this with Flex and MXML, not XAML, and the client platform is the Flash runtime, not Avalon running on Windows.

Gilley of course was speaking before Adobe’s acquisition of Macromedia (and Flash and MXML) in 2005. Furthermore, nobody at PDC in 2003 could have guessed how long it would take Microsoft to deliver XAML.

Technorati Tags: ,,

Visual Studio 2010 to launch March 22 with Azure, Team Foundation Server for all

Microsoft has announced more details about Visual Studio 2010 and .NET Framework 4.0. Beta 2 of both products is available round about now, at least for MSDN subscribers, while thee are a few interesting packaging changes:

  • No more roles – there will be three paid-for versions of Visual Studio, Professional, Premium and Ultimate. I’ve been told that Premium will be pretty much the current Development and Database editions combined, while Ultimate has everything.
  • Team Foundation Server comes with every version, meaning that all Visual Studio developers will be able to use it if they choose. General Manager Jason Zander has the details of TFS Basic, which can even run on the client machine.
  • There will be a number of Azure hours bundled with each edition, so that developers can get started with Microsoft’s cloud platform without further payment. For example, Visual Studio 2010 Premium will come with 750 Azure hours initially, though this will supposedly reduce to 100 hours at a later date.

Visual Studio 2010 includes a new editor based on WPF, and users have complained of performance problems. Apparently this has been addressed, though now that beta 2 is out we will soon discover for sure.

I’ve also learned that the price of Visual Studio is increasing, by around 9%. To soften the blow, Microsoft has a special offer for those with current MSDN subscriptions when Visual Studio 2010 is released. These subscribers will get an automatic upgrade, not only to the equivalent 2010 edition, but to the one above. Thus, Professional subscribers will get Premium, and Team System subscribers will get Ultimate.

There is also an MSDN redesign, though it looks minor to me, and the most important section, the reference library, seems little changed. There is a ton of useful material on MSDN, but I still find Microsoft’s plethora of development and technical sites confusing to navigate, especially with specialist sites like Silverlight.Net offering overlapping content.

Ars technica has a handy product matrix.

Is Apple iPhone now unstoppable in the mobile platform wars?

I’ve been reflecting on a chat I had with a mobile application developer at Qt Developer Days last week. He thinks that Apple has all-but won in the battle to dominate the SmartPhone platform.

His reasoning is based on a couple of things. The first is that Apple is easily outpacing others in application availability and number of app installations. I guess there are many ways of counting this, but have a look at these figures. Handango, which has been in this game for over a decade, reported in January that it had over 140,000 apps and 100 million all-time downloads across a number of SmartPhone platforms. Apple reported this month that it has 85,000 apps and 2 billion downloads.

His second point is that Apple is one of the few companies to understand that users like consistency better than choice. “If I pick up an iPhone, my fingers know what to do,” he told me. This makes users reluctant to switch, except to another iPhone. By contrast, Nokia has a zillion different devices supposedly tailored for the needs of different customer segments, but as a result there is no sense of a consistent platform and users can easily switch away. Windows Mobile has the same problem but with multiple vendors as well as frequent design changes from each vendor.

These are points well made. If the much-rumoured Apple tablet appears, we can expect the App Store concept to extend its reach to larger devices as well. No wonder Adobe is so determined not to be left out on this platform, announcing a compiler to convert Flash applications to native iPhone code, as well as stepping up its campaign for Flash in the iPhone browser.

That said, I can think of counter-arguments. One is that iPhone isn’t yet, as far as I know, strong for corporate development. Windows Mobile has some advantages here, for Microsoft platform companies, while Java (not available on iPhone so far) is also appealing to corporate developers.

Another is that Google Android will give strong competition and take advantage of Apple’s weakness, its reluctance to abandon premium pricing.

Third, the consistency argument only goes so far. If you look at today’s iPod touch, for example, compared to the first iPods, there are huge differences. Users will in fact switch if there is convincing value in what is new.

Fourth, the more iPhone grows in importance, the more discontent over the closed nature of its platform will grow.

It is still early days for SmartPhones as a development platform; and while it is fun to speculate, things may look very different in a couple of years.

Still, let’s acknowledge that right now it is advantage Apple.

See also: What’s your choice in the mobile battleground?

and this great rant from a frustrated Symbian/Nokia developer:

Calling all Nokia & Symbian geniuses: Am I wrong?

Silverlight data, image upload example code

Some time ago I created a simple example of CRUD (Create, Retrieve, Update, Delete) in Silverlight with ASP.NET – you can view it online here. I originally posted it in April; see this post for details. Several people asked me for the code and I’ve not done so until now – mainly because of the hassle involved in making a Visual Studio solution portable as a demo. The Silverlight app was originally written in Visual Basic and I’ve now ported it to C# for convenience. The version on this site runs on Mono, but the demo code is for Visual Studio 2008 on Windows – there really is no difference apart from the database code.

One issue I had with the demo was providing a database. I wanted something easier than just providing the SQL to create a database, ideally a solution that would just open and run immediately. I tried using SQL Server Compact Edition but Microsoft has actually hard-coded something that stops you using this for an ASP.NET application and I got an exception accordingly. I’ve therefore used Access. I wouldn’t consider this for a real web app, but it is convenient for a demo.

The code is somewhat retro – no entity framework, no WCF, no LINQ – except an expression to filter the datagrid – and old-style ASP.NET Forms Authentication. It would be good to convert it to use RIA Services, which I may do if I can find the time. This may mean the code is no use to you at the moment.

Although it is a simple app and not production-ready, I found it interesting to do. Silverlight code is easy to write, but interacting with remote web services for all the content is more challenging. There are flaws – for example, I’ve not handled what happens when multiple users edit the data simultaneously.

There are a few little hacks too. For example, I have an edit form where you can upload an image. I want to have the image display as soon as it is uploaded, but found that if I try to display it in the WebClient’s OpenWriteCompleted event handler it fails; somehow the file is not quite ready to be served. I use a timer to insert a small delay.

Another issue was faking synchronous web service calls.

Anyway, I’ve now uploaded the code and you can find it here. If there is enough interest I’ll put it in a repository to make it easier to add bug-fixes and so on.

IntelliJ IDEA goes free and open source

Yesterday JetBrains announced that its core product, the IDEA IDE for Java, is becoming open source under the Apache 2.0 license. There will be a free Community Edition and a commercial edition with more features. This list of additional features not in the free edition is rather extensive, including UML class diagrams, code coverage, Android support, JSP debugging, JavaScript debugging, support for other languages such as Ruby, SQL, HTML, JavaScript, ActionScript, PHP, support for additional version control systems including Team Foundation Server, ClearCase and Perforce, and above all specific support for frameworks and technologies including Rails, Spring, EJB, Tomcat, JBoss and WebSphere, and even Adobe AIR.

In other words, the free part is the core IDE plus a few features; the commercial edition adds a lot of value for most users.

CEO Sergey Dimitriev remarks:

Open source has become the mainstream, and we continue to embrace it as an exciting challenge. In brief, we’re not changing direction — we’re moving forward.

IDEA is an excellent and popular IDE and last time I looked I found it more productive and enjoyable to use than its obvious alternative, Eclipse. I imagine that IntelliJ is hoping to strengthen the community and availability of add-ons for IDEA, as well as attracting new users.

Although this is welcome news – and I’d encourage any Java developer to try the product – it would be interesting to know more about why JebBrains is taking this step. Borland’s JBuilder was once highly successful, until the free Eclipse offering eroded its market share. Seeing how important the add-on community was in Eclipse, Borland belatedly issued a free JBuilder and sought to make it an alternative IDE platform for third parties, but by then it was too late. JBuilder was discontinued and a new product of the same name appeared in its place, built on Eclipse; it is still available but is now a niche product. I’ve not got any up-to-date figures but I’d expect JBuilder’s market share to be tiny now.

Unlike JBuilder, IDEA has remained popular despite Eclipse. Comments on stackoverflow, for example, show how well liked it is:

Eclipse was the first IDE to move me off of XEmacs. However, when my employer offered to buy me a Intellij IDEA license if I wanted one it only took 3 days with an evaluation copy to convince me to go for it.

It seems like so many small things are just nicer.

The problem is that the free Eclipse, or free NetBeans, or free Oracle JDeveloper, are good enough to get your work done, making it hard to compete; and I am not sure whether the addition of free IntelliJ IDEA to the list is a sign of strength or weakness.

My guess is that serious users will still want the commercial edition with its many additional features, so this may not be as radical a step as it first appears.

Qt goes mobile, gets bling, aims for broader appeal

Here at Qt Developer Days in Munich we’ve heard how Nokia wants to see “Qt everywhere”, and will be supporting Qt on its Maemo operating system and on Symbian, as well as adding specific support for Windows 7 and Mac OS X 10.6, “Snow Leopard”. Qt already works on Microsoft Windows Mobile, and of course on Linux which is where it all started. What about Google Android, Palm WebOS, Apple iPhone? Nothing has been promised, but there is hope that Qt will eventually work on at least some of these other systems.

So is “Qt everywhere” a realistic proposition? Here’s a few impressions from the conference. First, a bit of context. Qt is a C++ framework for cross-platform development. and although bindings for other languages exist, Nokia says it is focused on excellence in C++ rather than working with multiple languages. Developers get the advantages of both native code executables and cross-platform support, and Qt is popular on embedded systems as well as desktops and mobile devices.

Qt is an open source framework which was developed by a company called Trolltech which Nokia acquired in 2008. Its motivation, one assumes, was to simplify development for its own multiple operating systems, especially Maemo and Symbian. Still, it has also taken its responsibilities to the open source community seriously. Qt was originally available either under the GPL, which requires developers to make their own applications available under the GPL as well, or under a commercial license. This limited Qt’s take-up. In March Nokia introduced a third option, the LGPL, which is a more liberal and allows commercial development using the free license. The result, we were told, has been a 250% increase in usage (though how this is defined is uncertain) accompanied by “a small drop in revenue.”

Although the revenue decrease is troubling, it is not a disaster for Nokia whose main business is selling hardware; and if take up continues to increase I’d expect revenue to follow.

Since the Nokia acquisition, Qt has been energetically developed. 2009 has seen the release of a dedicated IDE called Qt Creator. I was interested to see a company that has chosen not to go the Eclipse route for its primary IDE, though there are plug-ins for both Eclipse and Visual Studio. The trolls explained that Eclipse came with too much baggage and they wanted something more perfectly suited to its purpose, a lean approach that is in keeping with the Qt philosophy.

Another important move is the inclusion of Webkit within the framework, the same open source HTML engine that powers Apple’s Safari, Adobe AIR, and the browser in numerous Smartphones. Webkit also comes with a Javascript engine, which Nokia is exploiting in several interesting ways.

The big deal at Qt Developer Days was another new project called Kinetic. This is comprised of four parts:

1. An animation API.

2. A state machine.

3. A graphical effects API.

4. A declarative API, currently called QML (Qt Markup Language), though this may change.

Many of these pieces, though not the last, are already present in Qt 4.6, just released in technical preview. Nokia has not announced a specific date for Kinetic, though there were mutters about “first half of 2010”.

The thinking behind Kinetic is to make it easier to support the graphical effects and transitions that users have come to expect, as well as improving the designer-developer workflow – showing that it is not only Adobe and Microsoft who are thinking about this.

QML is significant for several reasons. It is a JavaScript-like API: we were told that Nokia started out with XML but found it cumbersome, and settled on JavaScript instead. It is designed to work well with visual design tools, and Nokia has one code-named Bauhaus which will be part of Qt Creator. Finally, it allows snippets of JavaScript so that developers can create dynamic user interfaces.

At runtime, QML is rendered by a viewer widget, which can be programmatically controlled in C++ just like other Qt widgets.  

Nokia’s hope is that designers can be persuaded to work directly in the QML designer, enabling free exchange of code between designers and developers. It is a nice idea, though I doubt designers will easily transition from the more comfortable world of Photoshop and Flash. However, even if in the end QML is used more by developers than designers, it does greatly simplify the task of creating a dynamic Qt UI. Note that there is already a visual GUI designer in Qt Creator but this is geared towards static layouts.

Long term, who knows, we may see entire applications written in QML, opening up Qt to a new and broader audience.

You can see the latest Qt roadmap here.

Qt pros and cons

I was impressed that attendance here has increased – from around 500 last year to around 700 – despite the economy. Those developers I spoke to seemed to like Qt, praising the way it self-manages memory, though some find the model-view aspect too complex and apparently this is to be improved. Nokia’s stewardship and openness is appreciated and the Qt roadmap generally liked, though there is concern that its understandable focus on mobile may leave the desktop under-served.

Cross-platform capability is increasingly important, and for those who want the performance and capability of C++ along with really good Linux support – important for embedded use – Qt is a strong contender. The focus on mobile is right, not only because of Nokia’s own needs, but because demand for Smartphone apps can only increase.

Integrating with Webkit is a smart move, opening up possibilities for hybrid web/desktop applications and giving Windows developers an alternative to embedded IE with all its quirks.

The open source aspect is another strength. This is now a good selling point if you developing for certain governments (the UK is one such) or other organisations that have a bias towards open source.

That said, talk of Qt everywhere is premature. The mobile space is fractured, and without iPhone, WebOS or Android Nokia cannot claim to have a universal solution. Nor has anyone else; but I’m just back from Adobe MAX where we heard about wider support for the Flash runtime. Then again, few choose between C++ or Flash; Adobe’s runtime is pretty much off the map for attendees here.

Qt is well-established in its niche, and is in good hands. I will be interested to see whether Nokia is successful in broadening its appeal.

Incidentally, if you can get to San Francisco you can still catch Qt Developer Days as it is running there from November 2nd-4th.

Adobe’s chameleon Flash shows its enterprise colours

Duane Nickull is Senior Technical Evangelist at Adobe and co-author of Web 2.0 Architectures which I reviewed recently. He is also Duane Chaos of grunge band 22nd Century and entertained us at the Adobe MAX party last night in Los Angeles.

Duane Chaos at Adobe MAX bash in LA

It’s appropriate that he works for Adobe, whose Flash runtime has parallel chameleon characteristics. Most of the time it is delivering annoying ads, games or silly videos; but it also turns up as a flexible cross-platform client runtime for Enterprise applications.

We saw this demonstrated yesterday in an excellent session on scaling Flex for a large trading application, given by the developers of Morgan Stanley’s Matrix application about which I have written before. This session was far more informative than the earlier online briefing, and a fascinating case study in how to create Enterprise-grade software.

Matrix was built by a team of around 30 Flex developers, over a period of between 18 months and two years. It uses a REST-based service layer which talks to a variety of Java and .NET back-end servers – we didn’t hear much about these – and delivering XML to the Flex client. The team did not use the Flash-optimised AMF protocol because the app uses Lightstreamer which did not support it at the time, though we were told that AMF would be advantageous and may be used in future. LiveCycle Data Services were ruled out because of lack of support for edge server deployment; again, this has apparently been fixed in the latest LiveCycle so migrating in that direction is possible.

Matrix uses the Cairngorm 3 architecture, which specifies best-practice design patterns for Flex, implemented using the Parsley Application Framework. The application is modular, and we heard a lot about how rigorous module encapsulation makes a large application like this – 600,000 lines of Flex code – manageable, reliable, flexible and testable. One module cannot access the implementation details of another, and a message bus handles communication.

I was also impressed by the attention given to performance. Another advantage of using modules is that they are loaded on demand, reducing the load time and memory footprint. Each module is profiled separately. The team also found that a big factor in Flex performance is efficiency in managing redraw regions – apparently Flash can easily be sloppy about this and redraw regions that have not actually changed. The team patched the UIMovieClip component to overcome problems in this area.

A model-view-controller architecture is used for the user interface, and this enables better testability. The team uses continuous integration to maintain quality.

According to the session presenters, the result is an application that has the high performance required of a financial trading application, and can run for extended periods without issues.

Although I had the impression that developing Matrix has been bleeding edge at times, with the team using beta software to get access to new features, there was also evidence that Adobe was responding to issues and using this as an opportunity to improve its platform.

This makes a great case study for those sceptical about whether the Flash runtime is really capable of powering Enterprise clients, or for any Flex developer.

Book review: Web 2.0 Architectures

This is an excellent read, though it was not what I expected from the title. It is written by three people who are always forthright, sharp and insightful, and who live on the Web: James Governor, Dion Hinchcliffe and Duane Nickull. Nickull works for Adobe, and the book labelled as part of the Adobe Developer Library, but don’t let that put you off if you are a Java guy, or a PHP developer, or a Microsoft Platform person: this is about concepts and patterns, not specific products.

So why was it not what I expected? Well, I thought it might focus on the challenge of developing highly distributed applications, looking at what it takes to make such applications reliable, performant and scalable. I know even from my own dabblings that decisions about where to locate different pieces of logic and handling things such as authentication, transactions and security are tough problems with which many of us need help. However, this title rarely descends to that level of detail – though it is a little unpredictable in that respect. The authors do find space, for example, for several pages on common mistakes in designing web forms, reflecting I imagine their level of frustration at how often they encounter them. Inconsistent, yes; but forgivable.

What you do find is detailed and often brilliant attention to the definition of terms. What is architecture? What is a model? What is a pattern? What is a Mashup? What is a Rich Internet Application? What is Service Oriented Architecture? What is a Reference Architecture? And of course, What is Web 2.0? These discussions are pithy, illustrated with real-world examples, and convey the authors’ enthusiasm for the new era which is now upon us.

As you read the early chapters you feel that this is all leading up to something big. That’s correct, but again it might not be what you expect. In fact, this feels like an introduction to a much longer book that is yet to be written, a fault which can only be excused by the idea that it is you, not they, that have the task of writing it.

Here’s a short extract from a section called The Timeless Way of Building Software: Inspiration for the next generation of Web Software:

Take a look at some of the great web software, such as Google’s search page, Flickr, or Delicious. They all have that unique yet unhurried grace that comes from perfect ease and natural balance. But what do they have in common exactly? They are beautiful, ordered and harmonious. But especially, and what strikes to the heart, is that they live. They are the perfect blend of logic and emotion, of the machine and the human experience, intrinsically intertwined and symbiotically embracing each other.

If you find this excessively rhapsodic you will probably not like this book. Note the title though: this is a Web 2.0 book as well as an architecture book; and a couple of pages on from the above quote we learn the significance of that:

…this timeless way of software architecture represents a more complete reconceptualization of what we thought we knew. We can give this place, where common sense and logic collide with humanity and society, a name.

We call that place Web 2.0.

And that is pretty much how it ends.

Overall it’s a great read, written I suspect in haste, accounting for the odd sloppy phrase or two, but always fluent and enjoyable. Recommended for those who are thoughtful about what it means to do software today.

View on Amazon.com: Web 2.0 Architectures: What entrepreneurs and information architects need to know

View on Amazon.co.uk: Web 2.0 Architectures: What entrepreneurs and information architects need to know

Future of Web Apps cheers the independent Web

The Future of Web Applications conference in London is always a thought-provoking event, thanks to its diversity, independence and character. That said, it is a frustrating creature at times. The frustration on day 1 was the barely functional wi-fi, which ruined a promising interactive application called HelloApp, built with ASP.NET MVC. HelloApp would have told us who we were sitting next to, what their interests were, their twitter ID and so on. Microsoft must be disappointed since the developers, some of them more used to technologies like PHP and Ruby, said how impressed they were with the framework and Visual Studio. The poor connectivity was a shame, and a bad slip-up for a web application conference. Even the speakers had to work mostly offline – cloud devotees beware.

Ryan Carson at the Future of Web Apps London, 2009

FOWA has been at London Excel recently, but this event was back to its earlier venue of Kensington Town Hall, more crowded but a better atmosphere and easier to get to. I suspect a little downsizing, but much prefer it. Organizer Ryan Carson has his heart set on enabling start-ups, proffering business advice and uniting developers, designers and money folk, though many attendees are not in the start-up category at all. When revealing the results of a survey showing that many web app hopefuls had less then 1000 site visitors a month he shook his head despairingly “you’re never gonna build a business on that kind of traffic”.

Carson has excellent contacts and the day kicked off with Digg’s Kevin Rose on how to get those visitor numbers up – he should know if anyone does. Rose exceeded my expectations with tips on massaging your visitor egos, avoiding analysis paralysis, hanging round event parties to meet influencers even when you can’t afford to attend the event, and even how to hack the press.

After that the day was disappointingly low-key, at least until midday. Then we got Francisco Tolmasky from 280 North and it all changed. Tolmasky’s line is that we should use pure web technology but with the richness of desktop applications, and to enable this he’s put forward cappuccino, a JavaScript framework inspired by Apple’s Objective C and Cocoa – Cappuccino uses Objective-J. This now has a visual development tool (web-based of course) called Atlas, and in Tolmasky’s demo it looked superb. See here for more details.

The surprising twist is that after developers told Tolmasky that they (or their companies) were not willing to trust code to the web, 280 North came up with a desktop version of Atlas with the added ability to create desktop applications as well. I am not clear about all the runtime details, though it no doubt involves webkit, but Tolmasky’s differentiator versus alternatives like Java or Adobe AIR is that Atlas uses only web APIs.

We heard a lot at FOWA about social media, how to use it for marketing, and how to integrate it into applications. Cat Lee from Facebook gave us a breathless presentation on how simple it is to hook into Facebook Connect. It was OK but it was a sales pitch, and that never goes down well at FOWA. 

The later afternoon sessions were excellent. Bruce Lawson of Opera gave us an entertaining overview of how HTML 5 would make life easier for developers. There was nothing new here, but nevertheless a revealing moment. He showed some rich media working in HTML 5 and made the comment, jabbing at Adobe Flash and Microsoft Silverlight, that the web was too important to place control in the hands of any one vendor. A loud and spontaneous cheer went up.

This was echoed later when Aza Raskin of Mozilla gave us a browser-centric view of social media, suggesting that the browser could broker our “social graph” by integrating with multiple identity providers. Raskin’s line: social media is too important to be in the hands of any one vendor.

The Guardian’s Chris Thorpe gave a bold presentation about how the Guardian wants to embed itself in the web through its open platform. Like most print media, the Guardian has many challenges around its future business model (disclaimer: I write for the Guardian from time to time); but Thorpe’s presentation shows that his newspaper is coming up with an intelligent response, promoting interaction and building out into the wider web rather than erecting paywalls. Having said that, maybe the Guardian will try other business models too; it is a journey into the unknown.

Overall a day for social media and the open web, and a good antidote to the more vendor-centric conferences at which I often find myself. Next week, for example, it is the Flash-centric Adobe MAX; and having heard very little about Flash at FOWA that will make an interesting contrast.

Flash spell check developer upset by competition from Adobe Squiggly

Grant Skinner is the developer of Spelling Plus Library, a spell checking engine for Flex, Flash and AIR. He is displeased that Adobe has now released Squiggly on Adobe Labs – a free component that does the same kind of thing. Skinner refers to the general lack of commercial Flash components:

One of the things that the Flash world really lacks is a strong commercial component marketplace. We have a thriving OSS culture, which is awesome, but while it is very prolific it rarely creates highly reliable, documented, and well-supported libraries. It’s a weakness of the platform, especially when you look at the hundreds or thousands of enterprise class commercial components available for languages like Java or C#.

It is an interesting point. I have always found it intriguing that the commercial component market is so much dominated by Microsoft, thanks perhaps to its early success with VBX and then ActiveX controls for Visual Basic. Despite the maturity of Flash and its popularity among developers, I can more easily name companies with commercial Silverlight components than Flash equivalents – companies like Devexpress, Infragistics, ComponentOne, and Telerik.

Skinner is therefore upset that Adobe has picked a spell checker for its free offering:

When Adobe spends a large amount of resources building a spelling component that directly competes with one of the few successful commercial components in the Flash world, it frustrates me.

though I imagine the impact on his sales is a large factor in his reaction.

The truth is that component vendors always have to play this game of trying to stay ahead of what developers can get for free, either from open source or from what is bundled into the core SDK.

Note that Intel’s just-announced AppDeveloper program for Atom netbooks includes a component marketplace for AIR. I am not sure how significant it will be, but it is another outlet for Flash component vendors.