Tim Anderson’s ITWriting

Tech writing blog

July 2nd, 2009

Clipboard.Clear … oops

Bob Warfield is upset because he lost some work. He copied some text in Live Writer, deleted it, then opened Word and tried to paste. No go .. clipboard empty.

Frustrating, but is he right to call his post Microsoft: Bad User Experience Is Cultural, on the grounds that Word is designed to clear the clipboard every time it opens?

Here’s a bit more information. First, Word does not do that here. Second, if it weren’t that I do equally silly things I’d suggest that it is always risky to entrust the clipboard with your work without a backup.

That said, I can understand why Word might appear to clear the clipboard on start-up. It could be a bug, or it could be an add-in of some kind. The thing is, it is really easy to clear the clipboard in code. Just call EmptyClipboard and you’re done. There are ways to do it in VBA too, via a DataObject, or in .NET via Clipboard.Clear.

As Warfield’s case shows, clearing the clipboard in code can be deeply user-hostile. Should Windows prevent it? Difficult, because if your application or add-in implements clipboard functionality, it is the correct thing to do when the user selects Cut, Copy or Paste.

Lessons? A warning, I guess, not to use the clipboard for any purpose other than a user-initiated clipboard action – though I guess it can be tempting if you are hacking some sort of inter-process data exchange.

Second, when Windows lets you down it is not necessarily Microsoft culture to blame. There is an argument though … applications that don’t conform to Windows guidelines are a big problem and without them things like User Account Control might not need to exist; and that is Microsoft’s fault in a way, because of the history of Windows, its changing guidelines, and the inability of even Microsoft to stick to them in the past. Maybe Microsoft is partly to blame for the wild culture of third-party Windows apps.

This is a blog entry rather than a comment because Warfield’s blog needs registration to comment, and I am allergic.

July 1st, 2009

Mozilla takes aim at Flash and Silverlight with Firefox 3.5

I reviewed Firefox 3.5 for The Register. I found the new features unexciting from a user perspective, but not so for developers. The new TraceMonkey JavaScript engine, improvements to the Canvas element, JavaScript threading and various bits of HTML 5.0 make this a more powerful platform for web applications – provided that you workaround the problem of users with Internet Explorer. The arrival of video and audio elements is also worth highlighting:

Another new feature is SVG effects for HTML, including masking, filtering and clipping. The point I made in the review is that this is a shot at Adobe as well as Microsoft. Although it is a long way from a viable alternative to Flash for now, the direction is clear.

That does not mean it will succeed. On the other hand, if Apple, Google and Mozilla pull together in making browser standards rich enough not to need plug-ins for most of the scenarios where Flash is used today, this could disrupt Flash momentum.

What about IE? That’s the big question. Here’s a few questions:

1. Will Microsoft implement these standards or hold back, arguing that Silverlight makes them unnecessary?

2. Will IE retain its market dominance – still over 65% last time I looked, even though it is losing among developers and influencers?

3. Could IE add-ons along the lines of Screaming Monkey for JavaScript and the Mozilla Canvas plug-in that has been discussed pull IE along anyway?

This article by Ryan Paul from last year discusses the issue. He says, why shouldn’t Adobe embrace HTML 5.0 rather than fighting it:

Although Canvas arguably competes with Adobe’s Flash plugin in a certain set of use cases, it’s worth noting that Adobe doesn’t generate revenue from the Flash plugin itself. Adobe cashes in on Flash by selling its powerful authoring tools, which the company could easily extend to support standards-based web technologies.

It’s a fair point; but given the commercial advantages of owning the platform, as opposed to being just another tools vendor, I doubt Adobe would make this shift unless it saw no realistic alternative. Even fully open-sourcing the Flash runtime would be less risky.

You can find Firefox here, and the developer features are described here.

June 30th, 2009

Eclipse survey shows Windows decline

