Objective C以前のApple開発の「標準」言語は何ですか?


27

Appleハードウェア開発の初期からObjective Cが使用されていたとは思いません。Apple IIやMac Classicなど、以前のAppleコンピューターでアプリ開発者が使用した言語は何ですか?

回答:


35

1985年、ラリー・テスラーはアップルのPascalフレーバーであるObject Pascalを開発しました。これはSystem 6の標準言語になりました。これは、Appleでも開発された1983 PascalのLisaの変形であるClascalに基づいていました。

Object Pascalは、当時Appleの主要なアプリケーションフレームワークであるMacAppで使用されていました。1991年にリリースされたMacApp 3.0はC ++で書き直され、その後Appleはモトローラの68KチップからPowerPCに移行したときにC ++を支持してObject Pascalのサポートを終了しました。

現在Embarcadero Delphiとして存続しているBorlandのObject Pascalは、1986年にTurbo Pascalの拡張セットとして始まりました。これはAppleのObject Pascalに類似するものでした。パスカルの創始者であるニクラウス・ワースは、それぞれの亜種についてアップルとボーランドの両方から相談を受けました。

逆に、Objective CはNeXTSTEPの主要言語であり、1996年にNeXTを購入して初めてAppleに導入されました。


4
良い答えですが、受け入れられているので、PascalとCの両方に言及する必要があります。最初から、Mac ToolboxとOSはPascal呼び出し規約を使用しており、主にPascalで文書化されていました。多くのPascalコンパイラが利用できました。最も人気があったのはおそらくLightspeed Pascalでした。Cも最初から人気があり、ThinkがLightspeed CとLightspeed Pascalの両方を購入した頃には、Cはおそらくインディー開発者にとって「標準」の選択肢でした。また、metrowerks C ++およびPowerPlantに言及する価値があります。
カレブ

1
この答えは、どの言語ではなく開発にどのフレームワークが使われたかにより傾いているようです。OPの質問は、Cocoa(フレームワーク)ではなくObjective-C(言語)についてでしたが、答えにはMacApp(フレームワーク)に関する段落があり、MacAppが移植されたという事実以外にC / C ++についてはほとんど言及されていません。多くのアプリケーションは、パスカル、CでMac OSのツールボックス、および/またはC ++に直接書かれていました。そうでなければ良い答えですが、C / C ++のより広い範囲を必要とします。
モーガン

12

