Ngôn ngữ nào đã được chuẩn hóa cho các nhà phát triển của Apple trước Objective C?


27

Tôi không nghĩ Objective C đã được sử dụng từ khi bắt đầu phát triển phần cứng của Apple. Những ngôn ngữ nào các nhà phát triển ứng dụng đã sử dụng cho các máy tính Apple trước đó, chẳng hạn như Apple II hoặc Mac Classic?

Câu trả lời:


35

Năm 1985, Larry Tesler đã phát triển hương vị Pascal cho Apple, Object Pascal , trở thành ngôn ngữ tiêu chuẩn cho Hệ thống 6 . Nó dựa trên Clascal , một biến thể Pascal năm 1983 cho Lisa , cũng được phát triển tại Apple.

Object Pascal đã được sử dụng trong MacApp , khung ứng dụng chính của Apple tại thời điểm đó. MacApp 3.0, được phát hành vào năm 1991, được viết lại bằng C ++ và sau đó Apple đã bỏ hỗ trợ cho Object Pascal để ủng hộ C ++ khi họ chuyển từ chip 68K của Motorola sang PowerPC.

Object Pascal của Borland, ngày nay tồn tại dưới tên Embarcadero Delphi , bắt đầu từ năm 1986 với tư cách là một bộ phần mở rộng cho Turbo Pascal , được dự định tương tự như Object Pascal của Apple. Niklaus Wirth, người sáng lập Pascal, đã được cả Apple và Borland tư vấn cho các biến thể tương ứng của họ.

Ngược lại, Objective C là ngôn ngữ chính của NeXTSTEP và chỉ được giới thiệu tại Apple sau khi họ mua NeXT vào năm 1996.


4
Câu trả lời hay, nhưng vì nó là câu trả lời được chấp nhận, bạn thực sự nên thêm đề cập cho cả Pascal và C. Ngay từ đầu, Mac Toolbox và OS đã sử dụng các quy ước gọi Pascal và được ghi nhận phần lớn bằng Pascal. Có một số trình biên dịch Pascal có sẵn; phổ biến nhất có lẽ là Lightspeed Pascal. C cũng đã phổ biến ngay từ đầu và vào thời điểm Think mua cả Lightspeed C và Lightspeed Pascal, C có lẽ là lựa chọn "tiêu chuẩn" cho các nhà phát triển độc lập. Ngoài ra, metrowerks C ++ và PowerPlant xứng đáng được đề cập.
Caleb

1
Câu trả lời này dường như nghiêng nhiều hơn về những khuôn khổ nào được sử dụng để phát triển trái ngược với ngôn ngữ nào . Câu hỏi của OP là về Objective-C (ngôn ngữ), không phải Cacao (khung), nhưng câu trả lời có một đoạn trên MacApp (khung) và ít đề cập đến C / C ++ ngoài việc MacApp được chuyển sang nó. Rất nhiều ứng dụng đã được viết trực tiếp trên Mac OS Toolbox trong Pascal, C và / hoặc C ++. Câu trả lời tốt khác, nhưng cần phạm vi bảo hiểm rộng hơn của C / C ++.
Morgant

12

Apple] [thường được lập trình theo mã máy BASIC hoặc 6502.

Lisa thường được lập trình trong Pascal.

Các ứng dụng Macintosh ban đầu được viết bằng Pascal, đầu tiên là trên Lisa và sau đó là trên Mac.

Think Pascal là môi trường phát triển phổ biến nhất trong một thời gian và sau đó Think C. Think C có các đối tượng nhẹ, đôi khi được gọi là C + - và sau đó là C ++. Nó cũng có thư viện lớp riêng, được gọi là Thư viện lớp tư duy.

MPW từ Apple cũng rất phổ biến vì nó cho phép bạn trộn các ngôn ngữ (nói chung là Pascal, C, C ++ và trình biên dịch) và tập lệnh xây dựng tương tự như môi trường unix, mặc dù cú pháp rất khác nhau.

MacApp được viết bằng Object Pascal và như ai đó đã nói, sau đó chuyển sang C ++. Với việc chuyển sang các hệ thống PowerPC, nhiều lập trình viên đã chuyển sang Metrowerks CodeWar Warrior như một môi trường phát triển và thư viện lớp C ++ của nó, PowerPlant.

Objective-C đã được sử dụng tại NeXT và sau đó cho Mac OS X, mặc dù các ứng dụng Mac OS X cũng có thể được viết bằng C / C ++ thông qua API "Carbon" của Apple. Ngày nay, hầu hết các ứng dụng Mac và iOS được viết bằng Cốc Cốc / Obj-C, mặc dù nhiều ứng dụng có thư viện C hoặc C ++ bên dưới.


1
Apple /// cũng được lập trình trong Pascal (ISTR cũng có sẵn một biến thể BASIC). Tôi nghĩ rằng chúng tôi đã sử dụng UCSD pSystem, nhưng cũng có một trình biên dịch Apple Pascal.
TMN

Apple /// là máy tính Apple duy nhất tôi chưa từng lập trình. Tôi cũng nhớ một hệ thống UCSD cho Apple] [cũng vậy, nhưng tôi không nghĩ có một cách hay để phân phối các ứng dụng được viết trong đó.
EricS

8

Ngôn ngữ tiêu chuẩn của Mac OS Classic là Pascal. Tất cả tài liệu API của HĐH đều được viết cho Pascal và phần lớn hệ điều hành không được viết bằng ASM được tối ưu hóa bằng tay được viết bằng Pascal.

Sau khi chuyển sang kiến ​​trúc PowerPC, họ đã viết lại HĐH trong C ++, kèm theo sự giảm đáng kể về độ ổn định của hệ thống, điều này sẽ không gây ngạc nhiên cho bất kỳ ai quen thuộc với Pascal và C ++. Tuy nhiên, tài liệu API tiếp tục được viết chủ yếu cho Pascal, cho đến khi Steve Jobs quay lại và bắt đầu cố gắng ép buộc Objective-C xuống cổ họng của mọi người.


4
"Đi kèm với sự giảm đáng kể về độ ổn định hệ thống, điều này sẽ không gây ngạc nhiên cho bất kỳ ai quen thuộc với Pascal và C ++": Đã làm việc với cả hai ngôn ngữ tôi có thể dễ dàng tin vào điều này. Đôi khi tôi vẫn tự hỏi tại sao Pascal (hoặc bất kỳ phần mở rộng hướng đối tượng nào) hiện ít phổ biến hơn C ++: xét cho cùng, thời gian phát triển và sửa lỗi tốn tiền. Có thể đó là do Pascal đã thất bại trong việc xây dựng một cộng đồng mạnh mẽ và nhỏ gọn tương tự như C ++.
Giorgio

3
Pascal thất bại chủ yếu là do không có tiêu chuẩn (cũng là tiêu chuẩn quá muộn) và tập hợp con quá hạn chế (bạn phải dựa vào các phần mở rộng để thực hiện việc biên dịch riêng biệt, bạn phải dựa vào các phần mở rộng để viết một chương trình con có thể chấp nhận mảng độ dài khác nhau, bạn phải dựa vào các tiện ích mở rộng để ... bạn đặt tên cho nó)
AProgrammer


4
@KeithThndry, thật không may, nhiều người trích dẫn bài tiểu luận đó như là một lập luận chống lại bất kỳ phần mở rộng Pascal nào. Nó giống như trích dẫn một bài báo giả định có tên "Tại sao C không phải là ngôn ngữ lập trình yêu thích của tôi", theo giả thuyết sẽ nói về việc thiếu các lớp và kế thừa thích hợp, và sử dụng nó như một đối số chống lại C ++ hoặc Objective C.
acelent

2
@Paulo: Heck, tôi cho rằng C ++ vẫn không có các lớp và kế thừa phù hợp. Nếu một đối tượng là một loại giá trị, không phải là loại tham chiếu, bạn đã phá vỡ LSP, nguyên tắc cốt lõi của thừa kế và của chính OOP, ngay từ đầu. Đó là lý do tại sao tất cả các ngôn ngữ hướng đối tượng chính khác (bao gồm Simula, bắt nguồn từ khái niệm này và Smalltalk, bắt nguồn từ thuật ngữ "lập trình hướng đối tượng) đã không làm theo cách đó.
Mason Wheeler

2

... và trước Mac (Apple II), hầu hết các chương trình đều ở BASIC. (Dành cho tất cả các biến thể của Apple II đến IIss)

Tôi cũng nhớ lại việc thực hiện phát triển C ++ trên Hệ thống 7 bằng cách sử dụng Metrowork CodeWar Warrior - đây là (tất nhiên) bài PowerPC.


4
Không hẳn vậy. Táo cũ đi kèm với BASIC tích hợp, nhưng ngay cả theo tiêu chuẩn ngày nay, nó vẫn được coi là ngôn ngữ đồ chơi do hiệu suất kém và hỗ trợ tối thiểu cho âm thanh và đồ họa. Tất nhiên, có những trường hợp ngoại lệ, nhưng hầu hết các chương trình nghiêm túc trên các hệ thống Apple II đều được thực hiện trong Pascal hoặc ASM.
Mason Wheeler

2
À - cảm ơn. Trải nghiệm lập trình của tôi trên Apple II là tất cả BASIC vì đây là lần đầu tiên tôi tiếp xúc với lập trình nói chung. (Do đó chúng tôi bị mắc kẹt với BASIC và tập lệnh đó.). Tôi cũng nhớ lại việc làm "Logo", nhưng tôi không biết liệu có ai làm việc nghiêm túc với nó không.
Chad Thompson

UCSD Pascal là ngôn ngữ "thực" duy nhất có sẵn cho Apple] [mà tôi nhớ, nhưng rất ít nếu có bất kỳ ứng dụng nào sử dụng nó. Nếu BASIC quá chậm đối với bạn, bạn thường đi thẳng vào lắp ráp.
Gort Robot

Mặc dù có những hạn chế, tôi không nghi ngờ rằng "hầu hết lập trình" những ngày đó đã được thực hiện trong BASIC.
dan04

@ dan04: Theo tôi có thể nhớ lắp ráp thường được sử dụng để lập trình Apple] [. Chuyển sang chế độ giám sát là một trong những điều đầu tiên tin tặc học được.
Giorgio
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.