Category Archives: professional

What users want in Windows 8

A number of blogs are running a coordinated poll on what users would most like to see in the next version of Windows. The results so far are unsurprising but still worth repeating, since there is a good chance that they differ from Microsoft’s priorities.

image

Note that users are less concerned about new features, more concerned about an OS that works better and faster.

Less bloat, currently number five in the list, will be hard to achieve while PC vendors still insist in bundling poor quality add-ons with their systems.

If you want to vote you can do so at any of various blogs including 4sysops – which has some notes expanding on what each category might mean – markwilson.it and Within Windows.

Apple not Android is killing client-side Java – so why is Oracle suing Google?

Oracle is suing Google over Java in Android; the Register has a link to the complaint itself which lists seven patents which Oracle claims Google has infringed. There is also a further clause which says Google has infringed copyright in the:

code, specifications, documentation and other materials) that is copyrightable subject matter

and that it is not possible for a device manufacturer to create an Android device without infringing Oracle’s copyrights. Oracle is demanding stern penalties including destruction of all infringing copies – I presume this might mean destruction of all Android devices, though as we all know lawyers routinely demand more than they expect to win, as a negotiating position.

But isn’t Java open source? It is; but licensing is not simple, and “open source” does not mean “non-copyright”. You can read the Java open source licensing statements here. I am not a licensing expert; but one of the key issues with Google’s use of Java in Android is that it is not quite Java. Oracle’s complaint says:

Google’s Android competes with Oracle America’s Java as an operating system software platform for cellular telephones and other mobile devices. The Android operating system software “stack” consists of Java applications running on a Java-based object-oriented application framework, and core libraries running on a “Dalvik” virtual machine (VM) that features just-in-time (JIT) compilation.

Note that Oracle says “Java-based”. Binaries compiled for Android will not run on other JVM implementations. I am no expert on open source licensing; but if Google is using Java in ways that fall outside what is covered by the open source license, then that license does not apply.

Despite the above, I have no idea whether Oracle’s case has legal merit. It is interesting though that Oracle is choosing to pursue Google; and I have some sympathy given that Java’s unique feature has always been interoperability and cross-platform, which Android seems to break to some extent.

James Gosling’s post on the subject is relevant:

When Google came to us with their thoughts on cellphones, one of their core principles was making the platform free to handset providers. They had very weak notions of interoperability, which, given our history, we strongly objected to. Android has pretty much played out the way that we feared: there is enough fragmentation among Android handsets to significantly restrict the freedom of software developers.

though he adds:

Don’t interpret any of my comments as support for Oracle’s suit. There are no guiltless parties with white hats in this little drama. This skirmish isn’t much about patents or principles or programming languages. The suit is far more about ego, money and power.

The official approach to Java on devices is Java ME; and Java ME guys like Hinkmond Wong hate Android accordingly:

Heck, forget taking the top 10,000 apps, take the top Android 10 apps and try running all of them on every single Android device out there. Have you learned nothing at all from Java ME technology, Android? Even in our current state in Java ME, we are nowhere as fragmented as the last 5 Android releases in 12 months (1.5, 1.6, 2.0, 2.1 and recently 2.2).

Fair enough; but it is also obvious that Android has revived interest in client-side Java in a way that Sun failed to do despite years of trying. The enemy of client-side Java is not Android, but rather Apple: there’s no sign of Java on iPhone or iPad. Apple’s efforts have killed the notion of Java everywhere, given the importance of Apple’s mobile platform. Java needs Android, which makes this lawsuit a surprising one.

But what does Oracle want? Just the money? Or to force Google into a more interoperable implementation, for the benefit of the wider Java platform? Or to disrupt Android as a favour to Apple?

Anyone’s guess at the moment. I wonder if Google wishes it had acquired Sun when it had the chance?

Note: along with the links above, I like the posts on this subject from Redmonk’s Stephen O’Grady and Mono guy Miguel de Icaza.

New Delphi, RAD Studio XE announced

Embarcadero has announced RAD Studio XE and will be showing a number of “sneak peaks” during August prior to release in “early September”. You can see the previews and further information here.

The suite includes Delphi XE, C++Builder XE, Delphi Prism XE (Delphi for Visual Studio and .NET) and RadPHP XE.

The first preview focuses on integrated Subversion support, a nice feature but hardly a game changer – most IDEs have had this for years, though this looks comprehensive with differencing, file history and so on within the IDE.

image