In May 2009 the open source Eclipse project surveyed its users. Visitors to the Eclipse site were asked to complete a survey, and 1365 did so. That’s out of around 1 million visitors, which shows how much we all hate surveys. Anyway, this report [pdf] was the result. A similar survey [pdf] was carried out in 2007, potentially making a valuable comparison, though the earlier survey has different questions making direct comparisons difficult in most cases, which is a shame. I especially missed the detail on which Eclipse projects are used most which is well covered in the 2007 report.

Here is what I found interesting. First, there’s a shift towards Linux and Apple Mac in the desktops developers use for Eclipse. In 2007 it was 73.8% Windows, 20% Linux and 3.5% Mac. In 2009 it is 64% Windows, 26.9% Linux and 6.9% Mac.

This is echoed in deployment platforms too (client and server). In 2007 it was 46.5% Windows, 36.6% Linux, 1% Mac; today it is 40.5% Windows, 42.7% Linux, 3% Mac.

Those surveyed were asked what other IDEs they used. I noticed that Microsoft Visual Studio and NetBeans feature fairly strongly; I also noticed that Embarcadero’s JBuilder is hardly a blip on the chart – intriguing, given how popular this used to be in the pre-Eclipse era.

The most popular code management tool is Subversion (57.5%) followed by CVS (20%). For build tools, Ant (33.4%) and Maven (18%).

Here’s an intriguing one: I often hear that Java is only successful on the server. That presumption is not supported by this survey. 23.4% said that desktop client apps are the primary type of software they are developing, compared to 30.2% server, and 24.7% web or RIA apps.

The preferred app server is Apache Tomcat (34.8%) followed by JBoss (12.7%) and Websphere (6.9%).

The most popular database manager is MySQL (27.7%) followed by Oracle (27.3%). That’s 55% for Sun+Oracle, of course, though bear in mind that many of the MySQL users are likely attracted by its free licence.

Before drawing too many conclusions, bear in mind that it is a small sample self-selected by people willing to take the survey; apparently it was also featured by a German technology site which resulted in a larger response from German visitors.

Although it suggests a declining use of Windows – which is especially plausible given the trend towards web applications – it does not prove it beyond the Eclipse community.

And next time – how about using the same questions, which would make it possible to identify trends?

I’ve also written about Eclipse here: The Eclipse Conundrum: can it grow without hurting its contributors?

June 25th, 2009

Silverlight 3 coming to Xbox 360

This announcement concerning advertising on Xbox Live together with these tweets from Microsoft VP Scott Guthrie add up to one thing: Silverlight 3 will run on Xbox 360.

Another platform (along with Apple’s iPhone) where Adobe Flash will struggle to find a place, I’d guess.

June 23rd, 2009

What next for Adobe LiveCycle ES?

Yesterday I met Adobe’s Duane Nickull for a chat about the company’s efforts in SOA. Nickull is a battle-scarred enterprise architect with a deep knowledge of SOA standards, who is now a senior technical evangelist for Adobe. He represents what I think of as the other Adobe: not the company that does things you would not believe in Photoshop, but the one that has created an end-to-end development platform with LiveCycle Enterprise Suite (plus your favourite application server) at one end, and Flex at the other.

It is an aspect of Adobe that deserves more attention. For example, this note in Anil Channapa’s What’s New in LiveCycle Data Services 3 caught my attention:

The LiveCycle Data Services 3 beta supports an acknowledge capability that enables all communications between Flex-based applications for Flash and the LiveCycle Data Services server to be guaranteed. All that you have to do is mark the LiveCycle Data Services 3 beta server destination as reliable.

I think this is huge. As Channapa goes on to note, for developers contemplating ecommerce or financial applications, this is a key feature.

I learned from Nickull that this feature is based on WS-RX and that in general we should expect more WS-* implementations to turn up in LiveCycle ES. RESTafarians will be sceptical, but I suspect this will help Adobe to make inroads into enterprise development.

