2ちゃんねる★スマホ版★■掲示板に戻る■全部1-最新50

【IT】2017年版人気の高いプログラミング言語トップ100 [無断転載禁止]©2ch.net

1 :
海江田三郎 ★
2017/03/18(土) 12:21:03.53 ID:CAP_USER
http://news.mynavi.jp/news/2017/03/15/098/
http://news.mynavi.jp/photo/news/2017/03/15/098/images/001l.jpg
fossBytesに3月11日(米国時間)に掲載された記事「100 Most Popular Programming Languages Of 2017」が、TIOBE Softwareが集計している
TIOBE Programming Community Indexのデータを基に、人気の高いプログラミング言語トップ100を紹介している。1位から100位までにランクインしているプログラミング言語は次のとおり。

Java
C
C++
C#
Python
Visual Basic .NET
PHP
JavaScript
Delphi/Object Pascal
Swift
Perl
Ruby
Assembly language
R
Visual Basic
Objective-C
Go
MATLAB
PL/SQL
Scratch
SAS
D
Dart
ABAP
COBOL
Ada
Fortran
Transact-SQL
Lua
Scala
Logo
F#
Lisp
LabVIEW
Prolog
Haskell
Scheme
Groovy
RPG (OS/400)
Apex
Erlang
MQL4
Rust
Bash
Ladder Logic
Q
Julia
Alice
VHDL
Awk
51位から100位までは値が小さいとして次のようにアルファベット順で紹介されている。
(Visual) FoxPro, ABC, ActionScript, APL, AutoLISP, bc, BlitzMax, Bourne shell, C shell, CFML, cg, CL (OS/400), Clipper, Clojure, Common Lisp, Crystal, Eiffel,
Elixir, Elm, Emacs Lisp, Forth, Hack, Icon, IDL, Inform, Io, J, Korn shell, Kotlin, Maple, ML, NATURAL, NXT-G, OCaml, OpenCL, OpenEdge ABL, Oz, PL/I, PowerShell, REXX, Ring, S, Smalltalk, SPARK, SPSS, Standard ML, Stata, Tcl, VBScript, Verilog
TIOBEのリリースでは、 Java、C、C++、C#、Python、Visual Basic .NET、PHPなど、定番のプログラミング言語については、2002年から2016年にかけて人気の推移を紹介している。
529 :
名刺は切らしておりまして
2017/03/22(水) 19:05:35.51 ID:qu/B9bot
>>514
やっぱりプログラミングセンスないね。新しい派生クラスもどきが増えるたびに
に、ソースのあちこちに散らばったswitch文のcaseを追加するわけ?
関数テーブルの方が、保守性も可読性もはるかに高い。
>>517
オブジェクト志向でなくても、ディスパッチテーブルや、ステートマシンで
関数テーブルを使うのは常識ですが?
530 :
2017/03/22(水) 20:56:18.01 ID:lk2q1kZ6
処理頻度考えずに嬉しがって関数テーブル使うやつは半人前
531 :
2017/03/22(水) 21:10:22.20 ID:vt26+oHN
switch のお化けを書きなぐる自称玄人よりマシ
532 :
2017/03/22(水) 21:15:44.24 ID:lk2q1kZ6
switchのお化けは新人でもメンテできるからね
533 :
2017/03/22(水) 21:25:50.63 ID:QzLLWIVL
関数テーブルのほうが実行速度もはやいよな
てかテーブルのほうが大概汎用性は上
クラスは名前付構造体以上の意味を持たない
クラスを生かすためには山のようなデータタイプが必要になるわけだが、君達は生き物を考えるときにゾウリムシクラスや鷹クラスを作るだろうか
つくらないとすればそれはなぜか、多様な動物を何で表現しクラスの代用とするのか
534 :
2017/03/22(水) 21:27:19.25 ID:QzLLWIVL
switchとの対比か、そりゃswitchのほうがはやいわ

オブジェクト継承まみれのコードかとおもった
535 :
2017/03/22(水) 22:05:17.68 ID:9Zrj9CLv
そんな細かい最適化、コンパイラにやらせておけと思ってしまう
536 :
名刺は切らしておりまして
2017/03/22(水) 22:35:59.18 ID:ePZOLG5w
switch文は、大抵の場合最適化でジャンプテーブルに変換されるが、caseの
値に連続性がない場合は、if〜else ifを並べて書いた場合と同様、条件分岐
命令の羅列になる。その場合、後に出現するcaseほど条件分岐のオーバー
ヘッドが積算される。ステートの値をインデックスとして関数テーブルを
参照して分岐する場合、エントリ数が増えてもオーバーヘッドは変わらない。
537 :
2017/03/23(木) 00:18:19.91 ID:wWRHI6jO
>>536
仮にswitchが最適化されにくい重い処理だとしても、その処理がループの中にあるかによっても最適化が必要か、変わってくる。

早過ぎる最適化が悪の元凶。確固たる理由が見つかるまでは総当りアルゴリズムでいいから始めよ。

