News: Skeptische Betrachtungen zu C++ und Objective C



  • HELPVISTAWIN7 schrieb:

    Skeptische Betrachtungen zu C++ und Objective C

    Wie seht Ihr das?

    Objective-C vereint die negativen Aspekte von C und Smalltalk in sich. Es ist definitiv kein Ersatz für C++, da man mit Objective-C nicht in der Lage ist LowLevel zu programmieren. Wenn man dies tun will ist man auf reines C limitiert und braucht Objective-C erst gar nicht. Die OOP-Fähigkeiten von Objective-C sind eher auf höherer Ebene angesiedelt. Weshalb man sich dabei aber mit C herumärgern muß, daß kann niemand glaubhaft begründen. Früher gab es mal den Grund, daß Bytecode Programme (Smalltalk) nicht schnell genug waren. Mittlerweile ist das kein Thema mehr. Objective-C verhindert durch sein Design (C-Anteil) Rapid Prototyping, aber genau dafür wäre es dank der OOP-Features prädestiniert. Schnell sind Objective-C Programme aber auch nicht, da immer dynamisches Dispatching benutzt wird. Wenn man schnelle Programme will, muß man wieder reines C programmieren.

    Diese Sprache ist weder Fisch noch Fleisch. Wer eine OO Sprache mit dynamik Dispatching will sollte Smalltalk, Ruby oder Python oder eine andere Sprache wählen (z.B. C# auf Windows). Wer eine Sprache für schnelle compilierte Programme will, sollte sich was aus der folgenden Liste aussuchen: Ada(für sichere Programme), C, C++, Fortran

    Auf MacOS X (und iOS fürs iPhone) ist man zu Objective-C mehr oder minder gezwungen, das ist auch der einzige Grund es zu nutzen.



  • Wie seht Ihr das?

    Bullshit. Nach so viel kopiertem Text ist das Frage? Troll!



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ (auch C++0x) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ein objektorientiertes System im Sinne des Erfinders entsteht so jedenfalls nicht.

    C und Simula (-> C++) sind zwei Algol-Abkömmlinge, also ideell nicht unendlich weit voneinander entfernt. Aber C und Smalltalk ... 😮



  • Die Verbreitung der jeweiligen Sprache hat weniger mit Erscheinungsdatum als mit Einsatzmöglichkeiten zu tun.

    Apple als Nischenprodukt bringt eine eigene Sprache für sein Produkt raus, andere OS Hersteller versuchen Kompatibilität zu vorhandenen und genutzten Sprachen herzustelllen.

    MS z.b. hat Apis für ASM, Pascal, C und auch C++, Linux ist da auch glaub ziemlich breit aufgestellt.

    Ja und mit objektive C kann man Programme für den Mac schreiben. Apple hat aber einen geringen Marktanteil, der beschränkt sich auf Creative Berufe und Lifestyle Produkte. Im Serverumfeld sowie in Firmennetzwerken ist Mac fast gar nicht vertreten.

    Selbst wenn objetive C x mal besser wäre ( mal hypothetisch betrachtet ) ändert sich die Verbreitung nicht ohne das sich die Marktanteile von Apple verändern. Zumal einige Frameworks wie z.b. Qt auch mit C++ gut geeignet sind um Programme für den Mac zu schreiben.



  • da ist was dran. Programmiersprachen zündeten in der Popularität in der Vergangenheit oftmals
    entweder,
    wenn sie auf einer Plattform Huckepack zum Erfolg reiten (C mit *n*x, C++ mit win, java + Js mit dem web, obj C mit Mac ...),
    oder
    zusammen mit einem neuen Einsatzgebiet (C mit *n*x, Tcl mit Tk, Ruby mit RoR ...)



  • Der Artikel liest sich meiner Meinung nach wie ein Witz. Die Formulierungen wirken sehr merkwürdig, als sei das ganze in Eile oder automatisiert aus dem Englischen übersetzt worden. Die Fakten und die Darstellung ist einfach unhaltbar. zB der Teil über OCaml (was keiner mehr Objective Caml nennt, weil das OO-System Schrott ist und daher wenig benutzt wird) oder der Teil mit den Kerneln. Gerade Objective C bietet doch keine Vorteile wenn es um das vermeiden von typischen C-Fehlern geht, weil das meiste im Endeffekt ja doch C ist. Bei C++ kann man da immerhin viel vermeiden und sauberere Klassen nehmen. Auch das sie den Witz mit dem IEEE-Interview als ernst darstellen.

    Dean schrieb:

    Apple als Nischenprodukt bringt eine eigene Sprache für sein Produkt raus, andere OS Hersteller versuchen Kompatibilität zu vorhandenen und genutzten Sprachen herzustelllen.

    Objective C stammt nicht von Apple!

    Dean schrieb:

    MS z.b. hat Apis für ASM, Pascal, C und auch C++, Linux ist da auch glaub ziemlich breit aufgestellt.

    Da Objective C abwärtskompatibel zu C ist, ist das ganze kein Problem. Bei Linux gibt es zB GNUStep was zum Teil kompatibel ist mit Cocoa.

    edit: oh der Artikel ist wirklich aus dem Englischen übersetzt: http://www.techrepublic.com/blog/programming-and-development/a-skeptics-history-of-c-/3379



  • Dean schrieb:

    Zumal einige Frameworks wie z.b. Qt auch mit C++ gut geeignet sind um Programme für den Mac zu schreiben.

    Ich empfehle die Plattform, die man so beurteilt, auch mal länger (1/2 Jahr oder so) als sein Hauptcomputer innerhalb nicht zuweit zurückliegender Vergangenheit benutzt haben, bevor man so Behauptungen von sich gibt. Alternativ zumindest mal die Apple Human Interface Guidelines durcharbeiten.

    Ich halte das für Kompletten Schwachsinn. Qt-Programme fühlen sich auf dem Mac einfach nur Fremd an. Qt's Userinterfacekonzept kommt von Windows. Und der Unterschied zwischen Windows und Mac im Userinterface ist sehr groß (erheblich größer als Windows/Gnome oder Windows/KDE).

    (Ich verstehe sowieso nicht wieso so viel über den Mac geredet wird. Hat maximal einen Marktanteil von 5% wo Windows >90% hat und (gefühlt) niemand (in diesem Forum) hat wirklich Erfahrung in damit.) 🙄



  • !rr!rr_. schrieb:

    Ein objektorientiertes System im Sinne des Erfinders entsteht so jedenfalls nicht.

    C und Simula (-> C++) sind zwei Algol-Abkömmlinge, also ideell nicht unendlich weit voneinander entfernt. Aber C und Smalltalk ... 😮

    Tja, aehm es gibt viele Objektsysteme. Beispielsweise das prototypenbasierte von Javascript, CLOS, ... die sind alle nicht im Sine des Erfinders.



  • der Erfinder hat sich ja geäußert:

    OOP to me means only messaging, local retention and protection and
    hiding of state-process, and extreme late-binding of all things. It
    can be done in Smalltalk and in LISP.

    Quelle: http://www.purl.org/stefan_ram/pub/doc_kay_oop_en

    ein prototypenbasiertes Objektsystem mit object-message passing und late binding ist z.B. Self.

    http://de.wikipedia.org/wiki/Self_(Programmiersprache)


Anmelden zum Antworten