Google の言語テスト、勝者は C++ 42
ストーリー by reo
車に例えて解説してくれ 部門より
車に例えて解説してくれ 部門より
insiderman 曰く、
Google が C++ と Java、Go、Scala の 4 言語に対し、比較・調査を行った結果を公開している (論文 PDF) 。
この比較・調査には各言語で慣例的なコンテナクラスやループ構築方法、メモリ/オブジェクト割り当てスキーマを用い、言語機能やその際のコードの複雑さ、コンパイラやコンパイル時間、バイナリサイズ、実行時間、メモリフットプリントを調査した。ベンチマークのソースコードは Google Code 上で公開されている。
結論としては、これらの言語の中では C++ がもっともパフォーマンスの優れた言語、ということになったそうだ。ただし、C++ にはチューニングの自由度が高く、ベンチマークには平均的なプログラマでは記述できないような洗練されたコードも含まれているという (つまり、優れたプログラマでないとパフォーマンスを出せない可能性があるということか) 。
また、Java については「実装しやすい」、Scala については「優れた言語機能を持ち、コードの複雑さに関する最適化に関してはもっとも優れている」、Go については「コンパイラがまだ未成熟で、それがパフォーマンスやバイナリサイズにも現れている」という。
客観的に評価しているのは褒められます (スコア:2)
今度は、ブラウザーや、WEB メールなども客観的に比較して欲しいです。
Re: (スコア:0)
論文を読めば判るんですが、これは
ベンチマーク論文としては正確さも厳密さも、ベンチマークとして配慮すべき点を全て尽くす完備性もいずれも欠けていて、
一言で言って「やってみた」の域を出ないん出来なんですよ。
「Googleが発表!」ということでメディアに中身の価値以上に取り上げられている気がします。
恐らくこの論文の唯一の価値は「Goはまだ未熟」という事実の報告でしょう。
Re: (スコア:0)
>恐らくこの論文の唯一の価値は
そんなことはない。こうやって雑談サイトのネタになったじゃありませんか!
# それが価値かどうかは余談を許しまくります
Re: (スコア:0)
ベンチマーク論文としては正確さも厳密さも、ベンチマークとして配慮すべき点を全て尽くす完備性もいずれも欠けていて、
ベンチマークの完備性ってなんでしょうか?
#まあ論文に"The benchmarking itself was done in a simple and fairly un-scientific fashion."とはありますが。。
車に例えると... (スコア:2)
#書いていてこじつけのような気がしてきたがW204に乗っているのでid
Re:車に例えると... (スコア:1, 興味深い)
C++以外は鈍重で維持費が高いってことでおk?
快適装備満載のモダンカーより軽トラやシトロエン2CVのほうが実用性から見た評価は高いというのが
Googleの結果になったのかな
Re: (スコア:0)
Cはハチロク?
例えるのはやめてくれ (スコア:2, すばらしい洞察)
よけい訳がわからなくなる。
誰と戦ってるの? (スコア:0)
Re:誰と戦ってるの? (スコア:2)
Re: (スコア:0)
多分トップページを乗っ取るくらいの大口スポンサーと、、、、
プログラム言語を船に例えると (スコア:2, すばらしい洞察)
If a programming language was a boat… [hellofrnds.com]というブログ記事がちょうど最近あったので.なぞらえると
C++:レース用ヨット.速くて機能的.動かすのにマッチョが多数必要.
Java:豪華客船.ただし操縦士として.
Go:モーターボート.カタマランがいいかトリマランがいいか試行錯誤中.完成したら速そう.
Scala:豪華客船.客として.
元記事だとこういう感じ
Turing:カヤック.手作りで初心者向け.そしてカナダ製.
Java:コンテナ船.エンタープライズ用で重いものもなんのその.でも操縦は楽しくない.
Perl:タグボート.Javaを引っ張るくらいパワフル.百文字以下で.
Ruby:レジャーボート?格好良くてトレンディー.
PHP:イカダ.stringで工夫されてなんとか今でも浮いている.
C:原潜.全ては任務のために最適化されている.
HTML:プールに飛び込む・・・いやこれ
プログラム言語船じゃないって.Re:プログラム言語を船に例えると (スコア:2)
Common Lisp: ぐねぐねしてスクリューが四方八方についているが、
いざスクリューを一方向に向けるとそれなりに速い。なぜすすむのかぱっと見わからない。
Scheme: おなじくぐねぐねしているが、情報系の大学教授とSICPが一冊乗っている。
アセンブリ言語: レース用ヨットだが、まだ組み立てられていない。
新人。プログラマレベルをポケモンで言うと、コラッタぐらい
Re: (スコア:0)
Re: (スコア:0)
固まらん言語がいいですっ!
# モデしたのでAC
リンク切れ・・・ (スコア:1)
論文がリンク切れです;;
閑話休題
これでいいのかな? (スコア:1)
Loop Recognition in C++/Java/Go/Scala [scala-lang.org]
どうやらタレコミ文では”files”の部分のsが抜けているようですね。
Re: (スコア:0, オフトピック)
ご指摘ありがとうございました。掲載時に修正させていただきました。
Hiroki (REO) Kashiwazaki
Re: (スコア:0)
Anonymous Cowardです。
…を皆でやろう。
Re: (スコア:0)
dodonga 対策協議会員 Anonymous Coward です。
dodonga さんファンクラブ会員 Anonymous Coward です。
幻の dodonga 氏著作物30冊研究班 Anonymous Coward です。
…あたりでどうかな。名乗るだけなら自由らしいし。
1stガンダムに例えると (スコア:1, おもしろおかしい)
C++:ガンダム
Java:GM
Go:ブラウ・ブロ
Scala:ギャン
ってとこ?
Re: (スコア:0)
C++はザクじゃね?
Re:1stガンダムに例えると (スコア:1, おもしろおかしい)
Re:1stガンダムに例えると (スコア:1)
『僕が一番C++をうまく使えるんだ』
Re: (スコア:0)
B言語:旧ザク
ObjctiveC:グフ
C++ドム
あたりで。
Re: (スコア:0)
> C++ドム
あやつの実装サイズやフットプリントが優れているというのはどうにも首肯しがたいのだが……。
# まあ、後世(第二次ネオ・ジオン抗争とか)のMSよりは小さいけどさ。
Re: (スコア:0)
洗練さならドムよりゲルググでは?
Re:1stガンダムに例えると (スコア:1)
C++はむしろ高機動型ザクII [wikipedia.org]あたりじゃないか。
「外観こそはザクと大差がないが、内部構造は大きく変化しており、事実上別のモビルスーツになっている」とか「制御が難しく、ある程度熟練したパイロットではないと扱いかねる」とか、いかにも、C=ザクIIと比べてC++っぽい感じだと思う。
Re: (スコア:0)
そうだよな。
自動姿勢制御のあったガンダムはガベージコレクションのあるJavaだよね。
自動姿勢制御の無かったザクはガベージコレクションのなかったC++だよね。
飛行機で適当に例えてみる (スコア:1, 興味深い)
C++ :ゼロ戦。登場時は圧倒的な威力を見せるが、パフォーマンスは操縦者能力に依存。慣熟していない操縦者では死屍累々。
Java:B29。小回りは効かないが、ゼロ戦が届かない高
級言語空を飛ぶ。Scala(タレコミで欠けているが「JavaVMで動くのでJavaの問題を共有している」と論文で指摘されている)
:ボーイング377。B29ベースの旅客機。小回りがきかず運航コストは高い。が、居住性はぴか一
Go:Honda Jet。まだ開発中。
Re: (スコア:0)
C++ :ゼロ戦。登場時は圧倒的な威力を見せるが、パフォーマンスは操縦者能力に依存。慣熟していない操縦者では死屍累々。
Java:B29。小回りは効かないが、ゼロ戦が届かない高
級言語空を飛ぶ。Scala(タレコミで欠けているが「JavaVMで動くのでJavaの問題を共有している」と論文で指摘されている)
:ボーイング377。B29ベースの旅客機。小回りがきかず運航コストは高い。が、居住性はぴか一
Go:Honda Jet。まだ開発中。
Scalaについては、我々はエコノミーにしか乗れません。
# それかアテンダントがいないか
# あれ、居住性はよくないっすよ
Re: (スコア:0)
教官が良く、ライブラリ使用制限が緩ければC++はJavaに勝るとも劣らない高空を飛べます。
が、慣熟していない操縦者がそれに挑戦すると衝撃波で僚機をなぎ払う事になります。
# むしろ巡航ミサイルか。
scalaが気になる (スコア:1)
ギャルゲーに例えると (スコア:1, おもしろおかしい)
Java:優等生の生徒会長。最近母親が再婚して継父が腹黒い人なので悩んでいる。ツンデレ
Scala:生徒会長の弟。分け隔て無い愛を注ぐマリア様みたいな人。容姿も超美人。性別なんて問題じゃない
Go:異母妹。という事になっている。幼き日の過ちの産物かもしれない。惹かれているとは認めたくない
コンテナクラスやループ構築方法、その際のコードの複雑さ (スコア:0)
Re:コンテナクラスやループ構築方法、その際のコードの複雑さ (スコア:3, 参考になる)
タレこみ本文がミスリーディングなんですが、C++が優位なのは実行速度と実メモリ消費量だけですよ。
Re: (スコア:0)
Re: (スコア:0)
現在も利用者が多くて、色々と過去も多い言語は(色々なメーカーの独自拡張はあっても)
ちょっとした言語の改良にも小回りが効かなくなってしまっていますね。
Re:コンテナクラスやループ構築方法、その際のコードの複雑さ (スコア:1)