Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

Popularität von Objective-C steigt

Nachdem TIOBE-Index, der aus verschiedenen Quellen wie zum Beispiel der Anzahl der Entwickler, angebotenen Kursen und Programmbestand hergeleitet wird, ist Objective-C nun auf den dritten Platz der meist genutzten Programmiersprachen aufgestiegen. Nach wie vor am meisten wird C genutzt (18,3%), dicht gefolgt von Java (16,1%, Vorjahr 19,2%). Objective-C wird von 9,3% der Entwickler genutzt und löst C++ vom dritten Platz ab. C# von Microsoft wird von 6,67% der Entwickler verwendet, Visual Basic .NET von 0,92%. Hauptsächlich durch die Popularität von iOS konnte Objective-C seit 2009 den Marktanteil stark steigern. Anfang 2009 nutzten noch weniger als 0,1% der Entwickler Objetive-C, alleine in den letzten zwölf Monaten stieg der Anteil von 5,18% auf 9,3%.

Objective-C entstand in den frühen 80ern bei der Firma Stepstone und wurde von Brad Cox und Tom Love entwickelt. Die beiden Programmierer waren von Smalltalk, einer von Xerox entwickelten Sprache, fasziniert und wollten etwas ähnliches entwickeln. Objective-C wurde von Anfang an als Erweiterung von C entwickelt, so dass auch bestehender C-Code weitergenutzt werden konnte. Im Jahre 1988 lizenzierte die von Steve Jobs nach dem Rauswurf bei Apple gegründete Firma NeXT die Programmiersprache von Stepstone. Als Apple NeXT im Jahre 1996 übernahm löste das Betriebssystem NeXTStep unter dem neuen Namen Mac OS X das bestehende Mac OS ab. NeXTStep setzte als primäre Programmiersprache Objective-C ein. Dies war für viele Entwickler der erste Kontakt mit Objective-C. Zwar bot Apple mit dem Carbon-Framework eine Möglichkeit an, auch neue Programme in C/C++ für Mac OS X zu entwickeln, aber häufig waren bestimmte Systemfunktionen nur aus den Objective-C-Frameworks zugänglich.

Weiterführende Links:

Kommentare

Mendel Kucharzeck
Mendel Kucharzeck06.07.12 11:09
Mein Erstkontakt mit ObjC war etwas befremdlich, die eckigen Klammern beim Senden von Messages (also [objekt message:parameter]) waren schon komisch am anfang. Hab aber ObjC sehr schätzen gelernt, wenn man sich eingewöhnt hat kann man sehr effizient programmieren.
0
cubecube06.07.12 11:11
Die Eckigen Klammern sind wohl die größte Sache an die man sich am Anfang gewöhnen muss...
Ich kenne die drei meistbenutzten Programmiersprachen, kann aber mit keiner richtig gut programmieren.
0
Mendel Kucharzeck
Mendel Kucharzeck06.07.12 11:22
cubecube
Für Entwickler, die von Java oder C# kommen ist es auch ein Problem, dass man sich in Objective-C um das Speichermanagement selbst kümmern muss. Klar, es gab den Garbage Collector (lief aber nur auf dem Mac, nicht iOS und war GRAUSAM) und jetzt ARC, aber da gibt es doch immer wieder probleme...
0
Tic06.07.12 12:21
Mendel
richtig, aber bei C & C++ hast du genau das selbe Problem.

Finde es schon ganz gut, dass Programmierer wieder Rücksicht auf Memory nehmen müssen - auch wenn es in einigen (seltenen) Fällen nervig sein kann.
0
nd7006.07.12 12:22
Ich empfinde Objective-C, ähnlich wie C und C++, als eine ziemlich veraltete Sprache, deren Sourcecodes außerdem furchtbar anzuschauen ist.

Sprachen wie Java und C# sind doch moderner, der Source Code ist leichter zu verstehen und zu warten, und das Speichermanagement ist erheblich vereinfacht. Man kann sich in diesen Sprachen viel mehr auf das Problem konzentrieren! Ich programmiere ehrlich gesagt lieber für Android oder für Windows via .NET.

