In the last Dev Academy I have given a lecture in the TDM (R&D Manager) track about Software Porting, The Why, When, and How. During the lecture I have talked about many different migration scenarios: from VB 6.0 to C#/VB.NET. From VC++ 6.0 to VC 2008/2010, From Unix/Linux to Windows, From old .NET to new .NET etc. I have talked about the porting project, best practices and tools. This is the link to the lecture’s slides. There are many useful links inside it. This is the link to the lecture video recording (sound track in Hebrew).
When we look at the mobile phone market, can we project from it about the future of software? Is Windows 8 going to be a closed system? Will we as developers need to upload all our applications to an App-Store or Marketplaces? Will we have Multitasking?
Let's look at the iPad, a big iPhone or better a big iPod? Let's say that it will sell more than Windows PC based Tablets. What does it say to Microsoft? Microsoft has pushed the tablet idea since the release of Windows XP tablet edition. Of course the idea about hand-writing recognitions goes back to 1888, and the tablet idea almost as we know it today was invented by Alan Kay, called the Dynabook. But Microsoft believed in it and made it real, and now we may get a large version of Windows Phone 7 instead.
Don't think that I'm not excited by the new Windows Phone 7, I do, but I'm also worry. A managed based platform will be much more stable and the developing tools are great, .NET, Silverlight, XNA. But wait, what about portability? Can we program with the same tools and languages to all platforms. As a C++ MVP I must tell you that history has proved that the main portable language is C and C++. Look at game development for example. You can use standard C++, standard and other libraries that have version for each platform. You can #ifdef and #include your specific platform files to adapt your application. But today I've heard that Apple will not let you build an IPhone app using C++ or even C#. Got the point, totally different code-base to iPad, gPad and mPad. Or do I see an opportunity, a high level compiler from C++ to C#, Objective C and Java?
What about programming for fun? I developed my own applications for my Windows mobile devices, for example I control my home using my phone or my wife's phone. Now I will have to upload my own application to the Phone Marketplace to be able to install it on my wife's phone. Windows Phone 7 is great, but it also marks the death of Windows Mobile, and this came when finally we have great devices such as the HTC Touch-Pro II and the HTC HD II that everyone that uses them says that they are very good and solid phones.
I don’t think that Windows 8 will not have multi-tasking, after all my laptop has 8 logical processors, but I do think that we will be bind to a specific technology more than ever, be it in the small form factor (phones), the PC or the Cloud. If we want to support all platforms, we will have to work much harder, and share our sells with Apple, Goggle and Microsoft. This might be good for small and medium companies, but what about big companies that have their own marketing system, this also means that software may cost more.
One of the new features of VS 2010 is the new Help system. During the MVP Summit we have introduced to the new system which has very good foundation, but the viewer that comes with VS 2010 is lack of many features that we used to have and loved such as the TOC, Index, Synch TOC, etc.
Fortunately there is a tool (H3Viewer) that provides the missing features:
In the site you can also find the mshcMigrate tool that enable the migration of old MS Help files to the new platform.