OS X Weekly

Filed Under Software, Mac

I have been reading OS Weekly for a while, but today I read an article so ridiculous there they might as well rename it to OS X Weekly. The author (Brandon Watts) makes the claim that Leopard is better than Vista because it has no activation. It seems that he was under the illusion that Apple is producing and selling and operating system. What the author never realized is that OS X is a firmware for Apple hardware, and they don’t care on how many Macs you install it, as long as you pay them for the hardware.

Here is one ridiculous quote:

“Is the point here that people with multiple Macs in their home should buy the single-user copy of Leopard and install it on every Mac in sight? Obviously not. Apple has trusted us to use the OS as they have intended, and to be quite honest, that is flattering.”

Flattering only if one does not realize that Apple cares about selling the hardware, and you can’t install the Leopard firmware on any other hardware.

Claiming that OS X is better than any real OS because it is easier and free to install is like claiming that the “OS” on a Nokia mobile phone is the best, since it is free, easy and stable.

I know that Apple currently is offering the best package (hardware + software) and the stability and ease of use of their firmware is mostly because it sits on a fixed hardware (hence the mobile phone analogy). But one must be really narrow-minded to not be able to see that it is not the firmware (so called OS) that is on its own making it great. It is the fact that it all comes from one vendor. If Apple ever attempt to make an OS that you can install on any hardware, it will definitely not be better (I am personally sure it will be much worse).

Mac OS X virtualization - a double edged sword

Filed Under Software, Mac

In my last post I mentioned how the raising popularity of virtual machines was working good for the popularity of Macs. The more I think about it though, the more it works the other way around also. I have been recently checking out if some pieces of software I need have Mac ports. Without mentioning specific names, I am generally talking about thin clients to server-based services or games, which for some reason so far have had a Windows-only thin client.

I went to check out web sites and forums, and I was surprised how often the following discussion takes place in public forums (or blogs) between users and developers:

User: When will we have a Mac version?

Developers: Mac version is not planned for the moment.

User: Why? How is this possible??? You are loosing customers! And you will be losing more!!!

Developer: Uuugh… according to our statistics, we are not losing customers, they simply run our software in Parallels/VMware/Bootcamp.

It turns out that virtualization works against the pool of software for Mac growing. And we all agree that the best OS is the one that has the largest variety of software. So, as even though virtualization technology is helping Macs grow, it is also slowing down the native Mac software growth.

How Microsoft Won The API War on Windows only

Filed Under Software, Windows, Linux, Mac

Another release out of the door, and some time to put my thoughts in writing.

Did Microsoft lose the API war?

The title of this post is of course referring to the famous “HowMicrosoft Lost the API War” by Joel. I kept going back to that article when we were porting our product to Vista, as well as trying some of my personal projects on Vista. The more I think about it, The Raymond Chen Camp in Microsoft is still strong, and the API war is far from lost. And this article does not indent to pick on Joel, it just uses his article (which was very true in 2004) as a base to make a point.

Who makes the best APIs?

Also, apart from not losing backward compatibility, Microsoft are still kings at making their APIs developer-friendly.

Example - you want you application to make an HTTP request and get the result. Both Apple and Microsoft have an API (Apple calls its CFNetwork, MS calls theirs WinINet) for that. Ok, so you write you application to use the OS-supplied API for the task. But you have customers behind corporate firewalls, using proxies. The user has set its proxy setting in the system, and their browser is working fine, but you application is not. What to do?

Well Microsoft will advise you to simply call InternetOpen with INTERNET_OPEN_TYPE_PRECONFIG, which will make your application inherit the browser settings (direct or proxy). What do Apple suggest…. this! Tenths of lines of code against a simple parameter of a function.

This happened in a multi-platform project I managed. The Windows developer just took a glimpse at MSDN, added the flag and the proxy issue was forgotten on Windows. The Apple developer took almost half a day to understand the article, copy-paste the example and adapt it to his code. A big productivity win for Microsoft.

Does it matter?

Still, sadly, Joel was right about the outcome. Developers no longer care to learn new APIs from Redmond, and .NET is not very popular either. It is not because of the API war though. The API war played its part but what really mattered is the market and the widespread use of virtualization technology.

