【IT】4月の人気プログラミング言語、「C++」が「Python」を抜いて3位に浮上
■ このスレッドは過去ログ倉庫に格納されています
2019年4月のTIOBE Indexで、プログラミング言語としては35年の古株である「C++」が3位に浮上し、同言語に対する関心の高まりを表している。
https://japan.zdnet.com/storage/2019/04/09/7471c677e7e71b890d5e0637934b59c5/tiobeapr19.jpg
提供:TIOBE
C++は1985年に「C」の拡張版として開発された。標準化された最新版の「C++17」は、「Microsoft Visual Studio」「GNU Compiler Collection(GCC)」「Clang」を含む多様なコンパイラによってサポートされている。
国際化標準機構(ISO)でC++の仕様策定を手掛けるワーキンググループ21(WG21)は2019年、「C++20」の最終版を完成させるべく、取り組んでいる。
WG21の2月の会合で議長を務めたMicrosoftのHerb Sutter氏によると、C++20は「C++11リリース以来のメジャーリリースになる」。2011年に公開されたC++11は、標準化された最初のバージョンだ。C++20で提供される最も重要な2つの機能は、「モジュール」と「コルーチン」である。
The Committee : Standard C++(英文)
https://isocpp.org/std/the-committee
Trip report: Winter ISO C++ standards meeting (Kona) | Sutter’s Mill(英文)
https://herbsutter.com/2019/02/23/trip-report-winter-iso-c-standards-meeting-kona/
C++は、TIOBEの4月のランキングでシェア8.838%を獲得し、前年同月より1.62ポイント上昇した。
このランキングはGoogle、Bing、Yahoo、Wikipedia、YouTube、Baiduなどの検索結果に基づいている。開発者の間で人気が高い言語を明らかにすることを意図したものであり、最も優れているプログラミング言語や、書かれたコードの行数が最も多い言語を特定するものではない。
C++は4月、人気上昇中の「Python」を抜いて3位につけた。この数年、Pythonを使用している開発者は急速に増加している。
TIOBEのアナリストによると、Pythonは前月の3位から4位に転落したものの、その人気が衰えているわけではない。4月のPythonのシェアは8.166%、前年同月比で2.36ポイント増と、年間ではC++を上回る伸び率を見せている。
TIOBE Index | TIOBE - The Software Quality Company(英文)
https://www.tiobe.com/tiobe-index/
「Pythonはほぼ毎月、過去最高を記録している。その一方で、C++の人気も上昇しているだけのことだ」(TIOBE)
C++は、シェアが15%を超えていた2000年代初頭の全盛期に比べると、まだ遠く及ばない。
TIOBEによれば、C++のシェアが近年低いのは、「C++0x(後のC++11)の規格策定が複雑で手間どっている間に、C++の勢いが後退した」ためだという。
TIOBEは、「2011年にリリースされた新しい標準規格のC++11によって、同言語はよりシンプルかつ安全になり、表現力が高まった」と説明している。
「C++11の導入まで、さらに数年かかったのは、開発者コミュニティーがコンパイラのサポートを待たねばならなかったためだ。現在はC++11のほか、C++14とC++17が、GCC、Clang、Visual Studioなど、最も重要なC++コンパイラによってサポートされているため、C++の人気が復活している」(TIOBE)
TIOBEの4月トップ10は、「Java」、C、C++、Python、「Visual Basic .NET」「C#」 「JavaScript」「SQL」「PHP」「Assembly Language」となっている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。
https://www.zdnet.com/article/programming-language-popularity-c-bounces-back-at-pythons-expense/
2019年04月09日 10時08分
ZDNet Japan
https://japan.zdnet.com/article/35135463/ >>279
呼んだ?
Pythonはプロトタイプ作成用
C++は清書用で使ってるわ パイソンは一般向けなんだけどC++はどうしても「玄人向け」なんだよな
ソフトを書いたことが無い人間にはどうしても仕様の意味が判らない
これは数学にも似た現象かな・・ C++のメリットがわからない
スピードやメモリ効率ならCだし、
オブジェクト指向言語にするならJavaやC#
手軽さやウェブアプリならpython/Ruby/PHP/Node.js
なんのために使うの? >>283
流石にそれがわからないならプログラミングに向いてないぞ スピードやメモリ効率ならCよりC++の方が良くしやすい
高級アセンブラのマクロ機能に当たる部分がテンプレート回りで超充実しているのだから どこまでC++使ってたら私C++使えますって言えるの? >>283
1.Cよりはちょっと遅いが
それ以外の大抵の言語より早く省メモリ
2.VMみたいな追加リソースが要らない
3.Cから段階的に乗り換えられる
あたりじゃないかね
あとjavaは入れてるとアップデートが煩いw
しかしjavaとかc#とかってそもそも
c++の方言くらいな印象なんだが、
逆になんでC++じゃなくjavaとかc#なんだ? 言語仕様だかライブラリだか区別つかん言語は邪魔くさい
だからC++が良い Linuxの作者のリーナス・トーバルズはC++が大嫌いらしい
C++が好きな奴ってちょっとセンスがない奴が多いな cとc++で後者が遅いというのは間違いだから
コンパイラは今や完全に同一だし、言語的に遅くなる要素ってrestrict位?
ただしstrict aliasing ruleがある分cできちんとrestrict使わないとc++より遅くなる C++プログラマーという害悪をおっぱらうためにLinusはCを使うらしい。 >>287
普通に使う分にはクラスとテンプレートを理解して
それを用いたジェネリックなオブジェクト指向プログラミングが組めるくらい?
あとコンテナとかスマポのそれぞれの違いを理解して使えるとか
ライブラリ開発者ならメタプログラミングを理解して
プリプロセッサ・テンプレート・constexprを駆使してそれができるくらい?
あとは型推論の理解とか
ラムダ式はまだ保留 kernelのソースには入っていないが、それをコンパイルするコンパイラはどれもc++で記述されるようになってしまった。
まあ実際c++をkernel記述に使うと面倒なのは事実
manglingとかABIの互換性が怪しいのと、仮想関数なにも考えずに使うアホが紛れ込むのが厳しいのだろう C++好きな奴な美的センスがないんだと思う
建て増しを繰り返した建築物と言われるがまさにそのとおり。
書いてると苦痛を感じる
感じない奴は美的感覚がないのだろう 立て直しについてはC++は少ないだろ。
一応統一規格を作って全社それに合わせる設計。
C#とかPythonとかJavaとかPHPとかJavascriptとか、
上位互換も下位互換もない場合があり頻繁に立て直す。 >>299
あと何回、.NET Frameworkという車輪を再発明すれば、完全なC#になりますか?
C#は、.NET Frameworkのない環境を前提に、プログラムを書けますか? 三栖、中山、内山、には本当に世話になった
三栖は「あいつを和歌山のソフト業界から追い出してやる」
とか言っていたのだとか >>301
アホか?
所詮はCなんだからやる気があれば何でもできるっての
C++だって基本はCLI前提じゃん 今やプログラミング言語にJava仮想マシンとか.NET frameworkなどの環境は必須だろ
むしろそういう環境がないのはCだけ。
C++はそこが中途半端。環境がなくてもいいC++と環境が必須なVisual C++みたいなものが混在してる
プログラマーのスキルも幅が広すぎて仕事に採用できない >>304
Visual C++に仮想環境が必要?? >>303
> C++だって基本はCLI前提じゃん
え? ようはガベージコレクション。
C言語はメモリ解放というメモリ管理をプログラマーが行う
C言語プログラミングの半分はメモリ管理だといってもいい
C++も.net仮想環境ではC++/CLI言語で記述すればメモリ管理から開放されるが、それをC++だと言えるのか?
言えないならC++プログラマーはメモリ管理技術をマスターしてなければならない >>303
> C++だって基本はCLI前提じゃん
はあ?
C++/CLIなんてMSすら見捨てかけてるのに何を言ってるんだよw どの道カーネルに実装られてる関数依存だから、
C++もC#も変わらん。
移植性ではC#のが高いわいさ。
クラス構造のままでABIの互換性があるのが、
かなりいけてるわな。 ネタかと思ったらマジだったのか
どこでも使えるC++のスマートポインタと
仮想マシンがないと使えないC#のガベージコレクタじゃ
移植性なんて比較するまでも無かろうに >>304
いつからVisual C++がCLI専用になったんだよw だとすれば、Javaで書かれたコードは
移植性がひくいな。 >>310
C++はカーネル無くても動かせるけど。 >>313
実際低いけど?
世の中javaが動かせる程
余裕ある環境ばっかじゃないのよ >>315
Javaってどこでも動かせるコードを書けるけど、案外簡単に環境依存のコードにもなってしまう 大昔にTurbo C++でソフト作っていたな 今はも無理だけど >>308
メモリ管理技術をマスターしてればC#でも同じことできるんだけど?
だからと言ってC#プログラマーとは○○でなきゃいけないとかくだらない概念はない ガーベジコレクションに頼るプログラマーと
自分でメモリ管理するプログラマー
この差は大きい
C++使いもガーベジコレクションに頼っているならC#使いやJava使いと大差ない スマポとRAIIでメモリどころかリソース管理まで楽勝過ぎる
変な構文で特別にケアしないとリソースリーク簡単に起こすGC系言語とは格段の差がある ヒープは虫食いになるから
独自のヒープ管理までしたいところだが 日本人はどうしても下請け開発者が多いし、
開発で重視するのも fast to value じゃなくて、the lower the better だから、
どうしても Python は受けないよね。 いや普通受けとる
例によって猫も杓子も状態でリソースを突っ込めるだけ突っ込んどるわな Pythonは一部の意識の高い人たちが使う言語で、
一般的なIT業界でお金になるのはJavaだよ。 Pythonのほうが最終的には高いはず、高くなるはず
人工知能に最も対応してる C++/CLIは確かにキモいけど、なくなる方向なんか?
あれが要らなくなる頃にはWindowsの天下は終わってそう C++推し多いなあ(もしくは声がでかい)。
web業界じゃC++の開発案件は皆無に等しいんだが。 無くなったら、ネイティブからマネージド呼ぶの、
偉く大変になる。
ネイティブとの薄い繋ぎだけ記述すればいいかと。
マネージドも、C++側では宣言だけして、
実装はC#でして、static linkしてもいいし。 そりゃweb業界じゃそうだろうなとしか
よほどの大手でも無い限り C++ で作るような組込みプログラムは python じゃ代替できないし、
python で作るようなwebプラットフォームのプログラムは C++ で代替できない。
(不可能という意味ではない)
用途が異なる言語あげて、こっちはあーだ、あっちはあーだ言うことの不毛なこと。 >>329
> C++/CLIは確かにキモいけど、なくなる方向なんか?
なくなる方向どころか黒歴史状態だろ… >>333
> C++ で作るような組込みプログラムは python じゃ代替できないし、
> python で作るようなwebプラットフォームのプログラムは C++ で代替できない。
できないのレベルが違いすぎる
ガチな組込みはpythonだとほぼ不可能
C++でWebは労力がかかると言うだけの話 C++/CLIは惜しいよなぁ。混在アセンブリを作れるのはあれだけだし、
GCとデストラクタが共存する特異性も。 ファイル操作系は標準に入ったのにネットワーク系はまだなのは何故ですか? ネットワークI/OをCPUが持ってんのか?ってことだ C++は何でもできることを目的に開発されている言語だから、
何でもできるようにはなるだろうが、ちゃんと統制しないと、
いろんな流派が混ざってごちゃごちゃになる。
そもそも、建て増しを続けて、で規格の根本思想が変わっていくから
(当初からの方針は「何でもできるようにする」ということだけ)、
しばらく離れると、新言語を覚えるような浦島太郎の状態になる。
C++を整理しようとして作られた、JavaもC#も
最近では同じようにゴテゴテしてきているし、誰かなんとかして。 言語仕様も増えてはいるが基本的に標準ライブラリの縦増しだからC++はわかってしまえばそんなに複雑怪奇ではないよ まあ、どの言語も結局は、ANSIのCとC++をベースにしてるからn >>339
>C++を整理しようとして作られた、JavaもC#も
そんな話は聞いたことがないが C++か...
BWCC.DLLの糞UIとか
懐かしいわ この前オープンソース化されたWindows10の電卓アプリだが、ソースを見てみるとC++ CLI + UWPという組み合わせだったな
C++でXAML使えるとは知らんかったw 結局、○○がないとか言う厨房は、コピペ房なんだよな。 ネットワーク云々に
至っては、単なるスクリプト書きの無知としか。
C++が難しいと言っても、新しい規約を全部理解する必要もないし、大抵は従来の
仕様範囲内の記述で代替できないわけでもないし、新しい規約や予約語をあえて
無理して使う必要もない。 PythonはRubyと同じで一過性のネタ言語だったな PythonはRubyが日本でブームになる以前から欧米では人気が高かった
手軽なプログラミング言語だったんでしょう? つまり、欧米ではPythonがPascalに代わる教育用プログラミング言語だったし、
VBの代替言語だと見なされていたようだし、広く親しまれていた。
英語の情報技術系文献にはPythonが山ほど出てくるのに日本人はなぜかスルーしてきた。
人工知能ブームが来るごく最近までずっとPythonに日本人が無関心だったのが不思議。 いやだって日本人は社畜でSIが大好きだからJavaか.NETだし
ネット系も現場の技術者の意見は聞かずに専門卒が大量にいるからという理由で
PHPで糞コード量産する国だから excelにpythonが標準搭載されれば、普通のサラリーマンもpython覚えるかな(´・ω・`) pythonはforループがきもい
switchが無い
型がわかりずらい
引数に親オブジェクト定義するとかきもい
なんかきもい 月次のこんな指標がいったい何の役に立つんだ?
知障業界かよ python読み書き出来ます、とか言うの意味ないわな
python本体はオブジェクト投げ合ってるだけで
処理の本質はライブラリがやってて
CV使って画像処理のコードが書けます。
PANDAS使ってデータベース処理が出来ます。
SCIPY使って統計解析が出来ます。
とかまで言うべきだわ 何が標準的なライブラリかわからんのがpythonの嫌なところ。 >>354
いやぁIT土方手配師から見たら
この上なく欲しい情報じゃないかね
>>356
事実上numpyが標準な気がする
つかnumpyのないPythonって、
臭いのない屁みたいな存在だと思う C++が言語として強いよなぁ。他の言語のライブラリがC++で作られてたりするんだもんなあ >>355
Pythonは簡単だし誰が書いてもソースが見やすいからいいじゃん python見やすいか?
内包表記とか、単純なのだと見やすいが、複雑なのは酷いことになる
しかもそうした方が速いからそうすることが推奨されるという >>360
> 内包表記とか、単純なのだと見やすいが、複雑なのは酷いことになる
それはお前が慣れてないか知能が低いだけ >>355
それ全部、「コピペならできます」で桶? >>362
慣れを言い出したらおしまい
C++が複雑に見えるのも慣れてないからだけだしな >>364
レベルが違うだろw
難しいという例出してみなよ pythonは所々で作者のセンスが気持ち悪すぎる
構文的にはrubyのが好きなんだが死にかけてるよな… Rubyはなんで人工知能時代に対応できなかったのか。 もともと研究者、大学教授、ベンチャーのエンジニアといった
「何かを作りたい」「何かをするために早く楽にプログラムをかきたい」
というニーズから発展してきたpython。
「Webサービスを手っ取り早くたちあげたい」というニーズから
人気を伸ばしてきたRuby(というかrails?)
Rubyはそれだけの言語だからね。広がりがない。 >>359
コンセプトがそうなのはいいけど
実際は同じ機能をもったライブラリがありすぎて方言バリッバリなんだよな
括弧の差なんてどうでもいいほど誰が書いたかで違う オーバーロード擬きとかカオス過ぎる
判定がクラスだったりダックだったり
しかもランタイムで忘れた頃にエラーが出てくるし Rubyはオブジェクト指向という皮被ったPerl、悪い意味で。
流行ったのはRailsやったが、PHPの分野にチョイ食い込みしただけやったからなぁ。
作者本人はRailsなどには興味ないからね。 とりあえず全てのプログラマは難解プログラミング言語にでも触れて
チューリング完全とかの面白さでも理解すべきだと思うわ 「Visual Basic .NET」
UWPはだめだろー Pythonはようやく見つけたBASICの後継言語だわ。 >>369
sympyのベクトルですら複数あるしな >>376
テンプレートはかなりカオスになってるだろ
で、C++はどうでもいいからpythonの複雑で酷いことになってる例を早く出してくれよ pythonは
似たようなライブラリが重複しすぎ
2→3への互換性なしのようなことがいつ起きるかわからん
変数のローカルとグローバルの定義が不明確
コピーか参照か不明確
ライブラリ名が被ると悲惨
などで、まあ使い捨てにする作業用としてはいいけど
ちょっと規模の大きなことをすると見通し悪すぎ ■ このスレッドは過去ログ倉庫に格納されています