Quale linguaggio era "standard" per lo sviluppo di Apple prima dell'obiettivo C?


27

Non credo che l'Obiettivo C fosse in uso fin dall'inizio dello sviluppo dell'hardware Apple. Quali lingue utilizzavano gli sviluppatori di app per i precedenti computer Apple, come Apple II o Mac Classic?

Risposte:


35

Nel 1985 Larry Tesler sviluppò un sapore Pascal per Apple, Object Pascal , che divenne il linguaggio standard per System 6 . Si basava su Clascal , una variante Pascal del 1983 per Lisa , anch'essa sviluppata presso Apple.

All'epoca Object Pascal veniva utilizzato in MacApp , il framework applicativo principale di Apple. MacApp 3.0, rilasciato nel 1991, è stato riscritto in C ++ e Apple ha successivamente abbandonato il supporto per Object Pascal a favore di C ++ quando sono passati dai chip Motorola 68K a PowerPC.

L'Object Pascal di Borland, che oggi vive nel ruolo di Embarcadero Delphi , è iniziato nel 1986 come una serie di estensioni di Turbo Pascal , che avrebbero dovuto essere simili all'Oggetto Pascal di Apple. Niklaus Wirth, il creatore di Pascal, è stato consultato sia da Apple che da Borland per le rispettive varianti.

Al contrario, Objective C era la lingua principale di NeXTSTEP e fu introdotto in Apple solo dopo aver acquistato NeXT nel 1996.


4
Buona risposta, ma poiché è quella accettata dovresti davvero aggiungere menzioni sia a Pascal che a C. Fin dall'inizio, Mac Toolbox e il sistema operativo hanno usato le convenzioni di chiamata Pascal ed è stato ampiamente documentato con Pascal. C'erano un certo numero di compilatori Pascal disponibili; il più popolare fu probabilmente Lightspeed Pascal. C era anche popolare sin dall'inizio, e quando Think acquistò sia Lightspeed C che Lightspeed Pascal, C era probabilmente la scelta "standard" per gli sviluppatori indipendenti. Inoltre, i metrowerks C ++ e PowerPlant meritano una menzione.
Caleb,

1
Questa risposta sembra orientarsi maggiormente verso quali framework sono stati utilizzati per lo sviluppo rispetto a quali lingue . La domanda del PO riguardava Objective-C (il linguaggio), non Cocoa (il framework), ma la risposta ha un paragrafo su MacApp (il framework) e poca menzione di C / C ++ oltre al fatto che MacApp è stato portato su di esso. Un sacco di applicazioni sono stati scritti direttamente contro il Mac OS Toolbox in Pascal, C, e / o C ++. Buona risposta altrimenti, ma necessita di una più ampia copertura di C / C ++.
Morgant

12

