Какой язык был «стандартным» для разработки Apple до Objective C?

27

Я не думаю, что Objective C использовался с самого начала разработки оборудования Apple. Какие языки использовали разработчики приложений для более ранних компьютеров Apple, таких как Apple II или Mac Classic?

JoelFan
источник

Ответы:

35

В 1985 году Ларри Теслер разработал Pascal для Apple, Object Pascal , который стал стандартным языком для System 6 . Он был основан на Clascal , варианте Паскаля 1983 года для Lisa , также разработанном в Apple.

Object Pascal использовался в MacApp , основной платформе приложений Apple в то время. MacApp 3.0, выпущенный в 1991 году, был переписан на C ++, и Apple впоследствии отказалась от поддержки Object Pascal в пользу C ++, когда они перешли с 68K-чипов Motorola на PowerPC.

Object Pascal Borland, который сегодня живет как Embarcadero Delphi , начал в 1986 году как набор расширений Turbo Pascal , которые должны были быть похожи на Object Pascal от Apple. Никлаус Вирт, создатель Паскаля, консультировался как Apple, так и Borland для их соответствующих вариантов.

Напротив, Objective C был основным языком NeXTSTEP и был представлен в Apple только после того, как они приобрели NeXT в 1996 году.

Яннис
источник
4
Хороший ответ, но, поскольку он является общепринятым, вы должны действительно добавить упоминания как для Pascal, так и для C. С самого начала Mac Toolbox и OS использовали соглашения о вызовах Pascal и были задокументированы в основном с помощью Pascal. Было доступно несколько компиляторов Паскаля; самым популярным был, вероятно, Lightspeed Pascal. C также был популярен с самого начала, и к тому времени, когда Think приобрел Lightspeed C и Lightspeed Pascal, C, вероятно, был «стандартным» выбором для независимых разработчиков. Кроме того, заслуживают упоминания metrowerks C ++ и PowerPlant.
Калеб
1
Этот ответ, кажется, больше склоняется к тому, какие рамки использовались для разработки, а не к каким языкам . Вопрос OP касался Objective-C (язык), а не Cocoa (каркас), но в ответе есть параграф о MacApp (каркас) и мало упоминаний о C / C ++, кроме факта, что MacApp был перенесен на него. Много заявлений были написаны непосредственно против Mac OS Toolbox в Pascal, C и / или C ++. Хороший ответ в противном случае, но требует более широкого охвата C / C ++.
Моргант
12

Apple] [обычно был запрограммирован в BASIC или в машинном коде 6502.

Лиза была вообще запрограммирована на Паскале.

Ранние приложения для Macintosh были написаны на Pascal, сначала на Lisa, а затем на самом Mac.

Некоторое время Think Pascal был самой популярной средой разработки, а затем Think C. Think C имел легкие объекты, иногда называемые C + -, а позднее - C ++. У него также была своя собственная библиотека классов, которая называется, соответственно, Think Class Library.

MPW от Apple также был популярен, поскольку он позволял вам смешивать языки (как правило, Pascal, C, C ++ и ассемблер) и сборки сценариев, аналогичные среде Unix, хотя синтаксис был совсем другим.

MacApp был написан на Object Pascal и, как кто-то сказал, позже перешел на C ++. С переходом на системы PowerPC многие программисты перешли на Metrowerks CodeWarrior в качестве среды разработки и его библиотеки классов C ++, PowerPlant.

Objective-C использовался в NeXT, а затем для Mac OS X, хотя приложения Mac OS X также могли быть написаны на C / C ++ через API Apple «Carbon». В настоящее время большинство приложений для Mac и iOS написаны на Cocoa / Obj-C, хотя у многих есть библиотеки C или C ++.

Эрикс
источник
1
Apple /// была также запрограммирована на Паскале (ISTR был также доступен вариант BASIC). Я думаю, что мы использовали UCSD pSystem, но был также и компилятор Apple Pascal.
TMN
Apple /// был единственным компьютером Apple, который я никогда не программировал. Я помню UCSD pSystem для Apple] [также, но я не думаю, что был хороший способ распространения приложений, написанных на нем.
EricS
8

Стандартным языком Mac OS Classic был Паскаль. Вся документация по API операционной системы была написана для Pascal, и столько же OS, сколько не было написано в оптимизированном вручную ASM, было написано на Pascal.

После перехода на архитектуру PowerPC они переписали ОС на C ++, что сопровождалось очень заметным снижением стабильности системы, что не удивительно для всех, кто знаком с Pascal и C ++. Документация по API продолжала быть написана главным образом для Паскаля, пока Стив Джобс не вернулся и не начал пытаться заставить Objective-C перерезать горло всем.

Мейсон Уилер
источник
4
«сопровождается очень заметным снижением стабильности системы, что не удивительно для всех, кто знаком с Pascal и C ++»: работая с обоими языками, я легко могу в это поверить. Я до сих пор иногда задаюсь вопросом, почему Pascal (или любое его объектно-ориентированное расширение) в настоящее время менее популярен, чем C ++: в конце концов, время разработки и исправления ошибок стоит денег. Может быть, это потому, что Паскалю не удалось создать сильное и компактное сообщество, подобное сообществу C ++.
Джорджио
3
Pascal потерпел неудачу главным образом потому, что не было стандарта (ну, стандарт пришел слишком поздно), а общее подмножество было слишком ограничительным (вы должны были полагаться на расширения для отдельной компиляции, вы должны были полагаться на расширения, чтобы написать подпрограмму, способную принимать массивы варьируя длину, вы должны были полагаться на расширения для ... вы называете это)
AProgrammer
4
Брайан Керниган написал «Почему Паскаль не мой любимый язык программирования» .
Кит Томпсон
4
@KeithThompson, к сожалению, многие цитируют это эссе как аргумент против любого расширения Паскаля. Это похоже на цитирование гипотетической статьи под названием «Почему C не мой любимый язык программирования», в которой гипотетически говорится об отсутствии надлежащих классов и наследования, и используется как аргумент против C ++ или Objective C.
acelent
2
@ Пауло: Черт, я бы сказал, что C ++ до сих пор не имеет надлежащих классов и наследования. Если объект является типом значения, а не ссылочным типом, вы с самого начала нарушили LSP, основной принцип наследования и самого ООП. Вот почему все другие основные объектно-ориентированные языки (включая Simula, которая породила концепцию, и Smalltalk, который породил термин "объектно-ориентированное программирование") не делали этого.
Мейсон Уилер
2

... и до Mac (Apple II) большинство программ было на бейсике. (Для всех вариантов от Apple II до IIgs)

Я также вспоминаю, как занимался разработкой C ++ для System 7 с использованием Metroworks CodeWarrior - это было (конечно) после PowerPC.

Чед Томпсон
источник
4
На самом деле, нет. Старые Apples поставлялись со встроенным BASIC, но даже по меркам того времени его считали игрушечным языком из-за его низкой производительности и минимальной поддержки звуков и графики. Конечно, были исключения, но самое серьезное программирование на системах Apple II выполнялось либо на Pascal, либо на ASM.
Мейсон Уилер
2
Ах, спасибо. Мой опыт программирования на Apple II был весь БЕЙСИК, так как это было мое первое знакомство с программированием в целом. (Следовательно, мы придерживались BASIC и этого набора инструкций.). Я также помню, как делал «Логотип», но я не знаю, делал ли кто-нибудь серьезную работу с ним.
Чед Томпсон
UCSD Pascal был единственным «настоящим» языком, доступным для Apple] [насколько я помню, но мало кто из приложений использовал его. Если BASIC был слишком медленным для вас, вы обычно шли прямо на сборку.
Gort the Robot
Несмотря на его ограничения, я не сомневаюсь, что «большинство программирования» в те дни было сделано на бейсике.
dan04
@ dan04: Насколько я помню, ассемблер обычно использовался для программирования Apple] [. Переход в режим мониторинга был одной из первых вещей, которую хакеры узнали.
Джорджио