ภาษาใดเป็น“ มาตรฐาน” สำหรับการพัฒนาของ Apple ก่อน Objective C?


27

ฉันไม่คิดว่า Objective C นั้นถูกใช้ตั้งแต่เริ่มต้นการพัฒนาฮาร์ดแวร์ของ Apple นักพัฒนาแอปใช้ภาษาใดสำหรับคอมพิวเตอร์ Apple รุ่นก่อนเช่น Apple II หรือ Mac Classic

คำตอบ:


35

ในปี 1985 แลร์รี่ Tesler พัฒนารสชาติปาสกาลสำหรับแอปเปิ้ล, วัตถุปาสคาลที่กลายเป็นภาษามาตรฐานสำหรับระบบ 6 มันขึ้นอยู่กับClascal , 1983 Pascal ตัวแปรสำหรับLisaยังพัฒนาที่ Apple

Object Pascal ถูกใช้ในMacAppซึ่งเป็นเฟรมเวิร์กแอปพลิเคชันหลักของ Apple ในเวลานั้น MacApp 3.0 เปิดตัวในปี 1991 เขียนใหม่อีกครั้งใน C ++ และ Apple ได้ยกเลิกการสนับสนุน Object Pascal เพื่อสนับสนุน C ++ เมื่อพวกเขาย้ายจากชิป 68K ของ Motorola ไปยัง PowerPC

Object Pascal ของ Borland ซึ่งปัจจุบันใช้ชีวิตอยู่ในฐานะEmbarcadero Delphiเริ่มต้นในปีพ. ศ. 2529 เพื่อเป็นส่วนเสริมของTurbo Pascalซึ่งมีจุดประสงค์คล้ายกับ Object Pascal ของ Apple Niklaus Wirth ผู้ริเริ่มของ Pascal ได้รับการปรึกษาจากทั้ง Apple และ Borland สำหรับสายพันธุ์ที่เกี่ยวข้อง

ในทางกลับกัน Objective C เป็นภาษาหลักของ NeXTSTEPและเปิดตัวที่ Apple หลังจากที่พวกเขาซื้อ NeXT ในปี 1996


4
คำตอบที่ดี แต่เนื่องจากเป็นที่ยอมรับคุณควรเพิ่มการกล่าวถึงทั้ง Pascal และ C ตั้งแต่เริ่มต้น Mac Toolbox และ OS ใช้การประชุม Pascal และได้รับการบันทึกเป็นส่วนใหญ่จาก Pascal มีคอมไพเลอร์ Pascal จำนวนหนึ่งที่มีอยู่ ความนิยมมากที่สุดอาจเป็น Lightspeed Pascal C ก็ได้รับความนิยมตั้งแต่เริ่มต้นและเมื่อถึงเวลาที่คิดว่าทั้ง Lightspeed C และ Lightspeed Pascal นั้น C อาจเป็นตัวเลือก "มาตรฐาน" สำหรับนักพัฒนาอินดี้ นอกจากนี้ metrowerks C ++ และ PowerPlant สมควรได้รับการกล่าวถึง
Caleb

1
คำตอบนี้ดูเหมือนจะเอนตัวไปสู่กรอบการทำงานที่ใช้ในการพัฒนามากกว่าภาษาใด คำถามของ OP เกี่ยวกับ Objective-C (ภาษา) ไม่ใช่ Cocoa (เฟรมเวิร์ก) แต่คำตอบมีย่อหน้าบน MacApp (กรอบงาน) และการกล่าวถึง C / C ++ เล็กน้อยนอกเหนือจากข้อเท็จจริงที่ว่า MacApp นั้นถูกส่งไปยังมัน มีการเขียนแอปพลิเคชันจำนวนมากโดยตรงกับ Mac OS Toolbox ใน Pascal, C และ / หรือ C ++ คำตอบที่ดีเป็นอย่างอื่น แต่ต้องการความครอบคลุมที่กว้างขึ้นของ C / C ++
morgant

12

Apple] [ถูกตั้งโปรแกรมโดยทั่วไปในรหัสเครื่อง BASIC หรือ 6502

Lisa เป็นโปรแกรมในปาสกาลโดยทั่วไป

แอป Macintosh ก่อนเขียนใน Pascal เป็นครั้งแรกใน Lisa และต่อมาใน Mac เอง

Think Pascal เป็นสภาพแวดล้อมการพัฒนาที่ได้รับความนิยมสูงสุดในช่วงเวลาหนึ่งจากนั้น Think C Think C มีวัตถุที่มีน้ำหนักเบาบางครั้งเรียกว่า C + - และ C ++ ต่อมา นอกจากนี้ยังมีไลบรารีคลาสของตนเองที่เรียกว่า Think Class Library อย่างเหมาะสม

MPW จาก Apple ยังได้รับความนิยมเนื่องจากอนุญาตให้คุณผสมภาษา (โดยทั่วไปคือ Pascal, C, C ++, และ Assembler) และสคริปต์สร้างคล้ายกับสภาพแวดล้อม unix แม้ว่าไวยากรณ์จะแตกต่างกันมาก

MacApp ถูกเขียนใน Object Pascal และอย่างที่ใครบางคนพูดในภายหลังก็ย้ายไปที่ C ++ ด้วยการย้ายไปยังระบบ PowerPC โปรแกรมเมอร์จำนวนมากเปลี่ยนไปใช้ Metrowerks CodeWarrior เป็นสภาพแวดล้อมการพัฒนาและไลบรารีคลาส C ++, PowerPlant

Object--C นั้นถูกใช้ที่ NeXT และสำหรับ Mac OS X แม้ว่าแอปพลิเคชั่น Mac OS X สามารถเขียนใน C / C ++ ผ่านทางแอป "Carbon" ของ Apple วันนี้แอพ Mac และ iOS ส่วนใหญ่เขียนขึ้นใน Cocoa / Obj-C แม้ว่าหลายแห่งจะมีไลบรารี่ C หรือ C ++ อยู่ด้านล่าง


1
แอปเปิ้ล /// ได้รับการตั้งโปรแกรมใน Pascal (ISTR ยังมีตัวแปรพื้นฐานที่มีอยู่) ฉันคิดว่าเราใช้ระบบ UCSD pSystem แต่มีคอมไพเลอร์ของ Apple Pascal ด้วย
TMN

Apple /// เป็นคอมพิวเตอร์ Apple เครื่องเดียวที่ฉันไม่เคยตั้งโปรแกรม ฉันจำระบบ UCSD pSystem สำหรับ Apple ได้ [เช่นกัน แต่ฉันไม่คิดว่าจะมีวิธีที่ดีในการเผยแพร่แอพที่เขียนไว้ในนั้น
EricS

8

ภาษามาตรฐานของ Mac OS Classic คือ Pascal เอกสาร API ของระบบปฏิบัติการนั้นเขียนขึ้นสำหรับ Pascal และ OS ส่วนใหญ่ที่ไม่ได้เขียนด้วย ASM ที่ปรับปรุงด้วยมือเขียนด้วยภาษา Pascal

หลังจากเปลี่ยนไปใช้สถาปัตยกรรม PowerPC พวกเขาเขียนระบบปฏิบัติการใหม่ใน C ++ พร้อมด้วยความเสถียรของระบบลดลงอย่างเห็นได้ชัดซึ่งไม่น่าแปลกใจสำหรับทุกคนที่คุ้นเคยกับ Pascal และ C ++ เอกสาร API นั้นยังคงถูกเขียนขึ้นสำหรับ Pascal เป็นหลักแม้ว่า Steve Jobs จะกลับมาและเริ่มพยายามบังคับ Objective-C ลงไปในลำคอของทุกคน


4
"มาพร้อมกับความเสถียรของระบบลดลงอย่างเห็นได้ชัดซึ่งไม่น่าแปลกใจสำหรับทุกคนที่คุ้นเคยกับ Pascal และ C ++": เมื่อทำงานกับทั้งสองภาษาฉันสามารถเชื่อสิ่งนี้ได้อย่างง่ายดาย บางครั้งฉันก็ยังสงสัยว่าทำไม Pascal (หรือส่วนขยายเชิงวัตถุใด ๆ ) นั้นได้รับความนิยมน้อยกว่า C ++: หลังจากทั้งหมดการพัฒนาและการแก้ไขข้อผิดพลาดเวลาเสียเงิน อาจเป็นเพราะปาสกาลล้มเหลวในการสร้างชุมชนที่แข็งแกร่งและกะทัดรัดคล้ายกับของ C ++
Giorgio

3
ปาสกาลล้มเหลวเป็นส่วนใหญ่เพราะไม่มีมาตรฐาน (มาตรฐานมาช้าเกินไป) และเซตย่อยทั่วไปมีข้อ จำกัด มากเกินไป (คุณต้องพึ่งพาส่วนขยายเพื่อทำการรวบรวมแยกต่างหากคุณต้องพึ่งพาส่วนขยายเพื่อเขียนรูทีนย่อยที่สามารถยอมรับอาร์เรย์ของ คุณต้องพึ่งพาส่วนขยายถึง ... คุณตั้งชื่อมัน)
AProgrammer


4
@ KeithThompson แต่น่าเสียดายที่หลายคนอ้างว่าการเขียนเรียงความเป็นข้อโต้แย้งต่อต้านส่วนขยาย Pascal มันเหมือนกับการอ้างถึงบทความสมมุติฐานที่เรียกว่า "ทำไม C ไม่ใช่ภาษาโปรแกรมโปรดของฉัน" ซึ่งจะพูดคุยเกี่ยวกับการขาดคลาสและการสืบทอดที่เหมาะสมและใช้เป็นอาร์กิวเมนต์สำหรับ C ++ หรือ Objective C.
acelent

2
@Paulo: Heck ฉันจะยืนยันว่า C ++ ยังไม่มีคลาสและการสืบทอดที่เหมาะสม หากวัตถุเป็นประเภทค่าไม่ใช่ประเภทอ้างอิงแสดงว่าคุณได้ทำลาย LSP หลักการหลักของการสืบทอดและ OOP เองตั้งแต่เริ่มแรก นั่นเป็นเหตุผลที่ภาษาเชิงวัตถุหลักอื่น ๆ ทั้งหมด (รวมถึง Simula ซึ่งกำเนิดแนวคิดและ Smalltalk ซึ่งกำเนิดคำว่า "การเขียนโปรแกรมเชิงวัตถุ) ไม่ได้ทำอย่างนั้น
Mason Wheeler

2

... และก่อนหน้า Mac (Apple II) การเขียนโปรแกรมส่วนใหญ่อยู่ในพื้นฐาน (สำหรับตัวแปรทั้งหมดของ Apple II ถึง IIgs)

ฉันยังจำได้ว่าทำการพัฒนา C ++ ในระบบ 7 โดยใช้ Metroworks CodeWarrior ซึ่งเป็นโพสต์ PowerPC (แน่นอน)


4
ไม่ได้จริงๆ แอปเปิ้ลเก่ามาพร้อมกับ BASIC ในตัว แต่แม้ตามมาตรฐานของวันนั้นมันถูกมองว่าเป็นภาษาของเล่นส่วนใหญ่เนื่องจากประสิทธิภาพที่ไม่ดีและการรองรับเสียงและกราฟิกน้อยที่สุด แน่นอนว่ามีข้อยกเว้น แต่การเขียนโปรแกรมที่ร้ายแรงที่สุดในระบบ Apple II นั้นทำใน Pascal หรือ ASM
Mason Wheeler

2
อ่า - ขอบคุณ ประสบการณ์การเขียนโปรแกรมของฉันใน Apple II เป็นพื้นฐานทั้งหมดเพราะเป็นครั้งแรกที่ฉันได้สัมผัสกับการเขียนโปรแกรม (ดังนั้นเราจึงติดอยู่กับ BASIC และชุดคำสั่งนั้น) ฉันยังจำได้ว่าทำโลโก้ "แต่ฉันไม่รู้ว่าใครทำงานอย่างจริงจังกับมัน
Chad Thompson

UCSD Pascal เป็นภาษา "ของจริง" สำหรับ Apple เท่านั้น] [ที่ฉันจำได้ แต่มีเพียงไม่กี่แอปพลิเคชันที่ใช้ ถ้า BASIC ช้าเกินไปสำหรับคุณโดยทั่วไปคุณจะเข้าสู่การชุมนุม
Gort the Robot

แม้จะมีข้อ จำกัด แต่ฉันก็ไม่สงสัยเลยว่า
dan04

@ dan04: เท่าที่ฉันจำได้ว่าแอสเซมบลีมักใช้สำหรับการเขียนโปรแกรม Apple] [ การเปลี่ยนไปใช้โหมดมอนิเตอร์เป็นหนึ่งในสิ่งแรกที่แฮ็กเกอร์ได้เรียนรู้
Giorgio
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.