Apple hätte mit der iPhone/iPad Plattform noch erheblich erfolgreicher sein können, wenn sie auf eine modernere und vor allem bekanntere Programmiersprache gesetzt hätten...
0
BIC06.07.12 12:38
Noch erfolgreicher??!
Sind sie nicht schon der Branchenprimus?
0
Gerhard Uhlhorn06.07.12 12:40
nd70: Der war gut!
0
Mendel Kucharzeck
Mendel Kucharzeck06.07.12 12:52
nd70
Ich glaube das ist einfach auch Gewöhnungssache. Es gibt C-Programme, die sehr gut strukturiert sind und einfach zu verstehen sind. Und es gibt C#-Programme, bei denen instanzmethoden nur x() oder do() heißen...

Bei ObjC kann man positiv anmerken, dass es relativ schlank ist von der Sprachsyntax her (Ok, das ändert Apple langsam, angefangen mit Properties...).
0
Navier-Stokes
Navier-Stokes06.07.12 13:01
nd70
Manche Sachen, häufig in der Numerik/Simulation, lassen sich am einfachsten effizient in so einer "veralteten" Sprache wie C/C++ oder Fortran formulieren.
Computer Science is no more about computers than astronomy is about telescopes. (Edsger W. Dijkstra)
0
LoCal
LoCal06.07.12 13:09
nd70

Du erzählst Unsinn.

Das was Du an Java "modern" findest ist die GarbageCollection und die ist ziemlicher Müll, denn (und gerade in Java) sie kostet sehr viel Performance und ist unbrechenbar wann sie loslegt.
Ich empfinde Objective-C, ähnlich wie C und C++, als eine ziemlich veraltete Sprache, deren Sourcecodes außerdem furchtbar anzuschauen ist.

