ここから本文です

プログラミング言語はなぜ、そんなに流行り廃りが激しいんですか?

w52********さん

2018/4/2607:49:07

プログラミング言語はなぜ、そんなに流行り廃りが激しいんですか?

また、柔軟性が大事とありますが、簡単にいうと、日本語だけ話せる人が、次は英語しか通用しなくなるから付いていくのが大変ということですか?

閲覧数:
279
回答数:
9

違反報告

ベストアンサーに選ばれた回答

jikoryuuさん

2018/4/2608:19:31

プログラミングのロジック(構造)自体はどんな言語でもほとんど同じです。どちらかというと方言のようなものです。しかしコンピューターは厳格にこの方言を認識しますから対応するのに大変なのです。

また、コンピューター自体の性能向上によって人間が認識しやすい形でプログラミングできるように変化してきています。

こんな事情でいろんな言語が出てきていますが、将来的には一つの言語に集約されていくでしょう。今は過渡期でおそらく最もコンピューター言語が多種存在する状態だと思います。

>日本語だけ話せる人が、次は英語しか通用しなくなるから付いていくのが大変ということですか?
そこまで大変ではありません。基本英語で書かれていますし構造自体も言語によって大きく変わることもないですから、逆に言うと一つの言語を極めれば他の言語習得はそれほど大変なものではありません。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜5件/8件中

並び替え:回答日時の
新しい順
|古い順

nee********さん

2018/5/219:38:34

技術の進歩ですね。
一言で言うと、汎用コンピュータ用のソフト開発 -> パソコンの出現とそのソフト開発 -> インターネットの普及でサーバ上で動くソフト開発。
この流れに応じていろいろな言語が流行したとなります。



1.黎明期
1950年以降からでしょうか。
当時はコンピュータの構造も試行錯誤でアセンブラ/機械語が主流だったはずです。
色々なコンピュータの構造が出現しました。

2.高級言語の出現
初期の業務用のCOBOL言語が1959年に出現しています。この頃は業務用にCOBOL,科学技術計算用にFORTRANが出現しています。
大型コンピュータが前提です。
この時期、いろいろな言語が出現しているはずですがCOBOL, FORTRANそしてアセンブラが主流でした。

この時に一つの「アセンブラの自由度はソフトの生産性を落とす。不要な機能は削るべきだ」という思想のもと、アセンブラのうち不要な機能は削るという流れができました。専門用語ですが「Call By リファレンス」という基礎概念、基礎方針が主流でした。

3.1970年代にCPUが出現し、一台何億円もするコンピュータが誰でも手に入るようになりました。まあ、当時は腕時計、リモコン、電子炊飯器に入れるコンピュータみたいな用途でした。いわゆるマイコンですね。
ここからパソコンが出現します。
この頃はアセンブラ、マニアのためにBASICが普及します。

4.1980年代前後から16bitCPUが出現し、誰でもパソコンで開発ができるようになりました。
この頃にC言語、PASCALが普及しています。パソコン上ではBASICがメジャーでしたがBASICは大きなプログラムが組めない。業務用にムリがあるなどでC/PASCALが持てはやされました。
CとPASCALはソックリ言語です。Cはアセンブラの代替で開発されたガリガリの業務用言語です。
PASCALは教育用言語として開発されました。

この頃から、言語の設計思想が1.で挙げた「Call By リファレンス」を否定して「Call by バリュー」という方向転換が起きて言語の基礎方針が大きく変わっています。


5.GUI形式のパソコンが実用化され、従来のプログラミングではいろいろと不具合が出てきました。後述するオブジェクト指向の必要性がでてきます。アップルのマックでありMSのWindowsです。

6.1987年頃だと記憶しますが、オブジェクト指向という概念が普及します。
オブジェクト指向は乱暴な言い方をすると言語の考え方を変えたものです。
従来の言語はプログラムはデータを処理する物という発送でした。
オブジェクト指向はプログラムが処理するデータの中に入れ子でプログラムを入れるようにしてより高度なプログラムを書けるようにしたものと言うのが乱暴な表現です。

これに合わせてC言語は拡張されC++というオブジェクト指向言語に需要が変わります。


6.1990年頃からインターネットが普及して様相が一変します。
手元のパソコンで動くソフト開発に対して、サーバ上で動くソフトという需要が生まれます。
プログラミング言語は高速が特徴のコンパイラ系と、低速だがどんなコンピュータで動くインタプリタ系の2つのタイプがあります。
サーバ上で動く場合、どんなOSが来るか判らないのでサーバ用途でインタプリタ系が主流となります。
初期はUnix(ベル研究所の作った汎用コンピュータ、厳密にはミニコンと言うかな)上で稼動していたPerl, PHPという既存の言語で対応していまた。
PHPは既存というよりホームページ運営用に新設されたはずです。

7.1997年前後からサーバ上のホームページ用に有名なJavaが出現します。
既存の有り合わせの言語ではムリがあるという事でC++言語をインタプリタ化したような言語という位置づけがあります。
この前後にアップルを追い出されたスティーブ・ジョブスがオブジェクティブCなんてものを喧伝しました。iPhoneの開発言語ですね。今はSwiftなんてまたぞろ新しい言語を提唱していますがね。

8.そして今
MSはJavaを独自に作ろうとして訴訟沙汰を起こしてJavaを名乗れなくなりC#を提供。
Web系は隆盛を誇り、Ruby, パイソン、アップルのSwiftが普及しています。