Apple] [は、一般にBASICまたは6502マシンコードでプログラムされていました。

リサは一般にパスカルでプログラムされました。

初期のMacintoshアプリはPascalで作成され、最初はLisaで、その後はMac自体で作成されました。

Think Pascalはしばらくの間最も人気のある開発環境であり、その後Think Cでした。ThinkCには軽量オブジェクトがあり、C +-およびそれ以降のC ++と呼ばれることもありました。また、Think Class Libraryと呼ばれる適切な独自のクラスライブラリもありました。

AppleのMPWは、言語(通常Pascal、C、C ++、およびアセンブラー)とunix環境に似たスクリプトビルドを混在させることができるため、構文も非常に異なっていたため、人気がありました。

MacAppはObject Pascalで記述され、誰かが言ったように、後でC ++に移行しました。PowerPCシステムへの移行に伴い、多くのプログラマーが開発環境およびそのC ++クラスライブラリであるPowerPlantとしてMetrowerks CodeWarriorに切り替えました。

Objective-CはNeXTで使用され、次にMac OS Xで使用されましたが、Mac OS XアプリケーションはAppleの「Carbon」APIを介してC / C ++で作成することもできます。最近では、ほとんどのMacおよびiOSアプリはCocoa / Obj-Cで作成されていますが、多くのアプリにはCまたはC ++ライブラリがあります。


1
Apple ///もPascalでプログラムされました(ISTRにはBASICのバリアントもありました)。UCSD pSystemを使用したと思いますが、Apple Pascalコンパイラもありました。
TMN

Apple ///は、私がプログラミングしたことがない唯一のAppleコンピューターでした。Apple用のUCSD pSystemも覚えています] []が、それに書かれたアプリを配布する良い方法があったとは思わない。
EricS

8

Mac OS Classicの標準言語はPascalでした。OSのAPIドキュメントはすべてPascal用に作成されており、手動で最適化されたASMで作成されていないOSの多くはPascalで作成されています。

PowerPCアーキテクチャに移行した後、彼らはC ++でOSを書き直しましたが、システムの安定性は非常に顕著に低下しましたが、PascalとC ++に精通している人なら驚くことではありません。APIドキュメントは、主にPascal向けに書かれ続けましたが、Steve Jobsが戻ってきて、Objective-Cをすべての人の喉に押し付けようとしました。


4
「システムの安定性の非常に顕著な低下を伴いますが、PascalとC ++に精通している人にとっては驚くことではありません」:両方の言語で作業したことは簡単に信じられます。Pascal(またはそのオブジェクト指向の拡張)が現在C ++よりも人気が低いのはなぜかと思うことがあります。結局、開発とバグ修正に時間がかかります。たぶん、PascalがC ++のような強力でコンパクトなコミュニティを構築できなかったからでしょう。
ジョルジオ

3
Pascalが失敗した主な理由は、標準がなく(標準が遅すぎたため)、共通のサブセットが制限的すぎたためです(個別のコンパイルを行うには拡張機能に頼らなければなりませんでした。長さを変え、あなたがする...あなたはそれに名前を付ける)の拡張機能に依存していた
AProgrammer


4
@KeithThompsonは、残念ながら、多くの人がそのエッセイをPascal拡張機能に対する議論として引用しています。これは、仮に適切なクラスと継承の欠如についての話、およびC ++または客観C.のいずれかに対する引数としてそれを使用することになる、「なぜCはなく、私のお気に入りは、言語のプログラミングされた」と呼ばれる仮想的な記事を引用ようなものだ
acelent

2
@Paulo:ヘック、C ++にはまだ適切なクラスと継承がないと主張します。オブジェクトが参照型ではなく値型である場合、最初から継承とOOP自体の中核となる原則であるLSPを破りました。そのため、他のすべての主要なオブジェクト指向言語(コンセプトの元になったSimulaや、「オブジェクト指向プログラミング」の元になったSmalltalkを含む)は、そのようにはしませんでした
Mason Wheeler

2

...そしてMac(Apple II)より前は、ほとんどのプログラミングはBASICでした。(Apple IIからIIgsへのすべてのバリアント)

また、Metroworks CodeWarriorを使用して、System 7でC ++開発を行ったことも思い出します。これは(もちろん)PowerPCの後でした。


4
あんまり。古いAppleにはBASICが組み込まれていましたが、当時の標準でさえ、その貧弱なパフォーマンスとサウンドとグラフィックスの最小限のサポートのため、ほとんどがおもちゃの言語と見なされていました。もちろん例外もありましたが、Apple IIシステムでの最も深刻なプログラミングはPascalまたはASMで行われました。
メイソンウィーラー

2
ああ-ありがとう。Apple IIでの私のプログラミング経験はすべてBASICでした。これはプログラミング全般に初めて触れたからです。(したがって、BASICとその命令セットに固執しました。)「ロゴ」をやったことも思い出しますが、誰かがそれで深刻な仕事をしたかどうかはわかりません。
チャドトンプソン

UCSD PascalはAppleが利用できる唯一の「本物の」言語でした] [私は覚えているが、アプリケーションがそれを使用したとしてもほとんどなかった。BASICが遅すぎる場合は、通常、組み立てに直行しました。
ゴートロボット

その制限にもかかわらず、当時の「ほとんどのプログラミング」がBASICで行われたことを疑いません。
dan04

@ dan04:覚えている限り、アセンブリはAppleのプログラミングに一般的に使用されていました] [。監視モードへの切り替えは、ハッカーが最初に学んだことの1つです。
ジョルジオ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.