byドナルド・クヌース
538 :
2017/03/23(木) 05:03:28.28 ID:O0Yji+6w
まあ測定もせずに○○が速い
とか言う奴は半人前なのは確実
539 :
2017/03/23(木) 20:00:24.26 ID:cb5EjUeG
アセンブラ読めてそれ言ってるなら一人前だな
540 :
2017/03/23(木) 20:49:06.15 ID:XShrEHgh
Cでもオブジェクト指向的な設計や実装は可能だけど、では何のためにC++があるのかといえば
もっと簡単かつストレートかつ強力にオブジェクト指向の概念をプログラムに反映できるからでしょ

言語仕様レベルでの掟は守らざるを得ないけど、コーディング規則でのお約束は破ろうと思ったら簡単に破れる
541 :
2017/03/23(木) 21:37:15.04 ID:O0Yji+6w
今さら何当たり前のことを書いてるんだ?
542 :
2017/03/23(木) 21:47:17.97 ID:1ACqBjLo
オブジェクト指向でやりたいなら普通にC++使えばいいんだわ。
わざわざCでやる理由がない。
543 :
2017/03/23(木) 21:49:53.53 ID:yvoubSVh
適材適所
544 :
名刺は切らしておりまして
2017/03/24(金) 00:04:10.51 ID:fp1PDtQA
>>540
コーディング規約って馬鹿丸出しのswitch/case推奨ですか? 分割コンパイル
と外部から参照可能なpublic要素を限定するだけで、C言語の仕様範囲内でも、
オブジェクト指向なコーディングは可能だと言ってるんだよ。

他人は知らないが、自分は試行錯誤で気づいたらオブジェクト指向的なコー
ディングをやるようになっていて、ずいぶん後になってから、それがオブ
ジェクト指向なんだと知った。
545 :
名刺は切らしておりまして
2017/03/24(金) 00:07:25.48 ID:Q19ECjtv
0.027%の世界
546 :
2017/03/24(金) 00:49:53.06 ID:wTD6vDbQ
>>544
Cの範囲でprivateやprotectedなメンバをどう実現する?
メンバ変数を直接弄ることをコーディング規則で禁止してAccessorを定義しても
それ経由でメンバ変数にアクセスしない行儀知らずを排除できないでしょ

Cでオブジェクト指向ライクなスタイルのプログラミングは可能だよ
でもカプセル化の概念を破るつもりなら簡単に破れてしまう
547 :
2017/03/24(金) 01:46:54.63 ID:jJK5dA8H
結局 C++ができれば何でもできるでok?
548 :
名刺は切らしておりまして
2017/03/24(金) 06:52:34.50 ID:fp1PDtQA
>>546
> Cの範囲でprivateやprotectedなメンバをどう実現する?

1クラスに相当する構造体を操作する実装は、1つのソース(.c)に集約し、
publicなメンバ関数に相当する公開インターフェースのみを.hに記述。
ただし、.hでの構造体記述は構造体の名前のみ。 これで、構造体メンバ
は非公開にできる。

構造体メンバの型定義と、外部に公開しないprotectedメンバ関数相当の
宣言は、.cの先頭にまとめて記述することで非公開にできる。 メンバ
関数に相当する各関数には、暗黙のthisポインタに相当する、構造体への
ポインタを、最初の引数として持たせる。
549 :
名刺は切らしておりまして
2017/03/24(金) 08:25:28.37 ID:rc+n31Iu
男ならZ80ハンドアセンブルだろ
550 :
名刺は切らしておりまして
2017/03/24(金) 09:37:08.28 ID:6npg7Qcf
>>499
そらドライバなんて規模小さいからな。
551 :
名刺は切らしておりまして
2017/03/24(金) 09:43:53.03 ID:6npg7Qcf
cでオブジェクト指向プログラミングしてるやつは中途半端なやつ。
どうせならアセンブラで全部やればいいのに。
552 :
2017/03/24(金) 10:54:22.03 ID:dbmhEXJe
そもそもやる意味が分からん。
その機能を実装してくれてるのがC++なのに。
553 :
2017/03/24(金) 12:24:15.97 ID:jH3hrxKm
>>550
だからなに?
554 :
2017/03/24(金) 13:20:22.92 ID:7CpvfE9v
オブジェクト可能とオブジェクト指向は違うと思う
555 :
2017/03/24(金) 14:22:46.99 ID:7CpvfE9v
C言語ってオブジェクト指向したくないときに使うもんだなw
556 :
名刺は切らしておりまして
2017/03/24(金) 15:02:56.96 ID:iHfE5FDg
>>546
static使えばいいよ。
ある意味C++より強力。
557 :
2017/03/24(金) 15:46:31.35 ID:7CpvfE9v
C#=C++++とC言語を組み合わせるとC++になる(大嘘)
558 :
2017/03/24(金) 16:42:41.90 ID:7CpvfE9v
>>557は冗談としても、オブジェクト指向やりたいときはC#使って、
もっとガチガチの最適化したいときはCを使うもんだな

