パスワードを忘れた? アカウント作成
13349018 story
プログラミング

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ランク下降)などとなっている。

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位となっている。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2017年07月23日 13時48分 (#3248858)

    作業の自動化系だったり、自動学習/機械学習系だったり、
    Pythonはバズってるところで採用例が多いですが
    バブルで膨らんでるのがしぼんだらだいぶ減りそうという印象が強いですね

    少し違う話が混じりますが、
    自動学習/機械学習系でPythonプログラマの給料がよいのは、Pythonコードが書けることではなく
    「自動学習/機械学習のための理論やアルゴリズムを理解している」ことが大きいわけですし

    実際のところ、
    上記に関してJavaなどで書かれた既存アプリケーションを
    「使うためのアプリケーション」を薄い層としてPythonで書けないと困るが、
    (アルゴリズム上での複雑さなどは別として)書いているコード量は少ないケースが多いです

    これから新人にどの言語から触らせるか?と言った場合、
    当然個人の主観ですがまずはJavaからかな

    • 方向性によるけど今はJavaScriptからの方が実利があるんじゃないかな。
      もうにわかJava屋は稼ぎにならぬ。

      親コメント
      • by Anonymous Coward

        プログラム言語を一つも知らない状態から、新人にJavaScriptで学ばせるのは不安じゃないですかね。
        かつての「とりあえずVisual Basicで」みたいな、グローバル変数だらけのスパゲッティを量産しそうな予感が……。

    • by Anonymous Coward

      コトリンにしたら?

    • by Anonymous Coward

      Javaより遙かにマシなJVM言語が出てきてる現状で「まずはJavaからかな」はねーだろ

      • 初心者に Java を勧めちゃうのは、言語の素晴らしさとは関係なくて
        Java を前提とした情報の多さ多彩さが理由じゃないかな?
        初心者は自分にあった入門法を選べるからね。
        Java よりマシな JVM 言語の情報って、
        ある程度理解した人向けの解説がほとんどでしょ?

        親コメント
      • by Anonymous Coward

        > Javaより遙かにマシなJVM言語が出てきてる現状で「まずはJavaからかな」はねーだろ

        お仕事する気がないならそれでいいんだろうけど、
        「新人」とまで書かれててお仕事関係ないと読み取ってるなら無職お疲れ様ですとしかいえませんねぇ

    • by Anonymous Coward

      これからの新人が自社の人間なら一番社内で使ってる言語かなー。うちだとJavaだが。
      学生さんとかに教えるという話なら、取っつきやすさも考えてJS/Python/Rubyかなー。

      • by Anonymous Coward

        JavaScriptは言語仕様がめちゃめちゃなので外すかな。
        後方互換を捨てたら考える

    • by Anonymous Coward

      Prologの5ランク上昇は何かバズるようなことがあったのかなあ

    • by Anonymous Coward

      JAVAって、public static void main (String args[])から始まるとか、
      print("Hello, World!")じゃなくて、System.out.println("Hello, World!");とか
      いちいち長いくて面倒くさくないですか?

      • by Anonymous Coward

        記述のコンパクトな言語使っててもメソッドチェーンやらクロージャやらだらだらと長い式を書いてんじゃん。

    • by Anonymous Coward

      バズってそのまま、入口の言語のひとつとしてPHPのシェアを奪ってほしい。
      Pythonのほうがキャストがわかりやすい。PHPのキャストはよくわからん。

  • by Anonymous Coward on 2017年07月23日 15時49分 (#3248881)

    オブジェクト指向とマルチスレッドに関して、元々の概念に対して浅い理解しかない人間が
    設計したセンスのないサブセットに思えて、使ってて腹が立つんだよなあ。

    オブジェクト指向系の機能は、ろくに概念的な理解もなく、Cで「オブジェクト指向もどき」を実践していた人間の考えた代物に見えるし、
    Goルーチンとかチャネルとか、ただのスレッドプールとブロッキングキューじゃん、なんで新発明みたいに言ってんの?みたいな。

    • by Anonymous Coward on 2017年07月23日 18時09分 (#3248913)

      お前それロブ・パイクとケン・トンプソンの前でも同じ事言えんの?

      親コメント
    • by Anonymous Coward on 2017年07月23日 19時34分 (#3248950)

      お前それPHPを仕事で強制されている人間の前でも同じこと言える?

      親コメント
    • by Anonymous Coward

      そこまで腹たちながらなんでGo使ってんの?みたいな。

      • by Anonymous Coward

        Googleが開発した言語をけなしている俺様すごいと悦に入りたいんでしょ

    • by Anonymous Coward

      んじゃ Rust で。

    • by Anonymous Coward

      C++押しですか?

    • by Anonymous Coward
      Go に対しての感想は全くもって同感。
      Go があらゆるところでイケてないのは、そもそも最近の言語の抽象化に付いてこられなくなった人たちでも、使える言語として設計されたものなので何でこんな適当なん?って思うのは仕方ない。

      抽象化がまともに出来ないことを、デメリットとして感じる人は対象ユーザーじゃないんだよ。
      これなら理解できるって思う人たちが使うもの。
    • by Anonymous Coward

      どの言語と比較しての話?Java?

      いや、Goを使ってるわけじゃないんだけど、
      どういう層がそういう感想を持つのか知りたい。

      • by Anonymous Coward

        Go を使えばわかるんじゃない?

        普段、どんな言語使ってても、貧相/古くさいってのを感じると思うぞ。むしろ、なんじゃこりゃっていう感想を持たない人は、プログラム書くときに頭を使うことを全否定したような純粋なコーダーだけだろう。
        まぁ、そういうレベルの人が一定数以上いるのも事実だが。

        こんな記事もある。
        http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-... [nomad.so]

  • やたらとディスられているPHPですが、割と使われているのですね。
  • by Anonymous Coward on 2017年07月23日 12時06分 (#3248831)

    web, mobile, enterprise, embedded って、なんか、良くわからない分け方だな。

    Language Types のボタンのところ、マウスホバーすると、説明が出るんだけど、
    そのグルーピングに不自然さを感じてしまいました。

    あと、アイコンの絵が合ってない気がする。

    • by Anonymous Coward

      >あと、アイコンの絵が合ってない気がする。
      こういう絵 [fumi2kick.com]がお好み?

    • by Anonymous Coward

      Haskell とか D ってembedded用途に使われてるんか。

      • by Anonymous Coward

        Haskell -> cにコンバートしてくれるコンパイラ?があるそうだが詳しくは知らない
        さすがに直接Haskellが組み込みに乗るわけではないよね?

    • by Anonymous Coward

      enterpriseがとくに不自然というか他に該当しないものをなんでもぶち込んでいる感ある

  • by Anonymous Coward on 2017年07月23日 12時47分 (#3248841)

    Pythonはライブラリというかモジュールがたくさんあるし、コンパイルしなくていいので手軽だし、
    最近はCPUも十分早くなってるし、メモリもたくさんあるので、処理速度も巨大データを扱わない限りは問題になりにくい。
    言語仕様もわかりやすいし、なんといっても辞書型が強力なので、データ処理もやりやすい。
    「(習得と)開発にかかる時間と処理にかかる時間」の合計では一番短時間で課題解決できると思うのである意味納得。

    かつてはCPUは遅く、メモリも今ほど潤沢でなかったので、Cで書かないと処理時間が・・・なんてこともあったけど、
    今はCで書く気は起きない。組み込みでない限り・・・。

    #Javaはそのうち手を出すかなぁ、と思ってるうちに、ださないまま終わりそう。

    • by Anonymous Coward on 2017年07月23日 13時49分 (#3248859)

      Python 3を使うべきでない場合(なんてない) [postd.cc]

      私の経験では、プログラマの90%はUnicodeについて考える必要はありません。とても多くのプログラマが仕事でASCIIを使うからです。

      この問題の影響を受ける人口は、Unicodeを扱う、10%の人々だけなのです。

      はい解散

      親コメント
      • by Anonymous Coward

        自分の使う範囲(日本語しか出てこない)においては、先頭の方に

        # -*- coding: cp932 -*-

        って書いといて、もちろんソースコード自体もCP932で作成、マルチバイトになる可能性のある文字列の部分は u'...' という形で
        記述しとくと、LinuxでもWindowsでも動作するものになって便利です。とりあえず文字列というか Unicode ではほとんど
        悩まなくて済んでます。Python2.7ですけど。
        ちなみにソースコードはLinux上で Geany で作成&デバッグ。Windows版Geanyがもっと軽快に動けば嬉しいのだけどなぁ。。
        XLSXからのインポート、XLSXへのエクスポート(グラフ付き)が簡単なので手放せません。

        Python3はちょっとしか試してないので、同じ方法でどこまでいけるのかはわからん。

        • by Anonymous Coward

          python 3系使ってるけど2系とか文字コード周りマゾくて使う気がさっぱりしない。
          2.7使ってた頃は文字列が2種類あるのが苦痛で、さっさと3系列に移行しました。
          幸せになれました。ライブラリが追いついてくるまでちょっと不自由だったけど。

          まぁ、互換性の問題で2系列から移行できないってのは仕方ないけどね。

          # ちなみに # -*- coding:utf8 -*-

        • by Anonymous Coward

          自分の使う範囲(日本語しか出てこない)においては、先頭の方に # -*- coding: cp932 -*- って書いといて、もちろんソースコード自体もCP932で作成、マルチバイトになる可能性のある文字列の部分は u'...' という形で 記述しとくと、LinuxでもWindowsでも動作するものになって便利です。

          え、2017年の今になっても、そんなことせにゃならんの?
          ただそれだけでPython使う気失せる。

      • by Anonymous Coward

        うるせえemojiでも食ってろ

      • by Anonymous Coward

        その記事と参照されている元の記事は、Python2とPython3の話でしょ。

      • by Anonymous Coward

        Python3の標準の文字列はutf-8です。
        日本語処理で困ったことはありませんね。

      • by Anonymous Coward

        その記事自体が 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

  • by Anonymous Coward on 2017年07月23日 20時53分 (#3248980)

    tcl、perlと同じ運命を辿るでしょう。

    • by Anonymous Coward

      主流になるって意味?

    • by Anonymous Coward

      どうせプログラミング言語なんて理解できないし使うこともないから、目の前のシステムの中核に食い込んで動いていたとしても認識出来ませんってことだね。

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...