Heel de wereld lijkt het er over te hebben. Apple heeft een nieuw speeltje voor de markt: de iPad. De reacties zijn op zich heel interessant. Aan de ene kant heb je de gadget freaks die superlatieven te komen komt om het moois te beschrijven. Aan de andere kant zijn er genoeg die nuchter weten te blijven. De iPad is niets meer dan een iPhone die te groot is om lekker mee te kunnen bellen en te klein om als notebook te kunnen worden gebruikt. En nieuw is de iPad helemaal niet. Dit is die van mij, ondertussen al ruim 5 jaar oud.
Een tablet PC. Natuurlijk, hij draait Windows XP. Het iPhone OS is natuurlijk mooier om te zien en makelijker in het gebruik. Deze tablet moet je met een pennetje gebruiken, de Apple werkt gewoon met je vingers en begrijpt ook nog bewegingen gemaakt met meerdere vingers, hij is multi-touch. Maar het is en blijft in principe hetzelfde apparaat.
Voor ons als software ontwikkelaars lijkt de iPad ook iets los te maken. Opdrachtgevers willen ineens iPad versie van hun applicatie of zien ineens allerlei nieuwe interessante iPad applicaties voor zich. Dat moet je Apple nageven, zij weten de gebruikersmogelijkheden van apparaten over te brengen. Iets wat Microsoft al die jaren met de tablet PC niet goed is gelukt.
Ik ben me eens voorzichtig gaan oriënteren hoe makkelijk of moeilijk het is een iPad versie van een applicatie te maken. Ik was bang in een wereld van veel geïnterpreteerd script terecht te komen. Dat viel mee, maar wat rondbladeren op de Apple developers site maakte me toch niet echt vrolijk. In de eerste plaats is de site tamelijk summier en werkt die ook nog eens niet goed. Als je naar vervolgpaginas wilt gaan begint die te jeremieren over iTunes om daarna nog steeds niet bij de gevraagde informatie te komen.
Hetgeen ik wel heb kunnen zien maakte me ook niet zo heel vrolijk. Het bouwen van iPhone applicaties doe je met objective C. Het is wel een OOP taal maar vergeleken met C# zie ik dat het een behoorlijke stap terug zal zijn. Met name het geheugenbeheer. In objective C gaat dat net als in COM, met refcounting. Dat wil zeggen dat een object een tellertje heeft van het aantal gebruikers van het object. Als dat 0 is dan ruimt het object zichzelf op. Ik heb een aantal jaren heel veel met COM en Delphi gedaan en als iets daar een probleem was het het eindeloos bijhouden van die tellers. Als je als programmeur de teller niet goed bijhoudt ruimt het object zichzelf nooit op. Soms ging de helft van de ontwikkeltijd verloren aan het debuggen van dat telproces. En de nodeloos ingewikkeld constructies om die tellers goed te beheren maakte de software erg lastig te debuggen en onderhouden. Wat was ik blij met de garbage collector van .NET.
Het maken van iPad / iPhone applicaties lokt mij dus niet zo. Een alternatief zou Silverlight kunnen zijn. Dan gebruikt je de browser van de iPad voor het hosten van je applicatie. Helaas is er (nog?) geen Silverlight voor de iPad. Dat is er alleen voor Intel gebaseerde Apple PC’s.
Maar waarom zou je zulke applicaties moeten maken voor een iPad ? De ontwikkeling van de tablet PC heeft ook niet bepaald stil gestaan. In de tegenwoordige versie mag je die ook met je vingers bedienen. En de ondersteuning, ook multitouch is gewoon een onderdeel van de nieuwe Windows. De pen en vinger API is een geïntegreerd onderdeel van het .NET framework. Kortom we kunnen het al lang.
Probleem is nu nog de hardware. Maar meerdere fabrikanten, waaronder HP, zijn bezig met multitouch slate netbooks die Windows 7 draaien. Formaat en model iPad. Nog niet op de markt, maar op de Apple iPad moet je ook nog even wachten. Het verschil tussen een iPad en een Windows 7 slate netbook is dus het OS. Hoe groot zijn de verschillen ? In ieder geval een stuk kleiner dan dat tussen de ontwikkelomgevingen voor de beide platforms. Voor mij is de keuze heel snel gemaakt.