That said, I do think Adobe has issues positioning and promoting LiveCycle ES. The more glitzy Creative Suite tends to grab all the attention, and indeed accounts for by far the largest slice of Adobe’s revenue. When I attended MAX in Milan last year, I don’t recall any mention for LiveCycle in the keynotes; it was one of those things you had to discover, though there were some excellent sessions on the subject.

I think Adobe should push LiveCycle ES harder, particularly as a business model based mainly on selling a huge suite of design tools strikes me as precarious. Adobe is making a start and has announced a LiveCycle@MAX bundle for MAX 2009 [warning: autoplay sound] in early October.

The LiveCycle ES brand encompasses what used to be Macromedia’s Flex Data Services as well as Adobe’s PDF-oriented software for managing workflow and data gathering. If you look at Adobe’s LiveCycle ES page, it all seems PDF-centric and Data Services is hidden away as the last item under Data capture.

In reality LiveCycle Data Services ES has a lot to offer even if you don’t care a bean about PDF, but that is a fact that is easy to miss. Another positioning issue. Adobe has been over-zealous in its PDF-with-everything strategy.

I also asked Nickull how Acrobat.com fits with with Adobe’s SOA strategy. He said that a move to application hosting would be a logical one, though he implied that it would be geared towards SMEs.

Host your Java application on Adobe’s servers, with built-in LiveCycle Data Services for your Flex client? That makes sense to me.

Technorati Tags: ,,,
June 19th, 2009

Does Visual Basic have a future?

I was interested in this podcast with a member of the Visual Basic team at Microsoft, Lisa Feigenbaum, as I ask myself the same question.

Unfortunately the questioning from Joe Stagner (who also works for Microsoft) is tame. Nevertheless, there are a few points of interest.

“The things that come out of Microsoft, it is C# biased” admits Feigenbaum, which she says is because so many at Microsoft have a C or Java background.

That is part of the reason (though more C than Java) but I doubt it is that simple. If you go back to the beginnings of .NET, Microsoft designed C# and what was then the new framework and runtime together. VB on the other hand was hauled into the new world and still bears the scars.

Let’s answer the question first. Microsoft cannot afford to abandon VB, which remains popular, especially (though certainly not exclusively) at the less professional end of the market. VB isn’t going away.

Further, there’s really very little difference in the capabilities of the two languages, so there is little incentive for anyone to switch. Microsoft has attempted to differentiate them, but these attempts generally fail. “Any time we do something cool in one language, the other folks want it” says Stagner in the podcast.

As I see it, that’s part of the problem. It begs the question: what is the point of VB, other than to keep existing VB developers happy? In what circumstances would you advise a new programmer to learn VB rather than C#?

I dip in and out of both VB and C#, and of the two I prefer C#. I find VB’s slightly increased verbosity annoying, and I dislike the statement continuation character which is unnecessary in C#, because statements end with semicolons. I prefer case-sensitive languages, which give more flexibility when naming variables. If you want to do XNA games programming, currently only C# is supported. 

VB’s dynamic features are useful in some scenarios, particularly Office automation, though this advantage is removed in C# 4.0 which has dynamic variables.

The original attraction of BASIC, its English-like syntax, is nearly lost in today’s VB.

Well, choice is good; and the existence of VB alongside C# proved the cross-language credentials of the “common language” runtime from the get-go.

Nevertheless, I’m expecting VB usage to decline gradually. An external factor is the rise of the JavaScript family, which is more like C# than VB.

Incidentally, Feigenbaum threw in a comment about Visual Studio that I found interesting. After talking about the managed code editor in Visual Studio 2010, she remarks “In the release after 1010 we’re rewriting the compilers in managed code.”

Technorati Tags: ,,,,
June 18th, 2009

Survey ranks developer tools, and reveals what developers care about most

Evans Data has published its 2009 Software Development Platforms survey, to which around 1200 developers contributed, scoring their chosen development tools in eighteen different categories.

