Archive for the ‘Microsoft’ Category

Why Microsoft.VisualBasic should be buried

December 6, 2011 Leave a comment

A friend of mine, who I hope won’t object to me recounting this anecdote, was recently posed the following interview question:

What would you change about the .NET framework?

To me, the answer was simple: I would deprecate the Microsoft.VisualBasic namespace with immediate effect, and phase it out entirely by the time version 5 of the framework was rolled out. It is a relic of a language that ceased to be ‘current’ 10 years ago, yet is still being actively used; even this week I have seen code, recently written to run under .net 3.5, actively using methods from it.

To understand the reason for it existing, it is worthwhile looking back to when .net was introduced. Microsoft was targetting two separate groups of developers: those coding in C or C++, for whom it developed C#, and those moving forward from Visual Basic 6. For this latter group, they included a number of VB6 commands, using them as wrappers around the .net equivalents; these were placed within the Microsoft.VisualBasic namespace, with it being automatically included as a referenced namespace in all new projects. As Microsoft go on to say in their page about Visual Basic .NET internals,

An important goal for Visual Basic .NET was to retain as much backward compatibility as possible, while providing more power and flexibility for the developer. This was accomplished by providing “helper” methods such as Rnd (which is a static method on an imported class) and intrinsic language features, such as CInt, to provide functionality identical to that of Visual Basic 6.

Unfortunately, not all VB6 developers embraced the object models available, and as a result far too many developers are still using the constructs such as CInt() as shortcuts to the .net equivalents. Those developers presumably assume that CInt(number) is equivalent to int32.parse(number) both in functionality. Nothing can be further from the truth; from the same page:

While there are a few specific methods that don’t provide the same performance characteristics as Visual Basic 6, you can fully expect that a Visual Basic .NET application will significantly outperform its Visual Basic 6 counterpart.

Our simple CInt() function performs a wide variety of options, covering parsing, boundary checking and rounding. Using it leads to inefficient code and, more importantly in my mind, developers who are unskilled in the wider concepts of OO within the framework.

Microsoft.VisualBasic is a relic, and deserves to be buried.


Think of a name … any name. Except that one.

September 15, 2011 1 comment

Many years ago, a client of my employers – call them ‘Acme’ – decided that, rather than calling the system we’d developed for them ‘The Acme System’, they needed a name for it that could be used in conjunction with an upcoming marketing campaign.

After several weeks of thought, they eventually came up with a simple name that they felt epitomised the global intent of their business whilst being a recognisable and memorable English word. They promptly invented a highly contrived (and, long-since forgotten) backronym to justify this name, and went forth. That word was ‘ATLAS’.

In Greek mythology, Atlas was the god who supported the heavens (not the Earth, as many believe) on his shoulders. Not a figure that you would have thought relevant to a 21st Century software product, but the client was happy.

A few weeks ago, I discovered that a friend was having some software written to support a new side to his existing business. The name they had chosen? Atlas. Last week, another client forwarded on a specification for the final stage of an integration project I’m involved with. The name of the system we have to integrate with? Atlas.

Even Microsoft are in on the act; their Atlas Solutions division is responsible for the purchase and placement of adverts on Microsoft’s Atlas advertising platform!

So am I alone in coming across this same name so often? Or have I inadvertently stumbled upon a formerly hidden rule, stating that at least one product in every company’s portfolio must be named after a deity condemned for eternity to stop the sky falling in on us all?

Categories: Development, Microsoft Tags: ,

The Failures of Microsoft

February 22, 2011 1 comment

I kicked off this blog with a post explaining my view of what Windows Phone 7 could achieve with the backing of Nokia. A lot of people disagreed, if not with me directly then at least my viewpoint on the need for apps. The main complaint appeared to be that Nokia would be dropping their MeeGo platform, together with all the developers involved in it, and hooking up with a company with a history of failures. I’m writing this now after a week of reflection, as the impact of the decision becomes clearer.

Yes, Microsoft has had its failures. The first editions of Gates’ “The Road Ahead” was rewritten mere weeks after initial publication, as he was forced to rethink his vision for the impact that the Internet could have on his company. Microsoft Bob infamously tried to reinvent the desktop, whilst more recently Kin would have found its way into anyone’s top 10 list of “ways to waste $1 billion”.

Even successes have been repainted as failures. There is very little wrong with Windows Vista aside from the marketing: people just didn’t realise the impact that the move from Windows XP would have on their preexisting hardware and software. Windows 7 was more successful, not because it was  a better product, but because vendors had had two more years to develop new hardware, new drivers, new software that could handle the security model. The marketing was merely the gloss on top.

