Patent Obsolescence

The Lodsys debacle over the past 2 weeks as really shaken up our little (or not so little) community of iOS developers. The patent itself is now obvious to anyone who has ever done any kind of programming over the past 10 years. The concept of an “Upgrade” button after all is pretty simple. Especially in 2011 where we now have app stores and complex frameworks abstracting the work for us.

Beyond the validity of the patent and wether or not Apple has the right to sub-licence their rights, this case for me is the perfect example of why software patents as they exist today are ridiculous. Now we could argue that software patents should not be possible at all, a position I’m more than willing to agree with, but at the very least, the current 20 years period of protection in the US for a patent makes no sense in the insanely-rapidely evolving world of technology.

When the patent law was drafted in the US, those kinds of periods made sense. It works beautifully for example with the pharmaceutical industry where developing a new drug can take billions of dollars in research. Where it doesn’t work however is when a software developer thinks of a new algorithm to fix his problem. Regardless of how imaginative the solution is, protecting it for 20 years makes no sense on the Web.

This particular case affects me and my clients greatly so I’m obviously eager to see what will happen, but beyond that, I hope this example will be the drop that overflows the bucket and will convince the US congress to re-examine the law. It’s much needed. In fact it was much needed 2 years ago.

Apple Versus Flash : Round 1

Something funny happened lately and I’m not talking about me moving and me being away from this blog for several weeks. No, I’m talking about Apple and the fact that everyone and their mother seem to now be against them.

Of course, that’s not a bad thing. It usually means you’re doing things correctly when your competitors start considering you as a worthy opponent. With the many weeks away from the blog, there’s so much to talk about. Let’s start with Flash.

When Steve Jobs wrote his open letter explaining why Apple wouldn’t support Flash, it started arguments all over the Web between Apple fans and Adobe fans. Clearly, Apple believes Flash is bad for the Web and they have no intention of caving in. Adobe obviously disagrees. Unfortunately for Adobe however, Jobs’ points are pretty good. Sure, you can laugh at the irony of Steve Jobs admonishing Adobe for creating a closed platform, but at the end of the day, performance of Flash on Macs (and Linux) has sucked for years and years. Why should we think it’ll be different on a mobile device? Ends up it’s not. Shocked yet?

That whole thing is just stupid anyway. Flash, clearly, isn’t that good. It’s not good for the Web, and it certainly isn’t a good tool to create mobile apps. Not because Adobe makes it, but because Adobe has never been able to make Flash performance acceptable on OS X. They’ve had more than 10 years now. If I was Adobe, I’d create great tools to easily create HTML5 and JS/Ajax piece of software. Instead of creating Action Script, output to standard JS.

Google, itself in a fight with Apple was quick to ally itself with Adobe and announce Flash support in Android during Google I/O. If I was Adobe however, I’d be a little worried because during that same conference, Google spent a few minutes on Flash and the rest of the conference talking about how HTML5 was the answer and how their JS engine was faster than the competition. Google is Adobe’s friend for now, because it gives them a way to differentiate themselves from Apple, but let’s face it, Google isn’t a huge fan of Flash. Just look at all the Google products. None of them ever use Flash, except for Youtube. The same Youtube that’s slowly moving to HTML5 and H.264.

Some people have construed by Anti-flash tweets as being anti-android but that really isn’t true. I’ll be blogging about Froyo soon, but I’ll say right away that I’m quite impressed and I’m glad to see some great competition for Apple. iPhoneOS needs to innovate. Hopefully that competition will help speed things up.

Flash for me is in the same category as IE6. It used to be great, it used to be the best way to go, but we’ve moved past and now it’s time to put it to rest. Adobe loves to say you don’t get the full web without Flash on the iPhone and iPad, but for the most part, all I’m missing these days is flash banners. Somehow, I think I’ll live.

Keep it Pure (I’m Going To Sound Selfish Here)

Today, Apple announced a new version of the iPhone OS, the software that powers their mobile platforms like the iPhone, the iPod Touch and the newly released iPad (I’ll have my review soon). As part of that announcement, they have released a beta version of the SDK for us developers to play with but so far, the biggest news to come out of this is a little something they added to the license agreement.

John Gruber on Daring Fireball has a couple of post on this. To sum it up, Apple seems to have banned the use of Adobe’s Flash CS5 to iPhone technology or anything similar to that. What Apple has done basically, is force everyone to use their standards and their tools to code on their platform. Anything else is forbidden. That also impacts other tools like the Mono to iPhone stuff that’s also available.

