任天堂「今後C++は捨てJavaScriptで開発していく」at TECH
任天堂「今後C++は捨てJavaScriptで開発していく」 - 暇つぶし2ch2:デフォルトの名無しさん
13/03/20 13:09:11.52 .net
JavaScriptは開発効率高いからな。

3:デフォルトの名無しさん
13/03/20 13:10:03.88 .net
JavaScriptはC言語の皮をかぶったマクロの無いLisp

4:デフォルトの名無しさん
13/03/20 13:11:39.86 .net
泥沼になりそう

5:デフォルトの名無しさん
13/03/20 13:14:14.64 .net
Javaと勘違いしてる輩が乱入、に1ペリカ。

6:デフォルトの名無しさん
13/03/20 13:14:38.07 .net
速度出ないだろ

7:デフォルトの名無しさん
13/03/20 13:15:55.26 .net
ソフトウェアの進化というのは
開発効率が高い遅い言語で
作りなおすことで進化しているのです。

どんどん遅い言語で作られるようになりますが
それこそ進化なのです。

8:デフォルトの名無しさん
13/03/20 13:21:28.27 .net
HTMLとJavascriptで新作マリオ出してくれたら信用する

9:デフォルトの名無しさん
13/03/20 13:32:02.93 .net
過去ソース使えねえな
移植効率悪そう

10:デフォルトの名無しさん
13/03/20 13:56:05.94 .net
捨てるとは書いてないべ
Javascript のインタフェースを用意してみたんだけど使ってみてくんない?
って感じじゃないのか
モバグリの開発者を囲い込む戦略なんじゃね

11:デフォルトの名無しさん
13/03/20 15:28:30.40 .net
HTML5のグラディウス完璧だったしな
そこそこの物は作れるんじゃないか

12:デフォルトの名無しさん
13/03/20 15:34:12.88 .net
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

13:デフォルトの名無しさん
13/03/20 17:33:33.34 .net
開発効率そんなに違うか?

14:デフォルトの名無しさん
13/03/20 18:38:38.33 .net
レスポンス返って来なかったりメモリ不足がほぼ出ないようなシステムなら問題ないんだけどな

15:デフォルトの名無しさん
13/03/20 19:56:32.10 .net
任天堂のゲームでそんなに高いパフォーマンスが必要だったものあったっけ
Cでマリオ作るの非効率だからやめるよ!ってだけの話じゃないの

16:デフォルトの名無しさん
13/03/20 20:15:20.73 .net
C++とJavascriptだったら
どっちが開発し易いか微妙なレベル
速度は確実にC++だけど

17:デフォルトの名無しさん
13/03/20 20:16:04.23 .net
まだアセンブラだと思ってた

18:デフォルトの名無しさん
13/03/20 20:45:31.85 .net
PHPde開発しようZE

19:デフォルトの名無しさん
13/03/20 22:00:44.49 .net
>>16
そう思っててくれたほうが助かる。

20:デフォルトの名無しさん
13/03/20 23:03:18.02 .net
JSエンジンが裸で載ってたらデバッグで死ねるな

21:デフォルトの名無しさん
13/03/21 02:27:50.15 .net
Javascriptでインタープリタなテスト工程を経て、
C/C++に落としてくれる環境ならば賛同する。
(本番はCPUに近いNativeで。)

22:デフォルトの名無しさん
13/03/21 05:29:51.19 .net
アセンブラでマリオ作ろう

23:デフォルトの名無しさん
13/03/21 06:03:03.23 .net
ビックリするかもしれないけどいまやJavaScriptのコードは平均してJAVA並の速度なんだよね
ループ内のコードを外に出したり、ハイコンテキストなのを逆に利用して効率のよいマシン語にすることができる

24:デフォルトの名無しさん
13/03/21 06:09:40.04 .net
まぁ開発効率は高いわなぁ。スクリプトエンジンはどんどん高速になってるし

25:デフォルトの名無しさん
13/03/21 06:18:14.60 .net
ブラウザ戦争のお蔭でとんでもない速度で最適化が進んだからなあ

26:デフォルトの名無しさん
13/03/21 07:10:15.23 .net
>>23
またまたw

27:デフォルトの名無しさん
13/03/21 07:19:50.47 .net
早いって言ってもスクリプトエンジン次第だぞ?
任天堂自前で作るのか?

28:デフォルトの名無しさん
13/03/21 07:43:25.78 .net
>>23
全然びっくりしないかもしれないけど
速いJavascriptエンジンはC++で書かれてるんだぜ

29:デフォルトの名無しさん
13/03/21 08:24:57.07 .net
C#のが生産性高い

30:デフォルトの名無しさん
13/03/21 08:46:25.26 .net
>>11
>HTML5のグラディウス完璧だったしな

コナミ社員の自作自演?w

31:デフォルトの名無しさん
13/03/21 08:48:45.49 .net
いつまでもグラディウスにすがるコナミみっともない

32:デフォルトの名無しさん
13/03/21 08:50:15.82 .net
MSX最大のネガキャンプロデューサー、コナミw

33:デフォルトの名無しさん
13/03/21 08:50:55.03 .net
小島はMSXユーザーw

34:デフォルトの名無しさん
13/03/21 09:07:48.49 .net
ブラウザゲームに速度は必要ないし良い判断だろ
ブラウザゲームに特化するのは良い判断とは思えないけどな

35:デフォルトの名無しさん
13/03/21 09:50:52.62 .net
>>1に釣られる間抜けな馬鹿に言っておくけど、
JavaScriptで開発をするとは書いてあるけど、
C++を捨てるなんて書いてないからねw

速度が必要なところだけC++を使えばいい。

それにJavaScriptのエンジンはオープンソースの速いやつを使うだろ。
JavaScript実行環境はオープンソースにしないといけないけれど、
それで動かすアプリはクローズドでいいわけだし。

36:デフォルトの名無しさん
13/03/21 09:59:39.05 .net
これは極端な例だけどJSがダントツで早い状況もある
URLリンク(nothingcosmos.blog52.fc2.com)

最近のJSエンジンは本当に凄い
JSの数値は64bit浮動少数だけどint型で扱える範囲の時はそれで計算するとかはもう普通
配列も入っている型やばらつきによってそれぞれ最適化される
もう単純演算じゃあ差は出ない

正規表現とか高級言語の方が扱いやすいものもある
当然WEBとの相性はいい

反対に苦手なのがバッファを弄る処理
まあ苦手と言ってもCほどトリッキーなことはできないレベル
元々JSはIO全般と相性が悪かったけど最近はマシになってきた

37:デフォルトの名無しさん
13/03/21 10:26:39.28 .net
JSの速度のことを指摘している人は検討違い
JSの言語自体の問題は無い

あるのはアウトプットをどうするかということ
正直今のWeb技術はバリバリのゲームなんか想定してない

WEBにはオーバースペックだと度々言われるWebGLだって
コンシューマ機として考えたらOpenGL ES 2.0だからしょぼすぎる
WiiUのGPUとマッチしてないと思う

2DゲームだってCanvas2D+CSSだけじゃあ寂しすぎる
エフェクトとかがかけづらいからほとんどWebGL使うと思う

本気でやるんなら新しいCanvasのコンテキストを用意するのはもちろん
リアルタイムオーディオ系API、今ChromeとFirefoxで全然別なのが乗ってて合併中だけどそれをどうするのかも決めないと

細かいとこだけどHTML5のテンプレートとかCSSのシェーダーとか
今実験段階の機能も載せないとダメだと思う

WiiUがスタンダードを決めるくらいの勢いでいかないと成功しない
でもあくまでWeb技術だから無茶もダメ、
ブラウザはもちろん、今年から出てくるMobileWebOSのベンダー何かとも相談する必要あると思う

そういうことが任天堂にできるよう体制考えていくのかっていうのが大事
任天堂の一大プロジェクトとして頑張ってくれ

38:デフォルトの名無しさん
13/03/21 10:41:53.37 .net
>>37
何いってんだお前?

ライブラリさえ用意すれば、JavaScriptから
ファイルアクセスだってDirectX(Windowsの場合)だって
使えるんだよ。

Nodeなんかそうじゃん。言語はJavaScript
ライブラリはウェブ標準ではない。

JavaScript使うからってウェブ標準にする必要はない。

39:デフォルトの名無しさん
13/03/21 10:43:35.83 .net
>>30
え?お前何言ってんの?

40:デフォルトの名無しさん
13/03/21 10:51:52.51 .net
うわっ、コナミ社員w

41:デフォルトの名無しさん
13/03/21 10:58:08.26 .net
>>38
だからそのライブラリを用意するのがものすごく大変だと言っている
せっかくWeb技術を使うんだからそれと全くかけ離れたものを作ってもしかたない

Node.jsはWeb技術(HTML)じゃない、JSだけ
それに完全独自じゃなくて他のサーバーサイドJS環境とともに標準仕様を決めている
それでもここまで来るのに何年もかかった
だけどまだNodeはバージョン0.10
フラッシュアップするのにもう1年はかかりそう
それほど大変

そんな中ゲームサイドを作ろうとしたらライブラリ作ればいいじゃすまない
任天堂だけの手におえないし、おってはいけない
それこそ仕様ができた頃にはWiiUの次がでてるようなことになる

それはさすがに無理だからWEB技術を中心に採用することにしたんだろう
でも採用するといっても使えそうな技術は実験段階だったり
標準化に手間取ってたりする
それを待ってるとやっぱりWiiUには間に合わない

でも既存のWEB技術だけじゃあ残念すぎる
なんとかそこら辺を上手くやらなくちゃいけない
じゃないともったいない

42:デフォルトの名無しさん
13/03/21 11:00:53.73 .net
> だからそのライブラリを用意するのがものすごく大変だと言っている

今あるC++のライブラリのラッパーを作れば良い。

43:デフォルトの名無しさん
13/03/21 11:02:41.38 .net
> それに完全独自じゃなくて他のサーバーサイドJS環境とともに標準仕様を決めている

CommonJSはオワコンで
参考にはするが、そんなのには従わないと
言ってるんだが知らないの?

44:デフォルトの名無しさん
13/03/21 11:21:23.46 .net
C++はもうお荷物になってきたか

45:デフォルトの名無しさん
13/03/21 11:22:04.14 .net
HTML5のグラディウスがコナミだとか
スーパーマリオ知らんってどんだけ情弱なんだよw

46:デフォルトの名無しさん
13/03/21 11:26:22.34 .net
>>42,43
今はCommonJS関係ないよ
でもそれが種だった
じぶんはv0.1代の頃から知ってたからよく分かる

それに少し考えてご覧
ほぼストリームのIOだけ提供すればいいサーバーサイドとはスケールが違い過ぎる
絵も音も出さなくちゃいけない
それらはバッファやストリームのラッパーを作ればいい次元じゃない

既存のを使えばいいとか無茶ぶりすぎる
それならそもそもなんのためにJavaScriptを使うのか
仮に既存のCのラッパー大量に用意してはいどうぞ
はて、Cで開発していた頃と何が違うのか
既存のWeb技術を利用でき既存のWebアプリ開発者でも参入できるからいいんじゃないか

それに仕様ってのは作ったはい終わりじゃすまない
それで済むのならHTML5だってもめてない
長い時間をかけて改善を繰り返さないと完成しないもの

そこまでしてゲームサイドJS環境を作れたとしてどんな意味があるのだろうか

47:デフォルトの名無しさん
13/03/21 11:36:14.49 .net
でもそれが種だった
でもそれが間違いだってわかった。
二度と同じ事を繰り返すことはないだろう。

48:デフォルトの名無しさん
13/03/21 11:36:52.80 .net
> それらはバッファやストリームのラッパーを作ればいい次元じゃない

え? なんで?
根拠が無いなぁ(笑)

49:デフォルトの名無しさん
13/03/21 11:59:19.32 .net
実行効率じゃなくて開発効率が悪いからかんべんしてほしいわ。

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

function hoge(x) {
x.maxlength = 100;
}
↑と書いてもエラーにならないで、なんとなく動いちゃう言語。

50:デフォルトの名無しさん
13/03/21 12:00:12.97 .net
時間がかかるのは標準技術だから
独自技術なら時間はかからない。
現にゲーム業界の速度は、標準技術を確立する速度を超えている。

51:デフォルトの名無しさん
13/03/21 14:05:14.51 .net
JavaScriptつーかECMAScriptでstrictモード対応なら>>49みたいな心配はいらないんだけどなぁ

52:デフォルトの名無しさん
13/03/21 14:07:44.88 .net
C++を捨てる、なんてどこにも書かれてないな。
こういう釣りは、ゲハとかそっちの方面でやってくれ。

53:デフォルトの名無しさん
13/03/21 14:39:13.62 .net
>>51

>>49の例はstrictモードでも防げないだろ

54:デフォルトの名無しさん
13/03/21 14:42:39.98 .net
そもそも>>49はhoge()がオブジェクトxの実装詳細を知っているのが前提という糞設計なのが問題

55:デフォルトの名無しさん
13/03/21 14:45:41.46 .net
実装詳細ってなんだ?
公開プロパティだろ?

それともメソッドにすれば解決する問題だと思ってるのか?

56:デフォルトの名無しさん
13/03/21 14:49:40.74 .net
>>55
> 公開プロパティだろ?
Javascript知らないのがバレバレ

57:デフォルトの名無しさん
13/03/21 14:54:09.76 .net
メソッド(setter/getter)にすれば、少なくとも「なんとなく動いちゃう」は防げるだろ
ただし、それがJavaScript的なお作法に適合するのかどうかはわからんが

58:デフォルトの名無しさん
13/03/21 14:55:28.39 .net
あ、typoが問題じゃ無くて、外部から新たなプロパティを設定できてしまうのが問題なのか
だったら、俺はその防ぎ型を知らんわ

59:デフォルトの名無しさん
13/03/21 15:09:05.85 .net
>>55
他言語だって、変数を公開して、外で自由に触らせるのは良くない設計だよ?

60:デフォルトの名無しさん
13/03/21 15:24:26.71 .net
>>56
恥かいたのはお前だったなw

61:55
13/03/21 15:29:18.67 .net
こういう時のために、Object.seal()があるんだよ
無知どもめ。

62:デフォルトの名無しさん
13/03/21 15:31:38.22 .net
いまどきメモ帳でコード書くわけじゃあるまいし
最底辺プログラマが書くC++よりは安全だろう

63:デフォルトの名無しさん
13/03/21 15:42:03.20 .net
IDEのサポートが弱いのもダメだな。

動的型.vs.静的型の議論で「動的は簡単に書けて生産性が高い、
静的は安全に書けます。適材適所で使いましょう」みたいな大人の
意見を言うやつがいるけど、ぜったい動的は生産性低いだろ。

64:デフォルトの名無しさん
13/03/21 15:48:04.44 .net
>>61
seal()で、どうやって>>49の問題を防ぐつもりなの?

65:デフォルトの名無しさん
13/03/21 15:57:54.19 .net
>>63
つ TypeScript

66:デフォルトの名無しさん
13/03/21 16:10:11.93 .net
>>64

>>49の問題って何?

67:デフォルトの名無しさん
13/03/21 16:15:16.11 .net
>>65
そういうのが出るってことは、やっぱ動的型の言語に問題感じてる人は多いんだろうな。

68:デフォルトの名無しさん
13/03/21 16:35:45.71 .net
javascriptが速いのはx86とarmだけ

69:デフォルトの名無しさん
13/03/21 16:46:14.37 .net
>>66
> >>49の問題って何?

まんまその通りだけど。
・スペルミスしたときに
・と書いてもエラーにならない
・なんとなく動いちゃう

70:デフォルトの名無しさん
13/03/21 16:46:24.66 .net
それ以外はwebいらないってことで

71:デフォルトの名無しさん
13/03/21 16:47:21.92 .net
>>69
今度は、Object.seal()の機能をここにコピペしてみてよ。

72:デフォルトの名無しさん
13/03/21 16:52:26.07 .net
>>71
Object.seal()の機能は知ってるから、どうやって>>49の問題を防ぐつもりなのかだけ教えてくれればいいから。

73:デフォルトの名無しさん
13/03/21 16:52:42.06 .net
正直ゲームなんて多少変な挙動あっても適当に動いてりゃ許されるだろ
バグまみれでも大して問題にならないのってゲームプログラムだけだよね

74:デフォルトの名無しさん
13/03/21 17:06:01.88 .net
もうおしまいだ~!!

C++はおしまいだ~~!!

75:デフォルトの名無しさん
13/03/21 17:06:28.17 .net
>>73
ゲームの方が、(精神的な)子供が多いから大問題になる気がするが

76:デフォルトの名無しさん
13/03/21 17:15:30.02 .net
>>72
Object.seal()の機能に、
>>69の問題を防ぐって書いてあるじゃん。

読んでないだろお前。

77:デフォルトの名無しさん
13/03/21 17:30:15.16 .net
>>76
> Object.seal()の機能に、
> >>69の問題を防ぐって書いてあるじゃん。

そうは思えないから、どうやって防ぐのか質問してるんだけど。
コード書いてよ。

78:デフォルトの名無しさん
13/03/21 17:34:38.59 .net
>>45
>HTML5のグラディウスがコナミだとか
>スーパーマリオ知らんってどんだけ情弱なんだよw

もうみんなすごーいんだよーーー



ムダな努力w

79:デフォルトの名無しさん
13/03/21 17:59:31.90 .net
URLリンク(appsweets.net)
とりあえずこのグラディウスを遊んでみてくれたまへ

80:デフォルトの名無しさん
13/03/21 18:08:46.63 .net
>>79
キーマトッリクスが不完全。

81:デフォルトの名無しさん
13/03/21 18:09:46.35 .net
コナミがここまでグラディウスに執着してるとは思わなかったなw

82:デフォルトの名無しさん
13/03/21 18:12:20.05 .net
断続的にガクガクになるのは、俺のPCがしょぼいせいか?

83:デフォルトの名無しさん
13/03/21 18:21:05.39 .net
だからこれコナミじゃないってw

84:デフォルトの名無しさん
13/03/21 18:29:15.63 .net
>>36
なぜ?という部分を解明してないと
学術論文的な所では確実に無視される

その程度の内容

そもそも、まともなソースコードすら示していないいw

85:デフォルトの名無しさん
13/03/21 18:30:12.17 .net
>>81
是非とも横スクロール・オプション・レーザー付シューティング製作を!

86:デフォルトの名無しさん
13/03/21 18:30:58.70 .net
ナムコナミ

87:デフォルトの名無しさん
13/03/21 18:32:21.85 .net
1面しか遊べないジャン

88:デフォルトの名無しさん
13/03/21 18:58:42.16 .net
パフォーマンス的にやば過ぎるなこれ
こんなの客に出したら社会問題になるな

89:デフォルトの名無しさん
13/03/21 19:30:19.85 .net
>>85
1985年から28年間独裁してるから倒さなきゃな。

90:デフォルトの名無しさん
13/03/21 19:52:23.59 .net
>>28
こいつ最高に低能

91:デフォルトの名無しさん
13/03/21 19:55:48.26 .net
俺の知ってるニンテンドーのOSはCOMライクな作りでJSインターフェース持ってたよ。
それでブラウザ独自実装してたぞ。

92:デフォルトの名無しさん
13/03/21 19:56:18.14 .net
馬鹿丸出しw

93:91
13/03/21 20:03:43.02 .net
俺?

94:デフォルトの名無しさん
13/03/21 20:05:56.87 .net
>>85
>是非とも横スクロール・オプション・レーザー付シューティング製作を!

コナミの真似をすれば馬鹿と思われるから誰もしないだけw

95:デフォルトの名無しさん
13/03/21 20:08:36.96 .net
本物グラディウスのソースリストいる?
C言語ソースと68000ライブラリ。

96:デフォルトの名無しさん
13/03/21 20:14:12.20 .net
>>95
それって、今から読んでもちゃんと読める?っていうか、アホでもよめる??
あと、著作権大丈夫?

97:デフォルトの名無しさん
13/03/21 20:14:45.84 .net
>当時の革命的なシューティングゲームとして1980年の『ディフェンダー』と並び称される歴史的作品。

並ばねーよw

ディフェンダーに失礼。

98:デフォルトの名無しさん
13/03/21 20:15:58.44 .net
グラディウスのストーリー自体はスターウォーズだな。
陳腐だけどw

99:デフォルトの名無しさん
13/03/21 20:19:05.77 .net
>>96



100:デフォルトの名無しさん
13/03/21 20:20:04.96 .net
>>98
テーマが暗い

101:デフォルトの名無しさん
13/03/21 20:24:19.18 .net
>>99
おれ、釣られたの?
某社のOSはオプソだから知ってるんだよ。

102:デフォルトの名無しさん
13/03/21 20:29:18.50 .net
知ってると書く奴の100%は何も知らないと言う法則

103:デフォルトの名無しさん
13/03/21 20:34:35.82 .net
というか書ける奴は外部仕様を見れば書ける気がするし
書けない奴はソースコードなんか見ても書けない気がする

104:デフォルトの名無しさん
13/03/21 20:40:59.37 .net
じゃー、しーらない。

まぁ、確かに、OSのソースよんだけど全然理解できなかったのはそうだな。
グラディウスのソースはあれだ文学として興味あるね。
どういう文体で書かれてるとか、どうやって動いてるだとか。

105:デフォルトの名無しさん
13/03/21 20:57:13.33 .net
>>77
だからObject.seal()の機能書いてみ。
何をしてくれるのかわかってないだろw

106:デフォルトの名無しさん
13/03/21 21:06:09.58 .net
ほらねw

107:デフォルトの名無しさん
13/03/21 21:20:47.00 .net
始まったな宗教対立が

108:デフォルトの名無しさん
13/03/21 21:24:55.62 .net
C言語独裁体制の崩壊

109:デフォルトの名無しさん
13/03/21 21:28:50.03 .net
まあコード書けない低能は
この板ではゴミ
存在する価値すら無い

110:デフォルトの名無しさん
13/03/21 21:39:06.21 .net
いよいよ崩壊

111:デフォルトの名無しさん
13/03/21 22:06:37.77 .net
>>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

112:デフォルトの名無しさん
13/03/21 22:09:03.58 .net
型宣言しないのがきもい

113:デフォルトの名無しさん
13/03/21 22:43:25.56 .net
>>111
こりゃ面白い。

Lispじゃなくて、JSがキビキビ動くようになったらまたAI戦争になるんかね。

114:デフォルトの名無しさん
13/03/21 22:57:23.26 .net
まず作らなきゃなw

115:デフォルトの名無しさん
13/03/21 23:09:46.21 .net
>>114
そりゃ大変だ。


JSがキビキビ動くようになったらソース互換でかなりすごいことになるな。今更だけどな。

116:デフォルトの名無しさん
13/03/21 23:10:37.38 .net
やっとObject.seal()の機能を理解したかw

117:デフォルトの名無しさん
13/03/21 23:12:06.48 .net
書けると言う奴の100%は何も書けないと言う事実w

118:デフォルトの名無しさん
13/03/21 23:13:16.45 .net
俺はかけないと思うんだが、
他人がかけるというんだ。

119:デフォルトの名無しさん
13/03/21 23:13:27.69 .net
>>112
これには同意だなー。プロパティを後付け追加で拡張されまくりで
ろくにデバッグされなくて、ゲーム開発環境がますます修羅場になる。

120:デフォルトの名無しさん
13/03/21 23:14:06.58 .net
>>117
汎用性ありすぎだろう。

121:デフォルトの名無しさん
13/03/21 23:16:18.23 .net
>>119
>>111

122:デフォルトの名無しさん
13/03/21 23:21:35.98 .net
BASICになりたくてもなれないCとJAVA。

123:デフォルトの名無しさん
13/03/21 23:27:42.58 .net
BASICってたしか関数やスコープもなかったと思うけど?

124:デフォルトの名無しさん
13/03/21 23:29:53.45 .net
C++の開発環境が肥大化のせいでゲームの本質的な面白さの追求に至れてないなら
富豪プログラミング的発想でカジュアルなゲームでHTML5でもいい 枯れた技術の~っていう発想に近いわけだし

