Яка мова була "стандартною" для розробки Apple до Objective C?


27

Я не думаю, що об'єктив C використовувався з початку розробки апаратних засобів Apple. Які мови використовували розробники додатків для більш ранніх комп'ютерів Apple, таких як Apple II або Mac Classic?

Відповіді:


35

У 1985 році Ларрі Теслер розробив аромат Pascal для Apple, Object Pascal , який став стандартною мовою для системи 6 . Він базувався на Clascal , варіанті Pascal 1983 року для Лізи , також розробленому в Apple.

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

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

І навпаки, ціль C була основною мовою NeXTSTEP і була представлена ​​в Apple лише після придбання NeXT в 1996 році.


4
Хороша відповідь, але оскільки це прийнято, вам слід дійсно додати згадки як для Pascal, так і для C. З самого початку Mac Toolbox і OS використовували конвенції про виклики Pascal і були багато в чому задокументовані з Pascal. Була доступна кількість компіляторів Pascal; найпопулярнішим був, мабуть, Lightspeed Pascal. C також був популярним з самого початку, і до того часу, як Think придбав і Lightspeed C, і Lightspeed Pascal, C, мабуть, був «стандартним» вибором для розробників інді. Крім того, метрополітен C ++ та PowerPlant заслуговують на згадку.
Калеб

1
Ця відповідь, здається, більше схиляється до того, які рамки використовувались для розробки, а не на яких мовах . Питання ОП стосувалося об'єктивного C (мова), а не какао (рамка), але у відповіді є абзац про MacApp (фреймворк) і мало згадок про C / C ++, крім того, що MacApp був перенесений на нього. Дуже багато додатків було написано безпосередньо проти Mac OS Toolbox на Pascal, C та / або C ++. Хороша відповідь інакше, але потребує більш широкого охоплення C / C ++.
марґантний

12

Apple] [загалом запрограмовано або в машинному коді BASIC, або в 6502.

Ліза, як правило, запрограмована на Паскалі.

Ранні програми Macintosh написані на Pascal, спочатку на Lisa, а пізніше на самому Mac.

Подумайте, Паскаль був найпопулярнішим середовищем розробки протягом певного часу, а потім Подумайте С. Подумайте, що C мав легкі об'єкти, які іноді називали C + -, а пізніше C ++. У нього також була власна бібліотека класів, що називається, відповідно, бібліотекою Think Class.

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 "Carbon" від Apple. У наші дні більшість додатків для Mac та iOS написані на какао / Obj-C, хоча в багатьох є бібліотеки C або C ++.


1
Apple /// також був запрограмований на Pascal (ISTR був також доступний варіант BASIC). Я думаю, ми використовували систему UCSD pSystem, але був і компілятор Apple Pascal.
TMN

Apple /// був єдиним комп'ютером Apple, якого я ніколи не програмував. Я пам’ятаю систему UCSD pSystem для Apple] [також, але я не думаю, що існував хороший спосіб розповсюдження написаних у ній додатків.
EricS

8

Стандартною мовою Mac OS Classic був Pascal. Документація щодо API ОС була написана для Pascal, і стільки ж ОС, скільки не було написано в оптимізованому рукою ASM, було написано на Pascal.

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


4
"супроводжується дуже помітним зниженням стабільності системи, що не здивує тих, хто знайомий з Pascal та C ++": Працюючи з обома мовами, я можу легко повірити в це. Я все ще іноді замислююся, чому Pascal (або будь-яке об’єктно-орієнтоване розширення) наразі менш популярний, ніж C ++: адже розробка та час виправлення помилок коштують грошей. Можливо, це тому, що Паскалю не вдалося створити сильну та компактну спільноту, подібну до C ++.
Джорджіо

3
Паскаль не вдався здебільшого тому, що не було стандарту (ну стандарт прийшов занадто пізно) і загальний підмножина був надто обмежуючим (вам довелося розраховувати на розширення, щоб зробити окрему компіляцію, вам довелося розраховувати на розширення, щоб написати підпрограму, здатну приймати масиви різної довжини, вам довелося розраховувати на розширення, щоб ... ви його називаєте)
AProgrammer


4
@KeithThompson, на жаль, багато людей цитують цей твір як аргумент проти будь-якого розширення Паскаля. Це як цитувати гіпотетичну статтю під назвою "Чому C - це не моя улюблена мова програмування", яка б гіпотетично говорила про відсутність належних класів та успадкування та використовувала її як аргумент проти C ++ чи Цілі C.
ацелент

2
@Paulo: Чорт, я можу стверджувати, що C ++ все ще не має належних класів та успадкування. Якщо об'єкт є типом значення, а не еталонним типом, ви з самого початку порушили LSP, основний принцип успадкування та самого OOP. Ось чому всі інші основні об'єктно-орієнтовані мови (включаючи Simula, яка заснувала концепцію, і Smalltalk, який походить термін "об'єктно-орієнтоване програмування) не зробили цього."
Мейсон Уілер

2

... а до Mac (Apple II) більшість програмувань були в BASIC. (Для всіх варіантів Apple II до IIgs)

Я також пригадую, як займався розробкою C ++ в Системі 7 за допомогою Metroworks CodeWarrior - це було (звичайно) після PowerPC.


4
Не зовсім. Старі яблука були вбудовані в основу BASIC, але навіть за сучасними стандартами він розглядався здебільшого як іграшкова мова через низьку продуктивність та мінімальну підтримку звуків та графіки. Звичайно, були винятки, але найсерйозніше програмування в системах Apple II робилося або в Pascal, або в ASM.
Мейсон Уілер

2
Ах - спасибі. Мій досвід програмування в Apple II був усім ОСНОВНИМ, оскільки це було моє перше вплив на програмування взагалі. (Отже, ми дотримувались BASIC і цього набору інструкцій.) Я також пригадую, що робив "Логотип", але не знаю, чи хтось із цим серйозно працював.
Чад Томпсон

UCSD Pascal була єдиною "реальною" мовою, доступною для Apple] [що я пам'ятаю, але мало хто, якщо якісь додатки використовували її. Якщо BASIC був для вас занадто повільним, ви, як правило, перейшли до монтажу.
Гурт Робота

Незважаючи на його обмеження, я б не сумнівався в тому, що «більшість програмувань» у ті часи робилося в BASIC.
dan04

@ dan04: Наскільки я пам'ятаю, збірка зазвичай використовувалася для програмування Apple] [. Перехід у режим монітору було одним із перших, про що дізналися хакери.
Джорджіо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.