La Apple] [era generalmente programmata in codice macchina BASIC o 6502.

La Lisa era generalmente programmata in Pascal.

Le prime app per Macintosh sono state scritte in Pascal, prima su Lisa e poi sul Mac stesso.

Pensa che Pascal è stato l'ambiente di sviluppo più popolare per un po 'di tempo e poi pensa C. Pensa che C avesse oggetti leggeri, a volte indicati come C +, e successivamente C ++. Aveva anche una propria libreria di classi chiamata, abbastanza appropriatamente, la Think Class Library.

MPW di Apple era anche popolare poiché ti consentiva di mescolare linguaggi (generalmente Pascal, C, C ++ e assemblatore) e build di script simili a un ambiente unix, sebbene la sintassi fosse molto diversa.

MacApp è stato scritto in Object Pascal e, come qualcuno ha detto, in seguito si è spostato in C ++. Con il passaggio ai sistemi PowerPC, molti programmatori sono passati a Metrowerks CodeWarrior come ambiente di sviluppo e alla sua libreria di classi C ++, PowerPlant.

Objective-C è stato utilizzato su NeXT e poi per Mac OS X, anche se le applicazioni Mac OS X potevano anche essere scritte in C / C ++ tramite l'API "Carbon" di Apple. Oggigiorno la maggior parte delle app per Mac e iOS sono scritte in Cocoa / Obj-C, anche se molte hanno librerie C o C ++ sottostanti.


1
Anche Apple /// è stato programmato in Pascal (ISTR era disponibile anche una variante di BASIC). Penso che abbiamo usato UCSD pSystem, ma c'era anche un compilatore Apple Pascal.
TMN,

L'Apple /// era l'unico computer Apple che non avevo mai programmato. Ricordo un UCSD pSystem per Apple] [anche, ma non credo che ci fosse un buon modo per distribuire le app scritte in esso.
EricS

8

Il linguaggio standard di Mac OS Classic era Pascal. La documentazione dell'API del sistema operativo è stata tutta scritta per Pascal e tutto il sistema operativo non scritto in ASM ottimizzato a mano è stato scritto in Pascal.

Dopo essere passati all'architettura PowerPC, hanno riscritto il sistema operativo in C ++, accompagnato da una notevole riduzione della stabilità del sistema, che non sorprende nessuno che abbia familiarità con Pascal e C ++. La documentazione dell'API ha continuato a essere scritta principalmente per Pascal, tuttavia, fino a quando Steve Jobs è tornato e ha iniziato a provare a forzare Objective-C alla gola di tutti.


4
"accompagnato da una notevole riduzione della stabilità del sistema, che non sorprenderà nessuno che abbia familiarità con Pascal e C ++": avendo lavorato con entrambe le lingue posso facilmente crederci. A volte mi chiedo ancora perché Pascal (o qualsiasi sua estensione orientata agli oggetti) sia attualmente meno popolare del C ++: dopo tutto, i tempi di sviluppo e correzione dei bug costano denaro. Forse è perché Pascal non è riuscito a costruire una comunità forte e compatta simile a quella del C ++.
Giorgio,

3
Pascal fallì soprattutto perché non c'era uno standard (beh lo standard arrivava troppo tardi) e il sottoinsieme comune era troppo restrittivo (dovevi fare affidamento su estensioni per fare una compilazione separata, dovevi fare affidamento su estensioni per scrivere una subroutine in grado di accettare array di di lunghezza variabile, dovevi fare affidamento su estensioni per ... il tuo nome)
AProgrammer


4
@KeithThompson, sfortunatamente, molte persone citano quel saggio come argomento contro qualsiasi estensione Pascal. È come citare un ipotetico articolo chiamato "Perché C non è il mio linguaggio di programmazione preferito", che ipoteticamente parla della mancanza di classi e eredità adeguate e lo usa come argomento contro C ++ o Obiettivo C.
acelent

2
@Paulo: Cavolo, direi che il C ++ non ha ancora classi ed eredità adeguate. Se un oggetto è un tipo di valore, non un tipo di riferimento, hai rotto LSP, il principio fondamentale dell'eredità e della stessa OOP, fin dall'inizio. Ecco perché tutti gli altri principali linguaggi orientati agli oggetti (incluso Simula, che ha originato il concetto, e Smalltalk, che ha originato il termine "programmazione orientata agli oggetti) non lo hanno fatto in questo modo.
Mason Wheeler,

2

... e prima del Mac (Apple II), la maggior parte della programmazione era in BASIC. (Per tutte le varianti di Apple II agli IIgs)

Ricordo anche di aver fatto lo sviluppo del C ++ su System 7 usando Metroworks CodeWarrior - questo era (ovviamente) post PowerPC.


4
Non proprio. Le vecchie mele venivano fornite con BASIC integrato, ma anche per gli standard del giorno era considerato principalmente un linguaggio giocattolo a causa delle sue scarse prestazioni e del supporto minimo per suoni e grafica. Ci sono state eccezioni, ovviamente, ma la programmazione più seria sui sistemi Apple II è stata fatta in Pascal o ASM.
Mason Wheeler,

2
Ah - grazie. La mia esperienza di programmazione su Apple II è stata tutta BASIC in quanto è stata la mia prima esposizione alla programmazione in generale. (Quindi abbiamo bloccato con BASIC e quell'insieme di istruzioni.). Ricordo anche di aver fatto "Logo", ma non so se qualcuno ci abbia lavorato seriamente.
Chad Thompson,

UCSD Pascal era l'unica lingua "reale" disponibile per la Apple] [che ricordo, ma poche o nessuna applicazione lo usava. Se BASIC era troppo lento per te, in genere andavi direttamente al montaggio.
Gort il robot

Nonostante i suoi limiti, non dubiterei che "la maggior parte della programmazione" di quei giorni fosse fatta in BASIC.
dan04,

@ dan04: per quanto ricordo l'assembly era comunemente usato per programmare Apple] [. Il passaggio alla modalità di monitoraggio è stata una delle prime cose che gli hacker hanno imparato.
Giorgio,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.