Category Archives: software development

Microsoft makes up with the OMG

Microsoft has joined the Object Management Group:

Microsoft Corp. today outlined its approach for taking modeling into mainstream industry use and announced its membership in the standards body Object Management Group™ (OMG™).

I’m not clear exactly when Microsoft joined the OMG. It is already listed as a Contributing Member (the highest level) here. Still, the warm words are something new. In the past Microsoft’s modelling strategy has been presented as an alternative to the OMG. For example, here’s IBM’s Agile Development expert Scott Ambler in a 2005 article:

Luckily, the OMG isn’t the only modeling game in town. Microsoft has struck out on its own, a strategy that has clearly served it well in the past, and is suggesting a new approach to modeling: Domain Specific Languages (DSLs).

And here’s Grady Booch in 2004, on why UML is good and why he “disagrees with Microsoft’s rejection of the UML in favour of proprietary domain-specific languages.”

Before the UML vs DSL wars it was the CORBA vs COM wars, and in both cases it was OMG on one side and Microsoft on the other.

It’s different now, with warm words from OMG CEO Dr Richard Mark Soley:

Microsoft has always been one of the driving forces in the development industry, helping to make innovation possible but also simplifying many of the most challenging aspects of the application development process …[stuff about UML] … Microsoft’s broad expertise and impact will make its membership in OMG beneficial to everyone involved.

It is all part of Microsoft’s efforts to establish “Oslo”, its new modelling initiative which it hopes is the next big thing in development productivity, and will feature in the next Visual Studio.

I wonder what has happened to software factories, which was Microsoft’s modelling buzzword just a couple of years ago? Part of Oslo, or now abandoned?

Technorati tags: , , , , ,

Doubling performance with Silverlight multithreading

Bart Czernicki has a detailed post showing how Silverlight 2.0’s multithreading can improve performance. He took my counting primes code and  adapted it for parallel processing. On my quad core system the results are impressive:

As you can see by squinting at the screen grab, the processing time went from 0.43 to 0.20 seconds.

Multithreading is getting a bad rap in some quarters, because it greatly complicated debugging. On the other hand, if you have an app which does some heavy duty calculations then performance benefits like this are worth a little pain.

Technorati tags: , ,

Microsoft Oslo: a tool, a language, a repository

A couple of Microsofties are talking up the Oslo launch at the forthcoming PDC. “Oslo” is what Microsoft sees as the next generation of software development – I think.

Don Box and Douglas Purdy have just posted their own definitions. They should know, they’re working on it.

Box says:

With Oslo, we’re doing two things:

1. We’re making it easier for people to write things down in ways that make sense for the domain they are working in – the common term for this in the wild is modeling.

2. We’re making the things people wrote down accessible to platform components during program execution.

Purdy:

we have boiled down Oslo to three very simple things:

  • A tool that helps people define and interact with models in a rich and visual manner
  • A language that helps people create and use textual domain-specific languages and data models
  • A relational repository that makes models available to both tools and platform components

There will be a CTP for us all to try at PDC.

The last time the industry tried this I believe it was called UML 2.0; it excited a lot of theoreticians but made little impact on real-world application development. I’m sceptical about Oslo too; but let’s acknowledge at least that the goal is a worthy one.

Having said that, what do you think about this remark from Purdy:

For me personally, Oslo is the first step in my vision “to make everyone a programmer (even if they don’t know it)”.

I’m sorry, that “everyone a programmer” line brings to mind spaghetti-macros in Excel or some of those unmaintainable Access and Visual Basic applications which you still see sometimes if you hang around small businesses.

Still, there is a costly divide in development, which is to do with the fact that A is an expert is some particular field, B is a programmer; and somehow A’s expertise has to be expressed in B’s code. I think this is about bridging that gap.

Technorati tags: , , ,

Flash and Silverlight are the Chrome losers, says Zoho boss

Zoho CEO Sridhar Vembu makes an interesting statement in an email he has circulated following the launch of Google Chrome:

The biggest losers in Google’s announcement are not really competing browsers, but competing rich client engines like Flash and Silverlight. As Javascript advances rapidly, it inevitably encroaches on the territory currently held by Flash. Native browser video is likely the last nail in the coffin — and Google needs native browser-based video for its own YouTube; so we can be confident Google Chrome and Firefox will both have native video support, with Javascript-accessible VOM (video object model) APIs for web applications to manipulate video. As for Silverlight, let me just say that if Silverlight is the future of web computing, companies like us might as well find another line of work — and I suspect Google and Yahoo probably see it the same way too.

These last weeks have not been good for Adobe. First there was the Harmony announcement, sidelining the Adobe/Mozilla Tamarin project and making Adobe’s ActionScript 3.0 look more proprietary. Now there is Chrome; and I’m inclined to agree with Vembu, that Google will try to move away from Flash dependency. If that is right, then neither Google, nor Microsoft, nor Apple wants to play the Flash game.

As for Silverlight, I see this more as a Microsoft platform solution, extending its reach beyond the Windows client. I doubt it will be much affected by Chrome, though Vembu is right in saying that the more capable the browser becomes, the less necessity there is for something like Silverlight.

What about Zoho itself? I would take it more seriously if it were not so desperately slow whenever I give it a try, in contrast to Google’s usually responsive servers. It may be better in the USA, or perhaps there is some other reason, but for me the performance just kills it.

Google Chrome: the developer angle

The real purpose of Chrome is to run web applications. Google would like it to be Google applications, of course. Here’s a few things I noticed.

1. The V8 Javascript engine in Chrome is really fast – thanks to just-in-time compilation and other optimizations. This is important, because it removes some of the advantages of plug-ins such as Flash and Silverlight, which also do just-in-time compilation.

2. Chrome includes Gears, which enables offline functionality and other useful services, like a local database engine.

3. This is really part of Gears; but it’s worth noting separately. The Gears Desktop API lets you create application shortcuts – without further permission, apparently. In Chrome this is surfaced as a Create application shortcut dialog:

Note that this is a browser dialog, not a web page dialog.

Why is this a big deal? Well, I recall Adobe’s Kevin Lynch telling me that the usability issue around navigating to an URL in order to run an application was one of the motivations behind the development of AIR, Flash on the desktop. Google reckons it is easier to deal with the usability issue, than to create a separate desktop runtime.

4. Web applications started from shortcuts have no browser furniture. Just the web page in a window. There are probably other ways to get this effect too. I noticed that if you type Ctrl-T while in one of these full-window Chrome pages, which normally starts a new tab, it actually opens a second Chrome window, not just a new tab. Google wants that shortcut to behave like an application, not like a web browser.

Technorati tags: , , ,

10 things you might not have known about XAML

I’ve written a short piece on XAML for the Register. Here’s a few things you might not have known about Microsoft’s Extensible Application Markup Language:

1. It is not just for WPF (Windows Presentation Foundation); it is also used as a language for Workflow Foundation (WF). Microsoft has hinted that we will see more XAML applications announced at the forthcoming PDC.

2. XAML doesn’t have to be XML – see the intro to the XAML Object Mapping Specification 2006, which says that “any physical representation may be used.”

3. XAML is a small core and distinct from XAML vocabularies. The huge WPF is a XAML vocabulary. WF is another vocabulary.

4. Although XAML is usually represented as XML, it is near-impossible to create an XML Schema to validate it usefully. Here’s where Microsoft explains why.

5. In Visual Studio 2005, a huge but imperfect .xsd schema file was used for validation and to drive IntelliSense (things like code completion) in the XAML editor. In Visual Studio 2008 Microsoft abandoned that idea and uses a language service instead.

6. The core idea behind XAML is to be a declarative language for .NET. WPF is merely an early application for XAML.

7. XPS, Microsoft’s fixed-layout language that competes (just about) with Adobe’s PDF, uses XAML that is a subset of WPF. This means that you can actually display XPS documents in Silverlight – there’s no need for a viewer, it is native Silverlight code.

8. When you compile a Silverlight application, the XAML stays as XAML, albeit bundled into a resource.

9. Silverlight allows you to write inline XAML within HTML.

10. XAML rhymes with Camel. Sorry, you knew that already. But did you know that CAML (Compiled Application Markup Language) is XAML compiled to MSIL (Microsoft Intermediate Language)? Microsoft tested this idea in pre-release versions of WPF, but apparently the performance benefits were disappointing and it was less compact than BAML (Binary Application Markup Language), a tokenized representation of XAML. Silverlight doesn’t bother with either: XAML is saved as a resource in a .NET DLL, and then zipped as part of the .XAP package by which a Silverlight application is delivered.

Technorati tags: , , , ,

The new Google Chrome browser: a bad day for Firefox

The Firefox angle is what puzzles me about Google’s announcement that it is is launching a new open source browser. We should get to try it tomorrow; perhaps we’ll see that Google is successfully reinventing the browser. In particular, this is a part of what is sometimes dubbed the Google OS: the client for cloud applications running on Google’s servers:

Under the hood, we were able to build the foundation of a browser that runs today’s complex web applications much better.

Google is using some proven technology in the form of the Webkit rendering component (as used in Apple’s Safari). I imagine it can do a decent job. But why? From Google’s perspective, the browser market was shaping up nicely already. Microsoft’s IE has a still large but declining market share; Mozilla Firefox is growing, has a vibrant community, and relies on Google for the bulk of its income in return for making it  the default search engine – a deal which has just been extended for three years.

Now Google appears to be going head-to-head against Firefox. It won’t necessarily succeed; Firefox has lots of momentum and will be hard to shift. Equally, I doubt that Microsoft’s market share will decline significantly faster against a Google browser than it would anyway against Firefox.

The risk is that this will split the open source community.

As for Firefox, this can only be bad news. It has the embarrassment of relying on a major competitor for its income, and the knowledge that it is driving traffic to a company that will push users to switch to an alternative.

Maybe Google Chrome is so good that it will all make sense when we get to try it. For sure, it is an intriguing development for web applications and I’m looking forward to seeing how well Google can substantiate its claims that it is “much better” for the job of running them.

Delphi and C++ Builder 2009 are available to order

I’m choosing my words carefully, because although the CodeGear/Embarcadero site is now showing Delphi 2009 as the current version, if you click through to the order page it only offers a pre-order. Still, it must be done or thereabouts. US prices are as follows:

Delphi 2009: Pro $874.00;  Enterprise $1974.00; Architect $3474.00

C++ Builder 2009 costs the same; or you can get a bundle with both for a relatively small extra cost, eg. $1074.00 for Delphi and C++Builder Professional.

Curiously, an upgrade to Delphi 2009 Pro only costs $374.00 (57% discount), but an upgrade to Enterprise is $1274.00 (35% discount). I can’t make sense of this except on the basis that any product labelled “Enterprise” is presumed not price sensitive.

So what’s not in the Pro version? The Enterprise edition adds drivers for server databases in the dbExpress database framework, the DataSnap multi-tier application framework, and a full range of modeling diagrams. Architect bundles ER/Studio Developer Edition, Embarcadero’s database modeling tool, with support for a wide range of database servers.

In other words, the majority of Delphi’s features are in the Pro edition, which is really much the best value, though if you need DataSnap or client-server dbExpress then I guess you have no choice.

The big features here strike me as Unicode in the Visual Component Library; and the new language features, generics and anonymous methods. I’ve not yet looked at the product though, so watch this space.

Parts of EcmaScript 4 deemed unsound for the Web

This was the conclusion of an EcmaScript meeting in Oslo last month. Specifically, as Brendan Eich explains, three features – packages, namespaces and early binding – were considered too heavyweight unsuitable for a browser scripting language. Here is Eich’s “Executive summary”:

The committee has resolved in favor of these tasks and conclusions:

1. Focus work on ES3.1 with full collaboration of all parties, and target two interoperable implementations by early next year.

2. Collaborate on the next step beyond ES3.1, which will include syntactic extensions but which will be more modest than ES4 in both semantic and syntactic innovation.

3. Some ES4 proposals have been deemed unsound for the Web, and are off the table for good: packages, namespaces and early binding. This conclusion is key to Harmony.

4. Other goals and ideas from ES4 are being rephrased to keep consensus in the committee; these include a notion of classes based on existing ES3 concepts combined with proposed ES3.1 extensions.

This means that the evolution of JavaScript is now on a new path, focused for now on a more modest enhancement to the language called EcmaScript 3.1.

Given how loudly Eich protested about EcmaScript 3.1 last October, it is a surprising turn of events. Was Eich convinced by the arguments of Microsoft and Yahoo in support of a more lightweight JavaScript?

What this means is that JavaScript 2.0 won’t happen as previously envisaged. John Resig:

… you can forget a lot of what you learned about ECMAScript 4, previously. Many of the complicated concepts contained in the language have been tossed. Instead there is a considerable amount of effort going in to making sure that new features will be easily duplicable through other means.

Eich and Resig are keen to stress that JavaScript will still be a highly capable language. Still, the obvious conclusion is that this will be good for plug-ins which support more powerful languages: Adobe Flash, Microsoft Silverlight, Sun Java or Java/FX. Personally I’m disappointed.

It is also presenting Adobe with a tricky problem, as it implemented much of an earlier specification for EcmaScript 4 in ActionScript 3. Rather than being a standard language, as Adobe had planned, it looks like this will now be more of an Adobe language. I doubt this will have much practical impact on developers.

PS Brendan Eich has commented below.

Detailed article on Microsoft’s Midori published

The Software Development Times has an in-depth look at Midori by David Worthington, based on “internal Microsoft documents”:

SD Times has viewed internal Microsoft documents that outline Midori’s proposed design, which is Internet centric and predicated on the prevalence of connected systems.

Recommended if you are interested in what Microsoft is contemplating for a future OS. Note that there’s no official word on whether this is more than just another research project.

Technorati tags: , ,