質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.45%

  • プログラミング言語

    766questions

    プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

何故プログラミング言語は一つにならないのでしょうか?

解決済

回答 21

投稿

  • 評価
  • クリップ 15
  • VIEW 9,667

jimyo

score 219

現在、非常に多くのプログラミング言語が存在していますが、なぜ一つの言語に集約しないのでしょうか?

組み込みならC、Java、WebならPHP、Ruby、Javascript、ゲーム開発ならC#、C++のように使い分けがなされていますがすべての用途を一つの言語でまかなおうという動きがないことに疑問を覚えます。

学習コストも下がるし、単一の処理系で多様な目的を実現できたりといいこと尽くめな気がするのですが……

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 21

checkベストアンサー

+18

ナイフと砥石さえあれば究極的には大工仕事は何でもできるのに、斧や鋸や鉋などがいまだに存在し単一に統合されないのと同じような理由だと思います。無理やり統合しようとしても十得ナイフのようになってなかなかうまく行かないんじゃないでしょうか?
様々な用途で統一的なものを用意した場合、メンテナンスも大変です。
Webのセキュリティ関連に問題があったから修正した。などでも全体のバージョンが上がるように思います。
例に挙げられたことは大体Cやアセンブラでできますが、非常に工数が大きく煩雑になってしまいます。
逆に各言語はそういう状況から、スコープの狭い作業に特化する形で産まれてきたのではないかと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/29 02:57 編集

    常日頃使ってる言語の中にも似たような例があります。
    数学式などです。
    「一足す一は二」のように日本語で記述できる部分が既にあるにもかかわらず、それらでさえも1+1=2という専用の記述式(言語?)が広く利用されています。
    インバースやシグマ、logなども「関数に対する引数が一から無限までの積分」「nが一から五までの数列の和」「a を底とする x の対数」のように日本語での表現も可能ですが、通常数学式で表現します。
    これらのことによって、数学式記述言語とそれの日本語での表現の両方を学ぶ必要があり、学習コストも高くなっていますが、数学式を廃止して日本語に統合するという動きはあまり聞きません。無理に1つの言語内に統合するよりも、そのままの方が使い勝手が良いためだと思われます。

    キャンセル

+11

すべての用途を一つの言語でまかなおうという動きがないことに疑問を覚えます。 

昔ありましたよ。50年前。
https://ja.wikipedia.org/wiki/PL/I
それまでの三大言語を統合して、当時コンピューターが使われていたすべての用途に適した言語でした。

その後、コンピューターが使われる範囲が拡大し、またプログラミング技術の発達で新しいパラダイムが出来て、それらに対応しきれずに今に至っています。
いまだと変化が早いので、5年前に使われていなかった分野でのコンピューター利用が盛んになったりして、「すべて」の用途がどんどん広がっています。

別の理由としては、「何が良い言語か」についての共通認識が無いので、統合が無理というのもあります。
例えば、「動的型付けでないとオブジェクト指向はあり得ない」という人と、「静的型付けでないと効率的な開発が出来ない」という人の両方が満足する言語は作れません。オプションによって切り替えるなどするとしても、それはもうそれぞれ別の言語ですね。「関数型」と「手続き型」というのもありますね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+8

これはあくまでも私見ですが、非常に多くのプログラミング言語が存在している背景にはいくつもの要因があると思います。

そもそも、新たな言語を生み出すのには相当の労力が必要だと思いますが、それでも敢えて新たな言語を生み出すからには、目の前の問題を「より早く」「より確実に」解決したいという強い思いがあるからではないでしょうか?
一つの言語に集約されれば、確かに「全体としての」学習コストが下がるだけでなく、色々な面で経済的になると思いますが、現実的には今この瞬間にも新たな言語が生み出されているかもしれません。

