X



【IT】4月の人気プログラミング言語、「C++」が「Python」を抜いて3位に浮上

■ このスレッドは過去ログ倉庫に格納されています
0001へっぽこ立て子@エリオット ★
垢版 |
2019/04/09(火) 13:55:01.82ID:CAP_USER
 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/
0282名刺は切らしておりまして
垢版 |
2019/04/16(火) 19:32:19.59ID:cT/QGhdX
パイソンは一般向けなんだけどC++はどうしても「玄人向け」なんだよな
ソフトを書いたことが無い人間にはどうしても仕様の意味が判らない
これは数学にも似た現象かな・・
0283名刺は切らしておりまして
垢版 |
2019/04/16(火) 19:57:36.57ID:4VmWOBet
C++のメリットがわからない
スピードやメモリ効率ならCだし、
オブジェクト指向言語にするならJavaやC#
手軽さやウェブアプリならpython/Ruby/PHP/Node.js
なんのために使うの?
0284名刺は切らしておりまして
垢版 |
2019/04/16(火) 20:10:50.63ID:2mL6elzb
>>257
boostでanyってやつがあるぞ
0285名刺は切らしておりまして
垢版 |
2019/04/16(火) 20:15:10.51ID:2mL6elzb
>>283
流石にそれがわからないならプログラミングに向いてないぞ
0286名刺は切らしておりまして
垢版 |
2019/04/16(火) 20:34:33.01ID:ursRwkhV
スピードやメモリ効率ならCよりC++の方が良くしやすい

高級アセンブラのマクロ機能に当たる部分がテンプレート回りで超充実しているのだから
0288名刺は切らしておりまして
垢版 |
2019/04/16(火) 21:38:48.74ID:QKFevLl1
>>283
1.Cよりはちょっと遅いが
それ以外の大抵の言語より早く省メモリ
2.VMみたいな追加リソースが要らない
3.Cから段階的に乗り換えられる

あたりじゃないかね
あとjavaは入れてるとアップデートが煩いw

しかしjavaとかc#とかってそもそも
c++の方言くらいな印象なんだが、
逆になんでC++じゃなくjavaとかc#なんだ?
0289名刺は切らしておりまして
垢版 |
2019/04/16(火) 21:49:39.83ID:KCoY17F3
普通に考えりゃC#はC++の上位互換に見えるべさ
0291名刺は切らしておりまして
垢版 |
2019/04/16(火) 22:06:06.35ID:b2diacZj
Linuxの作者のリーナス・トーバルズはC++が大嫌いらしい
C++が好きな奴ってちょっとセンスがない奴が多いな
0292名刺は切らしておりまして
垢版 |
2019/04/16(火) 22:12:19.19ID:ursRwkhV
cとc++で後者が遅いというのは間違いだから
コンパイラは今や完全に同一だし、言語的に遅くなる要素ってrestrict位?
ただしstrict aliasing ruleがある分cできちんとrestrict使わないとc++より遅くなる
0294名刺は切らしておりまして
垢版 |
2019/04/16(火) 22:17:36.40ID:2mL6elzb
>>287
普通に使う分にはクラスとテンプレートを理解して
それを用いたジェネリックなオブジェクト指向プログラミングが組めるくらい?
あとコンテナとかスマポのそれぞれの違いを理解して使えるとか

ライブラリ開発者ならメタプログラミングを理解して
プリプロセッサ・テンプレート・constexprを駆使してそれができるくらい?
あとは型推論の理解とか

ラムダ式はまだ保留
0295名刺は切らしておりまして
垢版 |
2019/04/16(火) 22:18:38.11ID:ursRwkhV
kernelのソースには入っていないが、それをコンパイルするコンパイラはどれもc++で記述されるようになってしまった。
まあ実際c++をkernel記述に使うと面倒なのは事実
manglingとかABIの互換性が怪しいのと、仮想関数なにも考えずに使うアホが紛れ込むのが厳しいのだろう
0296名刺は切らしておりまして
垢版 |
2019/04/16(火) 22:40:17.49ID:dyfm+iPg
>>289
頭悪そう。
0298名刺は切らしておりまして
垢版 |
2019/04/17(水) 07:40:47.64ID:vWm+211h
C++好きな奴な美的センスがないんだと思う
建て増しを繰り返した建築物と言われるがまさにそのとおり。
書いてると苦痛を感じる
感じない奴は美的感覚がないのだろう
0299名刺は切らしておりまして
垢版 |
2019/04/17(水) 08:44:23.04ID:+K0FoQaC
立て直しについてはC++は少ないだろ。
一応統一規格を作って全社それに合わせる設計。
C#とかPythonとかJavaとかPHPとかJavascriptとか、
上位互換も下位互換もない場合があり頻繁に立て直す。
0300名刺は切らしておりまして
垢版 |
2019/04/17(水) 09:11:07.98ID:Lng+GyYf
>>299
C#に互換性のない変更はないだろ
0301名刺は切らしておりまして
垢版 |
2019/04/17(水) 09:59:00.58ID:evyOpVSN
>>299
あと何回、.NET Frameworkという車輪を再発明すれば、完全なC#になりますか?
C#は、.NET Frameworkのない環境を前提に、プログラムを書けますか?
0302名刺は切らしておりまして
垢版 |
2019/04/17(水) 10:08:25.94ID:X7ai05b+
三栖、中山、内山、には本当に世話になった
三栖は「あいつを和歌山のソフト業界から追い出してやる」
とか言っていたのだとか
0303名刺は切らしておりまして
垢版 |
2019/04/17(水) 10:46:19.06ID:dCHFXORO
>>301
アホか?
所詮はCなんだからやる気があれば何でもできるっての
C++だって基本はCLI前提じゃん
0304名刺は切らしておりまして
垢版 |
2019/04/17(水) 10:48:54.29ID:vWm+211h
今やプログラミング言語にJava仮想マシンとか.NET frameworkなどの環境は必須だろ
むしろそういう環境がないのはCだけ。
C++はそこが中途半端。環境がなくてもいいC++と環境が必須なVisual C++みたいなものが混在してる
プログラマーのスキルも幅が広すぎて仕事に採用できない
0305名刺は切らしておりまして
垢版 |
2019/04/17(水) 11:19:32.97ID:Lng+GyYf
>>304
Visual C++に仮想環境が必要??
0306名刺は切らしておりまして
垢版 |
2019/04/17(水) 11:21:27.50ID:Lng+GyYf
>>304
C++ CLIのこと言ってる?
0308名刺は切らしておりまして
垢版 |
2019/04/17(水) 12:29:50.40ID:vWm+211h
ようはガベージコレクション。
C言語はメモリ解放というメモリ管理をプログラマーが行う
C言語プログラミングの半分はメモリ管理だといってもいい
C++も.net仮想環境ではC++/CLI言語で記述すればメモリ管理から開放されるが、それをC++だと言えるのか?
言えないならC++プログラマーはメモリ管理技術をマスターしてなければならない
0310名刺は切らしておりまして
垢版 |
2019/04/17(水) 12:39:33.44ID:vt5d044T
どの道カーネルに実装られてる関数依存だから、
C++もC#も変わらん。
移植性ではC#のが高いわいさ。
クラス構造のままでABIの互換性があるのが、
かなりいけてるわな。
0311名刺は切らしておりまして
垢版 |
2019/04/17(水) 12:48:29.47ID:fLT8cQmm
ネタかと思ったらマジだったのか
どこでも使えるC++のスマートポインタと
仮想マシンがないと使えないC#のガベージコレクタじゃ
移植性なんて比較するまでも無かろうに
0312名刺は切らしておりまして
垢版 |
2019/04/17(水) 12:54:42.66ID:n09aI0Ge
>>304
いつからVisual C++がCLI専用になったんだよw
0313名刺は切らしておりまして
垢版 |
2019/04/17(水) 13:02:34.94ID:vt5d044T
だとすれば、Javaで書かれたコードは
移植性がひくいな。
0316名刺は切らしておりまして
垢版 |
2019/04/17(水) 15:40:51.43ID:mUpFba+p
>>315
Javaってどこでも動かせるコードを書けるけど、案外簡単に環境依存のコードにもなってしまう
0318名刺は切らしておりまして
垢版 |
2019/04/17(水) 17:33:30.77ID:CpFvHcoW
>>308
メモリ管理技術をマスターしてればC#でも同じことできるんだけど?
だからと言ってC#プログラマーとは○○でなきゃいけないとかくだらない概念はない
0320名刺は切らしておりまして
垢版 |
2019/04/17(水) 22:06:21.71ID:S40U7UHr
ガーベジコレクションに頼るプログラマーと
自分でメモリ管理するプログラマー
この差は大きい
C++使いもガーベジコレクションに頼っているならC#使いやJava使いと大差ない
0323名刺は切らしておりまして
垢版 |
2019/04/18(木) 00:05:23.55ID:DIdUvxYQ
スマポとRAIIでメモリどころかリソース管理まで楽勝過ぎる

