Welche Sprache war „Standard“ für die Apple-Entwicklung vor Objective C?


27

Ich glaube nicht, dass Objective C von Beginn der Apple-Hardwareentwicklung an verwendet wurde. Welche Sprachen verwendeten App-Entwickler für frühere Apple-Computer wie Apple II oder Mac Classic?

Antworten:


35

1985 entwickelte Larry Tesler eine Pascal-Variante für Apple, Object Pascal , die zur Standardsprache für System 6 wurde . Es basiert auf Clascal , einer 1983 Pascal-Variante für die Lisa , die ebenfalls bei Apple entwickelt wurde.

Object Pascal wurde damals in MacApp , Apples primärem Anwendungsframework, verwendet. MacApp 3.0, das 1991 veröffentlicht wurde, wurde in C ++ umgeschrieben und Apple hat die Unterstützung für Object Pascal zugunsten von C ++ eingestellt, als die 68K-Chips von Motorola auf PowerPC umgestellt wurden.

Borlands Object Pascal, das heute als Embarcadero Delphi weiterlebt , begann 1986 mit einer Reihe von Erweiterungen für Turbo Pascal , die Apples Object Pascal ähneln sollten. Niklaus Wirth, Pascals Urheber, wurde sowohl von Apple als auch von Borland zu ihren jeweiligen Varianten befragt.

Umgekehrt war Objective C die Hauptsprache von NeXTSTEP und wurde erst nach dem Kauf von NeXT im Jahr 1996 bei Apple eingeführt.


4
Gute Antwort, aber da es das akzeptierte ist, sollten Sie wirklich sowohl Pascal als auch C erwähnen. Von Anfang an verwendeten die Mac Toolbox und das Betriebssystem Pascal-Aufrufkonventionen und wurden weitgehend mit Pascal dokumentiert. Es gab eine Reihe von Pascal-Compilern; Am beliebtesten war wohl Lightspeed Pascal. Auch C war von Anfang an beliebt, und als Think sowohl Lightspeed C als auch Lightspeed Pascal kaufte, war C wahrscheinlich die "Standard" -Eigenschaft für Indie-Entwickler. Auch Metrowerks C ++ und PowerPlant verdienen eine Erwähnung.
Caleb

1
Diese Antwort scheint eher darauf abzustellen, welche Frameworks für die Entwicklung verwendet wurden, als auf welche Sprachen . Die Frage des OP betraf Objective-C (die Sprache), nicht Cocoa (das Framework), aber die Antwort enthielt einen Absatz über MacApp (das Framework) und wenig Erwähnung von C / C ++ außer der Tatsache, dass MacApp darauf portiert wurde. Eine Menge von Anwendungen wurden in Pascal, C und / oder C ++ direkt gegen den Mac OS Toolbox geschrieben. Andernfalls gute Antwort, erfordert jedoch eine breitere Abdeckung von C / C ++.
morgant

12