There’s also a look at RadPHP, which is a new version of Delphi for PHP. It is reminiscent of ASP.NET Web Forms, in that it gives a drag-and-drop visual designer and lets you quickly hook up code to event handlers such as a button click. There’s also a component model and the ability to set breakpoints for debugging. We even get the old listbox and editbox demo which I recall from Delphi 1 days.

image

Embarcadero’s Mike Rozlog blogs about the new product here.

I am a big fan of Delphi and C++ Builder, but my initial reaction is that developers are going to say, where is cross-platform for Mac and Linux that was talked about last year, where is 64-bit Delphi? None of this looks remotely cutting-edge.

The published Roadmap is short on dates, but I’m guessing some of this may come next year.

Dynamic language slowdown at Microsoft?

Jimmy Schementi, until recently a Program Manager at Microsoft working on IronRuby, has posted about why he is leaving the company; and in doing so answers a question I posed a few months back, Why F# rather than IronPython in Visual Studio 2010?

When my manager asked me, “what else would you want to work on other than Ruby,” I started looking for a new job outside Microsoft …. a year ago the team shrunk by half and our agility was severely limited. I’m omitting the internal reasons for this, as they are the typical big-company middle-management issues every software developer has. In short, the team is now very limited to do anything new, which is why the Visual Studio support for IronPython took so long. IronRuby’s IDE support in Visual Studio hasn’t been released yet for the same reasons. While this is just one example, many other roadblocks have cropped up that made my job not enjoyable anymore. Overall, I see a serious lack of commitment to IronRuby, and dynamic language on .NET in general … I invite the Ruby and .NET communities to come help us figure out how to continue the IronRuby project, assuming that Microsoft will eventually stop funding it.

The dynamic language work at Microsoft is very interesting and has done a lot to persuade the world that .NET is not just a C# and Visual Basic story. Personally I’d add my voice to those encouraging the company to re-invigorate its investment in IronRuby and IronPython.

A couple of other observations though. Schementi is talking about efforts to continue work on IronRuby irrespective of Microsoft’s funding, and if that succeeds it could bring the project to a better place rather than a worse one.

Second, one thing I learned in talking to Don Syme, the F# man at Microsoft, is that functional programming is in high demand in financial institutions, one of Microsoft’s most important markets. IronRuby and IronPython win Microsoft plenty of kudos, but the benefits in terms of revenue are presumably harder to identify.

Whatever happens to these languages, the impact of dynamic languages on the .NET platform has been significant, and C# now also has dynamic capability.

Testing the Canvas element in Internet Explorer 9

I’m impressed by the demos at the IE9 Testdrive site, which is full of fun and interest. Of course it’s good to try the demos in other recent browsers, though as you would expect on a Microsoft site, IE9 tends to work best. For example the great Beatz demo scored 8510 in IE 9 versus 1560 in Google Chrome 6 (developer build):

image

But are these demos slanted to favour IE9? I looked around for some independent demos, especially for the Canvas element. Here’s one on developer.mozilla.org, for example:

image

Hmm, it looks like some of these demos do not allow for the possibility of Internet Explorer supporting Canvas. What about this one?

image

Not too good either. I tried downloading it and hacking it to work in IE9. I disabled the script that conditionally displays the Chrome Frame offer and tried again. Another failure, because IE9 loaded the page in IE5 document mode. When I have a moment I’ll work out why. I forced IE9 mode (Debug menu) and at last was in business, sort-of:

image

Chrome is on the left, IE9 on the right. This is an animation with speech bubbles, and there is some problem with the text handling because the bubbles do not appear in IE9. Still, it did run. I noticed that IE9 ran slightly faster than Chrome, but with nothing like the big Testdrive difference: 209fps versus 164 fps, for example, but varying considerably as the animation proceeded.

I also tried with Mozilla Firefox 3.6, which is much slower than Chrome on this example, around 71 fps.

No conclusions yet, but watch this space. It would also be helpful if more of the folk doing Canvas demos would test with IE9 as well as Chrome, Firefox, Safari and Opera. The experience bears out what Microsoft is preaching: test for the feature, not the browser version.

Where is phpinfo() for .NET?

I’m moving an ASP.NET project to a different ISP, and rather than grill the ISP about the setup I cast around for a .NET equivalent to phpinfo(), which generates a web page giving comprehensive information about the server configuration.

The closest I’ve found so far is this Codeplex project by Aarron K Jackson. I downloaded the source, compiled (I had to delete the private key included by the author) and ran it on the new server. It did in fact answer most of my questions. Information includes the Windows and .NET version, number of CPU cores, memory available and used, environmental variables, path to the web site, IIS version, trust level, and all the server variables; there is even a test email form.

