web-dev-qa-db-ja.com

CがPascalに勝ったのはなぜですか?

私の理解では、1980年代、そしておそらく1990年代にも、パスカルとCは実動言語としてかなり対戦相手でした。

Pascalの最終的な終焉は、ボーランドが Delphi を無視したことによるものだけですか?あるいは、不運やパスカルの本質的な問題(復活への希望?).

私は、好き嫌いではなく、歴史的事実とバックアップできる観察に興味があります。

71
Konrad Morawski

パスカルは主に次の理由で戦いに負けました:

  • 冗長(if ... then begin ... endvar A: array[0..15] of Integer
  • 相互に理解できない方言と公式標準
  • 印象的ではないオブジェクト指向拡張
  • 最も成功した実用的な方言-Turbo Pascal-は、DOS/Windows以外のプラットフォームに移植されたことはありません。さらに、Borlandはコンパイラのソースを公開していません。
  • Pascalの「最後の希望」であるDelphiは、ボーランドによって、企業環境を対象としたデータベース開発プラットフォームとして位置付けられました。クリエイティブエンジニアはデータベースと企業環境の両方を嫌うので、これは不幸なマーケティングの動きでした(私が推測するマーケティングの人々によって作られました)。その後、Delphi for Linuxの失敗、Kylix。
  • AppleはCに切り替え、その後Objective-Cに切り替えたため、OS言語としてのPascalは殺されました
43
mojuba

CはUnixのベースです。 80年代と90年代に、Unixはますます注目されました。今日、Unixの味がスマートフォンにあります。

44
mouviciel

エッセイ パスカルが私の好きな言語ではない理由 Brian W. Kernighanが批評の主要なポイントをカバーしています。

Cははるかに用途が広く、拡張可能です。 C を使用したオブジェクト指向プログラミングの方法(ある種の)を知る人もいます。また、インラインアセンブラやその他の低レベル機能により、システムプログラミングの重要な言語になりました。

35
Felix Dombek

専用ではありませんが、Pascalはプログラミングを教えるために設計されており、実際に1次言語として使用されることはありません。

DelphiとObject Pascalはそれを変更しました。しかし、その時はすでに遅れていました。

23
Let_Me_Be

CがPascalに勝ったとは思いません。大多数のプログラマーにとって、JavaはPascalよりも優勢でした。Pascalでプログラミングするために使用していたプログラマーのカテゴリーは、Java(またはC#)同じ仕事。Cでプログラミングをしていた人たちはC(およびC++)にこだわっていました。

Pascalの終焉は、主にBorlandがGUIの働き方に固執し、顧客がWebに移行したことによって引き起こされたIMHOです。ボーランドは、サーバー側の開発に対して本当に魅力的な提案をしていませんでした。 Delphiがすべての実用的な目的で死亡した過去数年間で、Delphiを使用していた人たちはC#に移行しました。 C/C++は常に、Pascal/Java/C#の群衆とは異なる群集であり、C(++)の人たちはより技術的/低レベルなことに焦点を合わせています。

18
Jaap

簡単に言えば、Cはポータブルアセンブラー、Pascalは教育用言語です。

これは ウィキペディアのセクション で実際にカバーされています。

編集:
ここでは、私の答えを誤解しているようです。または実際にはむしろ問題。
この質問は人気についてです。そして、Cが最終的にPascalよりも人気がある理由は、1つは金属に近い携帯用言語として設計および販売され、もう1つは教育言語として設計および販売され、多くの安全性と明快さを強制するためです。
結局のところ、どちらかの言語が目標に設定された目標を達成できなかったか、予想外の成果を上げたかどうかは、実際には重要ではありません。そして、パスカルよりもCの方が優れていることから人気の違いを推測しようとする人は誰でも、明らかに間違っています。
この質問の鍵は、歴史とそれに関連するヒステリーにあります。

11
back2dos

ホーリースモークはこれは一方的な負荷ですが、デルファイを好きな言語としてこのサイトを始めたすべての人々はどこにいますか?

ほとんど誰もがボーランドに言及しており、人々の3分の2はDelphiがバケツを蹴ったと考えています。ええと、ごめんなさい、Embarcaderoは数年前にBorlandのCodeGearユニットを(慈善事業ではなくお金のために)購入しました。彼らはいくつかの驚くべきことを行っており、いくつかの驚くべきツールをその驚くべきものに統合していますIDEそして、クロスプラットフォーム開発のためのかなりすばらしいプラットフォームを作成するIN OBJECT Pascal。オープンソース側のLazarusとFreePascalは言うまでもありません。

したがって、これがCがPascalよりも優勢であった歴史的な質問である場合は、OK、それは質問を始めるための許容できる主張です。しかし、Object Pascalでのコードの作成者数は増加しています。 TIOBEインデックス がその意味を完全に表していることはわかりませんが、Object Pascalでコードを作成していることと、 Embarcaderoが新しいツールをリリースするたびにスパイクが発生するため、新しい(古いものを維持するだけでなく)コードを書くことに関心がある実際の人間はDelphiに関心があります。

Cに関連することなら何でも同じことが言えるかわかりません。

5
Peter Turner

70年代から80年代前半にかけて、Cコンパイラはパーソナルコンピュータ用に比較的簡単に入手できましたが、ほとんどはCのサブセットのみでした(そのため、古い雑誌に非常に多くの「小さなC」コンパイラの広告が掲載されています。 )。 Pascalは、最も裕福なコンピュータ愛好家だけがハードドライブを備えていた時代には、より大きくて扱いにくい言語でした(5メガのハードドライブは数百ドルでした)。 Apple 2(私の最初のコンピュータで、「プラス」でもなかった)の場合、 Pascal を実行するには、追加のメモリカードを購入する必要がありました(64kが必要でした) RAM!)とロードに数枚のフロッピーを使用しましたが、「小さなC」コンパイラは1つのフロッピーに収まります(16kのRAMでうまくいく可能性があります)。

パスカルはコンピューターサイエンスのカリキュラムで教えられたが、Cはほとんどが独学で(電気工学のカリキュラムで教えられることもある)。 Pascalは、カウボーイコーダーの間で「束縛と規律の言語」であるという評判を得ました。これは、彼らが会ったことがないので、当然のことだと思いました [〜#〜] ada [〜#〜]

80年代のPascalの主要なドライバーは、Apple(APIがPascal呼び出し標準を使用したため)とBorlandでした。Borlandの「Turbo」コンパイラーは、おそらく市場で最も優れたコンパイラーでした。本」ライセンスは、より悪質なライセンスを持つ企業よりもはるかに人気がありました。

マイクロソフトがリードデベロッパーおよびプロジェクトマネージャー(Hejlsberg、Gross、その他35名以上)を雇用し、最終的に.NETおよびVisual Studioを開発したため、ボーランドは開発市場でのリードを失いました。ボーランドとマイクロソフトは数年後に訴訟を解決したが、ボーランドは損失から回復したことはなかった。私の意見では、Delphiはそのとき衰退し始め(それにフォーカスとドライブを与えた人々が雇われたため)、同時にCEOの変更によりボーランドはコンパイラ会社から [〜# 〜] alm [〜#〜] (アプリケーションライフサイクル管理)会社で、数年後にその名前をInpriseに変更しました。ボーランドの遺灰は現在、Micro Focusが所有しています。

4
Tangurena

私の見解では、Cおよびそれから派生した主要言語、C++、JavaおよびC#)は、MicrosoftやSun/Oracleなどの最大のソフトウェア会社やさまざまな開発スタックに採用されていました。その結果、それはWindowsの「母語」、Apple OSおよびUnix)になりました。

パスカルは、ボーランドの最善の、そしてしばしば見当違いの努力にもかかわらず、そのレベルの市場浸透を達成しませんでした。

1
jfrankcarr

Pascalは、限定された単一の環境のPC/DOSでのみ人気を博しました。

それでも、Pascalアプリケーションと同じ数のMicroFocus COBOLアプリケーションがPC上で実行されていました。

Cは、UNIXオペレーティングシステムとすべてのMS/Windowsオペレーティングシステムの基本でした。

限られたハードウェアでの効率的な実行と、基盤となるOSおよびGUIライブラリへのネイティブアクセスの組み合わせが、おそらくCの成功の主な理由でした。 PascalがWindowsで実際にそれをハッキングしたことは決してなく、Delphiは遅れて到着して違いを生み出すことができませんでした。

1
James Anderson