Der Apple] [wurde im Allgemeinen entweder mit BASIC- oder 6502-Maschinencode programmiert.

Die Lisa war in der Regel in Pascal programmiert.

Frühe Macintosh-Apps wurden in Pascal geschrieben, zuerst auf dem Lisa und später auf dem Mac selbst.

Think Pascal war eine Zeit lang die beliebteste Entwicklungsumgebung und dann Think C. Think C verfügte über kompakte Objekte, die manchmal als C + - und später als C ++ bezeichnet wurden. Es gab auch eine eigene Klassenbibliothek namens Think Class Library.

MPW von Apple war ebenfalls beliebt, da es Ihnen ermöglichte, Sprachen (im Allgemeinen Pascal, C, C ++ und Assembler) und Skript-Builds ähnlich einer Unix-Umgebung zu mischen, obwohl die Syntax sehr unterschiedlich war.

MacApp wurde in Object Pascal geschrieben und später nach C ++ verschoben. Mit der Umstellung auf PowerPC-Systeme haben viele Programmierer auf Metrowerks CodeWarrior als Entwicklungsumgebung und die C ++ - Klassenbibliothek PowerPlant umgestellt.

Objective-C wurde bei NeXT und dann bei Mac OS X verwendet, obwohl Mac OS X-Anwendungen auch über Apples "Carbon" -API in C / C ++ geschrieben werden konnten. Heutzutage sind die meisten Mac- und iOS-Apps in Cocoa / Obj-C geschrieben, obwohl viele C- oder C ++ - Bibliotheken darunter haben.


1
Das Apple /// wurde ebenfalls in Pascal programmiert (bei ISTR gab es auch eine Variante von BASIC). Ich denke, wir haben das UCSD-pSystem verwendet, aber es gab auch einen Apple Pascal-Compiler.
TMN

Der Apple /// war der einzige Apple-Computer, den ich nie programmiert habe. Ich erinnere mich auch an ein UCSD-pSystem für Apple, aber ich glaube nicht, dass es eine gute Möglichkeit gab, darin geschriebene Apps zu verbreiten.
EricS

8

Die Standardsprache von Mac OS Classic war Pascal. Die API-Dokumentation des Betriebssystems wurde ausschließlich für Pascal geschrieben, und der größte Teil des Betriebssystems, der nicht in handoptimiertem ASM geschrieben wurde, wurde in Pascal geschrieben.

Nach der Umstellung auf die PowerPC-Architektur haben sie das Betriebssystem in C ++ umgeschrieben, was zu einer spürbaren Verringerung der Systemstabilität geführt hat, was für alle, die mit Pascal und C ++ vertraut sind, nicht überraschend sein wird. Die API-Dokumentation wurde jedoch weiterhin hauptsächlich für Pascal geschrieben, bis Steve Jobs zurückkam und versuchte, Objective-C allen in die Kehle zu zwingen.


4
"Begleitet von einer sehr merklichen Abnahme der Systemstabilität, die niemanden überraschen wird, der mit Pascal und C ++ vertraut ist": Nachdem ich mit beiden Sprachen gearbeitet habe, kann ich das leicht glauben. Ich frage mich immer noch manchmal, warum Pascal (oder eine objektorientierte Erweiterung davon) derzeit weniger beliebt ist als C ++: Entwicklungs- und Fehlerbehebungszeiten kosten schließlich Geld. Vielleicht liegt es daran, dass Pascal es nicht geschafft hat, eine starke und kompakte Community aufzubauen, die der von C ++ ähnelt.
Giorgio

3
Pascal schlug meistens fehl, weil es keinen Standard gab (nun, der Standard kam zu spät) und die allgemeine Teilmenge zu restriktiv war (man musste sich auf Erweiterungen verlassen, um eine separate Kompilierung durchzuführen, man musste sich auf Erweiterungen verlassen, um eine Subroutine zu schreiben, die Arrays von akzeptieren kann variierende Länge, musste man sich auf Erweiterungen verlassen, um ... Sie nennen es)
AProgrammer


4
@KeithThompson, leider zitieren viele Leute diesen Aufsatz als Argument gegen jede Pascal-Erweiterung. Es ist, als würde man einen hypothetischen Artikel mit dem Titel "Warum C nicht meine Lieblingsprogrammiersprache ist" zitieren, der hypothetisch über den Mangel an geeigneten Klassen und Vererbung spricht und ihn als Argument gegen C ++ oder Objective C.
acelent

2
@Paulo: Mist, ich würde argumentieren, dass C ++ immer noch keine richtigen Klassen und Vererbungen hat. Wenn es sich bei einem Objekt um einen Werttyp und nicht um einen Referenztyp handelt, haben Sie LSP, das Kernprinzip der Vererbung und des OOP selbst, von Anfang an verletzt. Das ist der Grund, warum alle anderen objektorientierten Hauptsprachen (einschließlich Simula, aus der das Konzept stammt, und Smalltalk, aus dem der Begriff "objektorientierte Programmierung" stammt) dies nicht taten.
Mason Wheeler

2

... und vor dem Mac (Apple II) war der größte Teil der Programmierung in BASIC. (Für alle Varianten von Apple II bis IIgs)

Ich erinnere mich auch an die C ++ - Entwicklung auf System 7 mit Metroworks CodeWarrior - das war (natürlich) nach PowerPC.


4
Nicht wirklich. Die alten Äpfel wurden mit eingebautem BASIC ausgeliefert, wurden aber auch nach damaligen Maßstäben aufgrund ihrer schlechten Leistung und der geringen Unterstützung für Sounds und Grafiken meist als Spielzeugsprache angesehen. Es gab natürlich Ausnahmen, aber die meisten ernsthaften Programmierungen auf den Apple II-Systemen wurden entweder in Pascal oder in ASM durchgeführt.
Mason Wheeler

2
Ah danke. Meine Programmiererfahrung auf dem Apple II war alles BASIC, da ich zum ersten Mal mit dem Programmieren im Allgemeinen vertraut war. (Daher haben wir uns an BASIC und diesen Befehlssatz gehalten.) Ich erinnere mich auch daran, "Logo" gemacht zu haben, aber ich weiß nicht, ob jemand ernsthafte Arbeit damit geleistet hat.
Chad Thompson

UCSD Pascal war die einzige "echte" Sprache, die für Apple verfügbar war. Wenn Ihnen BASIC zu langsam war, sind Sie in der Regel direkt zur Montage übergegangen.
Gort the Robot

Trotz seiner Einschränkungen würde ich nicht bezweifeln, dass "die meisten Programmierungen" damals in BASIC durchgeführt wurden.
Dan04

@ dan04: Soweit ich mich erinnern kann wurde Assembly üblicherweise zum Programmieren von Apple verwendet] [. Der Wechsel in den Überwachungsmodus war eines der ersten Dinge, die Hacker gelernt haben.
Giorgio
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.