何が新しいプログラミング言語の採用を促進するのか、しないのか?[閉まっている]


12

新しいプログラミング言語が主流に採用され、他の言語が比較的ニッチのままである理由に焦点を当てたいと思います。特定のユースケース、後方互換性、またはいくつかの新機能、単純または複雑な実装の難しさなどについて知りたいです。特定の例をいただければ幸いですが、ここで「主流」または「ニッチ」の正確な定義に追いつくことは避けましょう。



2
チャンスと企業の支援は大きな要因です。steve-yegge.blogspot.com/2007/02/next-big-language.html
求人

3
このフォーラムに適した質問ではありません
ライアン

さて、これはフォーラムではありません。そして2人にとって、これは主観的な質問のガイドラインをかなり満たしていると思います。
DeadMG

1
プログラミング言語の採用は、それを使用する流行に敏感な人の数に反比例します。

回答:


18

誰もが本当に知っていれば、彼らは非常に金持ちになるでしょう。

とはいえ、ここに私の推測があります:

可用性

BASICは、最初に登場したときに(すべて?)PCに付属していたひどい小さな言語です。Apple II(多くの高校のデフォルトのコンピューター)、およびATARI 400/800(最初の超安価な家庭用コンピューター)の両方にBASICが搭載されました。

UNIXマシン(AT&T system VまたはBerkeleyのいずれか)があれば、Cがありました。マシンをプログラムしたいなら、それを使用しなければなりませんでした。

編集:ネットの出現と遍在により、この要件は次のように変わります。

  1. 最近のコピーをパッケージ化するLinuxディストリビューションの数と、それをどれだけ最新の状態に保ちますか?サードパーティのライブラリも同様にインストールできますか?
  2. Windows(XP | Vista | 7,8 ...)に簡単にインストールできますか?
  3. Mac / iOSプラットフォームは対象ですか?
  4. 従来のUnixに迷惑をかけずにインストールできますか?
  5. そして、インストールすると、サードパーティのライブラリにアクセスするのはどれくらい簡単ですか?簡単にアップグレードできますか?

移行のしやすさ

ここではJavaが良い例です。Cプログラミングを知っていれば、Javaはそれほど進歩していませんでしたが、Cには欠けていた機能の多くを提供し、C ++はきれいに提供できませんでした。

明らかな理由でC ++はCからの簡単な前進であり、「改善された」Cとして経営陣に販売するのは簡単でした。

Perlは、C、awk、sed、およびその他のUnixユーティリティをすべて1つのバンドルにまとめたものです。登場する前は、ほとんどのシステム管理はシェルスクリプトを介して行われ、すべてが不満足な方法で接着されていました。Cに似た言語のデータ構造と制御を使用して、すべてを1つのプロセスにまとめることは、天の恵みでした。

ニーズを満たす

Cは、マシン固有の保守が難しいアセンブリの世界に行き詰まることなく、アセンブリに近い効率を実現できるため、離陸しました。

FORTRANは、機械の詳細に迷うことなく、数学的なアイデアをコードに簡単に変換できるため、離陸しました。

LISPおよびシンボリック操作についても同様です。

Pythonは、「より良い」Perlの必要性から生まれました。(私はここで偏見があるので、これ以上は言いません。)

PHPは基本的にWebのBASICでした。多くのWebサーバーにデフォルトでインストールされており、便利なものをすぐにハッキングするのは簡単でした。

アドボカシー、ユーザーベース、寄稿されたコード

正直に言って、Haskellは、開発者とユーザーベースのたゆまぬ支持がなければ、非生産言語の場合ほど人気が​​ありません。

多くの言語には、その言語の作成者の背後にある個性的なカルトがあり、誰もが彼らが誰であるかを知っています。

FORTRANには、確立され、吟味された膨大な数の数学コードがあります。Javaおよびweb / systems-integration / MVC-systemsでも同じです。PerlとCPANでも同じです。T E Xとドキュメント管理でも同じです。等

それファクター

何らかの理由で、一部の言語は、古いものに十分なうなずきがあり、簡単に、または必要と思われる方法で、適切な量のnewを持っているように見えます。つまり、独自のケースを作成します。そして、これがどのように起こるかを誰が知っていますか?


とにかく、それがなぜそれを作るのかについての私の最良の推測です。一部がうまくいかない理由については、上記の基準を満たしていない場合、おそらく失敗した理由です。


1
ほとんどの基準の決定要因は、企業の 支援です。Javaは、例えば移行の容易さで得点したかもしれませんが、彼らの世界支配計画の一環として、年に何百万人もそれに喜んで吹き飛ばしてくれる人がいなければ、どんな違いが生じたのかは明らかではありません。だから、あなたは正しい、非常に金持ちはこれに対する答えを知っているか:
jaybee

4
@jaybee-言語作成者による企業支援が必ずしも助けになったかどうかはわかりません。FortranとCは、IBM / ATTから来ても特に助けにはなりませんでした。OracleのリンクはJavaを積極的に傷つけているようです。Basic、Perl、Python、Rubyなどには、背後に企業がありませんでした。ユーザー/顧客での社内サポートは重要ですが、それはユビキタスになってからずっと後に続きます。
マーティンベケット

1
@マーティンベケット:あなたはポイントを持っているかもしれません。言語がクリティカルマスに到達するためには、あらゆる種類の惑星を調整する必要があるかもしれませんが、それらの惑星を一列に並べる「現代の」方法は、現金を燃やすことであると思われます。たとえば、MarkはHaskellを例として使用しています。素晴らしい声のユーザーベースを持っているかもしれませんが、GHCは多くの議論に勝ちます。GHCのようなコンパイラには費用がかかります。
ジェイビー

@jaybee-たくさんの運があります。しかし、クールな新しいWeb言語の場合、重要なのは作成者/初期導入者のマーケティングスキルかもしれません。
マーティンベケット

11

言語は、必要な分野の既存の言語よりも有利であるため、人気があります。

Java

  • 自動メモリ管理(C ++およびCと比較)
  • スレッドに組み込まれた言語/ API
  • 仮想マシンで実行します(つまり、開発者は開発マシンでWindowsを使用して、Linux / Unixで変更せずにアプリケーションをテストおよびデプロイできます)。
  • ネットワークプログラミングは、以前最も普及していた言語(C ++およびC)よりもはるかに簡単であり、インターネットが普及し始めたときにJavaがリリースされました。

PHP

  • Web開発を簡単に
  • MySQLデータベースへの接続の組み込みサポート
  • コンパイルは不要で、スクリプトをHTMLファイルに簡単に組み込むことができました。

JavaScript

  • Webブラウザーの唯一の言語。
  • Webブラウザは、シンクライアント(Webアプリケーション)としてますます使用されています。
  • モバイルコード-導入が簡単でインストール不要

Objective-C

  • Mac OS X環境およびiPhone の言語。そしてiPhoneは大成功を収めています。

ルビー

  • WebフレームワークであるRuby on Railsとともに、MVCを使用した大規模なWeb開発がはるかに簡単になりました。

C#

  • 過去10年間のWindows環境用の言語。ほとんどすべてのMicrosoft APIは、Winforms、WPF、WCFなど、C#で簡単に使用できます。

ActionScript

  • Addobe Flash / Flex の唯一の言語であり、インターネット上のメディアコンテンツやJavaScriptが処理できないもので大成功を収めています。

アーラン

  • 並行性とフォールトトレランス-Erlangには、並行性とフレームワークのフォールトトレラントシステムを実行するための独自のモデルがありました。通信業界に役立つようになり、後にオープンソース化され、フォールトトレランスも必要とする大規模なインターネット企業から関心を集めました。

1
Erlangの並行性モデルは一意ではなく、い命令型言語で使用されるものとはまったく異なります:)。Scalaにも同じタイプがあります。同様に、ClojureとHaskellはSTMを専門としています。
代替案

4
@mathepic:本当ですが、これらの言語はすべてErlangよりも新しいです。だから、私がリストしたほぼすべての言語機能と同様に、それは最初はErlangにとってユニークでした。良いアイデアは盗む価値があります。
ジョナス

1
C#は.net言語です。Windowsは実際にはC ++で書かれていると思いました。これは間違っていますか。強力で使いやすいエディターツールを使用して強力なアプリケーションの開発を容易にし、開発者のニーズと実際の使用を考慮に入れた新しいフレームワークを使用して、人々が既に知っている言語(C)を活用することで、C#が普及したと思います。
SoylentGray

1
@Chad C#はCとは関係ありません
代替案

1
@mathepic-私はC、C ++、C#プログラミングに取り組んできました。私は、C#がまだ命名規則までそのcルートを保持していると言うことができます。それが言語を活用しないことを意味するものではありませんが、Cを超えていることは確かです。
SoylentGray

5

私は皮肉になります:お金とそれに伴うマーケティング。

C#がMicrosoftによって、JavaがOracleによって、Objective CがAppleによってサポートされているのは偶然ではありません。これまでのところ、GoogleのGoだけが実際に解除されていません。

もちろんお金だけが理由ではありませんが、お金を稼ぐことはあなたの言語を市場に出すのに役立ちます。


賛成と拡大:流行語、経営上の魅力、ビッグネーム、エキサイティングなサウンド機能。同意できない場合は、COBOLという名前を1つ付けます。
SF。

1
C#とObj-Cは、「必須」ほどサポートされていません。MSFTが提供するapiのみを使用してWindowsアプリをc ++でプログラムすることは難しく、少なくともApplesモバイルプラットフォームではAFAIKのみobj-Cが許可されます。一方のAndroidメーカーのOracleのsueingは、Java悪影響を及ぼす可能性がある
マーティンベケット

1
@Martin-あなたはおおむね正しいWRT Obj-Cです。技術的には、Appcelerator Ttaniumのようなものを使用して他の言語を使用してアプリを作成できますが、それでも展開のためにObj-Cに変換されます(それを実現するための戦いでした)。Appleはそれ以外のことはほとんど禁止します(PhoneGapでさえも順調です)。
シャウナ

3

一方では、マーケティング、より正確にはプレゼンテーション、ブログなどです。主流のプログラマーが、自分が知っていること(Java対C ++-ガベージコレクター対メモリ管理)に関連し、利点を確認できる機能を持つことが重要です。最後になりましたが、重要なことは、エントリーバリアが低いことです-例、優れたドキュメント、シームレスなインストール、優れたコミュニティとサポート、活気のある開発。


1

ほとんどすべての言語には、人生のごく初期に、それらを使用して記述された、非自明な現実世界の問題解決プログラムがありました。

UnixはCで書かれていたので、Cが非常に若く進化していたUnix上のツールもそうでした。

Anaconda(RedHatのインストーラープログラム)は、Pythonが若かった頃にPythonで書かれており、今日の人気はありませんでした。

これらは、私が手で思い出すことができるものです。このリストは、その形成期を生き延びた各言語に触れることができます。

そして、大学での大規模な採用は、言語の寿命を延ばすことができます。Javaは教育言語として大学で非常に人気があります。ある程度、LispとLispの方言もこのステータスを享受しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.