¿Qué lenguaje era "estándar" para el desarrollo de Apple antes del Objetivo C?

27

No creo que Objective C estuviera en uso desde el comienzo del desarrollo de hardware de Apple. ¿Qué idiomas usaron los desarrolladores de aplicaciones para las computadoras Apple anteriores, como Apple II o Mac Classic?

JoelFan
fuente

Respuestas:

35

En 1985, Larry Tesler desarrolló un sabor Pascal para Apple, Object Pascal , que se convirtió en el lenguaje estándar para el Sistema 6 . Se basó en Clascal , una variante de 1983 Pascal para Lisa , también desarrollada en Apple.

Object Pascal se utilizó en MacApp , el marco de aplicación principal de Apple en ese momento. MacApp 3.0, lanzado en 1991, fue reescrito en C ++ y Apple posteriormente dejó de admitir Object Pascal a favor de C ++ cuando se trasladaron de los chips 68K de Motorola a PowerPC.

Object Pascal de Borland, que hoy vive como Embarcadero Delphi , comenzó en 1986 como un conjunto de extensiones de Turbo Pascal , que pretendían ser similares al Object Pascal de Apple. Niklaus Wirth, el creador de Pascal, fue consultado por Apple y Borland por sus respectivas variantes.

Por el contrario, el Objetivo C era el lenguaje principal de NeXTSTEP y se introdujo en Apple solo después de que compraron NeXT en 1996.

Yannis
fuente
44
Buena respuesta, pero como es la aceptada, realmente debería agregar menciones tanto para Pascal como para C. Desde el principio, Mac Toolbox y el sistema operativo usaron convenciones de llamadas Pascal y se documentaron en gran parte con Pascal. Había varios compiladores de Pascal disponibles; el más popular fue probablemente Lightspeed Pascal. C también fue popular desde el principio, y cuando Think compró Lightspeed C y Lightspeed Pascal, C era probablemente la opción "estándar" para los desarrolladores independientes. Además, metrowerks C ++ y PowerPlant merecen una mención.
Caleb
1
Esta respuesta parece inclinarse más hacia qué marcos se utilizaron para el desarrollo en lugar de qué idiomas . La pregunta del OP fue sobre Objective-C (el lenguaje), no Cocoa (el marco), pero la respuesta tiene un párrafo sobre MacApp (el marco) y poca mención de C / C ++ además del hecho de que MacApp fue portado a él. Se escribieron muchas aplicaciones directamente en Mac OS Toolbox en Pascal, C y / o C ++. Buena respuesta de lo contrario, pero necesita una cobertura más amplia de C / C ++.
Morgant
12