自分が思いつく要因としては、
  1.  同じ問題でも解決へのアプローチはひとつではありません。しかも、どのアプローチにも一長一短があり、どれが一番優れているとは言い切れないケースも有ります。
  2.  解決しなければならない問題が益々複雑になり、対象となる分野も広がっています。
  3.  実装の容易さ(コーディングし易さ)とテスト&デバッグのし易さは必ずしも比例しません。
  4.  表現力が高く扱いやすい言語処理系の処理速度が速いとは限りません。むしろ処理が遅い場合が多いです。
  5.  何でも出来る言語処理系が使いやすいとは限りませんし、必ずしも学習コストが低いわけでもありません。場合によっては、目の前の単純な問題を解決したいだけのために、わざわざ『完璧な』言語を時間を掛けて『学習』しなければならない、というようなことも起こり得ます。

例えば、十徳ナイフがあれば一通りの作業はこなせるでしょうが、だからといって刺身包丁が不要になるかというとそうではありません。一流の料理人が何本もの包丁を使い分けるにはそれなりの理由があるのと同じように、プログラミング言語にも『適材適所』があるということです。

これは何にでも当てはまるのではないでしょうか?

たとえば、OSだって色々ありますし、一口にLinuxと言っても色んなディストリビューションがあります。
それぞれに一長一短があり、だからこそ自然淘汰されてどれか一つに集約されるということがありません。
CPUのアーキテクチャだってそうではないでしょうか?

今やIT関連の知識や技術はあまりにも多岐に渡るので、全てを網羅しようとするのは現実的ではありません。
同様に、すべてのプログラミング言語に『精通』しようとしても無理があります。

ですから、たくさんの言語があることを嘆くよりも、まずは何か一つ、得意な言語を身につけることが最も重要だと考えます。

その上で、各言語の生い立ちに目を向け、どの言語が別のどの言語から派生したかに注目すると、文法が似ていたり、それぞれの特徴が見えてくるので、精通しているとは言えなくてもある程度読み書き出来る言語が増えてくるのではないでしょうか?

すっかり長くなってしまいましたが、自分はそのように捉えて『ゆったりと取り組む』ことにしています。
さもないと、精神衛生上あまり良くないので。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+7

初めまして。

それぞれの言語に向き不向きがあるからではないかと思います。
確かにC言語ならほとんどの事ができてしまうでしょう。
JavaはVMありきですし。

しかし、Javaでは簡単に行える処理をあえてC言語で記述すると意外と面倒だったりします。
書き手にもよると思いますが、可読性も落ち、バグの温床になりかねません。

そこで得意分野をもつ言語が出てきたのかなと思います。

また、現在ではブラウザでもいろいろな言語を動かそうとWeb Assemblyとのプロジェクトもあります。
GoogleやMozilaなどの開発者がWebアプリでもネイティブ並みの速度を出そうとのプロジェクトです。

このプロジェクトではまず、C言語がブラウザで動くようになるようです。
1つの言語でできる範囲がどんどん増えてはきていると感じます。
現在IoTなどの流れでPythonなどで組み込みのプログラミングとかできますし。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+4

皆さんがおっしゃるようにそれぞれの言語に向き不向きがあり、必ずしもいいことずくめではありません。

また、もし言語を1つに統合するとなった場合、
どの言語にするのか?
新しく作るとなったら、どのような言語を作るのか?
という問題もあります。

既存の言語にする場合、どのように決めるかも問題です。プログラミング言語にも当然製作者や権利者がいます。
新しく作るとしても、世界中のプログラマー全員が納得する言語を作るなど、ほぼ不可能です。

どちらにしろ、そんなことをしては、現在プログラマーが持っている言語に関するほとんどの知識が役に立たなくなってしまいます。
言語統一に、それ程の荒療治をする価値があるのかどうかですね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

たくさん、回答がありますので趣向を変えて、
簡単にかつ独断で各言語が作られた背景・目的を書きます。

JavaやjavascriptまたはPHPは意図的に機能を削っています。
なんでも出来る言語はデメリットもあるのです。

Cだとコンパイラが簡単であることを目的に作られました。

C++は、Cにクラスベースのオブジェクト指向言語を追加した言語です。