変な構文で特別にケアしないとリソースリーク簡単に起こすGC系言語とは格段の差がある
0325名刺は切らしておりまして
垢版 |
2019/04/18(木) 01:25:32.95ID:yuCu6YpR
日本人はどうしても下請け開発者が多いし、
開発で重視するのも fast to value じゃなくて、the lower the better だから、
どうしても Python は受けないよね。
0326名刺は切らしておりまして
垢版 |
2019/04/18(木) 01:31:16.96ID:SJvdtvfP
いや普通受けとる
例によって猫も杓子も状態でリソースを突っ込めるだけ突っ込んどるわな
0327名刺は切らしておりまして
垢版 |
2019/04/18(木) 01:57:01.85ID:1VkXHuWs
Pythonは一部の意識の高い人たちが使う言語で、
一般的なIT業界でお金になるのはJavaだよ。
0328名刺は切らしておりまして
垢版 |
2019/04/18(木) 02:02:30.61ID:IzR3L9MU
Pythonのほうが最終的には高いはず、高くなるはず
人工知能に最も対応してる
0329名刺は切らしておりまして
垢版 |
2019/04/18(木) 02:09:08.71ID:v4iOYzTC
C++/CLIは確かにキモいけど、なくなる方向なんか?
あれが要らなくなる頃にはWindowsの天下は終わってそう
0330名刺は切らしておりまして
垢版 |
2019/04/18(木) 04:05:47.27ID:5zSMdryD
C++推し多いなあ(もしくは声がでかい)。

web業界じゃC++の開発案件は皆無に等しいんだが。
0331名刺は切らしておりまして
垢版 |
2019/04/18(木) 04:11:44.09ID:Vv43tbfX
無くなったら、ネイティブからマネージド呼ぶの、
偉く大変になる。

ネイティブとの薄い繋ぎだけ記述すればいいかと。
マネージドも、C++側では宣言だけして、
実装はC#でして、static linkしてもいいし。
0333名刺は切らしておりまして
垢版 |
2019/04/18(木) 04:36:03.44ID:5zSMdryD
C++ で作るような組込みプログラムは python じゃ代替できないし、
python で作るようなwebプラットフォームのプログラムは C++ で代替できない。
(不可能という意味ではない)


用途が異なる言語あげて、こっちはあーだ、あっちはあーだ言うことの不毛なこと。
0335名刺は切らしておりまして
垢版 |
2019/04/18(木) 06:57:30.12ID:utQ6cwuo
>>333
> C++ で作るような組込みプログラムは python じゃ代替できないし、
> python で作るようなwebプラットフォームのプログラムは C++ で代替できない。
できないのレベルが違いすぎる
ガチな組込みはpythonだとほぼ不可能
C++でWebは労力がかかると言うだけの話
0336名刺は切らしておりまして
垢版 |
2019/04/18(木) 08:10:25.96ID:rcNfkEvq
C++/CLIは惜しいよなぁ。混在アセンブリを作れるのはあれだけだし、
GCとデストラクタが共存する特異性も。
0337名刺は切らしておりまして
垢版 |
2019/04/18(木) 09:34:42.60ID:zTR2tX6j
ファイル操作系は標準に入ったのにネットワーク系はまだなのは何故ですか?
0338名刺は切らしておりまして
垢版 |
2019/04/18(木) 09:41:47.64ID:aYPteL4M
ネットワークI/OをCPUが持ってんのか?ってことだ
0339名刺は切らしておりまして
垢版 |
2019/04/18(木) 09:43:17.06ID:QO68SINy
C++は何でもできることを目的に開発されている言語だから、
何でもできるようにはなるだろうが、ちゃんと統制しないと、
いろんな流派が混ざってごちゃごちゃになる。

そもそも、建て増しを続けて、で規格の根本思想が変わっていくから
(当初からの方針は「何でもできるようにする」ということだけ)、
しばらく離れると、新言語を覚えるような浦島太郎の状態になる。

