This is something we don’t talk too much about, but software developers writing managed applications for (Windows Mobile) devices are great desktop developers as well. Thanks to the fact that the .NET Compact Framework is a subset of the full .NET Framework and thanks to the fact that we are using the same programming languages (C# and Visual Basic.NET), a device developer can be productive immediately when developing desktop applications using managed code. The fact that we use a subset of the full .NET Framework means that a whole rich world of functionality is opening up for a device developer when moving to larger systems. I am experiencing this myself right now, since I am involved in developing a desktop application at this moment. Device developers will add value to desktop projects because they are continuously thinking about performance and application footprint, or at least, they should do. Since devices have limited resources and way slower processors we have to continuously keep footprint and performance in mind. Given that fact, it is almost strange that we only got some good performance tools with Remote Performance Monitor that ships with the .NET Compact Framework 2.0, SP1 and SP2. With the arrival of Visual Studio 2008 we are even better off because we have our own version of the CLR Profiler by that time as well. However, thinking about performance, footprint and preserving (battery) power is simply second nature for a device developer. Bringing these skills to the desktop will result in small, good performing and snappy applications. The only downside might be that we device developers will not utilize all the rich functionality of the full .NET Framework. Now let’s think about desktop developers moving to devices. To begin with, they probably don’t like the fact that lots of their familiar and popular classes and methods are unavailable in the .NET Compact Framework. After that they might start to realize that sometimes you will get out of memory exceptions. Who has seen that happening on desktop machines? Let us not even start talking about user interfaces. How can you possibly create a cool looking UI when your screen size is for instance limited to a whopping 176 by 180 pixels? The only way you can do that is thinking differently. Stop thinking about unlimited resources and start thinking about the limitations you have to deal with. When they finally are able to create an application it will probably drain the batteries within 30 minutes or so. Of course I am generalizing right now because I am pretty sure that a lot of desktop developers can move forward to become great device developers. However, I do believe that moving from the device to the desktop is a much easier step. Even though we are more or less using the same tools, we still are completely different kinds of species.
Maarten Struys |