Whenever flash on iPhone is debated, one of the thing that’s mentioned is that Objective-C is really terrible and Flash (or Action Script) is a much easier language to learn and to use. Of course, Action Script is loosely based on Javascript, a scripting language and Objective-C is a layer on top of C, so that does confer Action Script an advantage when it comes to ease of use.
What people seem to be forgetting however is that there’s more to life than ease of use. By using Objective-C and the Cocoa Touch APIs, Apple has a set of technology that’s not that hard to use (really, try to learn it, you’ll see) but also, a set of technology that while open, is also pretty much only used by them. I’ve said this before in my last post, but forcing people to learn Apple technologies is not a bad thing. It’s certainly a bad thing for flash developers looking to make quick bucks by quickly porting existing code, but for the rest of us, it means the developer has to spend some time on the Mac, learning how it works, what the UI paradigms are and why things work the way things work. Ultimately, this leads to a developer that might spend more time thinking about the UI issues and how to really optimize the interface for an iOS device.
Objective-C has been pretty successful for Apple on the desktop for years. When Apple “forced” developers to ditch Carbon APIs (C APIs) for Cocoa APIs a few years ago to benefit from the latest advances in the OS, many balked and predictions of doom were also thrown by many. As far as I can tell, my Mac seems to have survived and so did all of the apps I’ve used. Certainly it means that companies like Adobe and Microsoft had and have a lot more work ahead of them rewriting large portions of legacy code. You know what though? At the end of the day, we get stuff like Outlook for Mac, a newly written app that takes full advantage of Mac OS X instead of Entourage.
During WWDC, Apple announced that Farmville was coming to iOS. It’ll be interesting to see if that version will take advantage of iOS 4′s Game Center feature when it launches. By being a native app, it certainly has the potential.
Meanwhile, iOS 4 is coming out today for all users. Grab it, it’s a great update.
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.
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.
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”.
Over the past 2 months or so, 2 stories came out where Microsoft didn’t look too good. The first time around, the company was accused of stealing open source code for its USB/DVD Download Tool for Windows 7. Paul Thurrott had the story in early november on his SuperSite for Windows. In that case, we later learned that a contractor for Microsoft had built the tool using open source components without telling anyone. The company later apologized and will reissue the software shortly with full source code to comply with the GPL.
Today, Techcrunch has another similar story. We do not yet have all the details, but it seems like Microsoft China decided to build itself a Twitter competitor for the local market to compete with the small (but popular) startup Plurk. So what did they do? According to the report on Techcrunch, they copied the design almost verbatim and then copied many of the code too. I mean, why stop at the design?
Now it’s obvious Microsoft inc. did not issue a directive to all employees to start stealing code left and right. The problem here though, is that it’s the kind of thing that’s really hard to manage when you have over 35 000 employees in several countries around the world. God, when I managed my team of 6-8 programmers here in Montreal, it was sometime hard to see if one of them wasn’t screwing things up, so it’s easy to imagine managing 35 000 employees in this regard being incredibly hard.
Interestingly, Apple has not yet been accused of this kind of thing, so perhaps the company does manage to do a better QA or code revision on everything that’s sent out? There are pluses and minuses to mandatory code reviews (and certainly, many programmers dislike the idea) but this is one area where perhaps it would help. Then again, Microsoft most certainly does code review for its main products (Windows, Office, etc.), but how do you ensure everything is A-OK in China where some mid-level manager might just decide using a competitor’s code is good enough. Deadline, you know?
The scary part as I said is that in my 12 years as a programmer, lead developer, team leader and tech leader for various businesses, I’ve seen similar problem creep up from time to time in what can only describe as very small projects. How do you manage the unmanageable? Maybe the solution is to simple accept that inevitability and react once you get caught.
There has been some rumors going around lately that Microsoft’s Bing search engine was interested in buying exclusivity for some Web content. This all started 2 weeks ago or so when Rupert Murdoch, the owner of The Wall Street Journal and many other news outlet said he was considering removing its news sites from Google because, according to him, Google has been stealing all the revenues with tools like Google News. When Microsoft heard of this, they of course did the only logical thing : offer an exclusive deal. I can’t blame them for this at all, I would do the same.
The problem here though is that search engines like Google and Bing work because they index everything. While an exclusive deal might seem like a good idea for Microsoft, I think it’s a disaster waiting to happen in the long run because the minute one such deal gets signed, many many others will be signed very quickly. I can’t be the only one thinking that having to visit multiple search engines because you’re not quite sure which site is on which search engine is a bad thing.
If you’re a Web developer, you know that the SEO (Search Engine Optimization) is already a mess. It’s all about optimizing your content and your code to make your search seem better to search engines. Hopefully this Rupert Murdoch thing is just a scare tactic on his part (while he may be sour on Google, I’m sure Google also brings them a ton of traffic, so I doubt he’d do it).
I’ll be watching this closely. I think it’s a crucial issue that’s just as important as Net neutrality. A search engine needs to be neutral and it needs to have access to every public content on the Web. Let the best indexer win and leave business out of it.