C++を整理しようとして作られた、JavaもC#も
最近では同じようにゴテゴテしてきているし、誰かなんとかして。
0340名刺は切らしておりまして
垢版 |
2019/04/18(木) 10:49:25.61ID:TTdD4Jgb
言語仕様も増えてはいるが基本的に標準ライブラリの縦増しだからC++はわかってしまえばそんなに複雑怪奇ではないよ
0341名刺は切らしておりまして
垢版 |
2019/04/18(木) 10:59:01.78ID:IpyfCQw5
まあ、どの言語も結局は、ANSIのCとC++をベースにしてるからn
0342名刺は切らしておりまして
垢版 |
2019/04/18(木) 11:00:16.53ID:IpyfCQw5
>>339
>C++を整理しようとして作られた、JavaもC#も

そんな話は聞いたことがないが
0343名刺は切らしておりまして
垢版 |
2019/04/18(木) 11:24:08.39ID:K+zUvie7
C++か...
BWCC.DLLの糞UIとか
懐かしいわ
0344名刺は切らしておりまして
垢版 |
2019/04/18(木) 11:44:43.61ID:PVtQW7HZ
この前オープンソース化されたWindows10の電卓アプリだが、ソースを見てみるとC++ CLI + UWPという組み合わせだったな
C++でXAML使えるとは知らんかったw
0345名刺は切らしておりまして
垢版 |
2019/04/18(木) 11:54:54.04ID:G3Bvj+vR
結局、○○がないとか言う厨房は、コピペ房なんだよな。 ネットワーク云々に
至っては、単なるスクリプト書きの無知としか。

C++が難しいと言っても、新しい規約を全部理解する必要もないし、大抵は従来の
仕様範囲内の記述で代替できないわけでもないし、新しい規約や予約語をあえて
無理して使う必要もない。
0347名刺は切らしておりまして
垢版 |
2019/04/18(木) 12:07:08.04ID:7Dczw4iW
PythonはRubyが日本でブームになる以前から欧米では人気が高かった
手軽なプログラミング言語だったんでしょう?
0348名刺は切らしておりまして
垢版 |
2019/04/18(木) 12:10:15.39ID:7Dczw4iW
つまり、欧米ではPythonがPascalに代わる教育用プログラミング言語だったし、
VBの代替言語だと見なされていたようだし、広く親しまれていた。
英語の情報技術系文献にはPythonが山ほど出てくるのに日本人はなぜかスルーしてきた。
人工知能ブームが来るごく最近までずっとPythonに日本人が無関心だったのが不思議。
0349名刺は切らしておりまして
垢版 |
2019/04/18(木) 13:18:24.90ID:6TEPOBnF
いやだって日本人は社畜でSIが大好きだからJavaか.NETだし
ネット系も現場の技術者の意見は聞かずに専門卒が大量にいるからという理由で
PHPで糞コード量産する国だから
0350名刺は切らしておりまして
垢版 |
2019/04/18(木) 13:19:47.31ID:0sfZ+i80
ラダー最強
0352名刺は切らしておりまして
垢版 |
2019/04/19(金) 07:10:45.22ID:W5D7caZ3
pythonはforループがきもい
switchが無い
型がわかりずらい
引数に親オブジェクト定義するとかきもい
なんかきもい
0353名刺は切らしておりまして
垢版 |
2019/04/19(金) 09:44:31.84ID:xxPKNiTr
>>338
ファイルI/OはCPUが持ってるの?
0355名刺は切らしておりまして
垢版 |
2019/04/19(金) 10:39:44.82ID:j0OUdo90
python読み書き出来ます、とか言うの意味ないわな

python本体はオブジェクト投げ合ってるだけで
処理の本質はライブラリがやってて

CV使って画像処理のコードが書けます。
PANDAS使ってデータベース処理が出来ます。
SCIPY使って統計解析が出来ます。

とかまで言うべきだわ
0357名刺は切らしておりまして
垢版 |
2019/04/20(土) 00:41:16.75ID:v72Tn4Nz
>>354
いやぁIT土方手配師から見たら
この上なく欲しい情報じゃないかね