The tools covered are Eclipse, Embarcadero’s Delphi, IBM’s Rational Suite, IntelliJ, Microsoft’s Visual Studio, NetBeans, Oracle JDeveloper and Sun Studio.

I was sorry not to see more products covered. Flex Builder Flash Builder, Zend Studio, Aptana and JBuilder would all have been interesting, for example. Each developer only scored the product they actually use (a good thing), so the sample is not as big as it first appears.

I’m also mistrustful of the survey results, particularly when you look at it in detail. For example, one of the categories is “Support for frameworks”.  Visual Studio came top, while Eclipse was last. But hang on: in Visual Studio (for example) are we talking MFC, or .NET Framework? The development experience for each is totally different. And were developers primarily judging on the framework tools, or the framework itself? It is hard to attach much meaning to the scores in this category.

Another flaw: the versions of the products is not specified. That means a weakness may have been fixed in a later version, but the survey does not tell you.

A third flaw: some tools are weak in several categories, dragging down their overall score, but that does not matter to developers who do not use them for that purpose. It is hard to compare like with like.

Still, while I’m wary of the survey overall, I though it brought out some interesting points. One is that developers were asked what features matter most to them. So:

The three things developers care about most (highest priority first):

1. Basic tools (editor/compiler/debugger)

2. Documentation

3. Tool integration

The things developers care about least (lowest priority first):

1. Support for remote development

2. Support for parallel programming (sorry Intel!)

3. App Modeling tools

What about the winners and losers in the survey? I almost forgot. IBM’s Rational Suite came top, followed by Microsoft’s Visual Studio. Eclipse came last, though it still got a decent score, well below its rival NetBeans.

The low ranking for Eclipse (which is nevertheless wildly popular) deserves some comment, particularly as the top tool, IBM Rational Suite, is built on Eclipse. I spoke to Eclipse executive director Mike Milinkovich while researching this Register piece recently. One of the points we discussed was the tension (if there is one, which he disputes) between tools vendors sharing resources to build the best possible platform, and holding resources back to retain commercial differentiation. I’ll write this up in more detail shortly; but it shows why certain areas in Eclipse may not receive the attention they deserve – localization was a specific example.

Another problem with Eclipse is that it is all a bit messy, confusing and hard to manage, particularly in a team where you want every member to have an identical setup. It is still worth it though, for the riches it provides for free.

June 16th, 2009

Embarcadero CEO on cross-platform native code

I had a long chat with Embarcadero CEO Wayne Williams last week. I used a few snippets on the Reg – on cross-platform Delphi and Eclipse – and hope to post more from it shortly. In the meantime, here’s what he said about using native code rather than Java or other types of managed code for cross-platform apps. It felt like 1996 all over again, but he has a point.

June 10th, 2009

Will Microsoft respond to the JavaScript speed challenge?

While people argue about JavaScript performance in Chrome vs Safari vs FireFox, there’s one fact that is beyond dispute. Microsoft’s Internet Explorer 8 is hilariously slow in comparison. On Apple’s figures, IE8 is 5.9 times slower on its i-Bench JavaScript test and 7.7 times slower on the SunSpider test.

You may hardly notice this in normal browsing. It most likely takes longer to download the JavaScript than to execute it. In fact, download speed is still the most significant factor in browser performance, and changing your browser will do nothing to change that (though different approaches to caching might).

This could change though, if more web applications appear that make heavy use of JavaScript. Google Wave could be an example. In fact, this seems to be Google’s game plan: make the browser (backed of course by the Internet) the operating system. The larger these web applications become, the more difference that JavaScript performance will make.

Offline is another interesting case, enabled in Chrome by the Gears add-on. In this scenario, content is served locally so browser performance has a better chance to shine.

The big question: will Microsoft step up to the challenge and fix JavaScript performance in IE? The company could do so relatively easily, either by using one of the open-source engines (unlikely) or by applying its existing knowledge of just-in-time compilation, used to good effect in .NET and Silverlight, to JavaScript in the browser.