JavaはCの人に馴染みむ記法でC++の煩雑なメモリやポインタの管理を自動化、そのせいで重いといわれま
した。また、家電を含むあらゆるマシンで動くようにバーチャルマシンを導入しました。

javascriptはブラウザ上で動く言語で、ブラウザが動かすためコンパイルなしのスクリプト言語として作られました。

PHPは言語と言うより動的にHTMLを出力するツールとして作られました。

C#はJavaとほぼ同じ思想で作られた。または、MicrosoftがJavaを真似したと言われている言語ですが、家電などはめざしませんでした。また、Javaが捨てた手動でのメモリ管理も出来ます。

Rubyは、作者が半ば趣味的に各言語のいいとこ取りで何でもかんでも取り込んで作りました。


言語を作るのは一部のプログラマに人気があるらしく、なんの役にたてるつもりもないジョーク言語がかなりあります。むしろ言語作りたいだけなのかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

確かにプログラミング言語は多いですが、新しい言語の誕生の陰には、消えてなくなる言語もたくさんあります。コンピュータの処理速度の進化に合わせて誕生したものや特化したもの。より使いやすく進化したもの。様々です。特に、スクリプト言語(インタプリタ)は昔の低速コンピュータではとても使い物にならなかったでしょう。ハードウエアの進化に伴いソフトウエアも進化する必要がありました。速度だけではなくメモリ容量や記憶容量などハードウエアはすさまじい進化を遂げています。今後もプログラミング言語は新陳代謝を続けていくと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

現在、非常に多くのプログラミング言語が存在していますが、なぜ一つの言語に集約しないのでしょうか?

新たに統一言語を作ったとして、すでに他の言語を習得している人たちからすると、新たな言語を学ぶのは学習コストが高すぎるというのはあるでしょうね。

組み込みならC、Java、WebならPHP、Ruby、Javascript、ゲーム開発ならC#、C++のように使い分けがなされていますがすべての用途を一つの言語でまかなおうという動きがないことに疑問を覚えます。

過去にそういう動きがなかったわけではないです。
たとえば、アメリカの国防総省だったかで、外注したプロジェクトも含めてすべてのソフトウェアをADAという言語に統一するという動きがありました。

ADAはその時代にすれば、すぐれた言語だったと思いますが、残念なことにオブジェクト指向が含まれていなかったと記憶しています。
なぜオブジェクト指向が含まれていなかったかといえば、その時代にはオブジェクト指向が存在しなかった、あるいは、一般的ではなかったからです。
このことからわかるのは、現時点で理想のプログラミング言語を作れたとしても、将来的に新たなパラダイムが言語に求められるようになった場合に対応できなくなります。

学習コストも下がるし、単一の処理系で多様な目的を実現できたりといいこと尽くめな気がするのですが……

単一の処理系で多様な目的に対応するのは難しいと思われます。
なぜなら、「多様な目的」は多様すぎて、相反する目的も含まれてしまうからです。
たとえば、

・ハードウェアの機能をフルに使いたい

という目的と

・なるべく短いコードで複雑な処理をしたい

という目的を1つの言語で賄おうとするのは難しく思います。

上記2つの目的を1つの言語に押し込むことができたとしても、
それぞれの目的にあった言語の使い方はかなり解離しているので、
おそらく自分の目的にあった使い方だけを学ぶならそれなりの学習コストで済むでしょうが、
両方の目的にあった使い方を学ぼうとすると、それぞれの目的にあった知識・パラダイムなどが
違いすぎるので、学習コストは目的別に作られた2つの言語を学ぶのと大差ないのではないかと思います。

つまり、目的が違う言語を1つにまとめたとしても学習コストが下がることはほぼないと推察します。

あと余談ですが、言語を作成する人間には2種類いまして、
1つは「使うために言語を作る人」で、
もう1つは「作るために言語を作る人」です。
前者は今使っている言語に不満があると言語を作ったりするのですが、
後者は「こんな言語を作りたい!」とふと思って作るだけなので、
たとえ統一言語が作られたとしても、好き勝手に言語を作り続けると思われます。
大勢には影響ないでしょうが、言語の種類が増えるのを止めるのは、
後者の人間が多少なりとも存在している限り無理でしょうね…。