ただなんでもHTML5でできるわけじゃないし、パフォーマンスチューニングは同じぐらいバッドノウハウある
全然質が違うチューニングだけどもね。モジラの次世代エンジンOdinMonkeyとか気が狂ってる

っていうか単にデベロッパーが減ってWeb屋吸収したいだけとも言える

125:デフォルトの名無しさん
13/03/21 23:31:24.84 .net
>>123
関数も文字列操作も強力だよw

何も知らない癖に偉そうに書くと恥をかくよw

126:デフォルトの名無しさん
13/03/21 23:35:01.85 .net
30代のリストラ - Cプログラマーの切り捨て

127:デフォルトの名無しさん
13/03/21 23:36:00.71 .net
もうCプログラマーはいらないんじゃないのか?

128:デフォルトの名無しさん
13/03/21 23:36:08.37 .net
>>125
他の言語と比べて
どんなことが優れてる?

無いと思ったけど。

129:デフォルトの名無しさん
13/03/21 23:36:37.73 .net
企業のお荷物

130:デフォルトの名無しさん
13/03/21 23:37:08.22 .net
>>128
ねぇねぇ、辞表書く準備できた?

131:デフォルトの名無しさん
13/03/21 23:38:06.72 .net
>>130
なんだ。やっぱりただのかまってちゃんだったかw

132:デフォルトの名無しさん
13/03/21 23:39:21.59 .net
        , -=-‐~--へ__,,- 、
      <        ヽ   ゝ
       ノ    二、___ゝ,/_/ヘ  |
      |    ヲ          | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      |    ┤  ===、 , ==|  | <  切り捨てられる覚悟を
     ノ   彳  ―ェ 〈‐ェ〈  ゝ  \     しなきゃいけない
    ゝ、  イ6|ゝ    / \ |‐"     \_________
      く   .^|        - ゝ
       ヒi_,| \l  [ ―.|
        ,,, -/\  \____,|
     ―'|  \  \    |\_
       |   \  \.  / 〉 \ ̄
        |__,\  / ̄〕/ 、/

133:デフォルトの名無しさん
13/03/21 23:40:01.74 .net
パソナルームw

134:デフォルトの名無しさん
13/03/21 23:57:05.60 .net
>>131
どうして手先が震えてるの?

135:デフォルトの名無しさん
13/03/21 23:58:07.39 .net
Cプログラマーを声高らかに切り捨てる

136:デフォルトの名無しさん
13/03/22 00:02:41.00 .net
  ミミ彡ミミミ彡彡ミミミミ
,,彡彡彡ミミミ彡彡彡彡彡彡
ミミ彡彡゙゙゙゙゙""""""""ヾ彡彡彡
ミミ彡゙         ミミ彡彡
ミミ彡゙ _    _   ミミミ彡
ミミ彡 '´ ̄ヽ  '´ ̄` ,|ミミ彡
ミミ彡  ゚̄ ̄' 〈 ゚̄ ̄ .|ミミ彡
 彡|     |       |ミ彡
 彡|   ´-し`)  /|ミ|ミ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ゞ|     、,!     |ソ  <  改革をあきらめるな!
   ヽ '´ ̄ ̄ ̄`ノ /     \________
    ,.|\、    ' /|、
 ̄ ̄| `\.`─'´/ | ̄ ̄`
    \ ~\,,/~  /
     \/▽\/

137:デフォルトの名無しさん
13/03/22 00:03:25.35 .net
任天堂を切り捨てろ!

138:デフォルトの名無しさん
13/03/22 00:08:56.68 .net
>>134
お前は超能力者かまってちゃんかw
だが、透視できてないぞ。ただのかまってちゃんだw

