Quel langage était «standard» pour le développement d'Apple avant l'objectif C?

27

Je ne pense pas que l'objectif C était utilisé depuis le début du développement du matériel Apple. Quelles langues les développeurs d'applications utilisaient-ils pour les anciens ordinateurs Apple, comme Apple II ou Mac Classic?

JoelFan
la source

Réponses:

35

En 1985, Larry Tesler a développé une saveur Pascal pour Apple, Object Pascal , qui est devenu le langage standard pour System 6 . Il était basé sur Clascal , une variante Pascal de 1983 pour la Lisa , également développée chez Apple.

Object Pascal était utilisé dans MacApp , le cadre d'application principal d'Apple à l'époque. MacApp 3.0, sorti en 1991, a été réécrit en C ++ et Apple a par la suite abandonné le support d'Object Pascal en faveur de C ++ lorsqu'ils sont passés des puces 68K de Motorola à PowerPC.

Object Pascal de Borland, qui vit aujourd'hui sous le nom de Embarcadero Delphi , a commencé en 1986 comme un ensemble d'extensions de Turbo Pascal , qui étaient censées être similaires à Object Pascal d'Apple. Niklaus Wirth, l'initiateur de Pascal, a été consulté par Apple et Borland pour leurs variantes respectives.

À l'inverse, Objective C était le langage principal de NeXTSTEP et n'a été introduit chez Apple qu'après l'achat de NeXT en 1996.

yannis
la source
4
Bonne réponse, mais comme c'est la solution acceptée, vous devez vraiment ajouter des mentions pour Pascal et C. Dès le début, la boîte à outils Mac et le système d'exploitation ont utilisé les conventions d'appel Pascal et ont été largement documentés avec Pascal. Il y avait un certain nombre de compilateurs Pascal disponibles; le plus populaire était probablement Lightspeed Pascal. C était également populaire depuis le début, et au moment où Think a acheté Lightspeed C et Lightspeed Pascal, C était probablement le choix «standard» pour les développeurs indépendants. De plus, metrowerks C ++ et PowerPlant méritent une mention.
Caleb
1
Cette réponse semble tendre davantage vers quels cadres ont été utilisés pour le développement plutôt que dans quelles langues . La question du PO concernait Objective-C (le langage), pas Cocoa (le framework), mais la réponse a un paragraphe sur MacApp (le framework) et peu de mention de C / C ++ autre que le fait que MacApp y a été porté. De nombreuses applications ont été écrites directement sur Mac OS Toolbox en Pascal, C et / ou C ++. Bonne réponse sinon, mais nécessite une couverture plus large de C / C ++.
morgant
12

L'Apple] [était généralement programmé en code machine BASIC ou 6502.

La Lisa était généralement programmée en Pascal.

Les premières applications Macintosh ont été écrites en Pascal, d'abord sur Lisa et plus tard sur Mac lui-même.

Think Pascal était l'environnement de développement le plus populaire pendant un certain temps, puis Think C. Think C avait des objets légers, parfois appelés C + -, et plus tard C ++. Il avait également sa propre bibliothèque de classes appelée, à juste titre, la bibliothèque Think Class.

MPW d'Apple était également populaire car il vous permettait de mélanger des langages (généralement Pascal, C, C ++ et assembleur) et des constructions de script similaires à un environnement Unix, bien que la syntaxe soit très différente.

MacApp a été écrit en Object Pascal, et comme quelqu'un l'a dit, il est ensuite passé au C ++. Avec le passage aux systèmes PowerPC, de nombreux programmeurs sont passés à Metrowerks CodeWarrior en tant qu'environnement de développement et à sa bibliothèque de classes C ++, PowerPlant.

Objective-C a été utilisé chez NeXT puis pour Mac OS X, bien que les applications Mac OS X puissent également être écrites en C / C ++ via l'API "Carbon" d'Apple. De nos jours, la plupart des applications Mac et iOS sont écrites en Cocoa / Obj-C, bien que beaucoup aient des bibliothèques C ou C ++ en dessous.

EricS
la source
1
L'Apple /// a également été programmé en Pascal (ISTR il y avait aussi une variante de BASIC disponible). Je pense que nous avons utilisé le pSystem UCSD, mais il y avait aussi un compilateur Apple Pascal.
TMN
L'Apple /// était le seul ordinateur Apple que je n'ai jamais programmé. Je me souviens d'un UCSD pSystem pour Apple] [aussi, mais je ne pense pas qu'il y ait un bon moyen de distribuer des applications écrites dedans.
EricS
8