投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

目的が違えば、目指す方向も違うから多様な言語、フレームワークがあると思うのですが。
おそらく、大昔のC言語はその1つの言語に絞ろうとしてできた言語だったと思います。
でもそれだと力不足だったらC++だったり、Javaだったりが出てきたりしてるわけです。

単一の処理系で多様な目的を実現できたり
Javaだったり.net系だったりはこの目的で仮想マシンで動くような仕組みだったはずです。

言語の学習コストについては、個人的には、C言語系(手続き系)、C#系(オブジェクト指向系)、SQLの3つを抑えとけばあとはちょっとした応用と気合で頑張れます。たぶん。




投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

プログラムに限らず普通に会話する言語だって統一されてないわけで。
(一応世界標準言語なるものがあるらしいですが…)
それぞれに特色があり、それを活かすのがプログラマの腕の見せ所なのかなぁと思います。

まあ、やろうと思えばアセンブリで全部解決なんですけどね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

宗教と一緒で思想の違いはなかなか埋まらないでしょうねぇ。
逆に乱立することで切磋琢磨しあえてる面もあると思うんで、悪いことばかりでもないと思います。
(たまに無駄に影響うけて変なモードが生まれることも多いですが)

質問者様のように、いろいろ乱立しておかしい!もっとこういう言語のほうが絶対に楽だ!と考える人達が、さらに新しい言語が生み、中途半端に支持を集め、また一段と混沌としていくのでしょうかね

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

もしも素晴らしいパーフェクトな言語が開発されて「これから新しくプログラム作る時はこの言語を使いましょう」と(法律で?)決められたとして、「今までのプログラムはどうするの?」という問題が出てきます。

数値解析やスーパーコンピュータの世界では、最古の高級言語Fortranが使われています。
50年前に書かれたプログラムが(チューニングなどされてはいるでしょうが)いまだに使われていたりします。
それらを新しい言語に置き換えるとすると……
博士クラスの数学のスキルが必要なものもたくさんあるし…
歴史が長いので量がものすごくたくさんあるし…
「やっぱりこのまま使いましょう」ということになって、「使い方を正しく理解したい」とか「ちょっと機能追加したい、仕様変更したい」と思うとFortran勉強していないと無理ですね。

「過去の資産」は膨大で偉大なのです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

自然言語と同じで日本語、英語 いろいろあって言語なのです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

>  現在、非常に多くの  が存在していますが、なぜ一つの  に集約しないのでしょうか?

