IEEE Spectrumの人気プログラミング言語ランキングでPythonが1位に 61
ストーリー by headless
人気 部門より
人気 部門より
IEEE Spectrumの人気プログラミング言語ランキング「The Top Programming Languages 2017」で、昨年3位だったPythonが1位に上昇している(IEEE Spectrumの記事、
Neowinの記事、
The Registerの記事)。
昨年1位のCと2位のJavaはそれぞれ1ランクずつ下げて2位と3位になっている。1位~8位でSpectrum Rankingスコアが減少したのはC(-0.3点)とPHP(-1.3点)のみであり、減少幅も小さい。順位では5位のC#と6位のR、7位のJavaScriptと8位のPHPがそれぞれ入れ替わっているが、4位のC++は昨年と変わらず、上位の変動は少ない。9位のGoは昨年の10位から1ランク上昇(+4.3点)、初のトップ10入りを果たした10位のSwiftは4ランク上昇(+7.4点)している。一方、昨年9位だったRubyは3ランク下降(-1.9点)して12位となった。
このほか、スコアを大きく伸ばしているのは17位のShell(+13.1点、2ランク上昇)、21位のRust(+9.9点、5ランク上昇)、38位のABAP(+9.6点、4ランク上昇)、32位のProlog(+7.7点、5ランク上昇)。逆にスコアの減少幅が大きいのは47位のLadder Logic(-25.7点、12ランク下降)、26位のObjective-C(-7.2点、6ランク下降)、34位のLisp(-3.2点、4ランク下降)などとなっている。
昨年1位のCと2位のJavaはそれぞれ1ランクずつ下げて2位と3位になっている。1位~8位でSpectrum Rankingスコアが減少したのはC(-0.3点)とPHP(-1.3点)のみであり、減少幅も小さい。順位では5位のC#と6位のR、7位のJavaScriptと8位のPHPがそれぞれ入れ替わっているが、4位のC++は昨年と変わらず、上位の変動は少ない。9位のGoは昨年の10位から1ランク上昇(+4.3点)、初のトップ10入りを果たした10位のSwiftは4ランク上昇(+7.4点)している。一方、昨年9位だったRubyは3ランク下降(-1.9点)して12位となった。
このほか、スコアを大きく伸ばしているのは17位のShell(+13.1点、2ランク上昇)、21位のRust(+9.9点、5ランク上昇)、38位のABAP(+9.6点、4ランク上昇)、32位のProlog(+7.7点、5ランク上昇)。逆にスコアの減少幅が大きいのは47位のLadder Logic(-25.7点、12ランク下降)、26位のObjective-C(-7.2点、6ランク下降)、34位のLisp(-3.2点、4ランク下降)などとなっている。
IEEE SpectrumのランキングはGitHubから抽出した300以上の言語からGoogle検索でのヒット数が少ないものを除外し、Google検索やGitHub、Stack Overflowなど10ソースからそれぞれ12の基準で人気度を判定する。2014年に49言語で始まったランキングだが、2015年にはApex Code、ASP.NET、CoffeeScript、Eiffel、NetLogo、Scilabの6言語が外れ、Cuda、Julia、LabView、Rust、Swiftの5言語が加わって48言語になった。以降、3年続けて新たな言語はランキング入りしていない。
なお、The Regisiterの記事では他のプログラミング言語人気ランキングでのPythonのポジションをまとめている。PYPL Popularity of Programming Language IndexではJavaに次ぐ2位、7月のTIOBE IndexではJava、C、C++に次ぐ4位、6月のThe RedMonk Programming Language RankingsではJavaScriptとJavaに次ぐ3位となっている。
人気といってもバズってるところが多いだけという話も (スコア:5, 興味深い)
作業の自動化系だったり、自動学習/機械学習系だったり、
Pythonはバズってるところで採用例が多いですが
バブルで膨らんでるのがしぼんだらだいぶ減りそうという印象が強いですね
少し違う話が混じりますが、
自動学習/機械学習系でPythonプログラマの給料がよいのは、Pythonコードが書けることではなく
「自動学習/機械学習のための理論やアルゴリズムを理解している」ことが大きいわけですし
実際のところ、
上記に関してJavaなどで書かれた既存アプリケーションを
「使うためのアプリケーション」を薄い層としてPythonで書けないと困るが、
(アルゴリズム上での複雑さなどは別として)書いているコード量は少ないケースが多いです
これから新人にどの言語から触らせるか?と言った場合、
当然個人の主観ですがまずはJavaからかな
Re:人気といってもバズってるところが多いだけという話も (スコア:1)
方向性によるけど今はJavaScriptからの方が実利があるんじゃないかな。
もうにわかJava屋は稼ぎにならぬ。
Re: (スコア:0)
プログラム言語を一つも知らない状態から、新人にJavaScriptで学ばせるのは不安じゃないですかね。
かつての「とりあえずVisual Basicで」みたいな、グローバル変数だらけのスパゲッティを量産しそうな予感が……。
Re: (スコア:0)
コトリンにしたら?
Re: (スコア:0)
Javaより遙かにマシなJVM言語が出てきてる現状で「まずはJavaからかな」はねーだろ
Re:人気といってもバズってるところが多いだけという話も (スコア:1)
初心者に Java を勧めちゃうのは、言語の素晴らしさとは関係なくて
Java を前提とした情報の多さ多彩さが理由じゃないかな?
初心者は自分にあった入門法を選べるからね。
Java よりマシな JVM 言語の情報って、
ある程度理解した人向けの解説がほとんどでしょ?
Re: (スコア:0)
> Javaより遙かにマシなJVM言語が出てきてる現状で「まずはJavaからかな」はねーだろ
お仕事する気がないならそれでいいんだろうけど、
「新人」とまで書かれててお仕事関係ないと読み取ってるなら無職お疲れ様ですとしかいえませんねぇ
Re:人気といってもバズってるところが多いだけという話も (スコア:1)
JAVAで書かなきゃいけないお仕事なんてやる価値も無い
Re: (スコア:0)
JAVAで書かなきゃいけないお仕事しか回ってこないブラック下請け乙
Re: (スコア:0)
普通にJavaは仕事で使うにはいい言語だよ?
KotolinやScalaも良い言語だけど、言語の安定性は断然上だし。
まあ、Webとスマホ以外はしたくないということか
Re: (スコア:0)
> KotolinやScalaも良い言語だけど、言語の安定性は断然上だし。
ワロタwww
Re: (スコア:0)
何かjavaに嫌な思い出があるの?
Re:人気といってもバズってるところが多いだけという話も (スコア:1)
ブラックでも下請けでもないことを自己申告以外に述べるスキルがない人たちの職場ですね
Re: (スコア:0)
いまだにJavaなんて使ってる時点でまともな職場じゃねーからお仕事どうのこうの前に会社変えた方がいいゾ
Re: (スコア:0)
Google「おっ、そうだな。」
Re: (スコア:0)
これからの新人が自社の人間なら一番社内で使ってる言語かなー。うちだとJavaだが。
学生さんとかに教えるという話なら、取っつきやすさも考えてJS/Python/Rubyかなー。
Re: (スコア:0)
JavaScriptは言語仕様がめちゃめちゃなので外すかな。
後方互換を捨てたら考える
Re: (スコア:0)
Prologの5ランク上昇は何かバズるようなことがあったのかなあ
Re: (スコア:0)
JAVAって、public static void main (String args[])から始まるとか、
print("Hello, World!")じゃなくて、System.out.println("Hello, World!");とか
いちいち長いくて面倒くさくないですか?
Re: (スコア:0)
記述のコンパクトな言語使っててもメソッドチェーンやらクロージャやらだらだらと長い式を書いてんじゃん。
Re: (スコア:0)
バズってそのまま、入口の言語のひとつとしてPHPのシェアを奪ってほしい。
Pythonのほうがキャストがわかりやすい。PHPのキャストはよくわからん。
PythonはともかくGoがなあ (スコア:2, 興味深い)
オブジェクト指向とマルチスレッドに関して、元々の概念に対して浅い理解しかない人間が
設計したセンスのないサブセットに思えて、使ってて腹が立つんだよなあ。
オブジェクト指向系の機能は、ろくに概念的な理解もなく、Cで「オブジェクト指向もどき」を実践していた人間の考えた代物に見えるし、
Goルーチンとかチャネルとか、ただのスレッドプールとブロッキングキューじゃん、なんで新発明みたいに言ってんの?みたいな。
Re:PythonはともかくGoがなあ (スコア:1)
お前それロブ・パイクとケン・トンプソンの前でも同じ事言えんの?
Re:PythonはともかくGoがなあ (スコア:1)
お前それPHPを仕事で強制されている人間の前でも同じこと言える?
Re: (スコア:0)
そこまで腹たちながらなんでGo使ってんの?みたいな。
Re: (スコア:0)
Googleが開発した言語をけなしている俺様すごいと悦に入りたいんでしょ
Re: (スコア:0)
んじゃ Rust で。
Re: (スコア:0)
C++押しですか?
Re: (スコア:0)
Go があらゆるところでイケてないのは、そもそも最近の言語の抽象化に付いてこられなくなった人たちでも、使える言語として設計されたものなので何でこんな適当なん?って思うのは仕方ない。
抽象化がまともに出来ないことを、デメリットとして感じる人は対象ユーザーじゃないんだよ。
これなら理解できるって思う人たちが使うもの。
Re: (スコア:0)
どの言語と比較しての話?Java?
いや、Goを使ってるわけじゃないんだけど、
どういう層がそういう感想を持つのか知りたい。
Re: (スコア:0)
Go を使えばわかるんじゃない?
普段、どんな言語使ってても、貧相/古くさいってのを感じると思うぞ。むしろ、なんじゃこりゃっていう感想を持たない人は、プログラム書くときに頭を使うことを全否定したような純粋なコーダーだけだろう。
まぁ、そういうレベルの人が一定数以上いるのも事実だが。
こんな記事もある。
http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-... [nomad.so]
PHPも捨てたもんじゃないな。 (スコア:1)
language types の分け方 (スコア:0)
web, mobile, enterprise, embedded って、なんか、良くわからない分け方だな。
Language Types のボタンのところ、マウスホバーすると、説明が出るんだけど、
そのグルーピングに不自然さを感じてしまいました。
あと、アイコンの絵が合ってない気がする。
Re: (スコア:0)
>あと、アイコンの絵が合ってない気がする。
こういう絵 [fumi2kick.com]がお好み?
Re: (スコア:0)
Haskell とか D ってembedded用途に使われてるんか。
Re: (スコア:0)
Haskell -> cにコンバートしてくれるコンパイラ?があるそうだが詳しくは知らない
さすがに直接Haskellが組み込みに乗るわけではないよね?
Re: (スコア:0)
enterpriseがとくに不自然というか他に該当しないものをなんでもぶち込んでいる感ある
短時間で結果がだせるからありがたい (スコア:0)
Pythonはライブラリというかモジュールがたくさんあるし、コンパイルしなくていいので手軽だし、
最近はCPUも十分早くなってるし、メモリもたくさんあるので、処理速度も巨大データを扱わない限りは問題になりにくい。
言語仕様もわかりやすいし、なんといっても辞書型が強力なので、データ処理もやりやすい。
「(習得と)開発にかかる時間と処理にかかる時間」の合計では一番短時間で課題解決できると思うのである意味納得。
かつてはCPUは遅く、メモリも今ほど潤沢でなかったので、Cで書かないと処理時間が・・・なんてこともあったけど、
今はCで書く気は起きない。組み込みでない限り・・・。
#Javaはそのうち手を出すかなぁ、と思ってるうちに、ださないまま終わりそう。
Re:短時間で結果がだせるからありがたい (スコア:1)
Python 3を使うべきでない場合(なんてない) [postd.cc]
私の経験では、プログラマの90%はUnicodeについて考える必要はありません。とても多くのプログラマが仕事でASCIIを使うからです。
この問題の影響を受ける人口は、Unicodeを扱う、10%の人々だけなのです。
はい解散
Re: (スコア:0)
自分の使う範囲(日本語しか出てこない)においては、先頭の方に
# -*- coding: cp932 -*-
って書いといて、もちろんソースコード自体もCP932で作成、マルチバイトになる可能性のある文字列の部分は u'...' という形で
記述しとくと、LinuxでもWindowsでも動作するものになって便利です。とりあえず文字列というか Unicode ではほとんど
悩まなくて済んでます。Python2.7ですけど。
ちなみにソースコードはLinux上で Geany で作成&デバッグ。Windows版Geanyがもっと軽快に動けば嬉しいのだけどなぁ。。
XLSXからのインポート、XLSXへのエクスポート(グラフ付き)が簡単なので手放せません。
Python3はちょっとしか試してないので、同じ方法でどこまでいけるのかはわからん。
Re: (スコア:0)
python 3系使ってるけど2系とか文字コード周りマゾくて使う気がさっぱりしない。
2.7使ってた頃は文字列が2種類あるのが苦痛で、さっさと3系列に移行しました。
幸せになれました。ライブラリが追いついてくるまでちょっと不自由だったけど。
まぁ、互換性の問題で2系列から移行できないってのは仕方ないけどね。
# ちなみに # -*- coding:utf8 -*-
Re: (スコア:0)
自分の使う範囲(日本語しか出てこない)においては、先頭の方に # -*- coding: cp932 -*- って書いといて、もちろんソースコード自体もCP932で作成、マルチバイトになる可能性のある文字列の部分は u'...' という形で 記述しとくと、LinuxでもWindowsでも動作するものになって便利です。
え、2017年の今になっても、そんなことせにゃならんの?
ただそれだけでPython使う気失せる。
Re: (スコア:0)
うるせえemojiでも食ってろ
Re:短時間で結果がだせるからありがたい (スコア:2, 参考になる)
絵文字のおかげでシングルバイト文字圏のエンジニアが多少はユニコード対応に真剣になったのは良かった。
Re: (スコア:0)
その記事と参照されている元の記事は、Python2とPython3の話でしょ。
Re: (スコア:0)
Python3の標準の文字列はutf-8です。
日本語処理で困ったことはありませんね。
Re: (スコア:0)
その記事自体が The Case Against Python 3 (For Now) [learnpytho...ardway.org]という、Python 3をディスった少々的外れな記事に対する、これまた頓珍漢な反論記事なので……。(特に文字列の部分)
元々Pythonにはstrという文字列型(いわゆるマルチバイト文字列)と、後から追加されたunicode(こっちはUNICODE文字列)がありまして、両者は混在可能でした。
C言語で言うと、char文字列とwchar_t文字列が混在できる(別の型同士でstrcatしたりできる)というものです。
ところが、こいつは英語圏以外では実用にならないのです。なぜかというと、
strとunicodeが混在したときには、自動的にunicodeをAS
Inok (スコア:0)
tcl、perlと同じ運命を辿るでしょう。
Re: (スコア:0)
主流になるって意味?
Re: (スコア:0)
どうせプログラミング言語なんて理解できないし使うこともないから、目の前のシステムの中核に食い込んで動いていたとしても認識出来ませんってことだね。