Bahasa apa yang "standar" untuk pengembangan Apple sebelum Objective C?

27

Saya tidak berpikir Objective C digunakan sejak awal pengembangan perangkat keras Apple. Bahasa apa yang digunakan pengembang aplikasi untuk komputer Apple sebelumnya, seperti Apple II atau Mac Classic?

JoelFan
sumber

Jawaban:

35

Pada tahun 1985 Larry Tesler mengembangkan rasa Pascal untuk Apple, Object Pascal , yang menjadi bahasa standar untuk Sistem 6 . Itu didasarkan pada Clascal , varian Pascal 1983 untuk Lisa , juga dikembangkan di Apple.

Object Pascal digunakan di MacApp , kerangka kerja aplikasi utama Apple pada saat itu. MacApp 3.0, dirilis pada tahun 1991, ditulis ulang dalam C ++ dan Apple kemudian menjatuhkan dukungan untuk Object Pascal yang mendukung C ++ ketika mereka pindah dari chip 68K Motorola ke PowerPC.

Object Pascal dari Borland, yang saat ini hidup sebagai Embarcadero Delphi , dimulai pada tahun 1986 sebagai serangkaian ekstensi untuk Turbo Pascal , yang dimaksudkan untuk mirip dengan Object Pascal dari Apple. Niklaus Wirth, pencetus Pascal, dikonsultasikan oleh Apple dan Borland untuk varian masing-masing.

Sebaliknya, Objective C adalah bahasa utama NeXTSTEP dan diperkenalkan di Apple hanya setelah mereka membeli NeXT pada tahun 1996.

yannis
sumber
4
Jawaban yang bagus, tetapi karena itu yang diterima, Anda harus benar-benar menambahkan menyebutkan untuk Pascal dan C. Sejak awal, Mac Toolbox dan OS menggunakan konvensi pemanggilan Pascal dan sebagian besar didokumentasikan dengan Pascal. Ada beberapa kompiler Pascal yang tersedia; yang paling populer mungkin adalah Lightspeed Pascal. C juga populer sejak awal, dan pada saat Think membeli kedua Lightspeed C dan Lightspeed Pascal, C mungkin merupakan pilihan "standar" untuk pengembang indie. Juga, metrowerks C ++ dan PowerPlant layak disebutkan.
Caleb
1
Jawaban ini tampaknya lebih condong ke arah kerangka apa yang digunakan untuk pembangunan sebagai lawan dari bahasa mana . Pertanyaan OP adalah tentang Objective-C (bahasa), bukan Cocoa (kerangka kerja), tetapi jawabannya memiliki paragraf di MacApp (kerangka kerja) dan sedikit menyebutkan C / C ++ selain fakta bahwa MacApp diangkut ke sana. Sebuah banyak aplikasi ditulis langsung terhadap Mac OS Toolbox di Pascal, C, dan / atau C ++. Jawaban yang baik sebaliknya, tetapi membutuhkan cakupan yang lebih luas dari C / C ++.
Morgant
12

Apple] [umumnya diprogram dalam kode mesin BASIC atau 6502.

Lisa umumnya diprogram dalam Pascal.

Aplikasi Macintosh awal ditulis dalam Pascal, pertama pada Lisa dan kemudian pada Mac itu sendiri.

Think Pascal adalah lingkungan pengembangan yang paling populer untuk sementara waktu dan kemudian Think C. Think C memiliki objek ringan, kadang-kadang disebut sebagai C + -, dan kemudian C ++. Itu juga memiliki perpustakaan kelas sendiri yang disebut, cukup tepat, Perpustakaan Kelas Think.

MPW dari Apple juga populer karena memungkinkan Anda untuk mencampur bahasa (umumnya Pascal, C, C ++, dan assembler) dan pembuatan skrip mirip dengan lingkungan unix, meskipun sintaksinya sangat berbeda.

MacApp ditulis dalam Object Pascal, dan seperti kata seseorang, kemudian pindah ke C ++. Dengan pindah ke sistem PowerPC, banyak programmer beralih ke Metrowerks CodeWarrior sebagai lingkungan pengembangan dan pustaka kelas C ++-nya, PowerPlant.

Objective-C digunakan di NeXT dan kemudian untuk Mac OS X, meskipun aplikasi Mac OS X juga dapat ditulis dalam C / C ++ melalui API "Karbon" Apple. Saat ini sebagian besar aplikasi Mac dan iOS ditulis dalam Cocoa / Obj-C, walaupun banyak yang memiliki pustaka C atau C ++ di bawahnya.

EricS
sumber
1
Apple /// juga diprogram dalam Pascal (ISTR juga ada varian BASIC yang tersedia). Saya pikir kami menggunakan pSystem UCSD, tetapi ada kompiler Apple Pascal juga.
TMN
Apple /// adalah satu-satunya komputer Apple yang tidak pernah saya programkan. Saya ingat pSystem UCSD untuk Apple] [juga, tapi saya rasa tidak ada cara yang baik untuk mendistribusikan aplikasi yang ditulis di dalamnya.
EricS
8

Bahasa standar Mac OS Classic adalah Pascal. Dokumentasi API OS semuanya ditulis untuk Pascal, dan sebanyak OS yang tidak ditulis dalam ASM yang dioptimalkan dengan tangan ditulis dalam Pascal.

Setelah beralih ke arsitektur PowerPC, mereka menulis ulang OS di C ++, disertai dengan penurunan stabilitas sistem yang sangat nyata, yang tidak akan mengejutkan bagi siapa pun yang mengenal Pascal dan C ++. Dokumentasi API terus ditulis terutama untuk Pascal, sampai Steve Jobs kembali dan mulai mencoba memaksa Objective-C ke tenggorokan semua orang.

Mason Wheeler
sumber
4
"disertai dengan penurunan yang sangat nyata dalam stabilitas sistem, yang tidak akan mengejutkan bagi siapa pun yang akrab dengan Pascal dan C ++": Setelah bekerja dengan kedua bahasa saya dapat dengan mudah percaya ini. Saya kadang-kadang masih bertanya-tanya mengapa Pascal (atau ekstensi berorientasi objek apa pun) saat ini kurang populer daripada C ++: lagipula, pengembangan dan perbaikan bug memerlukan waktu. Mungkin itu karena Pascal gagal membangun komunitas yang kuat dan kompak mirip dengan C ++.
Giorgio
3
Pascal gagal sebagian besar karena tidak ada standar (well standar datang terlambat) dan bagian umum terlalu ketat (Anda harus bergantung pada ekstensi untuk melakukan kompilasi terpisah, Anda harus bergantung pada ekstensi untuk menulis subrutin yang dapat menerima array dari panjang bervariasi, Anda harus bergantung pada ekstensi untuk ... sebut saja)
Pemrogram
4
Brian Kernighan menulis "Mengapa Pascal Bukan Bahasa Pemrograman Favorit Saya" .
Keith Thompson
4
@KeithThompson, sayangnya, banyak orang mengutip esai itu sebagai argumen terhadap ekstensi Pascal. Ini seperti mengutip artikel hipotetis yang disebut "Mengapa C Bukan Bahasa Pemrograman Favorit Saya", yang secara hipotetis akan berbicara tentang kurangnya kelas dan warisan yang tepat, dan menggunakannya sebagai argumen terhadap C ++ atau Objective C.
acelent
2
@ Paulo: Heck, saya berpendapat bahwa C ++ masih tidak memiliki kelas dan warisan yang tepat. Jika suatu objek adalah tipe nilai, bukan tipe referensi, Anda telah melanggar LSP, prinsip inti pewarisan dan OOP itu sendiri, sejak awal. Itu sebabnya semua bahasa berorientasi objek utama lainnya (termasuk Simula, yang berasal konsep, dan Smalltalk, yang berasal dari istilah "pemrograman berorientasi objek) tidak melakukannya dengan cara itu.
Mason Wheeler
2

... dan sebelum Mac (Apple II), sebagian besar pemrograman menggunakan BASIC. (Untuk semua varian Apple II ke IIgs)

Saya juga ingat melakukan pengembangan C ++ pada Sistem 7 menggunakan Metroworks CodeWarrior - ini (tentu saja) posting PowerPC.

Chad Thompson
sumber
4
Tidak juga. Apel lama hadir dengan BASIC yang terpasang di dalamnya, tetapi bahkan menurut standar saat itu, itu dianggap sebagian besar sebagai bahasa mainan karena kinerjanya yang buruk dan dukungan minimal untuk suara dan gambar. Tentu saja ada pengecualian, tetapi pemrograman paling serius pada sistem Apple II dilakukan baik dalam Pascal atau ASM.
Mason Wheeler
2
Ah - terima kasih. Pengalaman pemrograman saya di Apple II semuanya BASIC karena itu adalah paparan pertama saya pada pemrograman secara umum. (Karenanya kami terjebak dengan BASIC dan set instruksi itu.). Saya juga ingat pernah melakukan "Logo", tetapi saya tidak tahu apakah ada yang melakukan pekerjaan serius dengannya.
Chad Thompson
UCSD Pascal adalah satu-satunya bahasa "nyata" yang tersedia untuk Apple] [yang saya ingat, tetapi sedikit jika ada aplikasi yang menggunakannya. Jika BASIC terlalu lambat untuk Anda, Anda biasanya langsung menuju perakitan.
Gort the Robot
Terlepas dari keterbatasannya, saya tidak akan ragu bahwa "sebagian besar pemrograman" hari itu dilakukan di BASIC.
dan04
@ dan04: Sejauh yang saya ingat, perakitan biasanya digunakan untuk pemrograman Apple] [. Beralih ke mode monitor adalah salah satu hal pertama yang dipelajari peretas.
Giorgio