Live data from Hacker News

Microsoft introduces Universal Windows apps

wmpoweruser.com

61–70 of 187 posts

Re: Microsoft introduces Universal Windows apps

#61
post #58

The amazing thing is that you can potentially write all your code in C# and have backend/frontend logic for the web (ASP.NET), Windows, Windows Phone, and even iOS/Android (via Xamarin). Wow.

The amazing thing is that you can potentially write all your code in C and have backend/frontend logic for the web, Windows, Windows Phone, OSX, FreeBSD, OpenBSD, Tru64, VAX, Arduino, Linux Kernel, Windows Kernel, Mach, Hurd, and practically every processor or operating system ever built, and even iOS/Android (via Xamarin). Wow. You can even link to and reuse that code from languages such as: C++, C#, Java, Ruby, Per…

C# is a much higher-level language than C, with a much richer set of libraries that can be relied upon to be everywhere. That's why it matters.

Re: Microsoft introduces Universal Windows apps

#62
post #58

The amazing thing is that you can potentially write all your code in C# and have backend/frontend logic for the web (ASP.NET), Windows, Windows Phone, and even iOS/Android (via Xamarin). Wow.

The amazing thing is that you can potentially write all your code in C and have backend/frontend logic for the web, Windows, Windows Phone, OSX, FreeBSD, OpenBSD, Tru64, VAX, Arduino, Linux Kernel, Windows Kernel, Mach, Hurd, and practically every processor or operating system ever built, and even iOS/Android (via Xamarin). Wow. You can even link to and reuse that code from languages such as: C++, C#, Java, Ruby, Per…

What a well-structured and bullet-proof response. Congratulations, you're now revered amongst your peers and are considerably more employable thanks to your insightful observation. High five!

Seriously though: not only is C# a much easier language to learn which includes features and libraries that most developers expect from a modern language, that probably wasn't even what gum_ina_package was "Wow"ing at.

To me, the point is that the barrier to entry for writing apps across all platforms has now been lowered for C# developers - a group of developers, by the way, which is numerous.

Re: Microsoft introduces Universal Windows apps

#64
post #52

Exciting! This is getting progressively closer to an ideal I call PAO (Personal Application Omnipresence [1]), wherein I use a single set of applications on all my devices. I am very happy to see progress in this direction, but there is still much more to be done in the future. [1] http://tiamat.tsotech.com/pao

Sounds like iWork.

Re: Microsoft introduces Universal Windows apps

#65
post #30

They must live in quite a bubble if "universal" only includes Microsoft platforms.

Just like a universal binary on OSX?

Exactly, except Microsoft has taken it to the logical conclusion we all want supporting all platforms, and sadly Apple hasn't. I have code that runs on both iPhone/iPad and shares most of it with the Mac version yet I have to build the Mac as a separate app and submit to a different store. That sucks.

Re: Microsoft introduces Universal Windows apps

#66
post #61
post #58

Earlier quoted context omitted.

The amazing thing is that you can potentially write all your code in C and have backend/frontend logic for the web, Windows, Windows Phone, OSX, FreeBSD, OpenBSD, Tru64, VAX, Arduino, Linux Kernel, Windows Kernel, Mach, Hurd, and practically every processor or operating system ever built, and even iOS/Android (via Xamarin). Wow. You can even link to and reuse that code from languages such as: C++, C#, Java, Ruby, Per…

C# is a much higher-level language than C, with a much richer set of libraries that can be relied upon to be everywhere. That's why it matters.

You can rely on C# being on all platforms by default? Linux and OS X? Really?

Last time I used Windows (several years ago), there were always apps that needed to download and install the latest version of the .NET runtime... - is that still a thing?

Re: Microsoft introduces Universal Windows apps

#68
post #61
post #58

Earlier quoted context omitted.

The amazing thing is that you can potentially write all your code in C and have backend/frontend logic for the web, Windows, Windows Phone, OSX, FreeBSD, OpenBSD, Tru64, VAX, Arduino, Linux Kernel, Windows Kernel, Mach, Hurd, and practically every processor or operating system ever built, and even iOS/Android (via Xamarin). Wow. You can even link to and reuse that code from languages such as: C++, C#, Java, Ruby, Per…

C# is a much higher-level language than C, with a much richer set of libraries that can be relied upon to be everywhere. That's why it matters.

C# is both higher-level and lower-level than C.

If you try and add a "JumpList" to a program in C, you end up using Windows-specific extensions / APIs that make it no longer crossplatform. C# + Low-level Win32 APIs is closer to the OS than the generic C-libraries designed on a DEC PDP-11 40 years ago.

http://windows.microsoft.com/en-us/windows7/products/feature...

Besides, your typical C-program will not understand SEH Exceptions or DLLs (concepts that are extended as part of the "Win32 Runtime". Its not like Win32 is POSIX compliant ya know...

Re: Microsoft introduces Universal Windows apps

#69
post #66
post #61

Earlier quoted context omitted.

C# is a much higher-level language than C, with a much richer set of libraries that can be relied upon to be everywhere. That's why it matters.

You can rely on C# being on all platforms by default? Linux and OS X? Really? Last time I used Windows (several years ago), there were always apps that needed to download and install the latest version of the .NET runtime... - is that still a thing?

int main(){ puts("Hello World"); }

This doesn't work in Windows. The standard entry point to Windows is "int CALLBACK WinMain( _In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow );"

C never really "ran" on Windows. C is built on top of abstractions to even run on Windows. A SegFault in standard C is supposed to be passed to a signal handler (in Linux/ OSX).

A SegFault in Win32 is passed to the SEH exception handler, to the __except{} statement in some function as the stack is unwound. (Oh yeah, __try{} and __except{} don't exist in "normal C", do they?)

--------------

The "OS Language" of Windows is C++ (through COM and COM+ interfaces). The "OS Language" of Linux and OSX is C.

The sooner you realize this, the easier programming on Windows is going to be. Windows never really supported C as a first class citizen. C code cannot easily call core Win32 libraries like DirectX. (It can, but it is significantly harder than just using the C++ COM interfaces)

C# works very closely with COM interfaces in Win32. And thus, C# is the second language of choice of Windows. The only reason C# hasn't overtaken C++ in everything seems to be politics.

Mind you, Microsoft fully supports C# Device Drivers. The lowest level hardware interactions in Windows can be done with C#.

Re: Microsoft introduces Universal Windows apps

#70
One thing I don't see mentioned, do universal apps support C++11? I can understand why it's not as easy to support native code across platforms (i.e. need to do some kind of fat binary thing), but think it's a little sad to see all the work done to support modern C++ app development kind of abandoned. Really annoying if you have to choose between an app being universal or written in modern C++.
Post reply on HN