image

According to Codeplex the project has fewer than 100 downloads so I thought it deserved a plug. One caveat: I suggest you password-protect it or delete after use, since the information could be valuable to hackers.

Internet Explorer 9 Preview gets to 95% on Acid 3

Microsoft has released the fourth platform preview for Internet Explorer 9, which you can download here. This is the last preview before the beta release, expected in September.

When IE9 was first previewed, back in March, it scored only 55% on the Acid3 standards test – well ahead of IE8 which scores around 20%, but far short of rivals like Google Chrome and Apple Safari which achieve full marks. Mozilla Firefox is at 94%.

Acid 3

The new preview is at 95%. IE9 is now up there with them – but why not 100%?

According to UK Web Product Manager Mark Quirk, it is down to three features, two of which are related to SVG (Scalable Vector Graphics). Two points are lost because of SMIL (Synchronized Multimedia Integration Language) presentations, which Microsoft does not intend to support because a similar feature will be part of CSS in future. Two points are lost because of SVG fonts, which again Microsoft does not intend to support because it sees WOFF (Web Open Font Format) as the future standard here. One point is lost because of the inability to draw SVG fonts on a path, though there are other ways to draw fonts on a path.

The bottom line: IE9 will most likely stay at 95% right through to its final release.

Incidentally, IE9 JavaScript performance is wildly faster than IE8, thanks to the new “Chakra” engine. IE9 is on the left, Firefox 4 on the right :

image

So when will we get IE9? Although it is not long to September, there is a major difference between the preview and the coming beta, which is that the preview does not have a full user interface. It is mainly to show off the rendering and JavaScript engine. Therefore we can expect new features in the beta versus the preview. Despite that, Quirk says that Microsoft intends the beta to be “good quality for any user”, not just for brave developers and testers.

But how long before the final release? Microsoft is not saying, though when I suggested the first half of 2011 as a reasonable guess, Quirk reminded me that the beta will be high quality and that the release should therefore follow “not too long” after.

Since we will get much of HTML 5 in IE alongside the other popular browsers, do we still need Silverlight?

“As the number of the things you can implement with HTML clearly goes up, the need for Silverlight and Flash goes down,” said Quirk, though he added hastily, “The value that those players add needs to go higher.”

I’d add that even if IE9 is all that we hope, it will take years before older versions fall out of use. Recently the UK government said it will stick with IE6, and whatever you think of that decision, it shows how hard it is to get browsers upgraded everywhere. By contrast, plug-ins like Flash and Silverlight get updated rather fast. I noticed on Riastats today that over 50% of browsers now have the latest Silverlight, and 39% already have Flash 10.1 – over 90% have Flash 10 or higher.

image

If you combine that issue with things like video playback that are problematic even in HTML 5, it suggests that plug-ins will be with us for the foreseeable future, though it is quite possible that their use may decline.

Another factor is tool support, mature for Flash and Silverlight, but not for the newest features of HTML. After IE9 appears, will Microsoft come up with tools that properly support it, in Expression Web and Visual Studio? “We have to, it’s as simple as that,” says Quirk, though he adds, “we haven’t said when.”

SOA, REST and Flash/Flex – why Flash does not PUT

Adobe’s Duane Nickull has an illuminating post on how the Flash player handles REST. Nickull is responding to a post by Malcolm Box in which he complains how hard it is to use Flash with a REST web service. Box observes that Flash cannot send POST, PUT and DELETE requests when running in the browser, and does not send cookies.

Nickull defends the Flash behaviour:

Flash’s HTTP libraries currently support GET and POST. My architectural view of this is that the HTTP libraries only should really support these and not worry about the others.

He also notes that cookies are a poor way to manage state:

Cookies are for the browser and belong in the browser. Having Flash Player able to access cookies would be a mistake in my own opinion. Any logic that is facilitated by a browser should probably be dealt with at the browser layer before Flash Player is used.

Now, I think the comments on REST are important to read if you are engaged in designing a web service, as many of us in these days of cloud+device. There is a kind-of “word on the street” approach to web services which says that REST is good, SOA/SOAP is bad; but in reality it is not so simple, and these distinctions are muddled. REST is arguably a form of SOA, you can do SOAP with REST, and so on.

One factor is that reading data in a web client is far more common than writing data. It is easy to be an advocate of the simplicity of REST if all you are doing is GET.

The question Nickull asks is whether the transport protocol has any business dictating how the data it transports should be processed, for example whether it is an operation to retrieve or to write data:

