Apple join in on Android sue-fest

Not to be left out with Oracle suing Google for megamillions for infringing on their Java patents with Android, Apple are getting in on the action and suing various Android handset manufacturers for infringing on iPhone and iOS related patents.

Apple in my mind has been getting away with murder when it comes to dominating the smartphone market. Although up until recently, iOS based phones are no longer the top selling smartphone, with Android based smartphones currently outselling iOS. Apple’s approach to control the iOS platform is exactly what Microsoft fell foul of with the multiple anti-competitive lawsuits in the 90s, and they are blatantly getting away with it unchallenged. Think about it, this is Apple’s aproach to controlling the iOS platform:

  • any software for iOS has to be approved by Apple, and only then can it be offered for sale or for free once approved
  • iOS software can only be downloaded and installed via Apple’s own AppStore delivery mechanism
  • you can’t install anything that’s not approved by Apple, and only mechanism to download and install is via their AppStore
  • the only tools to develop apps for iOS are supplied by Apple
  • apps for iOS must not emulate or simulate any other hardware or software platform that would allow them to run other software not approved by Apple
  • Apple takes a cut on every copy of every app sold by 3rd party vendors via Apple’s AppStore

Now think about this. Apple control the hardware. Apple control the software. The only vendor you can buy software from is Apple. This a completely, 100%, closed environment, completely controlled hardware and software platform, entirely controlled by one company, Apple.

Whereas Microsoft went about their mission to dominate the PC platform with a legally questionable approach, I can’t imagine Microsoft getting away with any of the approaches above, and yet Apple and iOS appear to be getting away with it.

The ironic thing is competition via Android is most likely Apple’s free pass to continue with their current strategy – as long as competition exists they most likely won’t be challenged. If their greed gets the better of them however and they continue with lawsuits against companies producing Android handsets, if they go too far and damage the longterm prospects of Android, I wonder if they’ll find themselves walking down the same path already taken by Microsoft.

Gosling joins Google

James Gosling, the ‘father of Java’, after working independently for the last year since the Oracle buyout of Sun has accepted an offer to work for Google.

No doubt this will stir up some fire with Oracle in their lawsuit against Google and Android.

Time to dig into Scala

I’ve been putting it off for a while, but I think it’s time to get the Scala plugin for Eclipse installed and start to work through some tutorials to see what the buzz is about Scala. In particular I’m interested to see what approach the Lift framework takes for building webapps, and how this compares with the endless list of webapp frameworks we have in Java-land.

There’s been a lot of stirring recently regarding replacements for Java – the trouble is, so many enterprises have major investments in Java based systems at this point. Java (the language) will not go away any time soon. The change that’s about to happen is that I think alternatives to the Java language are on the cusp of being realistic alternatives for new development projects – Ruby, JRuby, Scala etc.

Programming languages are an interesting thing when it comes to making a choice which to use for a new project. For small projects with a small development team (<5 developers) the choice is less about finding resources who have experience in language XYZ, it’s more important to think about what resources you’ll have around in the future who have experience with obscure language XYZ which the 2 man developer team originally chose because they read some article about it and it sounded cool at the time.

For larger development efforts, if you’re staffing a 100 developer team it’s obviously more important initially to pick a language for which you can find 100 developers that have experience in that language. At this point, Java is obviously a natural choice since you can easily find plenty of Java developers in most metropolitan areas. I challenge you to find 100 Scala developers in any city who are available to start a new project next week. That’s going to be a tough challenge for your recruiting team.

I can remember around 1996 when Java first started to get attention as a ‘language for the Web’ that at the time it was an interesting curiosity but definitely not a language you’d pick to use on a new development project. It took a couple more years before it matured and started to see more use on the server-side rather than for web page front ends using Applets. At this point in time, Java has been called ‘the new COBOL’. You’ll face little or no resistance if you recommend a Java-based solution for a new web-based enterprise system (unless you’re already a Microsoft shop in which case you be using C# and .NET etc).

The interesting thing about Ruby and Scala is that as languages they’re both already been around for years. Scala takes an interesting approach in that it capitalizes on the years of investment developing and refining the JVM platform, and then takes a blend of OO features and syntax from Java and mixes in some Functional style programming. Whereas Java took the good parts of C++ and left out some of the not-so-good features, Scala seems to be going down the same path for the evolution of Java – takes some good features, leaves out not-so-good stuff (static properties, primitives, non-OO features), and then builds upon it, and adds Functional language features too.

I still think it’s too early for Scala to be recommended for a large scale development project (namely because of the lack of developers with Scala experience), but it will be interesting to see in the next few years whether it starts to make inroads and take over from Java.