Linked by Thom Holwerda on Fri 13th Jul 2012 23:39 UTC
Windows Ars Technica is running an interesting article about the Mail application on Windows 8. It's one of the first party Metro applications, and Ars' conclusion is that it's really, really not up to snuff - it can't even compare favourably to the mail application on Windows Phone. The sad thing is, however - this applies to virtually all Metro applications.
Thread beginning with comment 526828
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Too many platforms
by toast88 on Sat 14th Jul 2012 21:10 UTC in reply to "RE: Too many platforms"
toast88
Member since:
2009-09-23

Yeah, like it does not happen in other operating systems as well.


It doesn't.

What are the Linux APIs, besides the POSIX standard, that are stable across distributions?


POSIX *is* the most important API on *nix systems and has been stable for ages. You can't simply leave that out.

Remember "xv"? It's an image viewer with the last stable release from 1994, it still runs on modern versions of Linux.

You can see how powerful APIs like POSIX, SDL and Qt are by looking at how applications are released on POSIX systems. Virtually EVERY application you have on Linux compiles flawlessly on *BSD or MacOSX (with Macports, for example).

Heck, you can even install a complete KDE desktop on top of Windows or port your Qt apps with an ease from desktop to mobile platforms.

What Mac OS X from the early days are now deprecated?


None. MacOS X still has the same native API it got when it was introduced, namely Cocoa which is based on NeXTStep which has been around since the 80ies.

You can even compile and run Cocoa applications on Linux: http://www.youtube.com/watch?v=l2humz9hIVM

Anyone who has a decent understanding and experience with programming on Windows and Unix systems knows that the Microsoft world is a mess when it comes to APIs.

Their code is so messy and heavily platform-dependent, that they can't even sync the code of simple applications like Windows Messenger on different platforms (Windows and MacOS), OneNote (the non-Windows versions of OneNote lack most of the features of the desktop application) or Internet Explorer (IE has always been behind on WP7).

Microsoft is suffering from their own platform-lockin and API unstabilities. It wouldn't have taken them forever otherwise to get NT ported to the mobile platform.

Linux, on the other side, is already supporting soon architectures which aren't even available in hardware yet (ARM Arch 64).

Adrian

Reply Parent Score: 7

RE[3]: Too many platforms
by malxau on Sat 14th Jul 2012 23:34 in reply to "RE[2]: Too many platforms"
malxau Member since:
2005-12-04

"Yeah, like it does not happen in other operating systems as well.


It doesn't.
"

Try this experiment. Get a cross-platform piece of code from the late 90s - say, Netscape 4 - and try to run it on Windows, Linux, and Mac OS. It will run on one of them, guess which...

You can see how powerful APIs like POSIX, SDL and Qt are by looking at how applications are released on POSIX systems.


It's not about the power - it's about having four incompatible versions of Qt in the last 15 years.

"What Mac OS X from the early days are now deprecated?


None. MacOS X still has the same native API it got when it was introduced, namely Cocoa which is based on NeXTStep which has been around since the 80ies.
"

It has the same design, but many APIs have been deprecated - or just plain broken - in the meantime.

The speed at which this can happen on OS X is breathtaking...
https://developer.apple.com/library/mac/#documentation/Carbon/Refere...

Edited 2012-07-14 23:38 UTC

Reply Parent Score: 2

RE[4]: Too many platforms
by toast88 on Sun 15th Jul 2012 08:48 in reply to "RE[3]: Too many platforms"
toast88 Member since:
2009-09-23

"[q]Yeah, like it does not happen in other operating systems as well.


It doesn't.
"

Try this experiment. Get a cross-platform piece of code from the late 90s - say, Netscape 4 - and try to run it on Windows, Linux, and Mac OS. It will run on one of them, guess which... [/q]

I tried Netscape 4 on a Linux 2.6.32, works without problems. Just have to install some older libraries through my package manager.

As I already said, the 18-year-old image viewer "xv" still runs fine on current Linux distributions. One of my friends is still using it.


xxxxxxxx@yyyy:~> which xv
/usr/bin/xv
xxxxxxxx@yyyy:~> uname -a
Linux zlogin 3.2.0-0.bpo.1-amd64 #1 SMP Wed Jan 25 00:15:47 UTC 2012 x86_64 GNU/Linux
xxxxxxxx@yyyy:~> xv


I just ran it.

"You can see how powerful APIs like POSIX, SDL and Qt are by looking at how applications are released on POSIX systems.


It's not about the power - it's about having four incompatible versions of Qt in the last 15 years.
"

Doesn't matter at all. If you have applications compiled against Qt3, you just download and install Qt3 libraries and you're done.

You have the same problems on Windows in this regard. If an application was compiled against MFC4.2, you have to have MFC42.DLL on your system, otherwise it won't work.

"What Mac OS X from the early days are now deprecated?


None. MacOS X still has the same native API it got when it was introduced, namely Cocoa which is based on NeXTStep which has been around since the 80ies.
"

It has the same design, but many APIs have been deprecated - or just plain broken - in the meantime. [/q]

Don't just reflect the things I said about Win32 on Cocoa, this is stupid.

The speed at which this can happen on OS X is breathtaking...
https://developer.apple.com/library/mac/#documentation/Carbon/Refere...


Why on earth do you reference "Carbon" here? Carbon was also deprecated when MacOS X was introduced in 2001. Developers were NEVER supposed to write Carbon applications when targeting MacOS X. Cocoa is and has always been the native API of MacOS X and it is STABLE.

The only API which is constantly broken is Win32 and other stuff from Microsoft. Ask any wine developer or developers at Steam.

For example: http://www.rockpapershotgun.com/2011/08/03/why-steam-makes-you-inst...

Adrian

Reply Parent Score: 1

RE[4]: Too many platforms
by iswrong on Sun 15th Jul 2012 09:40 in reply to "RE[3]: Too many platforms"
iswrong Member since:
2012-07-15

It's not about the power - it's about having four incompatible versions of Qt in the last 15 years.


You are now mixing ABI compatibility, API compatibility, and familiarity in the same argument. Qt 4 is very similar to previous Qt versions. I have been programming in Qt since the early Qt 3 versions, and the switch from Qt 3 to Qt 4 was simple for programmers in terms of familiarity. The leap from an older Qt version to Qt 4 will be very small compared to e.g. the Win32 API to WPF.

API compatibility between Qt3 and Qt4 is not perfect, but acceptable. For many classes that were deprecated, there are (Q3*) classes, so that the old functionality is still available.

The ABI compatibility between Qt versions is not so good, e.g. 4.8 is guaranteed to be binary compatible with 4.7, but that is all you get. Of course, you can still run older precompiled applications using older Qt libraries.

In the preceding discussion the argument was around familiarity. People say that Microsoft asks developers to learn a new API every few years or so. The transition between Qt versions was non-disruptive, evolutionary, and simple. So, I don't think that the argument that Qt released 4 major versions in the last 15 years really applies. It's not as if Qt programmer had to learn a completely new framework.

The more serious problem on Linux is fragmentation. People do not just use Qt, they use Qt, GTK+, wxWidgets, or even Tk and many permutations of other libraries. As a result, the experience is rarely consistent.

The APIs of Windows are more clouded in this respect. Some people will argue that WinRT and WPF both use XAML, and consequently are very similar. Others will argue that they are completely different APIs. For companies making a new product, it is a difficult choice, Metro could be the future, so developing an application using WPF could be deprecated soon. On the other hand, if Metro flops, having developed a WinRT application would've been a waste of time.

On the other hand, although I am not a Windows developer, I think such arguments tend to be overstated. In a serious application, UI code will only be a fraction of an application. If the underlying application is written in a .NET language, it's probably not too hard to target WPF or WinRT at will.

It has the same design, but many APIs have been deprecated - or just plain broken - in the meantime.


Right. People often forget Carbon, or how Apple pushed Cocoa on Java, to deprecate it just a few years later. Or how Objective-C garbage collection was the next great thing, to deprecate it in no-time for ARC. The gcc -> llvm-gcc -> clang switch in a short amount of time was also not pretty, with everything from small codebases or Haskell compilers breaking every few months.

Reply Parent Score: 7

RE[3]: Too many platforms
by moondevil on Sun 15th Jul 2012 05:42 in reply to "RE[2]: Too many platforms"
moondevil Member since:
2005-07-08

"Yeah, like it does not happen in other operating systems as well.


It doesn't.
"

Yes it does, only someone that does not work as a professional software developer can make such a statement.

"What are the Linux APIs, besides the POSIX standard, that are stable across distributions?


POSIX *is* the most important API on *nix systems and has been stable for ages. You can't simply leave that out.

Remember "xv"? It's an image viewer with the last stable release from 1994, it still runs on modern versions of Linux.
"

Try to do this with a binary compiled dynamically in 1994.

You can see how powerful APIs like POSIX, SDL and Qt are by looking at how applications are released on POSIX systems. Virtually EVERY application you have on Linux compiles flawlessly on *BSD or MacOSX (with Macports, for example).


SDL and Qt are not operating system APIs.

"What Mac OS X from the early days are now deprecated?


None. MacOS X still has the same native API it got when it was introduced, namely Cocoa which is based on NeXTStep which has been around since the 80ies.
"

Really?!

https://developer.apple.com/library/mac/#technotes/tn2223/_index.htm...
https://developer.apple.com/library/ios/#documentation/MapKit/Refere...
https://developer.apple.com/library/ios/#documentation/Cocoa/Referen...
http://developer.apple.com/library/mac/#qa/qa1342/_index.html
https://developer.apple.com/library/ios/#qa/qa1679/_index.html

I can list much more if you wish, specially the NeXTStep APIs no longer available.


You can even compile and run Cocoa applications on Linux: http://www.youtube.com/watch?v=l2humz9hIVM


That is GNUStep, not Cocoa, with lots of missing functionality.

http://wiki.gnustep.org/index.php/ApplicationKitCompatibility
Anyone who has a decent understanding and experience with programming on Windows and Unix systems knows that the Microsoft world is a mess when it comes to APIs.


Anyone with a decent experience developing software across multiple operating systems, knows that Microsoft world is quite bearable, when compared with many of the commercial enterprise systems available.

Their code is so messy and heavily platform-dependent, that they can't even sync the code of simple applications like Windows Messenger on different platforms (Windows and MacOS), OneNote (the non-Windows versions of OneNote lack most of the features of the desktop application) or Internet Explorer (IE has always been behind on WP7).


Different teams, even working in different buildings.

Microsoft is suffering from their own platform-lockin and API unstabilities. It wouldn't have taken them forever otherwise to get NT ported to the mobile platform.


The same platform lockin like any other commercial vendor.

Linux, on the other side, is already supporting soon architectures which aren't even available in hardware yet (ARM Arch 64).


Great! Where I do buy such hardware with Linux?

I have developed commercial software for Aix, HP-UX, Solaris, Linux, BSD, OS/400, Symbian, NeXTStep, Mac OS X, Windows, Android.

What are your developer credentials to talk about stability of operating system APIs?

Reply Parent Score: 5

RE[4]: Too many platforms
by toast88 on Sun 15th Jul 2012 09:06 in reply to "RE[3]: Too many platforms"
toast88 Member since:
2009-09-23

Yes it does, only someone that does not work as a professional software developer can make such a statement.


First sentence directly being an insult, yay, that's how we start arguments.


Try to do this with a binary compiled dynamically in 1994.


Works without problems. You just have to provide the dynamic libraries it was specifically compiled against. Same on Windows with the DLLs.

"You can see how powerful APIs like POSIX, SDL and Qt are by looking at how applications are released on POSIX systems. Virtually EVERY application you have on Linux compiles flawlessly on *BSD or MacOSX (with Macports, for example).


SDL and Qt are not operating system APIs.
"

True. But they are competing with APIs from Microsoft like DirectX, MFC and Win32 and they are gaining more and more market share due to their cross-platform compatibility.

Valve just hired the lead developer of SDL.



Deprecating parts of the API while providing good documentation on these changes is a very good thing.


"You can even compile and run Cocoa applications on Linux: http://www.youtube.com/watch?v=l2humz9hIVM


That is GNUStep, not Cocoa, with lots of missing functionality.
"

I didn't claim that. However, GNUStep does allow to run many MacOS applications on Linux. It is demonstrated by the guy in the talk.

"Anyone who has a decent understanding and experience with programming on Windows and Unix systems knows that the Microsoft world is a mess when it comes to APIs.


Anyone with a decent experience developing software across multiple operating systems, knows that Microsoft world is quite bearable, when compared with many of the commercial enterprise systems available.
"

There aren't really any other commercial platforms left. Alpha, Solaris, HP-UX and so on don't really exist anymore.

"Their code is so messy and heavily platform-dependent, that they can't even sync the code of simple applications like Windows Messenger on different platforms (Windows and MacOS), OneNote (the non-Windows versions of OneNote lack most of the features of the desktop application) or Internet Explorer (IE has always been behind on WP7).


Different teams, even working in different buildings.
"

This doesn't justify anything. It works for Apple and it works at Google. Microsoft is just incredibly bad in this regard.

Heck, they don't even know how to read out the home directory on MacOS X using an environment variable, they always assume your home directory is in /Users (try using Microsoft software for MacOS X with a case-sensitive filesystem).

"Microsoft is suffering from their own platform-lockin and API unstabilities. It wouldn't have taken them forever otherwise to get NT ported to the mobile platform.


The same platform lockin like any other commercial vendor.
"

No. http://opensource.apple.com/

"Linux, on the other side, is already supporting soon architectures which aren't even available in hardware yet (ARM Arch 64).


Great! Where I do buy such hardware with Linux?
"

What is your problem? Most ARM devices shipped nowadays run Linux. Just use your favorite internet search engine and you will be happy.

I have developed commercial software for Aix, HP-UX, Solaris, Linux, BSD, OS/400, Symbian, NeXTStep, Mac OS X, Windows, Android.

What are your developer credentials to talk about stability of operating system APIs?


Are we going to compare penis lengths now? This is not how you're going to win an argument. It's like saying "My parents are richer than yours, so I must be right!"

You can argue whatever you want, but Microsoft is doomed to decline in the future (just like ATARI or Commodore). Just have a look how many companies are jumping the Linux bandwagon. Valve, being probably one of the most important game publishers, is hiring Linux developers like crazy. And even Microsoft itself contributes lots of code to the Linux world (Skype 4.0, Hyper-V).

I feel really sorry for people who are so attached to Microsoft that they're even willing to waive for features and usability when switching from Windows 7 to the awkward Windows 8.

Adrian

Reply Parent Score: 3

RE[3]: Too many platforms
by lucas_maximus on Sun 15th Jul 2012 10:58 in reply to "RE[2]: Too many platforms"
lucas_maximus Member since:
2009-08-18

You can see how powerful APIs like POSIX, SDL and Qt are by looking at how applications are released on POSIX systems. Virtually EVERY application you have on Linux compiles flawlessly on *BSD or MacOSX (with Macports, for example).


This isn't true, ask any guy on the OpenBSD ports team, how linux specific some source code is.

Reply Parent Score: 4

RE[3]: Too many platforms
by Soulbender on Sun 15th Jul 2012 11:15 in reply to "RE[2]: Too many platforms"
Soulbender Member since:
2005-08-18

POSIX *is* the most important API on *nix systems and has been stable for ages.


POSIX doesn't deal with anything UI related though.

You can see how powerful APIs like POSIX, SDL and Qt are by looking at how applications are released on POSIX systems. Virtually EVERY application you have on Linux compiles flawlessly on *BSD or MacOSX (with Macports, for example).


That is only true for pure POSIX, SDL and Qt apps.
There is a massive amount of OSS code that is embarrassingly Linux-specific and you often run across the attitude that "Meh, it works on Linux, who cares if it doesn't work anywhere else".
Nothing wrong with that, really, but it gets a bit annoying when you hear people boasting about the portability of OSS code when what they really mean is "it works on all Linux distros...and maybe Solaris".

Anyone who has a decent understanding and experience with programming on Windows and Unix systems knows that the Microsoft world is a mess when it comes to APIs.


Both are pretty messy really, in their own way.

Edited 2012-07-15 11:17 UTC

Reply Parent Score: 6

RE[4]: Too many platforms
by whartung on Mon 16th Jul 2012 16:36 in reply to "RE[3]: Too many platforms"
whartung Member since:
2005-07-06


POSIX doesn't deal with anything UI related though.


Nonsense, curses is part of POSIX.

Reply Parent Score: 1