139:デフォルトの名無しさん
13/03/22 00:13:16.05 .net
    彡ミミミミ))彡彡)))彡)
   彡彡゙゙゙゙゙"゙゙""""""ヾ彡彡)
   ミ彡゙ .._    _   ミミミ彡
  ((ミ彡 '´ ̄ヽ '´/ ̄ ` ,|ミミ))
  ミ彡  ' ̄ ̄'  〈 ̄ ̄ .|ミミ彡
  ミ彡|  ) ) | | `( ( |ミ彡
  ((ミ彡|  ( ( -し`) ) )|ミミミ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ゞ|  ) )  、,! 」( ( |ソ   < 感動した!
     ヽ( ( ̄ ̄ ̄' ) )/      \_______________
     ,.|\、)    ' ( /|、
   ̄ ̄| `\.`─'´/ | ̄ ̄`
      \ ~\,,/~  /

140:デフォルトの名無しさん
13/03/22 00:14:22.37 .net
左翼はCでいい思いをしている

141:デフォルトの名無しさん
13/03/22 00:15:25.02 .net
サヨ認定キター

142:デフォルトの名無しさん
13/03/22 00:17:21.20 .net
ひっくり返せ

143:デフォルトの名無しさん
13/03/22 02:08:23.95 .net
>>116
まさかとは思うが、>>111のコードで問題が解決したとか思ってないだろうな?
思ってたとしたら、プログラミングセンスなさすぎなんだけど。
解決したと思わないなら、お前自身のコード書いてみ?

144:デフォルトの名無しさん
13/03/22 02:13:12.87 .net
文句言う前に先にお前が書けよ(笑)

145:デフォルトの名無しさん
13/03/22 02:19:00.97 .net
は?
俺は、seal()では問題は解決しないという意見なんですけど。
解決すると思うんなら、コードで示してねってことで。

146:デフォルトの名無しさん
13/03/22 02:20:47.12 .net
>>49のなんとなく動いちゃう問題は>>111で解消するな

147:デフォルトの名無しさん
13/03/22 02:21:50.29 .net
>>145
問題が解決するってひとが>>111を書いてくれたんだから、
問題が解決しないって思ってるおまえが具体的なコード例を示せよw

148:デフォルトの名無しさん
13/03/22 02:23:15.62 .net
>>147
めんどくさいなぁ。
君も>>111のコードで良いわけ?
だったらプログラミングセンスなさすぎだわ。

149:デフォルトの名無しさん
13/03/22 02:24:25.58 .net
>>148
早く書け

150:デフォルトの名無しさん
13/03/22 02:26:13.63 .net
>>149
何を書けって言ってるのかな?
分かるように言ってくれよ。

151:デフォルトの名無しさん
13/03/22 02:27:14.09 .net
5分程度で書けない奴はプログラミングのセンス無い

152:デフォルトの名無しさん
13/03/22 02:27:52.27 .net
>>150
>>49のなんとなく動いちゃう問題が>>111で解決しない理由

153:デフォルトの名無しさん
13/03/22 02:36:41.68 .net
>>152
seal()書き忘れるか、seal()が必要だって知らない人がメンテとかしたりしたらアウトだから。
書き忘れなきゃOKとか言う?それってtypoしなきゃOKと言うのと変わらないよ。
C++でnew禁止にできるみたいな、絶対に間違いが起こらない方法は無いと思うんだ。
あるなら教えてほしい。
あと、seal()しまくりなのは汚いし見づらいしエレガントじゃないよね。

154:デフォルトの名無しさん
13/03/22 02:41:19.71 .net
C++知らない人がメンテとかしたらアウトだか。

>>153への皮肉はこんなもんでいいだろ?w

155:デフォルトの名無しさん
13/03/22 02:48:54.79 .net
>>154
C++のnew禁止テクニックとseal()の違いがわからないなら、プログラミングセンスなさすぎだよ。

156:デフォルトの名無しさん
13/03/22 02:54:05.41 .net
new禁止テクニックの話は一言もしてないw

157:デフォルトの名無しさん
13/03/22 02:57:17.19 .net
new禁止テクニックのような根本的対策じゃなきゃ意味ないよって言ってるのが
理解できないのか、new禁止テクニックを知らないのか。どっち?

158:デフォルトの名無しさん
13/03/22 03:00:41.45 .net
>>153
Object.seal()を直接書いて回るとか何の冗談だよ
いまどきJavascriptでそれなりのプロダクトを作るなら
クラス継承の手順なんかも隠蔽したオブジェクト生成関数を用意してそれを使う
センスとか以前の問題じゃね?

159:デフォルトの名無しさん
13/03/22 03:03:03.19 .net
書き忘れたら書き間違えで新たなプロパティ扱いになるって言っても
C++はC++で書き忘れたら色んなものが解放されないという言語なのだけれど…

160:デフォルトの名無しさん
13/03/22 03:06:23.82 .net
>>158
残念ながらそれでも駄目なんだ。
なぜなら、JavaScriptでは実引数の型を強制できないから、hoge({maxLength:10})とかできちゃうし。

161:デフォルトの名無しさん
13/03/22 03:08:39.66 .net
>>159
念のため説明すると、new禁止にすると、hoge = new Hoge();でコンパイルエラーになるから
これが根本対策になり得る。

162:デフォルトの名無しさん
13/03/22 03:13:08.67 .net
>>160
それはオブジェクトというより今時の大抵の言語にあるハッシュとしての使いかただね
Javascriptは両方とも同じものだけど
ハッシュのキーワードミスって別のプロパティ弄っちゃうとか
Javascript固有の問題じゃないだろう
オブジェクトの生成はプロジェクトで決めた生成方式で統一すればいい

163:デフォルトの名無しさん
13/03/22 03:23:05.56 .net
オブジェクトの生成ルール決めてるプロジェクトでhoge({maxLength:10})とかやって自爆するのは
C言語で型とか適当でキャストしまくって自爆するのと同じようなものだろw

164:デフォルトの名無しさん
13/03/22 03:39:01.27 .net
>>162
ルールを決めても、それを言語仕様的に強制できなければ、誰かが間違える可能性が残る。
誰かというのは、将来のメンテナも含めてね。
それと、xの仕様を変えることによって問題を解決するのなら、maxLengthを
プライベート変数にして、setter,getterにした方がいいと思うんだけど、どう?

165:デフォルトの名無しさん
13/03/22 03:41:01.60 .net
>>163
自爆するのが悪いというのは、typoするのが悪いというのと変わらないよ。

166:デフォルトの名無しさん
13/03/22 03:44:19.64 .net
>>164
>>49を見直してこいよ
maxLengthをset/getにしてもmaxlengthを作れちゃうから問題だと言ってるのに

167:デフォルトの名無しさん
13/03/22 03:47:42.26 .net
>>165
どんな言語でも、言語仕様で強制される以外のルールも守らなければ自爆するって言ってるんだよ?w

168:デフォルトの名無しさん
13/03/22 04:22:59.02 .net
JavaScriptでnew禁止するのは簡単。

169:デフォルトの名無しさん
13/03/22 05:15:32.20 .net
>>161
ではC++で解放忘れをコンパイルエラーにする方法は?

170:デフォルトの名無しさん
13/03/22 06:18:05.68 .net
どんなに優れた言語でもウンコードは書ける

171:デフォルトの名無しさん
13/03/22 06:44:15.35 .net
TSRが書けなくなるの?

172:デフォルトの名無しさん
13/03/22 06:48:12.33 .net
>>166
setterにすれば、>>49はsetMaxLength()とsetMaxlength()のtypoの問題にかわる。

173:デフォルトの名無しさん
13/03/22 06:50:37.63 .net
typoうんぬんが開発の生産性と関係あると思ってるヤツは素人

174:デフォルトの名無しさん
13/03/22 06:50:47.43 .net
>>167
そんなの当たり前だが、今回の問題と何の関係があるのかな?

175:デフォルトの名無しさん
13/03/22 06:52:03.00 .net
>>169
ない。

176:デフォルトの名無しさん
13/03/22 06:52:37.46 .net
>>172
setterにすると>>49のコードが具体的にどう変わるか書いてみてくれない?

177:デフォルトの名無しさん
13/03/22 06:54:19.46 .net
>>176
書いたじゃん。
理解できないのか?

178:デフォルトの名無しさん
13/03/22 07:01:29.20 .net
>>177
function hoge(x) { x.setMaxLength() = 100; } // 正
function hoge(x) { x.setMaxlength() = 100; } // 誤
ってこと?

179:デフォルトの名無しさん
13/03/22 07:06:04.93 .net
178
悪いが、JavaScriptを知らない奴にまで説明する優しさは持ってない。

180:デフォルトの名無しさん
13/03/22 07:08:00.09 .net
>>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に間違ったら意味無いよね?

181:デフォルトの名無しさん
13/03/22 07:13:44.71 .net
ああ、xを実引数にしてhoge()を呼び出すと思ってくれ

182:デフォルトの名無しさん
13/03/22 07:16:02.22 .net
>>180
俺の話からそんなコードを想像したのなら、そりゃ話は噛み合わないな。

183:デフォルトの名無しさん
13/03/22 07:18:24.28 .net
念のため言っとくが(めんどくさいから、これが最後だよ)、その「正」は
正しくないよ。

184:デフォルトの名無しさん
13/03/22 07:18:56.96 .net
コード書けないアホが無理するから...

185:デフォルトの名無しさん
13/03/22 07:19:44.91 .net
>>179
>>178はこうか、>>180を意識してたんでちょっと間違った
function hoge(x) { x.setMaxLength(100) } // 正
function hoge(x) { x.setMaxlength(100) } // 誤

186:デフォルトの名無しさん
13/03/22 07:25:16.82 .net
>>180-181は実際に動作することを確認済み
いまどきjavascriptのsetter/getterって言ったら>>180だろ

187:デフォルトの名無しさん
13/03/22 07:29:28.53 .net
実際にコード例を示さない奴が偉そうだなw

188:デフォルトの名無しさん
13/03/22 07:39:45.43 .net
>>186
俺のレスをちゃんと読んでるか?
maxLengthをプライベート変数にし、と俺は言ったぞ?

189:デフォルトの名無しさん
13/03/22 07:55:08.80 .net
>>188
>>180はmaxLengthをプライベート変数(=val)にしてるだろ?
少し日本語不自由じゃないの?具体的なコード書けば勘違いされないのに

190:
13/03/22 07:56:57.88 .net
さすがに今時全部x.setMaxLength(100)みたいにしろとかありえないんでseal()が導入された

191:デフォルトの名無しさん
13/03/22 08:04:07.38 .net
>>189
x = {var maxLength;}

>>190
俺の感覚だと、sealしたインスタンスを戻すFactoryメソッドを定義して、それを使うのを
ルール化するというほうがもっとあり得ないんだけど、最近じゃseal使うのが流行ってたりするの?

192:デフォルトの名無しさん
13/03/22 08:05:45.83 .net
>>191
>x = {var maxLength;}
文法エラーです

193:デフォルトの名無しさん
13/03/22 08:19:38.94 .net
>>192
それは悪かった。今スマホなんで完全なコードを書くのが難しい。
var x = (function() {var maxLength;})();が完全なコードかな。

194:デフォルトの名無しさん
13/03/22 08:29:00.54 .net
あと、seal()方式には重大な欠点がもうひとつある。
それは、x内部のtypoを防げないってこと。

195:
13/03/22 08:30:30.90 .net
>>191
インスタンス生成はフレームワークが提供するのを使うことも多いかな
seal自体は流行ってはいないんじゃないの?ES5サポートしてないブラウザもあるし
でもここは任天堂がこれから提供する独自環境の話をするスレだから、
strict mode前提でsealなんかのES5の機能を積極的に使っていけるんじゃないかなと思ってる

196:デフォルトの名無しさん
13/03/22 08:40:49.75 .net
>>193
>var x = (function() {var maxLength;})();
意味がわからない。このコードじゃxに入るのはundefined

あんたがやりたいのはこんな感じのことじゃないのか?
var x={maxLength:0,
setMaxLength:function(v){this.maxLength=v},
getMaxLength:function(){return this.maxLength}};

197:デフォルトの名無しさん
13/03/22 08:41:57.22 .net
>>195
なるほど、そういうことか。了解。

198:デフォルトの名無しさん
13/03/22 08:42:48.67 .net
>>196
悪いけど、昼休みまで待ってくれ。

199:デフォルトの名無しさん
13/03/22 08:44:05.27 .net
>>194
seal()方式だとx内部にどんなやばいtypoが発生するの?

200:デフォルトの名無しさん
13/03/22 10:23:09.92 .net
なんか基礎的な知識がなくて回り道しそうだから
お前らに最低限の知識を与えておこう

var hoge = (function() {
 var private_variable;

 function private_function() {
 }

 return {
  public_function: private_function, // プライベート関数をパブリック関数として公開
 }
}());

hoge.public_function();

201:デフォルトの名無しさん
13/03/22 11:03:48.66 .net
今やJavaScriptはここまで来た
URLリンク(gigazine.net)

202:デフォルトの名無しさん
13/03/22 11:10:02.18 .net
OdinMonkeyっておぢんモンキーでいいの?

203:デフォルトの名無しさん
13/03/22 11:37:19.10 .net
>>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);
}

204:デフォルトの名無しさん
13/03/22 11:38:26.18 .net
newを使わない場合はこう。

var x = {};
(function(obj) {
  var maxLength;
  function getMaxLength() { return maxLength; }
  function setMaxLength(val) { maxLength = val; }
  obj.getMaxLength = getMaxLength;
  obj.setMaxLength = setMaxLength;
})(x);

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);
}

205:デフォルトの名無しさん
13/03/22 11:54:34.47 .net
それでは、
obj.setMaxLength(1) を
obj.MaxLength = 1 と
間違えてしまうことを防げない。

206:デフォルトの名無しさん
13/03/22 11:55:25.08 .net
>>203
グローバル変数に隠蔽とは斬新だなw

207:デフォルトの名無しさん
13/03/22 11:59:36.73 .net
JavaScriptにグローバル変数は存在しない。

208:デフォルトの名無しさん
13/03/22 12:03:10.04 .net
>>206
実際のプロダクトコードでは、複数階層の名前空間に入れるけどね。

209:デフォルトの名無しさん
13/03/22 12:08:07.49 .net
>>208
ためしに
var y = new Foo();
y.setMaxLength(200);
x.getMaxLength();
ってやってみたら?

210:デフォルトの名無しさん
13/03/22 12:21:19.07 .net
>>209
どうなった?

211:デフォルトの名無しさん
13/03/22 12:40:55.14 .net
>>210
あぁ、203に合わせると最後は
console.log(x.getMaxLength());


とりあえずやってみてよ?

212:デフォルトの名無しさん
13/03/22 13:16:53.40 .net
基本的にJavaScriptでは「プライベート変数」はあきらめたほうがいいよ。
newも使わない方がいい。
男なら、publicなプロパティだね。
で、結局typoの問題は解決できないけど、それがJavaScriptってもんだ。
嫌ならTypeScriptがいいんじゃね(使ったことないから知らんけど)。

213:デフォルトの名無しさん
13/03/22 13:25:00.70 .net
そもそもタイポと戦えないような奴はプログラマになっちゃいかん

214:デフォルトの名無しさん
13/03/22 13:26:27.37 .net
そう、それがたとえ他人の書いたタイポであってもね

215:デフォルトの名無しさん
13/03/22 13:30:07.16 .net
タイポは神様からの贈り物なんだよ

216:デフォルトの名無しさん
13/03/22 13:46:05.31 .net
Javaをやってると奴隷とかドカタとか煽れるけど、スペルミスなんて、JavaやC#なら入力した
瞬間にエディタが教えてくれるに、それを人間が目で探すとか、動的型の言語のプログラマは
マシーンですか。

217:デフォルトの名無しさん
13/03/22 13:59:19.86 .net
JSに限った話じゃないけどテストを書けば問題ないってのは机上の空論だな
>>203もテスト(らしきもの)を書いているけど、結局のところなんのチェックも出来てない訳だし
(203はそろそろ自分の間違いに気がついただろうか?)

218:デフォルトの名無しさん
13/03/22 14:25:59.22 .net
>>216
チェックツールあるだろw

219:デフォルトの名無しさん
13/03/22 15:53:13.12 .net
JSか

220:デフォルトの名無しさん
13/03/22 15:54:14.44 .net
>>203
だからこれは何なんだよw
>var Foo = function() {var maxLength;};
>Foo.prototype.setMaxLength = function(val) {maxLength = val;}
>Foo.prototype.getMaxLength = function() {return maxLength;};
意味がわからんぞw
偉そうなこというまえに基礎からやりなおしてこいよw

221:デフォルトの名無しさん
13/03/22 15:57:38.83 .net
>>216
打ってる最中に画面見てないのか?
大文字小文字も規約決めてるだろうし…

222:デフォルトの名無しさん
13/03/22 16:02:52.03 .net
l-1とか0-Oとか他人が打ち間違ったのを尻拭いする任務を与えよう

223:デフォルトの名無しさん
13/03/22 16:05:52.53 .net
真に恐ろしいのは目の前で裸で立ちすくむソイツではなく
どこに潜んでいるかわからない見えないアイツ
2年前に学ばなかったのか

224:デフォルトの名無しさん
13/03/22 16:09:28.79 .net
>>204とか
x.getMaxLength()をx.getMaxLengthってミスしてもとりあえず動いてしまうように見えるし最悪w

225:デフォルトの名無しさん
13/03/22 16:24:36.78 .net
JavaScriptが開発効率高いなんてド素人の妄想

226:デフォルトの名無しさん
13/03/22 16:27:52.82 .net
>>221
やっぱりスペルミスは目を皿のようにして確認してるのか。

227:デフォルトの名無しさん
13/03/22 16:29:34.79 .net
安い底辺プログラマが使えるから開発コスト下げられるとか妄想してるんだろうけど

228:デフォルトの名無しさん
13/03/22 16:30:04.30 .net
上のほうが他人のタイポがどうこう言ってる人がいるけど、
自分ならスペルミスしないってのもそうとう凄いと思う。

229:デフォルトの名無しさん
13/03/22 16:31:38.03 .net
>>228
「上のほうが」じゃなくて「上のほうで」だな。
頭悪いから日本語でも誤字しまくりだわ。

230:デフォルトの名無しさん
13/03/22 16:46:48.90 .net
実行時までエラー発覚しないような言語でバイナリ配信とかサポセン死亡か

231:デフォルトの名無しさん
13/03/22 16:52:40.15 .net
>>217
間違いに気づいたよ。指摘ありがと。
普段はnew使わないんだけど(JSONでサーバからデータを受け取ることがほとんど)、
なんとなくnewの例も書いてみたくなって背伸びしちゃった。

ほとんどの場合がViewかViewModelらしきものを使うから、>>204みたいなコーディングしてる。
あと、try-catchはテストじゃなくて、例外が発生することの確認。

結局、JavaScriptってtypoには無力だと思うんだが、反論ある人居る?

232:デフォルトの名無しさん
13/03/22 16:57:57.14 .net
>>226
眼を皿って…typoしたときって自分で違和感ない?
「ん?俺今typoしたかな」って…その時だけ見ればいいじゃん

233:デフォルトの名無しさん
13/03/22 17:01:42.36 .net
>>231
ES5以降で導入された(る)機能を活用すればインタプリンタが検出してくれたり、
エディタで補間なんかもやりやすくなるよ
>>203だってstrict modeならエラーがちゃんとでるし
もうちょっと勉強しましょう

234:デフォルトの名無しさん
13/03/22 17:24:17.27 .net
>>232
ああそうなの。
おれ、タイポにぜんぜん気づかないときがあるわ。
IDEがスペルミスをチェックしてくれる環境とかすごい楽で好き。

スクリプトのstrictモードに需要があったり、JavaScriptにコンバートする
型付の言語が発表されたりするのをみたら、スペルチェックなんか
機械にやらせたいって人おおいんじゃないの。

235:デフォルトの名無しさん
13/03/22 17:26:56.10 .net
>>233
それで>>49のtypoの問題は解決できる?

236:デフォルトの名無しさん
13/03/22 17:31:45.15 .net
>>235
>>111

237:デフォルトの名無しさん
13/03/22 17:32:59.21 .net
>>236
あー、そういうこと。ならいいや。

238:デフォルトの名無しさん
13/03/22 18:25:05.35 .net
>>232
俺はちゃんと resultってタイプしてるのに、resalutが正解だったりするからな。

239:デフォルトの名無しさん
13/03/22 18:33:54.98 .net
コピペすりゃいいんだよ

240:デフォルトの名無しさん
13/03/22 18:48:03.66 .net
中身はなかったなw

241:デフォルトの名無しさん
13/03/22 18:56:20.02 .net
下請けイジメの任天堂

242:デフォルトの名無しさん
13/03/22 18:57:03.39 .net
コナミには負けるw

243:デフォルトの名無しさん
13/03/22 19:56:03.80 .net
はよ

244:デフォルトの名無しさん
13/03/22 21:36:56.49 .net
>>239
ITドカタとか「お前の担当のこの画面、こっちのとだいたい同じだからコピペして作れ」みたいのが基本だからな。

245:デフォルトの名無しさん
13/03/23 00:15:43.41 .net
つかJavaScriptもEclipseとかVSでエディットすればtypo減るだろ

246:デフォルトの名無しさん
13/03/23 07:49:17.45 .net
良く分からんが、Javascriptの有名なライブラリがsealを中で自動的に
使ってくれるんじゃないの?
Javascriptにオブジェクト指向のclassやextendsのような構文を追加
するライブラリがわんさかあるって聞いたが、そのライブラリどもが
自動的に使ってくれるんじゃないのか

247:デフォルトの名無しさん
13/03/23 09:05:40.21 .net
Luaのような使い方するんじゃないのかなと思ってたんだが違うの?

248:デフォルトの名無しさん
13/03/23 10:25:02.91 .net
>>246
使ってくれるわけない

249:デフォルトの名無しさん
13/03/23 10:30:09.23 .net
>>246
デフォルトでseal状態にされたら安全にはなるけど不自由になる
sealをサポートしてないブラウザの割合も多いし

250:デフォルトの名無しさん
13/03/23 10:31:11.54 .net
正直、Javascriptの文法はアレすぎて

251:デフォルトの名無しさん
13/03/23 10:34:07.28 .net
普通、コア部分はC/C++で開発して簡易なゲームロジックは独自スクリプトとかLuaとか使うもんじゃないの
そこをJavaScriptにするってこと?だったらもう少しマシというか新しい言語選んだほうがよくね?

252:デフォルトの名無しさん
13/03/23 10:40:21.59 .net
コア部分なんて一回開発したら使いまわせるようにするだろ

253:デフォルトの名無しさん
13/03/23 12:35:35.83 .net
ここまで、どういう経緯でこういう事になったのかの説明無し
URLリンク(www.nintendo.co.jp)

ゲーム機のソフトウェア開発が、どんどん大きな投資を必要とするようになった今、
ウェブサービスの転用、プロトタイプの作成、あるいは、インディーズゲーム制作など、いろいろなことを考えたとき、
ソフトウェアの作り手を広げる試みは非常に重要になってくると思っています。
3月のGDCでは、この『Wii Street U powered by Google』や、
いくつかのVoDサービスの開発に使用された、HTML5やJavaScriptなどのウェブ技術でWii Uソフトを開発できる環境や、
Unityという多くのユーザーに使われているクロスプラットフォームのゲームエンジンなど、
ソフトウェアの作り手を広げる試みについて、いくつかご紹介できる予定です。

はいはい解散解散。

254:デフォルトの名無しさん
13/03/23 14:23:09.02 .net
誰でも参入できるのかー

255:デフォルトの名無しさん
13/03/23 14:24:46.16 .net
でもやっぱり専用環境購入とロイヤリティはお高いんでしょ?

256:デフォルトの名無しさん
13/03/23 22:08:36.49 .net
日本のゲーム会社は無能のカスしかいないのに
なぜか全部自分のとこで作ろうとする

257:デフォルトの名無しさん
13/03/23 22:13:37.01 .net
固定長メモリの不安感のせいだと思う。
C時代のレベル、ヒープとかあまりメジャーじゃなかった頃はまだイケてた。
海外の文献見てもメモリ管理怪しいのに何で向こうは気にしないんだろうね。

258:デフォルトの名無しさん
13/03/24 10:15:40.18 .net
Unity 風味前提で、って話でしょ。

この古臭いレスの輩たちは何なの?

259:デフォルトの名無しさん
13/03/24 10:49:15.40 .net
Unity 風味?

260:デフォルトの名無しさん
13/03/24 10:50:56.42 .net
Unity 風情と書き方ったのではないか?

261:デフォルトの名無しさん
13/03/24 10:56:10.18 .net
Unity 一味

262:デフォルトの名無しさん
13/03/24 12:44:19.08 .net
UnityのJavaScriptはJavaScriptと全く違うだろ

263:デフォルトの名無しさん
13/03/24 16:42:04.96 .net
同じだと主張してたのか?誰が?

264:デフォルトの名無しさん
13/03/24 18:12:39.34 .net
Unity風味の人じゃね

265:デフォルトの名無しさん
13/03/24 18:18:09.53 .net
あの文章みてUnity風味っていうんだからそういうことだろ

266:デフォルトの名無しさん
13/03/24 21:40:15.79 .net
そもそもお前ら

> UnityのJavaScriptはJavaScriptと全く違うだろ

↑これが理解できるのかw凄いな

267:デフォルトの名無しさん
13/03/24 22:14:09.44 .net
知らないなら黙ってればいいのに。

268:デフォルトの名無しさん
13/03/24 22:17:49.93 .net
その程度をエスパーできない奴にプログラムを書かせちゃいかんな

269:デフォルトの名無しさん
13/03/24 22:31:19.48 .net
HTML5ベースのJavascriptの環境とUnity環境両方用意するって話だよね

270:デフォルトの名無しさん
13/03/24 22:38:45.92 .net
知らないなら黙ってればいいのに。

271:デフォルトの名無しさん
13/03/24 22:42:27.37 .net
今回はunityは関係無いぞ

272:デフォルトの名無しさん
13/03/24 22:52:59.88 .net
URLリンク(www.nintendo.co.jp)

273:デフォルトの名無しさん
13/03/27 22:18:03.24 .net
>>23
> ビックリするかもしれないけどいまやJavaScriptのコードは平均してJAVA並の速度なんだよね

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

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

C++ g++ speed ÷ JavaScript V8 speed | Computer Language Benchmarks Game
URLリンク(benchmarksgame.alioth.debian.org)

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

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

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

C++のコード見たがなめとんのか
URLリンク(github.com)

274:デフォルトの名無しさん
13/03/27 22:19:43.96 .net
> /*
> * Are you a C++ expert? PLEASE ADVICE ME!
> */

くそこいつまじでむかつく
素人がベンチマーク取んなや

275:デフォルトの名無しさん
13/03/27 22:26:48.58 .net
URLリンク(phoboslab.org)
> Native code developers shouldn’t be defensive about true accusations of security and stability
> limitations, and JS developers shouldn’t be defensive about true accusations of inefficiency.

「ネイティブコード開発者はセキュリティと安定性の限界に対する正しい非難に抗弁するべきではないし、
JavaScript開発者は非効率性に対する正しい非難に抗弁するべきではない」

とかのJohn Carmackがおっしゃっております(´・ω・`)
心より同意するものです(´・ω・`)

276:デフォルトの名無しさん
13/03/27 22:32:21.95 .net
HAL-NOTEとMSX-VIEW

277:デフォルトの名無しさん
13/03/27 22:37:41.83 .net
セキュリティて
CならともかくC++はあんま起きないだろ

278:デフォルトの名無しさん
13/03/27 22:40:14.07 .net
>>273
こういう、ベンチマークで10倍差だからとかいう奴って、ほんと頭悪いわ

279:デフォルトの名無しさん
13/03/27 22:42:24.09 .net
>>23はJavaと比べてるんだけどさ

>>273てアホなの?

280:デフォルトの名無しさん
13/03/27 22:44:51.67 .net
まさかの任天堂スマホアプリ参入宣言かと

281:デフォルトの名無しさん
13/03/27 22:47:07.94 .net
HAL-NOTE

282:デフォルトの名無しさん
13/03/27 22:47:38.30 .net
OSをHAL-NOTEに!

283:デフォルトの名無しさん
13/03/27 22:54:33.49 .net
>>279
Javaと比べても遅いみたいだが?

284:デフォルトの名無しさん
13/03/27 22:55:18.23 .net
HAL-NOTEあげ

285:デフォルトの名無しさん
13/03/27 23:15:21.35 .net
>>283
そういう事を言ってるんじゃないんだが
お前には理解できんか

286:デフォルトの名無しさん
13/03/27 23:18:22.27 .net
人のせいにしないで、自分の説明能力をうたがいましょう。

287:デフォルトの名無しさん
13/03/27 23:22:25.30 .net
MSX-VIEW

288:デフォルトの名無しさん
13/03/27 23:48:53.75 .net
うむ
>>273の説明能力には難ありだな

289:デフォルトの名無しさん
13/03/28 07:52:57.65 .net
Enchant.jsってやつ使ったけどhtmlとjsでここまでできることに感動した。

290:デフォルトの名無しさん
13/03/28 09:07:03.23 .net
javaと比べたら平均して2倍遅い程度か
意外とすげえな
速いじゃん

291:デフォルトの名無しさん
13/03/28 13:45:00.91 .net
タイトルからウソまみれのスレで喧嘩すんなよ

292:デフォルトの名無しさん
13/03/28 21:36:19.68 .net
これがHTML+JavaScriptの世界は開発速度なんだよな。

【GDC 2013】HTML5+JavaScriptで容易にWii Uでのゲーム・アプリ開発が可能に・・・「任天堂ウェブフレームワーク」発表
URLリンク(www.inside-games.jp)

293:デフォルトの名無しさん
13/03/28 22:19:32.42 .net
webkitベースか

294:デフォルトの名無しさん
13/03/28 22:25:05.92 .net
JavaScriptは言語であって、コンパイラが優秀であればC/C++に匹敵する速度は出る。
任天堂は、専用コンパイラを開発する、しているはず。
言語的にはC/C++と似通っていてるが、自由度が高く開発効率はいいんだろう。

295:デフォルトの名無しさん
13/03/28 22:30:09.45 .net
(*´・∀・)(・∀・`*)ヘー

296:294
13/03/28 22:35:24.46 .net
読んだら違ってた。環境自体は独自開発じゃなく既存品を使うんだな。

297:デフォルトの名無しさん
13/03/28 23:32:46.02 .net
せっかくだから任天堂はfirefoxos採用しれ

298:デフォルトの名無しさん
13/03/29 00:14:18.23 .net
何や彼や言って、結局上手く行かんべさ、アホか?

299:デフォルトの名無しさん
13/03/29 00:30:35.28 .net
いい機会だからasm.js採用したら

300:デフォルトの名無しさん
13/03/29 00:59:21.03 .net
別にほっといたってC++なんか捨てられるのはわかってるんだからわざわざ騒ぐ事でもないな
これからスクリプトでやっていく流れは皆わかってるだろうし、JavaやC#とスクリプト言語を使い分けていくでしょう

301:デフォルトの名無しさん
13/03/29 01:01:25.28 .net
webkitベースということだからfirefox系のものを使うことは無いな
JavascriptVM自体はどこから持ってきたのか説明はあったのかな?

302:デフォルトの名無しさん
13/03/29 01:04:15.14 .net
>>300
C++自体が捨てられるなんてことはほぼ無いぞ
環境自体はほぼC++で作ってるんだから

303:デフォルトの名無しさん
13/03/29 01:07:10.02 .net
まぁそう思いたかったらそれでいいんじゃないの。

304:デフォルトの名無しさん
13/03/29 01:07:25.46 .net
スクリプトなんて昔から使ってるから

305:デフォルトの名無しさん
13/03/29 01:10:59.66 .net
なぜ態々この発言をしたかが今にわかると思うよ

306:デフォルトの名無しさん
13/03/29 01:12:31.73 .net
C++に取って代わる高級アセンブラが出てこない限りC++は残る

307:デフォルトの名無しさん
13/03/29 01:13:45.89 .net
どういう機械語に翻訳されるかわかるという点で
C言語は高級アセンブラと言えるが、
C++は高級アセンブラとは呼べない。

308:デフォルトの名無しさん
13/03/29 01:13:49.96 .net
だからそこが覆るのよ ふふふ

309:デフォルトの名無しさん
13/03/29 01:16:28.67 .net
JacaScriptの動的コンパイルやJVMやレンダリングエンジンも皆JacaScriptでやるんすね!
さすが動的バインド半端ない

310:デフォルトの名無しさん
13/03/29 01:17:57.96 .net
JSのコンパイルってそのままやるんだったらLispとほぼおんなじ方法になるよね。
だったら、C++あたりにトランスコードしてコンパイルする羽目になるんじゃないか??

311:デフォルトの名無しさん
13/03/29 01:25:32.37 .net
C++一本で食ってるやつなんていないんだろうから気にするこたぁねえよ

312:デフォルトの名無しさん
13/03/29 01:36:15.99 .net
C++が消えるというか完全に裏方になるのはいいのだが、
JavaScriptメインで開発とか正気かよ
もうちょっとマシなスクリプト言語いくらでもあるだろ

313:デフォルトの名無しさん
13/03/29 01:39:27.33 .net
普通はそう思っちゃうよね
だけどGoogleとかの勢いが何かを思わせるんだよね~
というより、スクリプトメインにするほうが儲かるのは間違いない

314:デフォルトの名無しさん
13/03/29 01:46:38.91 .net
>>309
さてはお前JVMって何かわかってないな

315:デフォルトの名無しさん
13/03/29 01:51:55.93 .net
C++はJVMに残るのみというまさに屈辱の形になりそうだねww

316:デフォルトの名無しさん
13/03/29 02:21:40.26 .net
JavaじゃなくてJavaScriptの話なのに何でJVMが出てくるんだ?

317:デフォルトの名無しさん
13/03/29 02:25:16.36 .net
エンジンがRhinoだとおもってるのかな?

318:デフォルトの名無しさん
13/03/29 10:17:20.50 .net
>>302
COBOLと同じ運命を辿ります

319:デフォルトの名無しさん
13/03/29 15:43:37.96 .net
以上、JavaScript大好きだけどゲーム開発には何の興味もないワナビーの皆様の声をお届けいたしました

320:デフォルトの名無しさん
13/03/29 15:45:54.55 .net
ワナビーの意味、間違って覚えてないか?

321:デフォルトの名無しさん
13/03/29 19:04:23.23 .net
んふーふっふふっふふう♪
JavaScript たのっすぃー

322:デフォルトの名無しさん
13/03/29 20:14:53.48 .net
>>313
Googleのコードで圧倒的に多いのはC++らしいぞ
大部分はChromeのコードらしいけど

323:デフォルトの名無しさん
13/03/30 16:45:34.87 .net
JavaScriptエンジンだってC++だろ
結局、基盤的なところは今までもこれからもC/C++だよ
C++敵視するアホの期待とはうらはらに

324:デフォルトの名無しさん
13/03/30 19:33:27.61 .net
昔のJava厨はまだ良かった
C・C++を知ってたから
「JavaとC/C++は普通に書けば同じくらいの性能
徹底的にチューニングしたらさすがにC/C++には勝てないけどね」
ぐらいの主張だったけど

JavaScript厨はコンピュータに関する知識が少ないから
「今のVMはすごい。昔とは違う。
Javascriptは最強最速だから」
とか言ってくるんだからな

325:デフォルトの名無しさん
13/03/30 22:46:50.00 .net
jsのコンパイラ次第だな
性的片付けがないから厳しそうだが

326:デフォルトの名無しさん
13/03/30 22:49:49.18 .net
>性的片付け

おそうじフェラかと

327:デフォルトの名無しさん
13/03/30 22:51:08.37 .net
最適化のための構文とかキーワードとかバシバシ追加されたら
そういう寝言にも付き合ってやろう

328:デフォルトの名無しさん
13/03/30 23:28:18.98 .net
寝言言ってんのはお前だw

329:デフォルトの名無しさん
13/03/31 04:31:44.72 .net
>>325
型推論備えたJSとか無理なのかなと思ったが…クラスベースならともかく、プロトタイプベースとは相性悪そうだな

330:デフォルトの名無しさん
13/03/31 04:48:56.63 .net
型情報もってない動的型付け言語の型推論を事前に行うなんて無理っぽい
そういうわけで、Google V8のように実際の実行時に型情報を統計的に推測して
マシンコードに変換する手法が現状最速になってるわけよ

331:デフォルトの名無しさん
13/03/31 04:58:41.93 .net
まあそれでもブラウザ用と違ってゲーム端末用途なら
事前コンパイルでバイトコードみたいなものに変換しておくのはいいかもね
最適化とマシンコードへの変換は実行時に行う必要があるだろうけど

332:デフォルトの名無しさん
13/03/31 07:30:00.50 .net
>>330
今はそもそもコンパイルが辛いからJITしてるって段階だけど、速度を追い求めてた結果としてもJITが要求されたりする
C/C++みたいな言語でもコンパイラで最適化するだけじゃなく実行時にも最適化掛けたほうが早くなる見込みはあるからな

Ruby処理系Topazとか、PyPyの構造で高速化されるあたりJITによる動的な最適化ってなかなかバカにできん
PyPyってのは「JIT付きPythonインタプリタ上で動くPythonで書かれたPythonインタプリタ上でPythonコードを実行したら、JIT付きPythonインタプリタ上でPythonコードを実行するより早くなる」っていうPythonインタプリタな

333:デフォルトの名無しさん
13/03/31 08:49:20.44 .net
UnityのJavascript(もどきw)は型情報を付与してAOTしてるが、そういうアプローチで最適化とかはできんのか?

334:デフォルトの名無しさん
13/03/31 09:28:08.38 .net
Unityみたいなアプローチじゃ、
Web技術のHTML5+javascriptでそのままプログラミングできるって用途には使えん
任天堂はUnityとHTML5+javascriptの両方用意するんだから、Unityの方を使えばいい

任天堂限定の話じゃなくてWeb技術の方でそういうアプローチが普及しないのは
各ブラウザの足並みが揃わなきゃ誰も使ってくれないからかな

335:デフォルトの名無しさん
13/03/31 12:11:29.65 .net
OS統一すればよくね?

336:デフォルトの名無しさん
13/03/31 14:42:35.12 .net
URLリンク(www.4gamer.net)
実質Windows&FFOXだけでいいっちゅうか・・・

337:デフォルトの名無しさん
13/03/31 15:09:03.63 .net
>>336
これはasm.jsをサポートするブラウザが増えなきゃ技術の無駄使いだね
現時点ではFirefoxOS上で動かすためぐらいしか意味が無い
Firefoxだけでしか動かんなら、Cからjavascriptにわざわざ変換せんでも、
Windowsでネィティブに動かせばいいわけで

338:デフォルトの名無しさん
13/03/31 15:15:03.57 .net
ああでも、Firefoxが動いていればMacでもLinuxでも動作可能なゲームが作れる?ことになるのか
それはひとつの利点かもな

339:デフォルトの名無しさん
13/03/31 15:17:44.71 .net
Javascriptは統一言語になっていない。
javaやC#のほうが互換性が高い。
Javascriptは非常に処理系(ブラウザ)に影響される。

340:デフォルトの名無しさん
13/03/31 15:21:45.36 .net
c#とか実質的にプラットフォーム依存じゃないかw

341:デフォルトの名無しさん
13/03/31 15:39:31.39 .net
>>340
2005年ぐらいからタイムスリップしてきたのか?

342:デフォルトの名無しさん
13/03/31 16:10:57.97 .net
>>341
Windows上で動くC#で作ったプログラムがほぼMono環境で実用になると思っていいの?w

343:デフォルトの名無しさん
13/03/31 16:19:10.23 .net
おうよ
ゲーム用にキワどいところまで攻めたチューニングでもばりばりうごくぜ

344:デフォルトの名無しさん
13/03/31 16:22:55.52 .net
Wineでもういいじゃない

345:デフォルトの名無しさん
13/03/31 16:23:40.56 .net
ついにWPFとかもサポートされたのか

346:デフォルトの名無しさん
13/03/31 16:25:35.89 .net
言語とライブラリの区別はつけようね。

347:デフォルトの名無しさん
13/03/31 16:27:44.24 .net
そういうレベルの互換性でいいならJavascriptだってほとんど問題無いだろ

348:デフォルトの名無しさん
13/03/31 17:20:12.76 .net
>>346
そういう言いぐさしたらC最強じゃねぇかw

349:デフォルトの名無しさん
13/03/31 17:21:45.29 .net
オレ「今後JCは捨ててJSを開発していく」

350:デフォルトの名無しさん
13/03/31 17:26:07.72 .net
>>349
JK「きも…」

351:デフォルトの名無しさん
13/04/01 01:53:21.21 .net
asm.jsは歓迎だけどな。数値計算分野でのJavascript整備を進めてほしいところ。
FORTRANとか時代錯誤なんで物理シミュも余裕でJavascriptにしてほしい。

352:デフォルトの名無しさん
13/04/01 02:02:42.20 .net
そんなにやるならCかFORTRANかアセンブラへのコンバータの方がいい。
asm.jsは速いとしても限界がある。

353:デフォルトの名無しさん
13/04/01 07:48:02.22 .net
同じ様に書いた(物凄い非効率で遅い)ネイティブコードの
二倍程度で済むって話でしょ。

ネイティブコードで書く必要があるような場面って
結局そこからの最適化が勝負だから、
ネイティブを置き換えるのはさすがに無理だろうな。

354:デフォルトの名無しさん
13/04/01 08:21:36.72 .net
asm.jsっていうのは、CとかFORTRAN(フロントエンドあるのかな?)で書いたコードを
バイナリへコンパイルする代わりに特殊な中間言語に変換するものだよ?
CとかFORTRANを置き換えるとかっていうのは使用方法を勘違いしてる

355:デフォルトの名無しさん
13/04/01 17:17:13.41 .net
C++とアセンブラとjavaしかできない俺は取り残されていくんだろうか‥

356:デフォルトの名無しさん
13/04/01 17:22:13.67 .net
取り残されていく

357:デフォルトの名無しさん
13/04/01 18:35:44.97 .net
変化に対応できない人間は弱いな

358:デフォルトの名無しさん
13/04/01 22:19:51.77 .net
C++・アセンブラ・Javaできれば他の言語なんてあっというまに覚えられるだろ?

359:デフォルトの名無しさん
13/04/01 22:21:57.57 .net
アセンブラ、C、Java、JavaScriptができれば
大体のところは網羅してると思うな。

360:デフォルトの名無しさん
13/04/01 22:25:07.14 .net
覚えられても、あえて覚えない拘りをもつんだろ。
ダーウィンだったかが、必ずしも強者が生き残るのでなく環境に適応したものが残るとかいってた。

361:デフォルトの名無しさん
13/04/01 22:43:04.18 .net
正直、言語一つ極めれば大抵の他言語は余裕で覚えられる

362:デフォルトの名無しさん
13/04/01 23:16:07.87 .net
手続き型から関数型はちとつらい

363:デフォルトの名無しさん
13/04/02 03:07:18.48 .net
俺が生きてる間には関数型が覇権握ることはなさそうだし
とりあえず無視しとく

364:デフォルトの名無しさん
13/04/02 03:08:26.67 .net
SQLを使ってる人は、関数型もすんなり使えると思う。
SQLと関数型言語は考え方が違い。

このことに気づいている人も結構いる。

URLリンク(www.google.co.jp)関数型言語

365:デフォルトの名無しさん
13/04/02 06:12:02.51 .net
node.jsとか時代はJavaScriptなん?

366:デフォルトの名無しさん
13/04/02 06:28:39.86 .net
>>358>>359>>361
それだけでは、とてもじゃないけど関数型言語を使いこなせる気がしない

極めるのうちに自前で他パラダイムの要素混ぜ始めるのまで含めなければ、だけど

>>365
JavaScriptの応用がホットなのは確かだけど、最終的には適材適所じゃね?

367:デフォルトの名無しさん
13/04/02 12:11:06.35 .net
>>365
flashが倒れた以上後釜を狙う立場にいるのは確か

368:デフォルトの名無しさん
13/04/02 12:37:02.55 .net
>>366
ループの処理を再帰に変換するのが脳内で一瞬でできるようになれば
そんなに難しくはないような気がしてる。

369:デフォルトの名無しさん
13/04/02 12:38:21.20 .net
>>368
最終的には再起を先に考えてしまって後でループに直したりし始めるけどなw

370:デフォルトの名無しさん
13/04/02 12:40:51.36 .net
関数は第一級オブジェクト

371:デフォルトの名無しさん
13/04/02 12:42:12.08 .net
jQueryとHTML5で既にFlashの後釜
node.jsはローカル鯖テストに使ってる。便利な気がする。同一言語で扱えるので。
コンパイラが絶滅する時代が来るのかな。
(C++は進化してきているのがわかる。JavaScriptに近い部分もあり。)

372:デフォルトの名無しさん
13/04/02 12:53:34.06 .net
生のJavaScriptを書くやり方の方が絶滅すると思う
JavaScript(or そのサブセット)を出力するコンパイラが主流になる

373:デフォルトの名無しさん
13/04/02 14:56:20.30 .net
変換無しで実行できるっていうのもひとつのメリットだからね
主要ブラウザで直接実行可能なのがJavascriptだけな状態が続くなら
絶滅させるのは難しい

374:デフォルトの名無しさん
13/04/02 16:06:59.30 .net
将来のプログラマはCもjavaも両方出来ないとダメになったぞ
まぁ、移植の手間が省けるぶんゆとり化が進むだろうけど

375:デフォルトの名無しさん
13/04/02 18:24:13.21 .net
JavaScriptとJavaが同じだと思ってる人が何人かこのスレに居るな

376:デフォルトの名無しさん
13/04/02 20:54:54.84 .net
任天堂のハードの機能に依存したソーシャルゲーとかが作りやすくなるってことか
それこそ個人のサイトでも任天堂ハードを利用したアプリが公開できる

377:デフォルトの名無しさん
13/04/02 21:20:51.76 .net
>>376
それできるの?
セキュリティとかロイヤルティとか難しい気がするが

378:デフォルトの名無しさん
13/04/02 21:23:39.32 .net
そもそもソースの隠蔽が無理

379:デフォルトの名無しさん
13/04/03 00:09:38.97 .net
「JavaScriptは遅い」って言う人はプログラミングについて完全に誤解してる
「JavaScript(を機械語に変換する特定の処理系)は遅い」なら正しいが
「JavaScript(というプログラミング言語)は遅い」という発言はおかしい
プログラムの処理速度を決めるのは言語処理系であって、言語そのものではない

380:デフォルトの名無しさん
13/04/03 00:11:10.52 .net
またバカが来た

381:デフォルトの名無しさん
13/04/03 00:49:11.92 .net
処理系ががんばればいくらでも速く出来るとか思ってるやつのほうが完全に誤解してるだろ。

382:デフォルトの名無しさん
13/04/03 00:57:13.59 .net
まあjs厨はバカしかいないってことで

383:デフォルトの名無しさん
13/04/03 01:01:02.84 .net
>>373
googleがDartを本気でjsと置き換えようとしてるらしいが、どうなることやら

384:デフォルトの名無しさん
13/04/03 01:20:33.24 .net
>>378
それいうとあらゆるクライアントサイドプログラムもソース隠蔽は無理じゃね?
ネイティブコードからの逆コンパイル可読性に負けるとはいえ、変数名全部圧縮したJSってMSILからC#に復元したコードと大差ないレベルじゃね?

385:デフォルトの名無しさん
13/04/03 01:57:13.31 .net
JavaScriptは、いずれどこかの時点でオブジェクト指向機能を
取り入れた別の物に進化してHTML6の一部になると思う
いまのJavaScriptの環境はC言語で関数ポインター駆使して
一生懸命オブジェクト指向設計してた時と同じように
無理が来てると思う

386:デフォルトの名無しさん
13/04/03 02:01:29.30 .net
お前らasm.jsの記事すらまともに理解できないのか

387:デフォルトの名無しさん
13/04/03 02:15:15.27 .net
asやってたからjsに変えるのは楽だけど何となく型宣言がないのは気持ち悪い

388:デフォルトの名無しさん
13/04/03 02:19:10.19 .net
>>381
何言ってんだ?
原理的にCで吐ける機械語はJSでも吐けるんだが
チューリング完全て知ってるか?

389:デフォルトの名無しさん
13/04/03 02:28:20.77 .net
マジバカわろた

390:デフォルトの名無しさん
13/04/03 02:29:33.48 .net
機械語を書き出せるのはチューリング完全と関係ない。
言語がチューリング完全でなくとも出来る。

391:デフォルトの名無しさん
13/04/03 02:31:09.29 .net
>>390
チューリング完全な機械語を吐くにはチューリング完全な言語を処理系に食わせなきゃ無理
機械語を吐くこと≠チューリング完全な機械語を吐くこと

392:デフォルトの名無しさん
13/04/03 02:31:33.24 .net
ではバッファオーバーフローするjsとその処理系がどのようなものになるか説明してみてください

393:デフォルトの名無しさん
13/04/03 02:36:12.10 .net
>>391
CコンパイラのバイナリをBASE64などでコピペして
チューリング完全でない言語でデコードして書き出す。

394:デフォルトの名無しさん
13/04/03 02:46:14.34 .net
(Cコンパイラの)バイナリデータを吐き出す機能しか持っていない言語は
チューリング完全でないが、チューリング完全の処理系を出力できる。

395:デフォルトの名無しさん
13/04/03 02:52:58.75 .net
>>385
JavaScriptはプロトタイプ指向と言うオブジェクト指向と類似するパラダイムを既に獲得しているので、今更オブジェクト指向を取り込む必要は特に無い

>>388
×Cで吐ける機械語はJSでも吐ける
○Cで書ける処理はJSでも書ける

わかり易い例を出すと、Cと同じ機械語を吐くためにはメモリ破壊出来ないとダメだけどJSでは無理だ
処理速度の面で言うにしてもCと同等の速度が出る「可能性は否定出来ない」程度で現状は未だ無理
最適化に必要な型情報などのヒントを埋め込みまくってようやくCには一歩及ばない上に、そのコードは既に人が書くには辛い領域になっている
動的最適化の果てに静的最適化のみのCを超える可能性とかはあるが、現状ではそれも未達成だ・・・発展著しいし希望は有ると思うけど

396:デフォルトの名無しさん
13/04/03 02:54:11.35 .net
>>395
メモリ破壊する処理を書けばいい。

397:デフォルトの名無しさん
13/04/03 02:56:25.62 .net
>>396
破壊できたら只のセキュリティホールでんがな

398:デフォルトの名無しさん
13/04/03 02:56:41.64 .net
C言語が出力するバイナリと同様のものはJavascriptで吐ける。
C言語の出力をバイナリ文字列としてコピペして書き出すだけ。

399:デフォルトの名無しさん
13/04/03 02:56:50.05 .net
>>397
> Cで書ける処理はJSでも書ける

って書いてある。メモリ破壊する処理を書けばいい。

400:デフォルトの名無しさん
13/04/03 02:57:50.43 .net
バイナリファイルはきだせるならなんでも作れるだろ。

401:デフォルトの名無しさん
13/04/03 02:59:26.13 .net
より一般にほとんど言語で、C/C++で書かれたC/C++コンパイラと同等の速度が出る、C/C++コンパイラを書くことは可能。
これはチューリング完全なんかと関係する。

402:デフォルトの名無しさん
13/04/03 03:00:19.75 .net
Cで書けるということはクライアントの環境を決め打ちできるということだ(キリッ

403:デフォルトの名無しさん
13/04/03 04:13:43.77 .net
>>399
メモリ破壊のロジックを再現しても実際のメモリ破壊できないだろ・・・レイヤ違うんだし

404:デフォルトの名無しさん
13/04/03 04:56:44.83 .net
メモリ破壊の意味分かってないバカがいるな
さすが低級言語のC/C++厨だな

405:デフォルトの名無しさん
13/04/03 05:02:35.17 .net
具体的に説明できない知ったかぶりが煙に巻くときに使う常套句:レイヤ

406:デフォルトの名無しさん
13/04/03 05:42:55.70 .net
相手の発言を曲解して馬鹿にした気になれるってある種の才能だよな・・・
395が言ってる処理ってアルゴリズムの事だと理解できないのか、理解したくないのかどっちなんだろ?
説明されても理解できないの方だとしたら、病院行って診断もらってきたほうがいい。特権手帳もらえるよ。

>>405
煙に巻くもへったくれも、JS上に作った仮想メモリはOSが管理する仮想メモリやCPU見てる実メモリとはレイヤ違うからそのまんまだろ

407:デフォルトの名無しさん
13/04/03 07:22:06.91 .net
Cすら使いこなせない低能でも
JSでゲーム開発出来ると聞いてアホが喜んでるんだから
水を差すなよ...

408:デフォルトの名無しさん
13/04/03 08:11:05.05 .net
ゲーム作ったことある奴ならわかるけど
言語なんか関係ないからな
それ以外のことが難しすぎるし

409:デフォルトの名無しさん
13/04/03 09:03:38.63 .net
>>388
それじゃ現状でJavaScriptが遅いのはどういう理由なの?
実装してる連中がバカだから?
(実際的にはムリだけど)原理的には可能っていう屁理屈?

410:デフォルトの名無しさん
13/04/03 09:10:48.44 .net
チューリング完全は計算能力の話であって計算速度とは関係ないってマジレスしちゃダメなの?

411:デフォルトの名無しさん
13/04/03 09:16:36.70 .net
実際出来るかどうかは知らんけど、チューリング完全とかの概念はむしろ最適化に上限があることを証明するのに使えちゃいそうだよな

412:デフォルトの名無しさん
13/04/03 09:21:26.59 .net
チューリング完全って何だよ

413:デフォルトの名無しさん
13/04/03 09:28:22.39 .net
論理的には計算速度の最適化もできそうだけど、
ソースコードの量の増加に応じた最適化のための計算量が爆発的に増加しそう
実質的には無理じゃないかな?

414:デフォルトの名無しさん
13/04/03 09:30:54.93 .net
>>413
動的型の言語の実行時にきまる動作を静的なコードで
置き換えようとするとコードの量が無限に大きくなりそうだな。

415:デフォルトの名無しさん
13/04/03 10:01:54.27 .net
コンパイラは、文字列処理にすぎない。
ソースコードをパースして、アセンブラ言語の文字列へ変換するだけ。
C製のCコンパイラと同等の速度が出せない言語のほうが珍しい。チューリング完全ということは処理能力に違いがないということ。

416:デフォルトの名無しさん
13/04/03 10:03:24.28 .net
「Javascriptのコードから」ってルールが抜けてるんなら
バイナリ列のコピーだけでもいいからね。

417:デフォルトの名無しさん
13/04/03 10:04:21.81 .net
>>412
計算理論において、ある計算のメカニズムが万能チューリングマシンと同じ計算能力をもつとき、その計算モデルはチューリング完全(チューリングかんぜん、Turing-complete)あるいは計算完備であるという。--Wikipedia/チューリング完全
>>414
生成され得ないパターンを除外してくとかはある程度出来るだろうけど、停止性判定不能コードの後ろに判定対象が並んでるとかの場合に
チューリングマシンの停止性問題から「有るコードが有る型で実行されるかは有限時間で判定不可能である」って導けそうな気がするんだよな

418:デフォルトの名無しさん
13/04/03 10:05:05.44 .net
チューリング完全を完全に誤解してる。

419:デフォルトの名無しさん
13/04/03 10:06:29.14 .net
まったくなんのスレだよ

420:デフォルトの名無しさん
13/04/03 10:10:54.96 .net
万能チューリングマシンとか停止性問題とか神託機械とか、あのへん微妙に中二病患者にウケそうな概念や単語が並んでるからな

421:デフォルトの名無しさん
13/04/03 10:11:20.33 .net
>>415
Cと同等の速度が出せない言語がめずらしいって言っても、
実際には出せてない言語は多いよね。
なんで?
実装してる連中がバカだから?
(実際的にはムリだけど)原理的には可能っていう屁理屈?

422:デフォルトの名無しさん
13/04/03 10:14:38.71 .net
>>421
同等程度の性能しか出せないのに、Javascript製Cコンパイラをつくる意味がない。
それに明らかにコンパイル時間が長引いて実用的でもない。
ゼロからCで書くか、オープンソースのC言語製Cコンパイラを改良した方がいい。

423:デフォルトの名無しさん
13/04/03 10:17:37.90 .net
脈絡なく屁理屈をレスするスレ

424:デフォルトの名無しさん
13/04/03 10:18:49.79 .net
>>422
ああ、JavaScriptでも同等の処理を書けるってはなしで、
速度はやっぱり遅いんだな。

425:デフォルトの名無しさん
13/04/03 10:33:57.34 .net
JavaScriptで、C言語製ソフトと同等(速度)の事をやることは現実で可能。



Zopfli を Emscripten をつかって JavaScript に移植しました
URLリンク(blog.livedoor.jp)


Google Zopfli圧縮アルゴリズム、gzip -9より高圧縮  3月11日
URLリンク(headlines.yahoo.co.jp)


この記事では、C言語で書かれたアプリケーションを Javascript エンジン上で動かすためのツールである Emscripten について解説します。
Emscripten の原理
Emscripten はC言語のコードを Javascript のコードへ変換するツールですが、人間が移植作業を行うように「書き直し」をしてくれるものではありません。
URLリンク(teikyo.tumblr.com)

426:デフォルトの名無しさん
13/04/03 10:39:29.56 .net
>>425
リンク先をざっと見てみましたけど、JavaScriptのコードをCと同等の速度で
実行できるってのはどこに載ってるんでしょうか。

427:デフォルトの名無しさん
13/04/03 10:39:36.33 .net
emscriptenの出力コードはjavascript上で機械語コードをエミュレートするだけなんだけど

428:デフォルトの名無しさん
13/04/03 10:44:57.82 .net
>>425
ドヤ顔でこれかよ・・・

429:デフォルトの名無しさん
13/04/03 10:45:03.65 .net
>>425
それある程度の速度が出るのはJITコンパイルが前提だよ
上で馬鹿がわめいているような事前コンパイルでJavascirptを高速なネイティブコードに変換するのは難しい

430:デフォルトの名無しさん
13/04/03 10:48:42.80 .net
コンパイラは文字列操作してるだけ。
C:製Cコンパイラと同じ文字列操作をすれば出力は同じで、速度も同じになるのは当たり前。



アセンブリ言語 - Wikipedia

次に示す機械語は AL レジスタに 01100001 というデータをロードする。
10110000 01100001

このバイナリコードを人間が読みやすいように十六進法で表現すると次のようになる。
B0 61

ここで、B0 は「ALに後続の値をコピーする」ことを意味し、61 は 01100001 を十六進法で表したものである。
インテルのアセンブリ言語では、この種の命令に MOV というニーモニックを割り当てており、
セミコロン以下に説明的コメントを添えたアセンブリ言語での表現は次のようになる。
MOV AL, 61h ; Load AL with 97 decimal (61 hex)

この場合、定数61Hがソース、レジスタALがデスティネーションに該当し、命令が実行されると、定数61Hが、レジスタALに単純に格納される。
これが人間にとってはさらに読みやすく覚えやすい。

431:425
13/04/03 10:51:48.53 .net
間違えるな。
Emscriptenで変換したコードが速いと言ってない。
JavaScript製Cコンパイラで、C:製Cコンパイラと同じバイナリ(=同じ速度のバイナリ)を作り出せるかだ。

432:デフォルトの名無しさん
13/04/03 10:52:17.91 .net
真面目にJSでのゲーム開発を議論するスレかとおもいきや、普通の初心者スレになっているとは。

433:デフォルトの名無しさん
13/04/03 10:53:41.38 .net
>>431
JavaScriptでCと同等の処理が書けるかって話じゃなくて、同等の速度がだせるかって話なんですけど。

434:デフォルトの名無しさん
13/04/03 10:56:50.87 .net
emscripten はそういうのじゃないとおもうんだ
c->js はかのうかもしれない js->c は範疇外だろう?

435:デフォルトの名無しさん
13/04/03 10:57:37.21 .net
逆にJavaScriptソースと同等機能を実現するC、アセンブラソースを作り出すことも可能。
JavaScript ⇒ C、アセンブラ ⇒ バイナリ としたらJavaScriptも速く出来る。

436:デフォルトの名無しさん
13/04/03 10:58:41.14 .net
「この処理系でJSを実行したらCと同等の速度になる」って実例をバーンと出せば
終わる話なのに、できないでいろいろ理屈を言ってることは、やっぱ遅いんだな。
わかりました。

437:デフォルトの名無しさん
13/04/03 10:59:28.28 .net
ちょっとまてよw
>>401 = >>425 かよ
真面目にレスして損したわ・・・・・・

438:デフォルトの名無しさん
13/04/03 11:00:35.68 .net
>>435
動的型の言語は単純にCに変換できないでしょ。

439:デフォルトの名無しさん
13/04/03 11:03:15.27 .net
>>435
>JavaScript ⇒ C
これで作られるCコードを速度まで同等に最適化するのが難しいわけよ
莫大な計算量が必要で現実的じゃない

440:デフォルトの名無しさん
13/04/03 11:08:59.46 .net
C++からJavaScriptへ変換し、さらにJavaへ移植する話の続き
URLリンク(d.hatena.ne.jp)

[GDC 2013]Webブラウザで「Unreal Engine 3」がヌルヌル動く!? ゲームエンジンを5日でHTML5へ移植した驚きの技術とは
URLリンク(www.4gamer.net)

モジラ、ブラウザ上でゲーム機並みの3Dゲーム体験を可能にする取り組みなど発表
URLリンク(headlines.yahoo.co.jp)


Mozilla、Firefox 22 にブラウザゲームを高速化する「asm.js」を搭載- インターネットコム(2013年3月28日12時00分)
ゲームは、大量のリソースと複雑なコンピューティングを要求するタスク。
このため、ゲームは、ハードウェアの特性にあわせた専用 OS 向けに、ネイティブコードで書かれるのが普通だ。
だが、Mozilla の JavaScript 高速化プロジェクトにより、高いパフォーマンスを持つブラウザゲームの実現が、現実味を帯びてきた。

米国 Mozilla は3月27日、ゲームエンジン「Unreal Engine」を開発した Epic Games と協働していることを発表した。
この共同プロジェクトは、Unreal Engine 向けのゲームを、Web ブラウザ内で動作可能にすることを目指すもの。

「Emscriptem」は C で書かれたコードを、どの Web ブラウザでも動作する JavaScript に書き換えるクロスコンパイラ。
Mozilla CTO であり、JavaScript の開発者でもある Brendan Eich 氏は InternetNews.com に対し、emscriptem を利用すれば、開発者が Web フレンドリーな新しいタイプの開発へ移行することが、より容易になると説明した。
URLリンク(media.image.infoseek.co.jp)
URLリンク(news.infoseek.co.jp)

441:デフォルトの名無しさん
13/04/03 11:09:47.06 .net
ja.wikipedia.org/wiki/%E5%A4%89%E6%8F%9B%E8%A8%80%E8%AA%9E

asm.js もそうだけど 中間言語というかtranspilerかますと
復元できない
復元までふくめるとcoffeeみたいになるし…あれ解釈エンジンは
おなじだからこそparserラクしてる面もあるし

442:デフォルトの名無しさん
13/04/03 11:14:39.09 .net
>>440
どっかの記事だと、asm.js でもネイティブコードの倍の遅さらしいけど。
(倍でもすごいけど)

443:デフォルトの名無しさん
13/04/03 11:16:11.82 .net
で、俺の持ってるPCのCPUとGPUを解析して完全に最適化されたコマンドを吐いてくれるJITエンジンはいつ作ってくれるの?

444:デフォルトの名無しさん
13/04/03 11:21:03.45 .net
>>440
asm.jsのコードはJavascriptのコードとしても実行できるけどその場合はかなり遅い

モジラのVMは、asm.jsのコードをjavascriptのコードとしてではなくて
特殊な静的言語で書かれたコードとして解釈して実行することができて、
その場合は同じようなのネイティブコードの半分ぐらいの実行速度が出る

つまりこれはJavascriptのコードを早く実行する技術とは全然違う

445:デフォルトの名無しさん
13/04/03 11:23:55.23 .net
Mozilla、Firefox 22 にブラウザゲームを高速化する「asm.js」を搭載 - Infoseek ニュース

Mozilla のゲームプラットフォーム戦略を担当する Martin Best 氏は InternetNews.com に対し、
asm.js コードは、JavaScript 言語の中核要素を使用すると述べた。
基本的には、asm.js を意識して書かれたコードのみが高速化されることになる。
だがこの技術には後方互換性があり、Best 氏によれば、ブラウザが asm.js をサポートしていない場合であっても、
開発者は非常に効率の高いコードを書けると述べている。
URLリンク(news.infoseek.co.jp)

446:デフォルトの名無しさん
13/04/03 11:29:38.72 .net
反論がなくなったから「Javascriptは処理系しだいでCと同等の速度がでる」って話は
間違いでしたって認めたって解釈させてもらいます。

447:デフォルトの名無しさん
13/04/03 11:31:53.62 .net
>>442
処理内容による。
例えば、asm.jsが円周率を1億万桁求める事をサポートし
それがC言語で書かれていてバイナリとして組み込まれていれば、
単体ネイティブバイナリと計算速度は同等だろう。

448:デフォルトの名無しさん
13/04/03 11:35:56.15 .net
>>447
それは、速度を求められるところはCで書かないとCと同等の速度はでないってことですね。

449:デフォルトの名無しさん
13/04/03 11:38:53.98 .net
>>443
CPU負荷や空きメモリ、処理対象データに合わせた動的最適化も追加でよろしく!

450:デフォルトの名無しさん
13/04/03 11:43:43.06 .net
処理の重いところはグラフィックカードがやるから
ライブラリーに投げるだけでしょ?
ロジック部分の生産性が上がるなら言語部分の
速度を議論するのは不毛じゃないの?
ただ、プログラムの規模が大きくなってきたときに
Javascriptってかえって生産性低いのではないだろうかって
気がするんだけど
結局プログラムの生産性を下げるのって不注意で作り込んだ
バグをつぶすところが大きくて、Javascriptでうまく動かすのには
本来コンパイラーガやってくれる部分を
人間が細心の注意を持ってやらなきゃいけない様に見える
そう言う機能をどんどん追加していったら、
結局遅くて使いにくいC++の亜種になったりしそう
HTML5が流行りでみんながこのビッグウエーブに乗ろうと
するし、実際適用範囲が広がるのは確実だと思うけど、
出来るからって何でもそれでやろうとするのは凄く
間違った方向に進むと思うな

451:デフォルトの名無しさん
13/04/03 11:47:33.33 .net
VB.NETが生産性最高

452:デフォルトの名無しさん
13/04/03 12:02:14.73 .net
JavaScript処理系自体がほぼC/C++製だ。
JavaScript処理系をJavaやJavaScriptやC#や純関数型で書くのも可能だろうが。
速くしたい所を念入りに最適化するのは当然。

453:デフォルトの名無しさん
13/04/03 12:39:39.19 .net
Cコンパイラが出力した機械語と速度比較するのが間違い。CコンパイラソースをJavaScriptソースに変換できれば機械語として同じ速度だ。
言語性能は同じ土台のインタプリタで比較しろ。



CINT(シーイント)
CINT はC/C++ 言語インタープリタです。
CINTを使うと、C/C++で書かれたソースコードをコンパイルせずに実行できます。
90%-95% 実行可能だそうです。
URLリンク(belle.sci.fukuoka-u.ac.jp)

Production Version 5.34
Availability
ROOT is available in binary and source form. The binaries are available for most supported platforms.
URLリンク(root.cern.ch)



CINT・C++インタープリタ
日本語訳:柴田淑夫(Shibata Toshio)
この章ではCINT、ROOTのコマンドラインインタープリタおよびスクリプトプロセッサーについて述べる
URLリンク(www.dw-sapporo.co.jp)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch