Glückwunsch Objective-C

So wie Graham Lee vor mir habe auch ich vergessen, dass die Programmiersprache Objective-C in diesem Januar 30 Jahre alt geworden ist. 1983 haben die beiden Informatiker Brad Cox und Tom Love in einem Artikel eine objektorientierte Variante der Sprache C beschrieben, die später unter dem Namen Objective-C bekannt werden sollte.

Interessant ist, dass sich Brad Cox während der Entwicklung von Objective-C mit Bjarne Stroustrup dem Entwickler des recht bekannten C-Derivats C++, traf. Beide hatten eine sehr unterschiedliche Sichtweise auf eine objektorientierte Version von C; während Stroustrup sich an Simula orientierte, nahm sich Cox Smalltalk als Vorbild. Die Konsequenz von Cox‘ Entscheidung sieht man sehr schnell an der Verwendung der von Smalltalk inspirierten eckigen Klammern, die Objective-C-Neulingen immer ein paar Fragezeichen ins Gesicht zaubern.

Der Grund für Cox und Love, sich der Entwicklung von Objective-C zu verschreiben, lag im Wunsch begründet, die Schwierigkeiten von C beim Entwickeln von wiederverwertbarem Code zu beseitigen, wie Cox in einem Interview selbst erzählt. Anfang der 1980er war das Konzept des objektorientierten Programmierens lediglich in Forschungslaboren im Gespräch und man wollte dem Thema mehr Öffentlichkeit verschaffen.

1988 verhalf der Computerhersteller NeXT der Sprache zu mehr Aufmerksamkeit, als das Unternehmen Objective-C lizensierte, in die GNU Compiler Collection (GCC) integrierte und somit der gesamten Entwicklergemeinde zur Verfügung stellte.

1996 kaufte Apple den damaligen Software-Hersteller NeXT und Objective-C samt Entwicklungsumgebung (IDE) und Frameworks waren im Paket mit dabei. Die IDE hieß damals Project Builder. Sie wurde bei Apple erweitert und 2003 in das heutige Xcode umbenannt.

Objective-C selbst änderte sich erst 2006, als Apple auf der Worldwide Developers Conference (WWDC) weitreichende Änderungen an der Sprache vornahm. Syntax-Vereinfachungen, 64-Bit-Unterstützung und viele weitere Neuerungen hielten Einzug, so dass es legitim war, ab dann von Objective-C 2.0 zu sprechen. Damit stoppte die Pflege aber nicht, denn auch auf der letztjährigen WWDC führte Apple weitere Vereinfachungen ein.

Endgültig im Mainstream angekommen ist die Programmiersprache im Jahr 2011 als sie zur Sprache des Jahres gewählt wurde. Eine Ehre, die der Sprache 2012 gleich noch einmal zuteil wurde.

30 ist ein gutes Alter. Nicht so alt, um verbohrt zu sein, aber auch nicht so jung, um wilde Experimente zu starten. Von daher … Glückwunsch, Objective-C! Auf die kommenden 30 Jahre!

Erfahrungen: Ein Jahr iTunes Match im Einsatz

Seit einem Jahr habe ich nun den Musikdienst iTunes Match abonniert, so dass ich auf einige Erfahrung zurückblicken kann. Mein Fazit in kürzester Form: Ich habe den Dienst gerade um ein weiteres Jahr verlängert.

Was ist iTunes Match?

iTunes Match ist ein Dienst von Apple, der mir für 25 Euro pro Jahr die Möglichkeit gibt, meine gesamte Musikbibliothek in der Cloud zu speichern und jederzeit – Empfang vorausgesetzt – zu hören.
Mir ist so ein Dienst wie Spotify durchaus bekannt, aber ich bin kein Freund des Spotify-Konzepts, denn als Musik-Nerd möchte ich meine Musik nicht mieten – ich möchte, dass sie meine Musik ist; da bin ich konservativ.
Sollte ich iTunes Match eines Tages kündigen, dann gehört die Musik immmer noch mir, ich verliere lediglich den Komfort, immer und überall meine Songs hören zu können.

iTunes-Match-Besonderheiten

Beim erstmaligen Einrichten werden alle in der iTunes-Musikbibliothek enthaltenen Songs mit dem iTunes Music Store abgeglichen. Ist ein Lied aus der eigenen Musikbibliothek auch im iTunes Music Store enthalten, wird das entsprechende Lied nicht hochgeladen, sondern sofort dem eigenen iTunes-Match-Konto zugeschrieben. Ist ein Lied aus der eigenen Musikbibliothek dem iTunes Music Store nicht bekannt und das Lied hat mindestens 128 KBit/s, dann lädt iTunes das Lied in die Cloud und stellt es allen mit der eigenen Apple-ID verknüpften Geräten zur Verfügung.

iTunes-Match-Erfahrungen

Gestartet ist iTunes Match im Dezember 2011. Ich habe mir den Dienst drei Monate aus der Nähe angesehen, bevor ich ihn bestellt habe, denn ich wollte wissen, ob auch alles so funktioniert, wie es angekündigt wurde.
In dem Jahr, seitdem ich dabei bin, gab es keine Probleme. Ich habe Songs über WLAN gehört und auch über 3G und EDGE. Es dauert über EDGE ein bisschen länger, bevor das Lied beginnt, aber auch das war nie ein Problem. Während man die Songs hört, wird im Hintergrund schon das nächste Lied geladen, so dass es keine längeren Pausen zwischen den einzelnen Liedern gibt.
iTunes Match ist allerdings nur für Musik. Andere Medien wie Filme, Hörbücher etc., die sich ja ebenfalls mit iTunes verwalten lassen, stellt der Dienst nicht zur Verfügung. Gerade bei Hörbüchern ist das schade, denn dabei handelt es sich ja ebenfalls um Audio und somit um ein Medium, das keine allzugroße Datenmenge beansprucht.
Eine praktische Sache: Ich teile mir mit meiner Frau die Apple-ID. Auf diese Weise haben wir gemeinsam und gleichzeitig Zugriff auf eine gigantische Musiksammlung.

Ein paar Zahlen

  • Kosten: 24,99 Euro im Jahr
  • Qualität: 256 KBit/s AAC ohne DRM
  • Anzahl Lieder: Maximal 25000 Songs – im iTunes Store gekaufte zählen dabei nicht mit
  • Anzahl Lieder (iTunes Music Store): 26 Millionen
  • Anzahl Geräte: Maximal zehn Geräte, darunter der eigene Rechner (Mac oder Win) sowie iPhone, iPod touch, iPad und Apple TV

Ein paar Tipps:

  • Bevor ihr iTunes Match einsetzt, sichert eure Musikbibliothek auf eine externe Festplatte, denn sicher ist sicher.
  • Wenn ihr iTunes Match auf eurem iOS-Gerät aktiviert, dann wird die auf dem iPhone, iPad oder iPod touch vorhandene Musik gelöscht. Man wird gewarnt, bevor das passiert und es ist auch nicht schlimm, denn die Musik ist ja in der Cloud, aber befremdlich ist es im ersten Augenblick schon.
  • Unter iOS könnt ihr einstellen, ob iTunes Match auch zur Verfügung stehen soll, wenn ihr ohne WLAN unterwegs seid. Hat man also einen Vertrag mit einem geringeren Datenvolumen, lohnt es sich, in den iOS-Einstellungen das Laden über das Telefonnetzwerk zu unterbinden.

3 Tipps für den iOS- und OS-X-Programmiereinstieg

Inzwischen wurde ich mehrmals gefragt, wie man denn in die Programmierung von iOS einsteigen könnte. Dazu möchte ich drei Einstiegsmöglichkeiten nennen: Stanford-Vorlesung, RyPress und das OpenBook Apps programmieren für iPhone und iPad aus dem Verlag Galileo Press.

Vor über zwei Jahren hatte ich an dieser Stelle auf diverse Einstiegspunkte hingewiesen (Teil 1, Teil 2 und Teil 3), insofern ist dieser Eintrag eine Aktualisierung und Präzisierung des Damaligen.

Apps für iPhone, iPod touch, iPad und auch den Mac programmiert man in einer Sprache, die Objective-C heißt. Seit mehreren Jahren steigt die Popularität der Sprache stetig an, so dass Objective-C 2011 und 2012 zur Programmiersprache des Jahres gewählt wurde. Ich verstehe den Respekt, den sogar manch erfahrene Programmiererin, manch erfahrener Programmierer vor dieser Sprache haben, denn die berüchtigten eckigen Klammern, „@“-Zeichen und Doppelpunkte lassen Objective-C recht kryptisch erscheinen. Hat man sich aber einmal darauf eingelassen und gibt der Syntax eine Chance, merkt man, wie lesbar im Vergleich zu Java (PDF: Objective-C and Java: a Comparison) oder C++ der Code ist, den Objective-C zum Schreiben einlädt, aber das mag auch ein Effekt der Gewöhnung sein. 🙂

Technische Voraussetzungen:

Ihr braucht einen Mac, der mindestens mit OS X 10.7 läuft. Ich empfehle als günstige Anlaufstelle für einen aktuellen Mac immer Apples Seite mit den generalüberholten Macs, denn dort lassen sich oftmals bis zu 15 Prozent vom Neupreis sparen. Als System finde ich das aktuelle OS X 10.8 besser als den Vorgänger OS X 10.7.
Als nächstes meldet ihr euch kostenlos unter developer.apple.com als Entwickler an und erhaltet so einen Zugang zu einem gigantischen Fundus an Wissen und Lernmaterialien. Hier gibt es häufig Missverständnisse: Der Zugang zu Apples Entwicklerseite mit all den Videos und der Dokumentation ist komplett kostenlos. Erst wenn ihr Apps im iOS- oder Mac-App-Store anbieten möchtet, kostet das 79 Euro im Jahr.
Zu guter Letzt ladet ihr euch die kostenlose Entwicklungsumgebung Xcode aus dem Mac App Store herunter.

Empfehlung 1: Stanford-Vorlesung

Dozent Paul Hegarty lehrt im Winter 2013 an der US-Amerikanischen Universität Stanford die Programmierung von iOS-Apps für iOS 6. Die Vorlesung ist auf Englisch, aber Hegarty spricht ein sehr deutlich und gut verständlich; außerdem unterstützen die Folien beim Verständnis des Erklärten. Die Vorlesungsvideos und Übungsmaterialien lassen sich kostenlos über iTunes abrufen.
Neu in diesem Semester ist die explizite Aufforderung zur Zusammenarbeit jenseits der Stanford-Studierenden. Mithilfe der Lernplattform piazza.com kann man nach erfolgter Registrierung Übungsgruppen bilden, sich gegenseitig Fragen stellen und Aufgaben gemeinsam lösen.
Mir haben seinerzeit die Vorlesungsvideos und die dazu eingereichten Übungsbögen sehr geholfen, erste Schritte in Objective-C zu wagen. Einige Vorkenntnisse sollte man aber mitbringen, denn es gibt keine grundlegende Einführung ins Programmieren, so dass die Kenntnis über Variablen, Schleifen, Bedingungen und auch objektorientiertes Programmieren vorausgesetzt werden.

Empfehlung 2: RyPress-Tutorial

Relativ neu ist das englischsprachige Tutorial auf rypress.com, das die Sprache Objective-C von Grund auf erklärt. Das Ganze ist sehr knapp gehalten, so dass auch hier die bereits in der ersten Empfehlung genannten Vorkenntnisse vorausgesetzt werden. Als Referenz für etwas erfahrenere Programmiererinnen und Programmierer ist das Ganze aber sehr praktisch.

Empfehlung 3: Apps programmieren für iPhone und iPad

Als deutschsprachigen Einstieg empfehle ich das OpenBook Apps programmieren für iPhone und iPad aus dem Verlag Galileo Press. Dort erhält man einen sehr ausführlichen Überblick der Sprache und der zugrundeliegenden Konzepte. Das Lernen erfolgt an nachvollziehbaren Beispielen.