Le langage standard de Mac OS Classic était Pascal. La documentation de l'API du système d'exploitation a été entièrement écrite pour Pascal, et autant du système d'exploitation que celui qui n'a pas été écrit en ASM optimisé à la main a été écrit en Pascal.

Après la transition vers l'architecture PowerPC, ils ont réécrit le système d'exploitation en C ++, accompagné d'une diminution très notable de la stabilité du système, ce qui ne surprendra personne connaissant Pascal et C ++. La documentation de l'API a continué d'être écrite principalement pour Pascal, jusqu'à ce que Steve Jobs revienne et commence à essayer de forcer Objective-C à tout le monde.

Mason Wheeler
la source
4
"accompagné d'une diminution très sensible de la stabilité du système, ce qui ne surprendra personne connaissant Pascal et C ++": Ayant travaillé avec les deux langages, je peux facilement le croire. Je me demande encore parfois pourquoi Pascal (ou toute extension orientée objet de celui-ci) est actuellement moins populaire que C ++: après tout, le temps de développement et de correction des bugs coûte de l'argent. C'est peut-être parce que Pascal n'a pas réussi à construire une communauté solide et compacte similaire à celle de C ++.
Giorgio
3
Pascal a échoué principalement parce qu'il n'y avait pas de standard (enfin le standard est arrivé trop tard) et que le sous-ensemble commun était trop restrictif (il fallait s'appuyer sur des extensions pour faire une compilation séparée, il fallait s'appuyer sur des extensions pour écrire un sous-programme capable d'accepter des tableaux de longueur variable, vous deviez compter sur des extensions pour ... vous l'
appelez
4
Brian Kernighan a écrit "Pourquoi Pascal n'est pas mon langage de programmation préféré" .
Keith Thompson
4
@KeithThompson, malheureusement, beaucoup de gens citent cet essai comme argument contre toute extension Pascal. C'est comme citer un article hypothétique intitulé "Pourquoi C n'est pas mon langage de programmation préféré", qui parlerait hypothétiquement du manque de classes et d'héritage appropriés, et l'utiliserait comme argument contre C ++ ou Objective C.
acelent
2
@Paulo: Heck, je dirais que C ++ n'a toujours pas de classes et d'héritage appropriés. Si un objet est un type valeur, et non un type référence, vous avez rompu dès le départ le LSP, le principe de base de l'héritage et de la POO elle-même. C'est pourquoi tous les autres principaux langages orientés objet (y compris Simula, qui est à l'origine du concept, et Smalltalk, qui est à l'origine du terme "programmation orientée objet) ne l'ont pas fait de cette façon.
Mason Wheeler
2

... et avant le Mac (Apple II), la plupart des programmes étaient en BASIC. (Pour toutes les variantes d'Apple II aux IIgs)

Je me souviens également d'avoir fait du développement C ++ sur System 7 en utilisant Metroworks CodeWarrior - c'était (bien sûr) après PowerPC.

Chad Thompson
la source
4
Pas vraiment. Les anciennes pommes sont livrées avec BASIC intégré, mais même selon les normes de l'époque, il était principalement considéré comme un langage de jouet en raison de ses performances médiocres et de sa prise en charge minimale des sons et des graphiques. Il y avait des exceptions, bien sûr, mais la programmation la plus sérieuse sur les systèmes Apple II se faisait soit en Pascal soit en ASM.
Mason Wheeler
2
Ah merci. Mon expérience de programmation sur l'Apple II était de BASE car c'était ma première exposition à la programmation en général. (Par conséquent, nous sommes restés avec BASIC et ce jeu d'instructions.). Je me souviens aussi d'avoir fait "Logo", mais je ne sais pas si quelqu'un a fait un travail sérieux avec.
Chad Thompson
UCSD Pascal était le seul "vrai" langage disponible pour Apple] [dont je me souviens, mais peu ou pas d'applications l'ont utilisé. Si BASIC était trop lent pour vous, vous êtes généralement allé directement au montage.
Gort le robot
Malgré ses limites, je ne douterais pas que "la plupart des programmes" se faisaient en BASIC.
dan04
@ dan04: Autant que je me souvienne, l'assemblage était couramment utilisé pour programmer Apple] [. Le passage en mode moniteur a été l'une des premières choses que les pirates ont apprises.
Giorgio