Von der Code-Struktur ObjC mit C/C++ zu vergleichen disqualifiziert dich schonmal komplett und es gibt nur wenige Sprachen (Java,C# gehören nicht dazu) die so selbstkommentierend sind wie ObjC.
Ich hab zwar keine Lösung, doch ich bewundere dein Problem
0
Navier-Stokes
Navier-Stokes06.07.12 13:11
Den meisten Kiddies, die im Leben nur mit so'm abstrakten High-Level-Zeug wie Java und .net Frameworks in Kontakt treten, und für die Programmieren nicht viel mehr als Aufrufen von API-Calls ist, fehlt oft das grundlegende Verständnis für das, was unten drunter passiert.
Habs schon oft erlebt, dass man durch marginale Änderungen und geschicktes Umsortieren von Zeilen im Source-Code die Programmlogik zwar beibehält, aber das Programm dadurch mehr als doppelt so schnell läuft oder mit signifikant weniger Speicher auskommt.
Computer Science is no more about computers than astronomy is about telescopes. (Edsger W. Dijkstra)
0
Navier-Stokes
Navier-Stokes06.07.12 13:16
Manchmal lohnt es sich, falls möglich, High-level-zugriffe über virtuelle Memberfunktionen in C++ durch eine C-Variante zu ersetzen. Scheiß drauf, wenn der Code dadurch scheinbar länger wird.
Computer Science is no more about computers than astronomy is about telescopes. (Edsger W. Dijkstra)
0
Simoon
Simoon06.07.12 14:53
Bei mir war der Erstkontakt mit ObjC eigentlich ganz angenehm: Mit starkem Background in C und Smalltalk hat es sich gleich "natürlich" angefühlt...
0
Tekl06.07.12 16:50
Garbage Collection war schon am C64-Basic nervig.
0
chessboard
chessboard06.07.12 18:04
Tekl
Das gesamte Basic war ja nervig und wurde von denen, die sich besser auskannten nur noch für Data-Wüsten mit Poke-Schleife missbraucht
0
sonnendeck06.07.12 18:50
Wunder mich nicht, seit Oracle mit ihr komischen java Klage gegen google zwar gescheitert sind. Aber alleine der Versuch hat Anscheint dazu geführt das ein ziemlicher Anteil an Entwickler abgewandert ist.
0
eliot06.07.12 19:19
ich programmiere vornehmlich in C, C++, Objective C und Java und nur kann sagen: Je nach Problemstellung und Plattform entscheide ich mich
für eine Sprache oder gerne auch für eine mehr oder weniger bunte Mischung.
Ich muss aber zugeben, dass mir Objective C 2.0 mittlerweile am Liebsten ist, da die Apple Api einfach klasse ist.
Java ist mir meist zu unflexibel und fett (gc mit stw ist auch nicht doll).
0
sumpfmonsterjun06.07.12 21:53
[rant]
Alle die über Objective-C jammern, haben sich schlicht zu wenig/überhaupt nicht damit beschäftigt.

Und zum Speichermanagement: selbst ohne ARC läuft das in 99% der Fälle automatisch, wenn sich doch bitte bitte einfach an Apples Doku und die handvoll Regeln zum Speichermanagement hält...

Es gilt also wie immer Dieter Nuhr: "Wenn man keine Ahnung hat..."
[/rant]
0
MacMark
MacMark07.07.12 07:25
Objective-C und Cocoa erfordern definitiv Umdenken und Dazulernen, wenn man von Java oder C++ und dergleichen kommt. Es läßt sich super elegant und effizient mit Objective-C und Cocoa programmieren. Kritik kommt meistens an den Stellen auf, an denen der Betrachter den Sinn und Nutzen noch nicht erkannt hat und wobei es sich tatsächlich oft um Vorteile handelt, die er nicht zu nutzen weiß.
@macmark_de
0
jonny91
jonny9107.07.12 20:08
Als ich damals mit einem reinen Java-Background mit ObjC angefangen habe, war ich total überfordert. Ich fand die Syntax -- wie schon merkfach angemerkt -- unintuitiv und das Memory Management hat mir Kopfschmerzen gemacht. Doch nach und nach hab ich ObjC+Cocoa lieben gelernt und das sukzessive mit C-Grundlagen unterfüttert. Heute arbeite ich eigentlich nur noch mit C, C++ & Python, da ich auf Cross-Platform und hohe Effizienz angewiesen bin (Theoretische Physik, Simulationen).
How much wood would a woodchuck chuck if a woodchuck could chuck wood?
0
dannyinabox
dannyinabox07.07.12 20:58
Ich mag Python.
ObjC hatte ich immer Probleme mit. Also eigentlich ging / würde es schon gehen aber ich habe in den letzten Jahren eine Aversion gegen Apple entwickelt. Da leidet wohl auch die Programmiersprache darunter.

Die Entwicklungsumgebung die einem Apple zur Verfügung stellt, finde ich zwar gut aber die ganze Zertifiziererei finde ich doof.
0
LoCal
LoCal08.07.12 11:06
jonny91
Ich fand die Syntax -- wie schon merkfach angemerkt -- unintuitiv und das Memory Management hat mir Kopfschmerzen gemacht.

Sag lieber, dass die Syntax für jemanden, der von Java kommt ungewohnt ist (Ich habe selbst jahrelang in Java programmiert bevor ich mit ObjC mein Geld verdienen konnte).
Aber unintuitiv ist ObjC sicher nicht - wie ich schon oben geschrieben habe - ObjC gehört zu den wenigen Sprachen die sich selbstkommentieren (zumindest wenn der Entwickler seine Arbeit richtig macht ) und ist nicht zuletzt deshalb eher intuitiv.

dannyinabox
Die Entwicklungsumgebung die einem Apple zur Verfügung stellt, finde ich zwar gut aber die ganze Zertifiziererei finde ich doof.

Zertifizieren musst Du aber nur wenn Du was in die AppStore schicken willst bzw. ab ML wenn Du signierte Applicationen verteilen willst.
Ich hab zwar keine Lösung, doch ich bewundere dein Problem
0

Kommentieren

Sie müssen sich einloggen, um die News kommentieren zu können.