In an SOA world, the transport functionality (usually implemented using SOAP) should focus on just delivering the message and it’s associated payload(s) to the destination(s), optionally enforcing rules of reliability and security rather than declaring to the application layer processing instructions to the service endpoint.

Read the post for more of the rationale behind this. Maybe, even if you are doing REST, restricting your web service to GET and POST is not such a bad idea after all.

That said, whatever you think about the architectural principles, you may find yourself having to write a browser-hosted Flash client for a service that requires an HTTP verb other than GET or POST. There are ways round it: see this discussion of Amazon S3 (which uses PUT) and Flash for an example.

Day Software: another strategic acquisition for Adobe

Adobe has acquired Day Software, a company which specialises in web content management. Its products include the CRX Java Content Repository and the CQ5 Web Content Management Platform. One of its distinctive features is an emphasis on interaction and collaboration. Day’s chief scientist is Roy Fielding, co-founder of the Apache Software Foundation and well-known for his work on REST (Representational State Transfer).

The acquisition gives Adobe a stronger presence in the open source community, and it will be interesting to see if it influences controversial issues like the fact that the Flash Player is closed source, or that some of Adobe’s open source projects are not as collaborative as they could be.

I suspect though that Adobe is mainly aiming to broaden its technology to encompass web content management and to tie it together with its rich client platform, Flash and AIR. It is a good fit, since it is Java based and should work nicely with the existing LiveCycle pieces. We might also expect integration with Omniture web analytics as well as with the content authoring tools in Creative Suite.

Looks like a sane acquisition to me.

Windows Phone 7 briefing report: no enterprise app deployment at launch

I attended a Microsoft briefing on Windows Phone 7 (WP7) yesterday. Here’s a quick summary of what interested me.

It does appear to be a decent phone. Unfortunately I’ve not yet received a preview device, but there’s no doubt that the user experience is well ahead of that on previous Windows Mobile devices.

The user interface is distinctive as you have no doubt seen. Microsoft is building strong links with both Facebook and Windows Live, surfaced at various places, and hopes this will be the best phone for social networking. It also hooks into Xbox Live, though it does not enable real-time multiplayer games, only turn-by-turn.

It has Bing maps with GPS support, though I suspect it will not be the equal of Google Maps on iPhone or Android. However, at least Microsoft is not in Apple’s position where it relies on a competitor for this key application.

One significant aspect for both users and developers is Tile Notifications. Each installed app has a tile which the user can install on the Start (home) page. These tiles can display text and image notifications that can be customized for the user. For example, a travel app could show a red alert and a message if a plane was cancelled or delayed. A sports app could show the latest score for your favourite team. However, there is no multi-tasking, so most of the time the app is not even running. How does this work?

The answer is that Microsoft hosts a notification server through which app vendors can push notifications. The app vendor needs to store on its own server any user-specific data, such as which flight she has booked. The app vendor can then push notifications to the user via Microsoft’s service. A more detailed explanation is here.

I like this form of notification since it is non-intrusive for the user. If you do not want to see them at all, you can just remove the tile from the Start page.

Microsoft confirmed that in-browser Silverlight will not work on launch. This strikes me as surprising, since Silverlight is built into the OS. I guess it will come later.

I asked a few questions.

When will we get Windows Phone 7? Microsoft is only saying “for Christmas 2010”.

Will it support tethering? No comment at the moment.

Will there be any way to copy a file from your PC to the device? I thought this would get a straightforward answer, but it did not. I was told that the PC side of WP7 has not been announced yet. However, it will bear some relation to what has been done before for Zune – though the UK still might or might not get the Zune Pass subscription service. Prompted by this discussion, I downloaded the Zune software. It is nicer to use than Windows Media Player, for sure. Why does Microsoft have two free media players, a good one that is reserved for a small niche of US users, and a mediocre one that comes with every version of Windows? You tell me.

image

Will there be any way to deploy applications without going through the Marketplace? The answer is mostly “No”, though Microsoft knows this is necessary for corporate apps and says there will be an announcement on the subject later this year. That said, there is a developer portal, intended for testing your apps, where you can specify up to 5 or 10 users who can download and install an app. This is in effect a limited private deployment, though it is not intended for that purpose.

Deploying apps to Windows Phone 7 will be slightly more expensive than it is for Apple’s iPhone. The policies are explained here. You pay $99 to register, which gets you five free submissions, after which it is $19.99 per app. Each registration is limited to five free apps, but there is no limit on paid apps. There is a 70/30 revenue split. The idea is to limit the number of low quality apps. Not a bad thing considering the amount of junk in Apple’s App Store.