DevExpress Newsletter 19: Message from the CTO

13 January 2010

Reprinting my Message from the CTO from the nineteenth newsletter so that you may comment on my thoughts.

On commitment

As I write this, Google have just announced their NexusOne phone, featuring the next version of the Android operating system. Alongside this announcement are news reports about a recent ChangeWave survey that said levels of user interest and satisfaction in Android are now approaching that of the iPhone. Windows Mobile is falling behind ever more rapidly, fourth behind Blackberry. Suppose you're a smartphone application developer: which phone OS do you target?

To bring the question closer to home, since my readers are very likely to be PC or web application developers: which platform should you target? What if the choice you make or have made turns out to be the equivalent of Windows Mobile?

At some point, after you've done your research, you have to commit and implement your plans. And you have to continue with them despite what might be happening in the world outside that might be invalidating your assumptions. If not, your project might turn into Duke Nukem Forever, where the game engine was changed multiple times before the product was abandoned unreleased.

There are, I suppose, two strategies to minimize the risk: isolate the technology you're worried about behind an interface or framework and switch when necessary, or release early and often. The first might not be feasible anyway, and the second at least means you'll get some revenue and valuable feedback on functionality should a change in technology be required. Commit!

In essence, my thoughts here can be summed up to "release early, release often", but I'm surprised how often the same possible hesitancy can occur in other situations. An obvious example is buying a new PC: you know very well that if you wait a month, the PC you want will be cheaper, more action-packed, sleeker, but of course after a month you know in a month's time it will be better still. So you vacillate.

(Aside: to be brutally honest, the only times I've seen the "isolate behind an interface" option being used produced something that looked as if it had been designed by Architecture Astronauts.)

9 comment(s)
Robert Beaubien

I develop for the Windows Mobile platform.  I also have a Windows Mobile phone.  The reason for this is simple.  It fully supports Microsoft Exchange server.  

IMHO, Windows Mobile has the absolute best platform for software of all the mobile devices.  The main problem is implementation.  Phone manufacturers are expected to customize and update phone software on thier own as opposed to iPhone and more importantly Android which are updated by Apple/Google directly.  Having a single store for each platform has a significant advantage to the hodge podge of stores for WM apps.  Microsoft for its part has promised improvements in these areas for WM7, but even now, Visual Studio 2010 sits without a mobile development environment for even WM6x.  Its really hard for me to get a head start and be ready for the new environment when I can't even test it.

13 January, 2010
Chris Walsh [DX-Squad]

Robert et all.

I agree windows mobile is the environment to develop on.  

iPhone you've got Objective C

Android you've got Java.

webOS different again

Windows Mobile you've got a choice of C++, VB.NET, C#, Java.

The issue with Windows Mobile is its customisation, all operators have the ability to chop and change items inside the OS, so relying on a single API for something in one phone and its been removed in another is a major pain I'm having at the moment.  

Then you've got the 12 different resolutions you need to cater for, then you also need to cater for non-touchscreen device as Windows Mobile Standard isn't a touch screen, so your app must be tab orientated.

All that aside, WM7 is supposed to support OTA, smaller subset of the WPF framework for canvas support and utilise the new hardware coming out better then WM6 does.

The "rush" to andriod for devs and handset makers is because its "free".  Now how long can Google continue to support giving away free licenses to Andriod before flicking the switch and charging for it.

13 January, 2010
Jeff Weir

"Now how long can Google continue to support giving away free licenses to Andriod before flicking the switch and charging for it."

an awfully long time would be my answer. and if Google can 'give it away', why can't the mighty Microsoft?

a better question (for this site) is why is it that Borland/CodeGear/Embarcadero  didn't/don't target Windows Mobile?

yes Android is free. and it's as good as Windows Mobile for the average consumer. so why pay Microsoft for a licence?

the 'average consumer' is finally coming around to realizing they don't need Microsoft.

and for the record, the rush to Windows was spurred by developers pumped up by Microsoft tools like VB. Microsoft recognized that courting developers with cheap or free tools would bolster support for Win 3.1 converting a generation+ to the platform.

Do you remember when we all used Kleenex to blow our noses...

14 January, 2010
Steve Sharkey

I also develop for Windows Mobile (mainly because it has taken over as the OS of choice for barcode scanners). I have to agree with previous comments and would add that the problem here is that Microsoft approached mobiles in the same manner with which the approached PCs but it is a radically different market. One of the advantages of Windows over Macs is the development environment and it is software that sells hardware. BUT mobille phones should have been treated more like their console offering (XBOX360) since they are targeted at the general masses - they need to look cool but also "just work" and ideally start up fast! Too much is left to the user to figure out for him/her-self which is wrong for a consumer product. Shame since it is so nice (relatively) to develop for.

14 January, 2010
Garry Lowther

Don't forget MonoTouch which is a means of developing in C# for native iPhone apps. You can then re-use all your .Net business logic code - admittedly you will still have to code your GUI to take full advantage of the iPhone OS3, but at least you can code in your favourite language.

Of course the Nirvana for MS developers would be something like a cross compiler which will compile .Net projects so that they could be run natively on a variety of devices i.e. Windows Mobile, iPhone, Android and Blackberry. I'd pay for that.

14 January, 2010

Steve, you are right on. The Windows Mobile platform itself is a great platform to develop for. Like you, I too am a Windows Mobile developer. My last project was to integrate an RFID scanner and post the data using WCF to a BizTalk server; it was a fun project.

The only issue with Win Mobile is it's dated UI. Fix that, like Microsoft will do in Win Mobile 7, and I suspect the decline in market share will abate.

As to Julian's question, go ahead and develop for the iPhone ... I won't be a customer for that product.

14 January, 2010
Chris Walsh [DX-Squad]


MonoTouch is a bit expensive for an already flooded App Market in the Apple AppStore.  You'd want to have a good business idea, market it well to actually see any returns on the $1000 investment for MonoTouch.


I still use Kleneex to blow my nose.  I can't comment on the $$ for a WinMo license but I hear its quite small, but never the less I think they should also give it away.

The "average customer" will "always" need Microsoft in some way, the average mum and dads out there don't know or want to understand linux & Mac's.   That's really a niche for the corporations, designers and IT guys.

14 January, 2010
Peter Thorpe

I would have to agree with most comments windows mobile from a programmer perspective is the best. It's just a pitty it hasn't had a major refresh in a while especially the core UI which you can only hide for so long.

Hopefully the Windows Mobile 7 UI will be something comparable to the Zune HD and us programmers will be able to get making Silverlight and WPF apps that will work on PC and mobile platforms.

Fingers crossed DevExpress controls will fit into the subset of WPF.

15 January, 2010
Aaron Smith

The problem with the abstraction approach, especially in this area, is that it's hard to abstract the core away so that it's portable enough that you can do that. I can abstract my core away into the compact framework of .Net, but that won't work on Android, webOS, or the iPhone. I could astract away into DLL files, but that still wouldn't work. I could abstract into native c++, but until just recently, that wouldn't work on webOS (I don't even think that would work on the iPhone either). Unless you plan to stick with .Net and have your UI be web, wpf, and silverlight, abstraction is non-trivial.

Some of the latest UI on WinMo 6 has looked really nice with the way they have changed it.

They have a ways to go though, but they can get there. They just need to do it sooner rather than later.

15 January, 2010

Please login or register to post comments.