The horns of Microsoft’s dilemma: improve JavaScript and undermine the advantage of Silverlight, which runs code much faster. Don’t improve it, and see market share continue to decline in favour of faster browsers.

The right thing to do, of course, is to fix the JavaScript engine; but companies do not always do the right thing – and Microsoft may still be comforted by its 65% market share for IE. That’s false comfort; the share is in long-term decline.

Incidentally, I’ve noticed that Google, while not exactly taking the gloves off, is stepping up its promotion of Chrome. When I go to youtube, which is the 3rd most popular web site in the world according to Alexa, I now see this on every page, if not using Chrome:

I don’t always see an ad on the Google home page itself – Alexa’s number one site – though occasionally I do see this on the right:

All very low-key; but I reckon we’ll see Google step-up its campaign as Chrome itself gets better and the Mac version appears. With Apple, Google, Mozilla and of course Opera all gunning for Microsoft, it would take extraordinary complacency not to respond.

June 4th, 2009

Cloud Computing survey: more fog than cloud

Yesterday I attended a presentation from NTT Communications, a managed hosting provider, on the plans of 200 CFOs and CIOs from larger UK organizations (500+ employees) with respect to cloud computing. Since NTT would presumably like more companies to stick more stuff on its hosted servers, I presume it was hoping for a strong endorsement of the idea. Unfortunately for NTT, that was not the case. Fewer than 20% of those surveyed think they are using cloud computing now, a bit more than 20% think they will adopt some of it in the next two years, but – and here’s the real killer – cloud computing is way down the list of investment priorities, at around 5%. I’m not clear 5% of what exactly; but the report says it is the lowest priority.

What are companies spending money on instead? Servers and storage, network infrastructure, security, company web sites, backup and disaster recovery, unified communications, desktops and laptops, software, almost anything else in other words.

What’s wrong with the cloud? The three top issues, for those surveyed, are security, immaturity, and reliability.

These are valid concerns, though each one is open to debate; but the entire survey was undermined by the fact that most of those surveyed admitted to not knowing what cloud computing is. The reason is not ignorance, but the many and various ways the term is used. The common strand is that it is something to do with the internet, but even that is undermined if we describe virtual on-premise servers as a “private cloud”.

What are the varieties of cloud? Almost infinite, but here are a few:

  • Multi-tenanted applications such as Salesforce CRM, Google Docs, NetSuite. This is the model that has the biggest inherent economic advantage.
  • Hosted application platforms including Google App Engine, Microsoft Azure, Force.com. These are hosted application servers, where you write the code, taking advantage of integrated hosted services for storage, identity, transactions and so on.
  • Utility services such as Amazon S3. It’s a great example: S3 offers nothing but storage, though you can use it in conjunction with other Amazon web services.
  • On-demand infrastructure such as Amazon EC2. You get virtual servers to do what you like with. NTT’s services are mainly in this broad category. It’s cloud but you are mostly not getting the benefits of multi-tenancy.
  • Anything on the internet. Running a web application? Hey, you’re in the cloud.

If we are going to have a sane discussion about these things, we need to know what we are talking about. Maybe rather than asking companies whether or not they are doing that cool cloud stuff, it would be better to enquire how they see their use of the internet evolving.

Another big question is the extent to which companies are willing to buy in their IT infrastructure as a third-party service. Although it makes obvious financial sense in most cases, it is a big ask given how business-critical it is, hence the concerns about security, immaturity, reliability.

Smaller companies with ad-hoc IT systems are likely to be more amenable to the idea, but this group was not covered by NTTs survey.

Conclusions? The main one is “watch this space”. In the end I reckon sheer economics will drive cloud computing adoption – in all the areas described above – but the one thing NTT’s survey proves is that larger organisations are in no hurry to make that jump.

Technorati Tags: ,,,