John makes the point that it’s in Apple’s best interest and his arguments are good. I highly recommend you read the article in question but I’m going to go one step further here : I’m actually glad they did it and I think it’s a great thing for everyone involved except of course for Adobe and Flash-only developers. Here’s why.

If the Mac is known for anything, it’s for being a platform where attention to details is important. On OS X, we’ve seen a lot of application succeed because of the look and usability alone. The name “Delicious generation” was used to describe apps like these. Mac users expect apps to not only function well, but to look good, to act like a native app and to work like a native app. As such, the vast majority of apps available on OS X today are apps coded using Apple’s standards.

So what about the iPhone OS then? Well, by forcing people to use Apple’s tools, it forces people to be Mac users to develop for the iPhone platform. By doing so, it at least forces people to have a minimal knowledge of what it’s like to be on that platform. With any luck, that’ll end up improving the quality of apps on available on the App Store. Most people switching to Macs in my experience tend to become addicted to nice Apps anyway even if that was never really a concern before. It’s just part of the Mac mentality I guess.

I can understand why Flash developers are not happy and I can certainly sympathize with them, but I’m glad Apple did this. Let’s face it, Flash apps and Flash sites are not known for their great usability. They are known for flashy animations, terrible performance and for being generally harder to use.

From the start, the iPhone platform has never been an “open platform”. There are other platforms out there that are more open and equally great like Android. This is a closed garden. That comes with big advantages, but it also means you need to conform to the rules if you want to play in it.

Adding Hardware to Your Software

It’s fascinating to look at the multitude similarities and differences between Apple and Microsoft or even Google. One of the key differentiator is that Apple never releases only a software, they always pair it up with an hardware release whereas Microsoft rarely does. The reason is obvious, Microsoft chooses to work with 3rd party to create an “open” ecosystem whereas Apple does it all alone.

While there’s no denying Microsoft’s successes in the past (and even present) with the PC, embedded and portable devices are another world completely. Take a look at the iPod Touch, the iPhone or the iPad. Microsoft had a tablet PC all the way back in 2001 but the thing never caught on. It was an OK piece of software (Windows & Office, neither quite well adapted) tied to a series of OK devices by 3rd parties. Where Apple succeeds is by not only creating a great piece of software (the iPhone OS) but by also coupling it with a great piece of hardware of its own. What you get is the optimal use of that hardware and an attention to detail you don’t get when you have several 3rd parties working together to create a device.

A lot of people online clamor for a more open device from Apple or for Apple to license Mac OS X to PC manufacturers. To ask for that is to not understand what makes Apple products so compelling. You need that tight relationship with your hardware for the software to make any sense and vice-versa. An open-specced iPhone means multiple devices, some with a big screen, some with a small screen. Some with keyboards, some without. What you get, is the Android situation. A great OS tied to a potentially great App store crippled by the fact that 3rd parties are creating the phones and as such, there are tens of different configurations already and the App store is fragmented beyond belief because no small developer can support every phone. Let’s face it, none of us have 10 phones to test on.

This is why Google released the Nexus One. This is why Apple is dominating the App store business. And this is why the iPad will succeed to some extent. On day one, there will be more than 150 000 apps available for it. On day one, developers will make money on it. That’s unfortunately not the case with the myriads of other tablets that will be hitting the market in 2010.

Speaking of the iPad. I’ll have a full post on it early this week.

How About an App Store for the Desktop?

When Apple released the iTunes Store back in 2003, the company revolutionized online sales of Music. It did the same for mobile Application in 2008 when it released the iTunes App Store for the iPhone and iPod Touch. While many would argue that the App Store is far from perfect (long delay in approbation, you can only publish stuff that Apple deems acceptable, etc.), there’s no denying the numerous advantages of having an App Store. Search for “football” and you’ll get a bunch of games and apps that relates to your favorite sports. From a developer perspective, there’s certainly a big advantage. On a personal note, there’s no way my application would sell as much without the centralized listing.

Even with as many as 100 000 apps, even a listing of only compatible apps for your device come up when you search for “football” is basically the equivalent of coming out on page 1 of a Google search for that same term.

This whole thing begs the question, should Apple and Microsoft create a centralized App Store for the desktop? When you think about it, we already have that for games. It’s called Steam and it’s been a huge success ever since it came out back in 2004. As is the case with Steam for gaming, having an App Store for the desktop doesn’t mean you cannot sell your app any other way, it just gives you an additional place to sell it.

The gaming consoles also have that same concept. All the major consoles today have their own integrated store where you can buy games and add-ons for your device. So far, computer software is the exception to the rule and the negativity surrounding the App Store policies might make Apple or Microsoft think twice, but I don’t see why it would be a bad thing. Again, it’s an additional place to sell your stuff, not the only place to sell your stuff.

With the success of the iTunes App Store and Apple’s way of doing things, I wouldn’t be surprised if the company came out with such a concept in the near future. It could be one more way for the company to differentiate Mac OS X from Windows and add to the list of reasons why “OS X is easy to use”.

Forget Market share, It’s All About Mindshare

When you think about it, Apple’s place in the tech industry is a bit weird. Even before the iPod took the MP3 player market lead and at the same time helped Apple go from fledging computer company to tech industry leader, Apple has always been included in almost every tech discussions. Even today, with both the iPod and the iPhone being huge successes, Apple has managed to keep its Mac computers in the news despite the smallish market share.

Same with Safari on Windows really. Whatever Apple does these days, it will be discussed, it will be analyzed and it will bring about both very ardent fans and very ardent detractors. Contrast this with a new computer released by HP or Dell and you’ll understand why mindshare is what matters.

Apple has always done things differently. “Think Different” was their slogan for a while and it certainly applies to what Apple does, even to this day. When Apple updates its online store, the store goes offline for a few hours. When they release major new products or major updates to a product, Apple invites journalists to a special event. When Apple created the Mighty Mouse, they ceded on the 2 buttons issue but still did it their own way by having a 1 button mouse with a sensor. When Apple created the iTunes App Store, instead of going the open route, the company decided to control everything that goes on sale. Instead of using Linux or Windows, Apple has its own operating system and for a long time was using its own special CPU architecture.

Why? I don’t know the answer to that for sure, but I can certainly say that it’s been working to their advantage for many years now. Since they never do things like everybody else, whatever they do is discussed. There’s no doubt the Droid is a very good phone, but other than “can it beat the iPhone” stories, it hasn’t come close to getting the kind of attention the iPhone gets. Dell is a very big company that has had a lot of successes, but they release stuff that many other companies release and they do so the way many other companies do. The result? They get the same “normal” coverage and buzz everyone else get.

With the success its had in the past 10-12 years, Apple will no doubt be studied for a while in business classes around the world. Hopefully people will understand what it is that make Steve’s company a different beast. Apple may only have 5-12% market share worldwide, but it doesn’t really matter. They are winning the mindshare war, and that’s what will matter in the long run.

Why More Choices is Not Always a Good Thing

The mobile application business has been exploding for the 2-3 few years. The iPhone is certainly part of the reason, but the explosion of smart phones in general means we now have a ton of little apps and widgets running on our phones. These apps allow us to check the starting time of our movie at the theater and the next bus route or maybe just relax for a few minutes by playing a little game on the go. The phones we have, be it a Blackberry, an Android-based phone, an iPhone or a Windows Mobile phone are incredibly powerful.

And while that’s all good, as a mobile application developer (my first iPhone app, Tarot : Guide de vie is now live on the iTunes Store), it seems clear to me why Apple has been dominating so far : standardization. While there’s an ever increasing number of different iPhone and iPod Touch models out there, by and large, they are very similar. RAM and CPU speed have both been upgraded, but the screen size, the buttons on the device, the OS and API features are fairly stable and consistent and as a developer, that’s important.

If I develop for the Blackberry, which devices do I target? Some of them have a physical keyboard and some don’t. Screen sizes vary a lot. Same for Android really and while it can be argued that choice is a good thing for end users, in this case, I believe a lack of choice is also a benefit. Most apps are developed by a very small team. If I’m doing a game or an app by myself or with a few friends, chances are we won’t have 25 different devices to test it with. With the iPhone OS platform, it’s still important to test on many devices if possible, but you can target pretty much anyone running a given OS version with most apps (unless you app is highly CPU or RAM intensive).

The benefits of a closed platform is something that is rarely talked about. It’s easy to say that more choice is a great thing for consumers and certainly Google Voice users who can’t use the iPhone app because Apple said no have a good reason to be upset but as with most things in life, it’s rarely all white or all black. While there are without a doubt several downsides to a closed platform, there’s also several good things about it. So far, Apple has bet on the closed platform model and it’s hard to argue that perhaps they are right in saying the benefits outweighs the downsides. The results are certainly there to back them up.

It’ll be interesting to see where the market will go in the next few years.