軟體開發隨筆

The role of C++ in Windows 8 application development

商業,創業,美食,葡萄酒,閱讀,網路科技。

這是我的 FB粉專 以及 IG,我比較常使用 Threads,歡迎大家追蹤互動~

I have been interested in Windows 8 application development since it was announced. The following diagram includes all the methods regarding Windows 8 application development.
Ref. http://msdn.microsoft.com/zh-tw/hh976905.aspx


Here is a nice article regarding using C++ to develop metro style app:
http://blogs.msdn.com/b/ericsk/archive/2012/05/02/metro-style-app-dev-using-cpp.aspx

The C++ in metro style app development is actually called C++/CX. From wiki:
http://en.wikipedia.org/wiki/C%2B%2B/CX
“The language extensions borrow syntax from C++/CLI but target the Windows Runtime and native code instead of the Common Language Runtimeand managed code.”

For me, C++/CX is so like C++/CLI. Since I have some experience in developing C++/CLI, and personally I don't prefer it. Therefore, I am conservative about C++/CX. Here are the pros and cons when using C++ in metro style app development.
Pros:
1. It's C++. It's somehow a general language for all programmers.
2. It can be easily integrated with Boost library, multimedia codecs, and other C++ libraries.

Cons:
1. C++/CX is not perfectly the same as C++ and it's not popular, while, say, C++, JAVA, and C# are popular.
2. (At least for me) It's ambiguous. Ambiguity comes from things are alike, but one has slight differences from another.

Then, how about the huge number of MFC softwares which have been existing for many many years? They still can run on Windows 8 desktop mode.
Since now we have WinRT and Win32 even in the same computer, is there any cross-platform issue? Yes, there is. Here is a Microsoft nice article:
http://msdn.microsoft.com/zh-tw/magazine/jj651574.aspx

At this time I won't say it's a cross-platform issue. In practice, I think the metro project and the desktop project are going to be different two, with largely different UI. At most, they use shared modules, but personally I don't think it's a cross-platform concept when we are using C++ to develop. On the other hand, if you really plan to do a cross-platform project (including Android and IOS), html/javascript is the best choice. But again, what to do depends on the project requirements and what is already there.

商業,創業,美食,葡萄酒,閱讀,網路科技。

這是我的 FB粉專 以及 IG,我比較常使用 Threads,歡迎大家追蹤互動~