-----------------

とまあ、コンピュータの変遷に合せて変化していますね。
乗っかっているコンピュータの形態に合せて流行が起きています。
まあ、補足すると時代の要請+宗教論争も少し入り流行が起きていますね(笑)。

sor********さん

2018/5/102:23:09

> プログラミング言語はなぜ、そんなに流行り廃りが激しいんですか?

言語仕様がどんどん変更されるからでしょう。

必要な機能って言うのは次から次へと出てきます。その機能を言語レベルで実装するので仕様はどんどん変わります。

一定の状態ではないのである時点まで人気のあった言語が今は全く人気が無い、なんてことは良く起こります。


> 柔軟性が大事とありますが、簡単にいうと、日本語だけ話せる人が、次は英語しか通用しなくなるから付いていくのが大変ということですか?

多分、違います。

そう言うレベルの話じゃなくてもっと文化的な違いです。

プログラミングに関しては、ここ何十年、基本的な事は一切変わってません。例えば、日本なら100年前の人と今の人が会話しても会話は完全に成り立ちます。そう言う本質的な部分はプログラミングも変わりません。

ただ100年前の人はテレビやPCと言ってもそれが何だか分からないし、現代人が100年前の人が使ってたものを見ても使い方が分からない、とかそう言うレベルの話なのです。

昔の人にスマホの話をする場合、相当過去の話から順序立てて話さないと通じないでしょう。

プログラミングもそれに近いモノがあって、今ある言語とかライブラリの成り立ちとかを知らないとその仕組み自体をなかなか理解できないのです。

プロフィール画像

カテゴリマスター

2018/4/2800:58:58

w52cv723wさん
初学者に人気のプログラミング言語の流行りは、
15年位のスパンで、ユックリ入れ替わっているだけで、”激しい変化”ではありません。


>そんなに流行り廃りが激しいんですか?

過去30年間のプログラミング言語の流行りの入れ替わりを観て、事実確認しましょう。
Programming Language 2018 2013 2008 2003 1998 1993 1988
Java言語 1位 2位 1位 1位 16位 未- 未-
C言語 2位 1位 2位 2位 1位 1位 1位
Python 4位 7位 6位 12位 24位 19位 未-
<出展>
https://www.tiobe.com/tiobe-index/


>簡単にいうと、日本語だけ話せる人が、次は英語しか通用しなくなるから付いていくのが大変と

一寸違いますね。

携帯電話の進化だと、20年位で、アタッシュケース位の大きさの肩掛け電話が、ポケットサイズになっていて、素人目にも違いが判るでしょう。
プログラミング言語を開発している人たちも、実は凄い改善を続けていて、1世代前のプログラミング言語を使うより10倍速く完成できるようになっているのですよ。

ここまでの回答に、プログラミング言語の進化の世代の差を説明できている人が出てきてませんね。

交通移動手段に例えてみましょう。
・道なき草原を”足”で移動する場合の指示は、
「(絶対方向である)東西南北の何れかに体を向ける」と
「進め、止まれ」の組み合わせでしょう。

・整地された道を”自転車”で移動する場合の指示は、
「交差点に着いたら、(絶対方向である)東西南北の何れかの道を選んで体を向ける」と、
「(相対方向である)左右の何れかにハンドルを向ける」と「進め、止まれ」でしょう。

しかも、「左の方に進みたいとき、ハンドルを握る”右手”を前に出し、左手を引く」という動作を覚え、
一寸慣れてきたらハンドルから目を離して、
「左の方に進みたいとき、前輪を”左”に向ける」という、視点の転換が要ります。

一見似た指示語である”左右”が、異なる意味をもってしまう場合もあるのです。

・電車網を”電車”で移動する時の指示は、
「何がしの駅の何番目かのホームで、電車に乗る」と
「何がしの駅に着いたら降りる」でしょう。
この場合は、もはや自らの体を動かす指示語はもうありません。

以上に示した3例のように、「日本語での移動指示」であっても、移動手段の世代を変えると、指示語の選び方が変わるのです。

でも、新しい世代のプログラム言語の活かし方を理解しないで、無理やり、古いプログラミング言語流の使い方をしようとして、”使いニクイ”という、時流に乗れない人もいます。
それは、「道なき草原を、自転車で走ろうとしても、上手くは走れない」と言うようなコトです。


この例に示した程度に、指示語の選び方の差異や、移動速度の差異が、プログラム言語の間にもあるのですよ。

iru********さん

2018/4/2715:50:32

人間がプログラムを書くので、どうしてもバグが入り込みます。
バグを作りこむ可能性をいかにして小さくするか。
そのための手法としてプログラミング言語の改良があります。
皆さんプログラミングの効率化(バグ取りを含む)を目指していろんな言語や環境を開発しますが、理想的なものはまだ出現していないということです。
しょせん人間が書いている限りバグは入り込みます。
いずれAIが解決してくれるんでしょうかね。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

zzh********さん

2018/4/2622:00:03

次々と新しい言語が登場しても、大半は普及せずに廃れていくだけの話です。
一旦普及した言語は、古臭くなっても、実績を買われて残り続けます。

また、ほとんどの言語は、基本的な考え方は同じです。
さらに、既存の有名言語の影響を受けているものが多く、完全独自の言語が新登場する事はあまりないです。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる