Jaki język był „standardowy” dla rozwoju Apple przed celem C?

27

Nie sądzę, aby Cel C był używany od początku projektowania sprzętu Apple. W jakich językach twórcy aplikacji korzystali z wcześniejszych komputerów Apple, takich jak Apple II lub Mac Classic?

JoelFan
źródło

Odpowiedzi:

35

W 1985 roku Larry Tesler opracował smak Pascala dla Apple, Object Pascal , który stał się standardowym językiem dla Systemu 6 . Został oparty na Clascal , wariancie Pascal z 1983 roku dla Lisa , również opracowanym w Apple.

Obiekt Pascal był używany w MacApp , podstawowej wówczas aplikacji Apple. MacApp 3.0, wydany w 1991 roku, został ponownie napisany w C ++, a następnie Apple zrezygnował z obsługi Object Pascal na rzecz C ++, kiedy przeniosły się z układów Motoroli 68K do PowerPC.

Obiekt Object Pascal firmy Borland, który dziś funkcjonuje jako Embarcadero Delphi , powstał w 1986 roku jako zestaw rozszerzeń Turbo Pascal , które miały być podobne do obiektu Object Pascal firmy Apple. Niklaus Wirth, pomysłodawca Pascala, został skonsultowany zarówno przez Apple, jak i Borlanda w sprawie ich odpowiednich wariantów.

I odwrotnie, Objective C był głównym językiem NeXTSTEP i został wprowadzony w Apple dopiero po zakupie NeXT w 1996 roku.

Yannis
źródło
4
Dobra odpowiedź, ale ponieważ jest to zaakceptowana, naprawdę powinieneś dodać wzmianki zarówno o Pascalu, jak i C. Od samego początku Mac Toolbox i system operacyjny korzystały z konwencji wywoływania Pascala i były w dużej mierze udokumentowane za pomocą Pascala. Dostępnych było wiele kompilatorów Pascal; najpopularniejszy był prawdopodobnie Lightspeed Pascal. C był również popularny od samego początku i zanim Think kupił zarówno Lightspeed C, jak i Lightspeed Pascal, C był prawdopodobnie „standardowym” wyborem dla niezależnych programistów. Na wzmiankę zasługują również metrowerks C ++ i PowerPlant.
Caleb
1
Ta odpowiedź wydaje się bardziej skłaniać do tego, jakie ramy wykorzystano do rozwoju, a nie jakie języki . Pytanie OP dotyczyło Objective-C (język), a nie Cocoa (framework), ale odpowiedź zawiera akapit na MacApp (framework) i niewiele wspomina o C / C ++ poza faktem, że MacApp został do niego przeniesiony. Wiele zastosowań były zapisywane bezpośrednio na Mac OS Toolbox w Pascalu, C i / lub C ++. W przeciwnym razie dobra odpowiedź, ale wymaga szerszego zakresu C / C ++.
morgant,
12

Apple] [był ogólnie zaprogramowany w kodzie maszynowym BASIC lub 6502.

Lisa była ogólnie programowana w Pascal.

Wczesne aplikacje na Macintosha pisano w Pascalu, najpierw na Lizy, a później na samym Macu.

Think Pascal był przez pewien czas najpopularniejszym środowiskiem programistycznym, a potem Think C. Think C miał lekkie obiekty, czasami określane jako C ++ - a później C ++. Miał także własną bibliotekę klas, odpowiednio nazwaną, Think Class Library.

Popularna była również MPW firmy Apple, ponieważ pozwalała mieszać języki (ogólnie Pascal, C, C ++ i asembler) i kompilacje skryptów podobne do środowiska unix, choć składnia była bardzo różna.

MacApp został napisany w Object Pascal i, jak ktoś powiedział, później przeniósł się do C ++. Po przejściu na systemy PowerPC wielu programistów przeszło na Metrowerks CodeWarrior jako środowisko programistyczne i bibliotekę klas C ++, PowerPlant.

Cel C został użyty w NeXT, a następnie w Mac OS X, chociaż aplikacje Mac OS X można również napisać w C / C ++ za pomocą API Apple „Carbon”. Obecnie większość aplikacji na Maca i iOS jest napisanych w Cocoa / Obj-C, chociaż wiele z nich ma biblioteki C lub C ++ poniżej.

EricS
źródło
1
Apple /// został również zaprogramowany w Pascalu (ISTR był również dostępny wariant BASIC). Myślę, że korzystaliśmy z pSystem UCSD, ale był też kompilator Apple Pascal.
TMN,
Apple /// był jedynym komputerem Apple, którego nigdy nie programowałem. Pamiętam też pSystem UCSD dla Apple] [, ale nie sądzę, żeby istniał dobry sposób na dystrybucję napisanych w nim aplikacji.
EricS,
8

Standardowym językiem Mac OS Classic był Pascal. Dokumentacja API systemu operacyjnego została napisana dla Pascala, a tyle elementów systemu operacyjnego, ile nie zostało napisane ręcznie zoptymalizowanym ASM, zostało napisane w języku Pascal.

Po przejściu na architekturę PowerPC przepisali system operacyjny w C ++, czemu towarzyszy bardzo zauważalny spadek stabilności systemu, co nie zaskoczy nikogo znającego Pascala i C ++. Dokumentacja API była jednak pisana przede wszystkim dla Pascala, dopóki Steve Jobs nie wrócił i nie zaczął próbować zmusić Objective-C do gardła wszystkich.

Mason Wheeler
źródło
4
„towarzyszy temu bardzo zauważalny spadek stabilności systemu, co nie będzie zaskoczeniem dla osób zaznajomionych z Pascalem i C ++”: Po pracy z obydwoma językami z łatwością mogę w to uwierzyć. Nadal czasem zastanawiam się, dlaczego Pascal (lub dowolne jego obiektowe rozszerzenie) jest obecnie mniej popularny niż C ++: w końcu czas programowania i naprawiania błędów kosztuje. Może dlatego, że Pascal nie zbudował silnej i zwartej społeczności podobnej do C ++.
Giorgio
3
Pascal zawiódł głównie dlatego, że nie było standardu (no cóż, standard pojawił się zbyt późno), a wspólny podzbiór był zbyt restrykcyjny (musiałeś polegać na rozszerzeniach, aby wykonać osobną kompilację, musiałeś polegać na rozszerzeniach, aby napisać podprogram, który byłby w stanie zaakceptować tablice różnej długości, musiałeś polegać na rozszerzeniach, aby ... nazwij to)
AProgrammer
4
Brian Kernighan napisał „Dlaczego Pascal nie jest moim ulubionym językiem programowania” .
Keith Thompson,
4
@KeithThompson, niestety, wiele osób cytuje ten esej jako argument przeciwko dowolnemu rozszerzeniu Pascala. To tak, jakby zacytować hipotetyczny artykuł zatytułowany „Dlaczego C nie jest moim ulubionym językiem programowania”, który hipotetycznie mówiłby o braku odpowiednich klas i dziedziczenia i
używałby
2
@Paulo: Heck, twierdzę, że C ++ nadal nie ma odpowiednich klas i dziedziczenia. Jeśli obiekt jest typem wartości, a nie typem odniesienia, złamałeś LSP, podstawową zasadę dziedziczenia i samego OOP, od samego początku. Właśnie dlatego wszystkie inne główne języki zorientowane obiektowo (w tym Simula, która zapoczątkowała tę koncepcję, i Smalltalk, które zapoczątkowały termin „programowanie obiektowe”) nie zrobiły tego w ten sposób.
Mason Wheeler
2

... a przed komputerem Mac (Apple II) większość programów była w języku BASIC. (Dla wszystkich wariantów Apple II do IIg)

Pamiętam również tworzenie C ++ w Systemie 7 przy użyciu Metroworks CodeWarrior - było to (oczywiście) po PowerPC.

Chad Thompson
źródło
4
Nie całkiem. Stare Jabłka były dostarczane z wbudowanym językiem BASIC, ale nawet według ówczesnych standardów był uważany głównie za język zabawkowy ze względu na słabą wydajność i minimalne wsparcie dla dźwięków i grafiki. Oczywiście były wyjątki, ale najpoważniejsze programowanie w systemach Apple II zostało wykonane w Pascalu lub ASM.
Mason Wheeler,
2
Ach - dzięki. Moje doświadczenie w programowaniu na Apple II było całkowicie PODSTAWOWE, ponieważ było to moje pierwsze spotkanie z programowaniem w ogóle. (Dlatego utknęliśmy z BASIC i tym zestawem instrukcji.). Pamiętam też robienie „Logo”, ale nie wiem, czy ktoś zrobił z nim jakąś poważną pracę.
Chad Thompson,
UCSD Pascal był jedynym „prawdziwym” językiem dostępnym dla Apple'a] [pamiętam, ale niewiele z niego korzystało. Jeśli BASIC był dla ciebie zbyt wolny, zazwyczaj poszedłeś prosto do montażu.
Gort the Robot
Mimo ograniczeń nie wątpię, że „większość programowania” w tamtych czasach była wykonywana w języku BASIC.
dan04
@ dan04: O ile pamiętam, do programowania Apple'a powszechnie używano asemblera] [. Przejście do trybu monitorowania było jedną z pierwszych rzeczy, których nauczyli się hakerzy.
Giorgio