Bonus-Empfehlung: OS X Entwicklerforum

One more thing … was aber tun, wenn man mit dem Programmieren angefangen hat, an einer Stelle festhängt und niemand zum Fragen in der Nähe ist? Dann auf zur Web-Seite OS X Entwicklerforum. Dieses deutschsprachige Forum hat freundliche und kompetente Teilnehmerinnen und Teilnehmer, die hilfsbereit zur Seite stehen, wenn man nett fragt.

Dell verlässt die NASDAQ [Update]

Februar 2013: Für 24,4 Milliarden US-Dollar möchte eine Gruppe von Investoren rund um den Gründer Michael Dell die Aktien der nach ihm benannten Unternehmens aufkaufen. Auf diese Weise wird Dell wieder eine Privatfirma und ist nicht mehr an der US-amerikanischen Technologie-Börse NASDAQ gelistet.

Januar 2006: Apple-CEO Steve Jobs stellt in einer E-Mail an alle Mitarbeiter fest, dass Michael Dell seine Fähigkeiten als Seher überschätzt hat. Apple hat gerade mit einem Börsenwert von 72,13 Milliarden US-Dollar den Wert von Dell mit 71,97 Milliarden US-Dollar übertroffen.

Oktober 1997: Steve Jobs ist erst vor kurzem als Interim-CEO bei Apple angetreten, als Michael Dell bei einer Messe gefragt wird, was man tun könne, um den drohenden Bankrott von Apple abzuwenden. Recht arrogant und selbstherrlich antwortet Dell, dass er Apple dichtmachen und den Aktionären ihr Geld zurückgeben würde.

Betrachtet man die Ereignisse in dieser Liste liegt es nahe, mit Schadenfreude zu reagieren, aber das relativierte Jobs bereits in seiner E-Mail im Januar 2006: „Stocks go up and down, and things may be different tomorrow, but I thought it was worth a moment of reflection today.

Update: Es gab Leute, die sich an das 1997 geäußerte Dell-Zitat erinnert und Dell-Verantwortliche angesprochen haben, aber es kam wie erwartet nichts Sinnvolles dabei heraus.

Font-Empfehlungen zum Programmieren

Beim Programmieren bietet sich ein nichtproportionaler Schrifttyp an. Nichtproportional bedeutet, dass jedes Zeichen der Schriftart die gleiche Breite hat – das „i“ nimmt also genauso viel Platz wie das „m“ ein. Die wohl bekannteste derartige Schriftart ist wahrscheinlich Courier.

Entwicklerinnen und Entwickler setzen diese Art Fonts gerne ein, weil sich der Code recht einfach durch Leerzeichen formatieren lässt. Durch die klaren Einrückungen bekommt man mit nur einem Blick ein Gefühl dafür, wie das Geschriebene strukturiert ist und welche Code-Blöcke zusammen gehören.

Es gibt viele Fonts, die sich für Entwicklerinnen und Entwickler bewährt haben. Auf dem Mac sind das beispielsweise Monaco und Menlo.

An dieser Stelle möchte ich vier Schriftarten für das Programmieren empfehlen, von denen ich weiß, dass sie vielfach zum Einsatz kommen. Die ersten drei sind frei verfügbar, der vierte Font ist proprietär:
1. Einer der beliebtesten Fonts ist Inconsolata. Die Schriftart wird für ihre Lesbarkeit von vielen gelobt.
2. Recht neu ist Courier Prime. Auch wenn der Gestalter explizit Drehbuchschreiberinnen und Schreiber beim Erstellen des Fonts im Sinn hatte, zeigt sich die junge Schriftart auch beim Coden von einer guten Seite.
3. Ich setze fürs Programmieren Adobes Source Sans Pro ein. Laden lässt sich die Schrift bei sourceforge.net.
4. Hat man Microsoft Office installiert, ist der Schrifttyp Consolas eine unbedingte Empfehlung. Der Font liegt sowohl der Windows- als auch der Mac-Version bei.