Other mistakes were less about the software, and more about their business methods. Microsoft got ‘the Internet’ late, and were caught out by the rise of Netscape. They used immoral and illegal tactics, funded by more profitable areas of the business, in order to stamp out competition. They even tried to reuse elements of Microsoft Bob into other applications, and thus foisted Clippy onto the world.

But look at Microsoft now. Their web browser competes, not by bullying but on how well it can adhere to third-party standards. Their development tools are generally viewed, at least by people I’ve spoken to, as second to none. They took the brave step of ditching hundreds of icons in Office 2007 for a handful of ribbons. Windows 7 has proven to be a massive success. The XBox 360 is as popular as its rivals, in a market that Microsoft had no history in, and they are even releasing an SDK for the incredible Kinect system almost certainly earlier than planned after developers managed to write their own drivers within days. So don’t write them out of the mobile market yet.

Nor should Nokia be written off. I was pleased to discover that I’d come to the same conclusion, from a different starting point, as Robert Scoble [admittedly a former Microsoft employee] regarding the need for a platform to have apps and the push developers needed to start creating them. MeeGo would have launched with no applications, and with only a small number of developers with the ability to develop for it.

Windows Phone 7 may be behind both Android and iOS by a significant margin at the moment, but Microsoft has the marketing, the developers, the opportunity, the ability and now the hardware to catch up.

We are not Microsoft

February 15, 2011 Leave a comment

An attribute common to most small software developer companies is that, at some point in their existence, a potential client will ask for their system to work ‘just like Facebook’. Or a messaging program to have ‘all the features of Outlook’. Sadly, the client rarely has the tens of millions of dollars that Microsoft, Facebook and their ilk spend on some of the most highly-paid developers in the world, sitting in front of what can safely be assumed to be the highest specification workstations in existence.

Never discount the abilities of developers working in a small company. The fact that they alone can often keep a company ticking over when all other income streams dry up means that they are often the best, hardest working, and dedicated in the business. They choose to work in an environment where they can stand out, even if that means sacrificing the access to resources – hardware, dedicated test setups, MSDN subscriptions – and job security that being a small part of a bigger machine would give them.

Yes, we can write it. It just might take a bit longer. How does five years sound?

The Developer’s Dilemma: WP7

February 13, 2011 2 comments

Microsoft’s Windows Phone 7 has had developers in a dilemma for several months now. Previous versions of their mobile operating systems had, in no uncertain terms, been dire. Trust me, I owned a Windows Mobile 6.5 phone and its eventual death was hardly a tragedy.

The smartphone market had grown slowly for several years, with operating systems such as Symbian and PalmOS. This all changed when Apple launched its iPhone onto the market and thousands of applications – nattily entitled ‘apps’ to make them trendier – made it the premium phone to have, and therefore iOS the operating system to develop for.

In addition, gaining ground since 2005 had been Google’s Android, which finally in the fourth quarter of 2010 overtook Symbian as the world’s best-selling smartphone platform with approximately 33 million units shipped. Symbian still sits in second position with 31 million, and iOS with 16 million (source:

Windows Phone 7? A mere 2 million. Earlier that year, Microsoft had quickly dropped its ‘Kin’ range due to low sales. Why bother developing for a platform which could never fly, one merely stapled to its perch?

Last week, everything changed.

In September 2010 Nokia appointed a new CEO, a former Microsoft executive named Stephen Elop. Elop sent out a memo to all staff, quickly leaked to the media, in which he equated Nokia with a rig worker faced with staying on a burning platform or taking a leap into the unknown. On Friday 11th 2011, that ‘unknown’ was revealed to be another platform: Windows Phone 7.

Commentators fell into two camps: those that dismissed the combination of a dying platform (WP7) with a past-its-glory-days company (Nokia), and those that saw the potential for a partnership between the world’s top marketing company and one of the world’s top handset manufacturers.

Personally, I fall into the second camp. I believe that smartphone sales are pushed, not exclusively but significantly, by the availability of apps. Those apps aren’t available for WP7 yet, but that’s not because of the lack of developers with the potential to develop for the platform; more, there’s been nothing to indicate that it is worth a developer’s time in learning how to.

But with Nokia behind the operating system, it means that someone other that Microsoft believes in WP7. It means that a wide variety of handsets, at a range of prices – some high, some low – will be available. Those apps, written to a framework that only requires a little education over and above the knowledge that any competent C# or VB.Net developer already has, will work on these WP7 devices.

And you know what else? It means that there’ll finally be people out there to buy them.