>>356
事実上numpyが標準な気がする
つかnumpyのないPythonって、
臭いのない屁みたいな存在だと思う
0358名刺は切らしておりまして
垢版 |
2019/04/20(土) 00:50:50.42ID:SSphk01f
C++が言語として強いよなぁ。他の言語のライブラリがC++で作られてたりするんだもんなあ
0359名刺は切らしておりまして
垢版 |
2019/04/20(土) 01:15:10.30ID:KAmQsK/7
>>355
Pythonは簡単だし誰が書いてもソースが見やすいからいいじゃん
0360名刺は切らしておりまして
垢版 |
2019/04/20(土) 01:21:03.93ID:+vfKKRP9
python見やすいか?
内包表記とか、単純なのだと見やすいが、複雑なのは酷いことになる
しかもそうした方が速いからそうすることが推奨されるという
0361名刺は切らしておりまして
垢版 |
2019/04/20(土) 02:13:23.00ID:1NC27gKi
C++はしんどい
0362名刺は切らしておりまして
垢版 |
2019/04/20(土) 07:20:36.08ID:ZFGhVP/v
>>360
> 内包表記とか、単純なのだと見やすいが、複雑なのは酷いことになる
それはお前が慣れてないか知能が低いだけ
0363名刺は切らしておりまして
垢版 |
2019/04/20(土) 07:56:14.54ID:p6uK/XlN
>>355
それ全部、「コピペならできます」で桶?
0366名刺は切らしておりまして
垢版 |
2019/04/20(土) 08:49:29.96ID:AVQxVz0c
pythonは所々で作者のセンスが気持ち悪すぎる
構文的にはrubyのが好きなんだが死にかけてるよな…
0367名刺は切らしておりまして
垢版 |
2019/04/20(土) 10:11:54.10ID:vDe8SG90
Rubyはなんで人工知能時代に対応できなかったのか。
0368名刺は切らしておりまして
垢版 |
2019/04/20(土) 10:31:40.11ID:Th5p6N0U
もともと研究者、大学教授、ベンチャーのエンジニアといった
「何かを作りたい」「何かをするために早く楽にプログラムをかきたい」
というニーズから発展してきたpython。

「Webサービスを手っ取り早くたちあげたい」というニーズから
人気を伸ばしてきたRuby(というかrails?)

Rubyはそれだけの言語だからね。広がりがない。
0369名刺は切らしておりまして
垢版 |
2019/04/20(土) 12:18:54.20ID:vr1m78kW
>>359
コンセプトがそうなのはいいけど
実際は同じ機能をもったライブラリがありすぎて方言バリッバリなんだよな
括弧の差なんてどうでもいいほど誰が書いたかで違う
0370名刺は切らしておりまして
垢版 |
2019/04/20(土) 13:04:11.77ID:+vfKKRP9
オーバーロード擬きとかカオス過ぎる
判定がクラスだったりダックだったり

しかもランタイムで忘れた頃にエラーが出てくるし
0371名刺は切らしておりまして
垢版 |
2019/04/20(土) 16:52:15.95ID:oyslpPYL
Rubyはオブジェクト指向という皮被ったPerl、悪い意味で。

流行ったのはRailsやったが、PHPの分野にチョイ食い込みしただけやったからなぁ。

作者本人はRailsなどには興味ないからね。
0372名刺は切らしておりまして
垢版 |
2019/04/20(土) 17:21:39.55ID:rjh++xVg
とりあえず全てのプログラマは難解プログラミング言語にでも触れて
チューリング完全とかの面白さでも理解すべきだと思うわ
0373名刺は切らしておりまして
垢版 |
2019/04/20(土) 17:36:33.83ID:nV6IkN1Y
「Visual Basic .NET」
UWPはだめだろー
0374名刺は切らしておりまして
垢版 |
2019/04/20(土) 17:48:51.15ID:ApkY18iY
>>373
VB.NETはUWP専門じゃないけど
0375名刺は切らしておりまして
垢版 |
2019/04/20(土) 21:16:17.08ID:tgxIDz2u
Pythonはようやく見つけたBASICの後継言語だわ。
0378名刺は切らしておりまして
垢版 |
2019/04/21(日) 04:57:22.46ID:tsiTq8Xb
>>376
テンプレートはかなりカオスになってるだろ
で、C++はどうでもいいからpythonの複雑で酷いことになってる例を早く出してくれよ
0380名刺は切らしておりまして
垢版 |
2019/04/21(日) 07:37:58.23ID:PHs+wOXc
pythonは
似たようなライブラリが重複しすぎ
2→3への互換性なしのようなことがいつ起きるかわからん
変数のローカルとグローバルの定義が不明確
コピーか参照か不明確
ライブラリ名が被ると悲惨
などで、まあ使い捨てにする作業用としてはいいけど
ちょっと規模の大きなことをすると見通し悪すぎ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況