No matter how small the combined market of Linux and OS X is, companies don’t want to neglect that. These days you see more and more application sites offering OS X or Linux versions of their software, and more and more hardware vendors provide Linux drivers for their hardware. It is not a single OS world anymore. And this affects developers’ choices of tools and languages. Joel was talking a lot about the backward compatibility and the old code. But how about new code? What will you choose today, if you are starting a brand new software? If possible of course you will choose a technology that does not limit you deployment abilities. If you ever have the choice of .NET over Java - you will choose Java, or regret it later when a customer says “We like you application a lot, but we are a Linux shop, does it run on Linux?”. In that moment, it is not very comforting to say to yourself “Ok, we lost that sale, but hey, Linux is only 2%, why should I care”. And if you choose a technology that binds you to an OS, which today has 99% of the market, you are still gambling, betting all your money on the chance the OS market does not change in the lifetime of your product. Of course, all this is valid for a certain range of applications. But for this range, the developers have started turning away from APIs and technologies that are bound to a specific OS (.NET, Objective C) , and preferring (where possible) cross-platform tools and languages like Java, Python, wxWidgets etc.

As a developer, I am a huge .NET fan. This is the combination of framework and development environment that IMHO makes a developer most effective. As a development manager though, I am a Java/Python fan. Even with somewhat less productivity with the later two, you are ready to deploy on any platform out there and this is becoming more important.

The role of virtualization

The other thing that hurt Microsoft bad is the virtualization technology boom. The biggest advantage of Windows is the huge amount of software available on it. A lot of people have been tempted to switch to Apple or Linux, but were being held back by that specific application that they can’t live without, which is available on Windows only. Well, with the Apple switching to Intel (enabling software like VMWare and Parallels on the Mac) and VMWare doing a Linux version it is not a problem anymore. I know a lot of people that switched and are now running that favorite application in a virtual machine.

Conclusion

So Microsoft won the API war. It did not matter. To win the developers back to Microsoft tools and technologies, they should make them available on all platforms. If there was .NET for Mac and Linux I would, as a development manager, push the developers to use .NET. With .NET being bound to Windows - it is a hard call to make since you are burning your bridges for a Mac or Linux version.

Steve Jobs on drugs

Filed Under Software, Mac

Found these on the internet:

Steve Jobs - normal

jobs_normal.jpg

Steve Jobs - on drugs

jobs_drugs.jpg

P.S. Seriously, I was about to write about my frustration why Jobs thinks that Safari will wipe out 3 (FireFox, Mozilla, Opera) other browsers, but leave IE’s share intact. I just could not find words to describe it.

Apple reinvents Windows

Filed Under Software, Mac

The keynote presentation of Steve Jobs on WWDC 2007 had a pretty big reaction in various media. As usual, a lot of people were pissed of by Apple’s advertising. Just a few hours after the keynote was public Joel wrote:

Apple is and always has been severely dishonest in all their advertising when it comes to performance. This is the company that spent years telling us that the PowerPC was faster than Intel, only, suddenly, to change their claims midsentence without an explanation when reality caught up with them, in a scene almost exactly like the scene in 1984: “Merely it became known, with extreme suddenness and everywhere at once, that Eastasia and not Eurasia was the enemy.”

This is the company that’s about to release the iPhone on a slow, last-generation data network but is running TV ads that have edited out all downloads and waiting time that network entails.

These products may be cool, but I don’t understand why Apple should be allowed to lie so blatantly in their advertising about performance and get away with it. I’m sorry, but a web browser that takes a minute to launch is not going to win any converts on Windows.

I personally don’t care that much about the lies in Apple’s ads, since a lot of companies do that. I was a little confused by the fact that (as usual) the keynote had more negative talk about Microsoft products, than positive stuff about Apple products. This in not something new, but sound stupid combined with the fact that you want to announce your “new” features that Vista has for a year like sidebar in Finder, specialized folders like “My Pictures” and “My Downloads”, previews of content in icons and games.

Apple’s whole ad campaign and speeches are based on negativism, and I am really curious how will they advertise if they ever get out of their puny 6% market share. It feels strange to spend the first part of your speech explaining how bad Windows is, and then to announce that your third key feature is the ability to run Windows on your hardware. Apple is on the rise, the market share is growing, and bringing in games to the Mac is a really, really smart move. I can imagine that Macs will be a much more developer-friendly platform than PCs thanks to the fixed hardware. But in order to not piss everyone around, Apple should stop with the negative advertisements, or always be the underdog in the OS market.

OS Market Share