** にはいろいろなものを当てはめることができそうです。
だとえば、
通貨, 宗教、
電子書籍のフォーマット, ゲーム機, 
学校の校則, 学校で使う教科書, 学校のカリキュラム
紙飛行機の折り方 / 飛ばし方
米の炊き方、
自転車のデザイン、
テレビのリモコン
陸上競技場のデザイン
コンピュータでつかう文字のフォント
C言語での インデント、{ の置き方 のスタイル

いずれも歴史的経緯があったり、目的にあわせて分化していたりなど理由もさまざまです。

コンピュータを操作する言語も、それぞれ 作成された背景があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

なぜ複数生まれたのか、という問いに対しては、他の回答者さま方に譲ります。

既に複数ある言語を1つに統一するとしたら、その1つを何にするかを決めなければなりません。
その決め方について考えてみました。

①何らかの得点基準を設けて採点し、最も得点の高いものを採用する

パラメーターが多いだけでなく数値化するのが難しいので、そもそも得点基準を定めることが難しそうです。

▼作るソフトウェアの種類
  • OS
  • Webアプリ
  • ゲーム
  • ハードウェアの制御
▼学習
  • 難易度
  • 学習曲線
▼利用者の多さ
etc...


②利用者の多いものを採用する

何らかの理由で1つのOSが圧倒的なシェアを獲得し、そのOSでは1つの言語しか使えないとしたら、それを使わざるを得なくなります。
つまり、自然言語における英語のような存在になるイメージです。

それでも結局は方言のようなものは生まれてくる可能性はあると思いますし、宗教的・政治的な問題があるので完全に1つにすることは難しいでしょう。


③すべての機能を併せ持った  最強の  言語を新しく作る

何を以て最強かという点で、①と同じ問題があるため難しそうです。


...たいぶ長くなってしまいましたので、この辺でやめておきます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

それぞれ長所短所がありますから。それに凡庸性に長けた一つよりも一点特化の物を集めて制御したほうが良い事もあるというのは、プログラムに限ったことではありません。
あと、人や使う機体によって使い慣れてる言語が違うというのも一つの要因かと。人間で言えば、究極的には英語なりなんなり、使われる言語は統一した方が利便性はあがるのにしないのと同じでしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

英語、日本語、韓国語、中国語など、、世の中には色々な言語があります。
それは、なんででしょうか?
効率の良さ、言語の優れ度などは関係なく、色々な人が考えを持って作ったので、色々な言語が生まれたと思います。

ただし、プログラム言語は、根本的にはどこかは似たり、同じ部分があるので、
全ての言語を勉強する必要はないと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/04 13:03

    というより、やる事は一緒なんですよね・・・ただ構文や単語の意味が違くて、その違いが使いやすさなんかを変えてるだけで。一つの言語に慣れると他の言語もなんとなく組めちゃったりします。程度の差はありますけれども。

    キャンセル

+1

まったくその通りだと感じます。
私もCommon Lisp(ANSIで規格化されたプログラミング言語です)を覚えてDSLを作って仕事をしようと思ひます!

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

言語が一つにまとまらないのには多様性をもって様々な困難に対応したり、問題を洗い出している時期にいるからではないでしょうか。以下は私の考えたたとえ話です。
プログラミング言語は「障害物競争」を走っているような状態と考えられます。この「障害物競争」はとてもたちが悪く、ルールや環境、果てはゴールが複数設定されるなど、スタート時に最新状態を想像できない無茶苦茶なものです。
このレースの救いは協力プレイができることです、すべてのゴールに到達するためには、たくさんの言語を集め、各言語自身を高めたり、障害に対する攻略法を他の言語へ伝えたり、時には二手に分かれることもあります。残念ながら力尽きた言語や力を取り戻した言語もあります。
いずれ、すべてのゴールに達しすべてのゴールを一つの言語が登場することで単一の言語になるのではないでしょうか。(ただし、関係する人の主義主張や利害等々が邪魔をすると思いますが…)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

何故プログラミング言語は一つにならないのでしょうか?

なぜ言語を統一できないのか? なぜバベルの塔(統一言語)は崩壊するのか?
かんたんに言うと、言語にはトレードオフがあるから、統一化できないのです。


これを分かりやすくするため、自動車のたとえで考えてみましょう。

大量の荷物はダンプやトラックで運びますし、
いっぽう郵便配達や食べ物屋の出前は(原付)バイクで行いますね。

馬力があって大量に運べることと、燃費が安くて小回りが利くことの、
両方をいっぺんに満たす車両はありません。これがトレードオフです。

まあ両方を足して2で割って、軽ワゴンでも両方こなせますが、
どちらにしても中途半端で、やはり特化した車両には負けます。


言語に戻って考えると、大型車両のような言語がC++やJavaで、
軽自動車のような言語がPHP、Ruby、PythonなどのLLです。

それらは開発速度と実行速度などのトレードオフがあるので、
やはり使い分けられています。つまり言語も適材適所だと思います。


投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

OSも携帯電話もスマートフォンも
そうですけど、単純に
『作りたいから』
だと思いますよ。
アニメとか映画とかとも同じかもしれません。
かっこよく言うと、『人間は夢を見るから』かな。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.45%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • プログラミング言語

    766questions

    プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。