La Apple] [generalmente se programaba en código de máquina BASIC o 6502.

La Lisa fue generalmente programada en Pascal.

Las primeras aplicaciones de Macintosh se escribieron en Pascal, primero en Lisa y luego en Mac.

Think Pascal fue el entorno de desarrollo más popular durante un tiempo y luego Think C. Think C tenía objetos livianos, a veces denominados C + -, y luego C ++. También tenía su propia biblioteca de clases llamada, apropiadamente, Think Class Library.

MPW de Apple también fue popular, ya que le permitía mezclar lenguajes (generalmente Pascal, C, C ++ y ensamblador) y compilaciones de script similares a un entorno Unix, aunque la sintaxis era muy diferente.

MacApp se escribió en Object Pascal y, como alguien dijo, luego se mudó a C ++. Con el cambio a los sistemas PowerPC, muchos programadores cambiaron a Metrowerks CodeWarrior como entorno de desarrollo y su biblioteca de clase C ++, PowerPlant.

Objective-C se usó en NeXT y luego para Mac OS X, aunque las aplicaciones de Mac OS X también se podían escribir en C / C ++ a través de la API "Carbon" de Apple. En la actualidad, la mayoría de las aplicaciones para Mac e iOS están escritas en Cocoa / Obj-C, aunque muchas tienen bibliotecas C o C ++ debajo.

EricS
fuente
1
Apple /// también se programó en Pascal (ISTR también había una variante de BASIC disponible). Creo que usamos el sistema UCSD pSystem, pero también había un compilador Apple Pascal.
TMN
Apple /// fue la única computadora Apple que nunca programé. Sí recuerdo un pSystem UCSD para Apple] [también, pero no creo que haya una buena manera de distribuir aplicaciones escritas en él.
EricS
8

El lenguaje estándar de Mac OS Classic era Pascal. Toda la documentación de la API del sistema operativo se escribió para Pascal, y la mayor parte del sistema operativo que no se escribió en ASM optimizado a mano se escribió en Pascal.

Después de la transición a la arquitectura PowerPC, reescribieron el sistema operativo en C ++, acompañado de una disminución muy notable en la estabilidad del sistema, lo que no sorprenderá a nadie familiarizado con Pascal y C ++. Sin embargo, la documentación de API continuó siendo escrita principalmente para Pascal, hasta que Steve Jobs regresó y comenzó a tratar de forzar a Objective-C a desgarrar a todos.

Mason Wheeler
fuente
44
"acompañado de una disminución muy notable en la estabilidad del sistema, lo que no sorprenderá a nadie familiarizado con Pascal y C ++": después de haber trabajado con ambos lenguajes, puedo creerlo fácilmente. Todavía a veces me pregunto por qué Pascal (o cualquier extensión orientada a objetos del mismo) es actualmente menos popular que C ++: después de todo, el tiempo de desarrollo y corrección de errores cuesta dinero. Tal vez sea porque Pascal no pudo construir una comunidad fuerte y compacta similar a la de C ++.
Giorgio
3
Pascal falló principalmente porque no había un estándar (bueno, el estándar llegó demasiado tarde) y el subconjunto común era demasiado restrictivo (tenía que confiar en extensiones para hacer una compilación separada, tenía que confiar en extensiones para escribir una subrutina capaz de aceptar matrices de longitud variable, tenía que confiar en extensiones para ... lo que sea)
AProgrammer
44
Brian Kernighan escribió "Por qué Pascal no es mi lenguaje de programación favorito" .
Keith Thompson
44
@KeithThompson, desafortunadamente, muchas personas citan ese ensayo como un argumento en contra de cualquier extensión de Pascal. Es como citar un artículo hipotético llamado "Por qué C no es mi lenguaje de programación favorito", que hipotéticamente hablaría sobre la falta de clases y herencia adecuadas, y lo usaría como argumento contra C ++ o el Objetivo C.
Acelerado
2
@Paulo: Diablos, argumentaría que C ++ todavía no tiene las clases y la herencia adecuadas. Si un objeto es un tipo de valor, no un tipo de referencia, ha roto LSP, el principio básico de la herencia y de la propia POO, desde el principio. Es por eso que todos los demás principales lenguajes orientados a objetos (incluyendo Simula, que se originó el concepto y Smalltalk, que se originó el término "programación orientada a objetos) no lo hizo de esa manera.
Mason Wheeler
2

... y antes de Mac (Apple II), la mayoría de la programación estaba en BASIC. (Para todas las variantes de Apple II a IIgs)

También recuerdo haber desarrollado C ++ en el Sistema 7 usando Metroworks CodeWarrior: esto fue (por supuesto) posterior a PowerPC.

Chad Thompson
fuente
44
Realmente no. Las viejas manzanas vienen con BASIC incorporado, pero incluso para los estándares de la época, se consideraba principalmente como un lenguaje de juguete debido a su bajo rendimiento y a su soporte mínimo para sonidos y gráficos. Hubo excepciones, por supuesto, pero la programación más seria en los sistemas Apple II se realizó en Pascal o ASM.
Mason Wheeler
2
Ah gracias. Mi experiencia de programación en Apple II fue BÁSICA, ya que fue mi primera exposición a la programación en general. (Por lo tanto, nos quedamos con BASIC y ese conjunto de instrucciones). También recuerdo haber hecho "Logo", pero no sé si alguien hizo un trabajo serio con él.
Chad Thompson
UCSD Pascal era el único lenguaje "real" disponible para Apple] [que recuerdo, pero pocas o ninguna aplicación lo usaba. Si BASIC fue demasiado lento para usted, generalmente fue directamente al ensamblaje.
Gort the Robot
A pesar de sus limitaciones, no dudaría de que "la mayoría de la programación" esos días se realizó en BASIC.
dan04
@ dan04: Hasta donde puedo recordar, el ensamblaje se usaba comúnmente para programar Apple] [. Cambiar al modo monitor fue una de las primeras cosas que aprendieron los hackers.
Giorgio