任天堂「今後C++は捨てJavaScriptで開発していく」 (887レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
1
(7): デフォルトの名無しさん [sage] 2013/03/20(水) 13:07:40.60 AAS
任天堂のゲームはこれまで,CやC++といったプログラミング言語で開発されており,
そのため高いパフォーマンスを発揮していたが,反面,開発に時間がかかっていたという。
このセッションではそれ以外の方法,つまりHTMLやJavaScriptを使ってWii Uの全機能にアクセスしつつ,
より手軽にゲーム開発を行う方法が説明されるようだ。
http://www.4gamer.net/games/999/G999905/20130316001/
23
(5): デフォルトの名無しさん [] 2013/03/21(木) 06:03:03.23 AAS
ビックリするかもしれないけどいまやJavaScriptのコードは平均してJAVA並の速度なんだよね
ループ内のコードを外に出したり、ハイコンテキストなのを逆に利用して効率のよいマシン語にすることができる
49
(14): デフォルトの名無しさん [sage] 2013/03/21(木) 11:59:19.32 AAS
実行効率じゃなくて開発効率が悪いからかんべんしてほしいわ。

function hoge(x) {
x.maxLength = 100;
}
↑これをスペルミスで

function hoge(x) {
x.maxlength = 100;
}
↑と書いてもエラーにならないで、なんとなく動いちゃう言語。
55
(3): デフォルトの名無しさん [sage] 2013/03/21(木) 14:45:41.46 AAS
実装詳細ってなんだ?
公開プロパティだろ?

それともメソッドにすれば解決する問題だと思ってるのか?
69
(3): デフォルトの名無しさん [sage] 2013/03/21(木) 16:46:14.37 AAS
>>66
> >>49の問題って何?

まんまその通りだけど。
・スペルミスしたときに
・と書いてもエラーにならない
・なんとなく動いちゃう
111
(8): デフォルトの名無しさん [sage] 2013/03/21(木) 22:06:37.77 AAS
>>105
var a = {maxLength:0};
var b = Object.seal({maxLength:0});
var hoge0 = function hoge(x) {"use strict"; x.maxLength = 100; return x.maxLength};
var hoge1 = function hoge(x) {"use strict"; x.maxlength = 100; return x.maxlength};
hoge0(a) // => 100
hoge1(a) // => 100
hoge0(b) // => 100
hoge1(b) // TypeError: Can't add property maxlength, object is not extensible
180
(4): デフォルトの名無しさん [sage] 2013/03/22(金) 07:08:00.09 AAS
>>179
いやおれは普通にこういうことだとおもったんだが
x = { val:0, get maxLength() {return this.val}, set maxLength(v) {this.val = v}}
function hoge(x) { x.maxLength = 100; } // 正
function hoge(x) { x.maxlength = 100; } // 誤
x.maxlengthに間違ったら意味無いよね?
203
(4): デフォルトの名無しさん [sage] 2013/03/22(金) 11:37:19.10 AAS
>>200
ありがと。

>>196
それだと、maxLengthを隠蔽できてない。

newを使う場合はこう。
var Foo = function() {var maxLength;};
Foo.prototype.setMaxLength = function(val) {maxLength = val;}
Foo.prototype.getMaxLength = function() {return maxLength;};

var x = new Foo();
console.log(x.maxLength);    // => undefined
x.setMaxLength(100);
console.log(x.getMaxLength()); // => 100
console.log(x.maxLength);    // => undefined
x.maxLength = 200;        // => can't change Foo's property
console.log(x.getMaxLength()); // => 100
try {
  console.log(x.getMaxlength());
} catch (e) {
  console.log(e.message);
}
273
(3): デフォルトの名無しさん [] 2013/03/27(水) 22:18:03.24 AAS
>>23
> ビックリするかもしれないけどいまやJavaScriptのコードは平均してJAVA並の速度なんだよね

こういう「平気でうそをつく人たち」がウェブ界隈には多すぎる。
JavaScriptは以前よりはずっと速くなったが、依然C++よりはずっと遅い。
単純な演算でも平均して5倍は遅いし、
実アプリケーションではメモリ効率の悪さによる速度低下やキャッシュミス、GCポーズ、
低レベルアクセスのオーバーヘッド、SIMD命令やマルチスレッドを活用できないこと等でさらに差が広がる。

各種ベンチマーク。2のTime、Memory、Codeの表をチェックしてね。これが現実の性能差。

C++ g++ speed ÷ JavaScript V8 speed | Computer Language Benchmarks Game
http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=gpp&lang2=v8

実際、C++/OpenGLで書かれたものとJavaScript/WebGLで書かれたもので
5倍スループットが違ったりするんですよ?
一番オーバーヘッドが小さい(それこそほとんどOpenGLにコールを渡すだけの)WebGLでだ。

しかもこの1年、JavaScriptの速度の伸びは停滞している。一通り最適化しつくしてしまった。
だから今まで頑なにJavaScriptで十分と言っていたMozillaがasm.jsを作ってきたりしている。

>>36
>これは極端な例だけどJSがダントツで早い状況もある

C++のコード見たがなめとんのか
https://github.com/kwatch/template-engine-benchmarks/blob/master/others/string-concat/cpp/bench_strcat.cpp
425
(5): デフォルトの名無しさん [] 2013/04/03(水) 10:33:57.34 AAS
JavaScriptで、C言語製ソフトと同等(速度)の事をやることは現実で可能。

Zopfli を Emscripten をつかって JavaScript に移植しました
http://blog.livedoor.jp/imaya_js/archives/6349259.html

Google Zopfli圧縮アルゴリズム、gzip -9より高圧縮  3月11日
http://headlines.yahoo.co.jp/hl?a=20130311-00000019-mycomj-sci

この記事では、C言語で書かれたアプリケーションを Javascript エンジン上で動かすためのツールである Emscripten について解説します。
Emscripten の原理
Emscripten はC言語のコードを Javascript のコードへ変換するツールですが、人間が移植作業を行うように「書き直し」をしてくれるものではありません。
http://teikyo.tumblr.com/2011-emscripten-1
467
(3): デフォルトの名無しさん [] 2013/04/03(水) 13:47:40.93 AAS
C言語が機種依存して最適化してる。C言語なみの速度がJavaScriptで実現可能かということは原理的には可能だろ。
C++のテンプレート使うと、必要な型のすべてのバイナリを生成し、バイナリの中身は型付き変数として動作する。
JavaScriptコンパイラを作り最適化したらいいだけ。
471
(3): デフォルトの名無しさん [] 2013/04/03(水) 15:51:24.12 AAS
>>468>>469
あまりに実行中に新型の型を生成するようではエラー出してコンパイルを停止させる。
どこで新型が生成されるか事前に判別できるから、無限ならず有限で済むケースでのみコンパイルを成功させる。
712
(3): デフォルトの名無しさん [sage] 2014/02/04(火) 16:04:02.62 AAS
アナログスティックとかスライダとかどーすんの?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.051s