そもそも、ネイティブのバイナリ自体が忌避される場面だとC/C++が使えない
559 :
名刺は切らしておりまして
2017/03/24(金) 16:47:09.19 ID:xn/SM5oW
>>558
C++ CLIは?
560 :
2017/03/24(金) 17:41:35.73 ID:nz4SiTSA
561 :
名刺は切らしておりまして
2017/03/24(金) 18:12:28.88 ID:yK5T9440
C言語でクラスとか継承とか、どうやって実現するの?
結果的に同じ動きになっても、言語でそれをきちんと記述できないと意味ないでしょ。
562 :
名刺は切らしておりまして
2017/03/24(金) 18:20:05.64 ID:iHfE5FDg
そんなことないよ。
スレッドの概念がない言語でもマルチスレッドのプログラム書けるし。
563 :
名刺は切らしておりまして
2017/03/24(金) 18:23:37.70 ID:yK5T9440
同じ動きを実現できても、言語上、それを簡潔明瞭に記述できないと意味ないと思う。
564 :
名刺は切らしておりまして
2017/03/24(金) 18:29:28.78 ID:yK5T9440
例えば中間コードインタプリタなら、そのランタイムをC言語で作れる。
例えばコンパイラなら、そのコンパイラが吐き出すコードと同じロジックをC言語で作れる。

結果として同じ動きをするものは、多分、全てC言語で作れる。
だからといって、C言語が例えばオブジェクト指向だとか言うやつはいない。
565 :
2017/03/24(金) 18:34:34.64 ID:jH3hrxKm
>>561
> 言語でそれをきちんと記述できないと意味ないでしょ。
意味があるかどうかについてお前の感想なんてどうでもいい
566 :
2017/03/24(金) 18:52:04.08 ID:7CpvfE9v
>>559
あー、あるね。でもあんまり使う意味なくない?
567 :
名刺は切らしておりまして
2017/03/24(金) 18:55:49.62 ID:PJbB3ex5
そもそも、OSなし、ROM化前提の組み込みとか、スレッドやプロセスなんて
概念がないからな。それに、protectedやprivateと言った宣言だって、あく
までコンパイラ内での名前解決のスコープに過ぎず、たとえメモリ保護機構が
付いたCPUハード上で動くOS前提にしたところで、アクセス保護なんてやって
くれない。
568 :
2017/03/24(金) 18:59:54.07 ID:7CpvfE9v
>>567
サーバー、PCなのか組み込みかで全然話が違ってきちゃうね。

ただ、組み込みもCPUやメモリのスペック向上で全然状況が変わってきてるのでは?
569 :
2017/03/24(金) 20:10:52.28 ID:WLzsXBlJ
Delphi/Object Pascalがランクインしているが、まだ使っている人いるのか?
十数年前はWin32アプリ構築するのに最強の環境だったが。
570 :
2017/03/24(金) 20:13:54.79 ID:WLzsXBlJ
>>415
銀行はシステムがカオスでSQL系にしようとすると数百人を巻き込んで死者が発生するんで、開発しようにもできないんだよ。
571 :
2017/03/24(金) 21:22:30.53 ID:7CpvfE9v
>>570
青い銀行が下手糞すぎるだけで他はもう少しうまくやってるのでは?
572 :
2017/03/24(金) 21:38:01.35 ID:6vLyWw6e
>>556
static宣言してスコープをそのソースファイルに閉じてしまう、ということだと思うんだけど
static宣言された外部変数はインスタンス変数ではなくてクラス変数的な振る舞いにならない?
573 :
2017/03/25(土) 09:39:10.76 ID:u2X8anjA
Cで実現できないけど
C++では実現できる

じゃあ一番最初のc++コンパイラは何で実装されてたんだってことなんだよね

アセンブラ読めよ
574 :
2017/03/25(土) 10:03:32.15 ID:yi872Vk8
そういやyaccとかlexって今でも使われているの?
575 :
2017/03/25(土) 11:54:19.81 ID:jtfILyp+
>>573
意味わからん
ある言語が実現できることとその言語のコンパイルに必要な機能は別の話だろ
VB でも C++ のコンパイラは作れる
576 :
2017/03/25(土) 13:05:42.02 ID:fS/rwSlT
C++のハイレベルなプログラマーって日本じゃ絶滅危惧種らしいな
こんなに面白い言語はないのにな
577 :
名刺は切らしておりまして
2017/03/25(土) 13:30:07.07 ID:dBzj0CZD
>>576
ハイレベルなプログラマってお前のこと?
578 :
2017/03/25(土) 13:42:46.88 ID:rcU1Wj2T
>>568
組込みもハードの隠蔽が進んで所謂組込みと言えないような
プログラムも増えてきたね
技術者でもタイミングチャートすら読めない組込み技術者増えたし
173KB

新着レスの表示

★スマホ版★■掲示板に戻る■全部前100次100最新50

名前:E-mail: