[JavaScript,PHP] スクリプト言語33 [Perl,Python]

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
JavaScript, Perl, PHP, Python, …
スクリプト言語をすべて扱うスレッドです。
最強のスクリプト言語は、どれよ?
さあ、死ぬまで語りやがれ!!!

■ スクリプト言語の用途
簡易Webアプリ、シェルスクリプト

■ スクリプト言語の特徴
1レスで書ける程度の使い捨ての短いコードなら作成が容易だが
実行速度は劣っており、2人以上の開発、1000行を超えるソースコード、
10ファイル以上からなるソースコード、大規模になればなるほど
修正時の影響範囲の把握が困難で簡単なスペルミスが
発見しづらいバグを生み、IDEなどの静的解析ツールの適用が難しく
何から何まで人手でやらなければならずプログラマの負担が大きい。
・インタプリタ
・動的型
・正規表現
・クロージャ
などを利用できるものがある。

1レスには収まらないが100行程度の短いコードはここで
ttp://play.island.ac/codepaste/

http://toro.2ch.net/test/read.cgi/tech/1365250318/
2デフォルトの名無しさん:2013/05/03(金) 13:57:29.26
>>1
3デフォルトの名無しさん:2013/05/03(金) 13:59:38.86
さりげなくスレタイからRubyを抜くなw
4デフォルトの名無しさん:2013/05/03(金) 14:00:06.41
残念入らなかった。
5デフォルトの名無しさん:2013/05/03(金) 14:16:25.04
前スレ>>999

> リスト内包は集合論とかの数式を見慣れた人には分かりやすいよね

短い場合はそうだと思うけど、
長くなった場合は見にくいよ。

多分その理由は思考の流れと逆に書くからだと思うな。

ディレクトリのように、前から絞り込んでいくやりかたと
後ろから絞り込んでいくやり方がある。
長い場合は、前から絞り込むほうが理にかなっている。

例えばドメインは、後ろから絞り込んでいくやり方だけど
パスの部分は前から絞り込んでいくやり方になってる。
住所を真似して後ろから絞り込んだのはいいが、
途中(パスの部分)で破綻したのではないかな。

GUIのメニューやCSSのセレクタも前から絞り込んでるね。

英語の文化のせいで後ろから絞り込むやり方が存在するけど、
論理的に考えたら前から絞り込むほうがいいのだろう。
日本語は基本的に前から絞り込む文化。
6デフォルトの名無しさん:2013/05/03(金) 14:21:00.60
リスト内包表記
[x * 2 for x in A if x % 2 == 0]

前から絞り込む発想だとこうなっていただろう。
[for x in A if x % 2 == 0 x * 2]

境目がわかりにくいという問題を解決すると・・・
[for(x in A) if(x % 2 == 0) x * 2]

面白いことに、既存の文法に近い形になってしまう。
7デフォルトの名無しさん:2013/05/03(金) 14:21:21.95
>>1は勝手に内容を変えてんじゃねーよ
スクリプト言語に対する偏見が強すぎるわ

ていうか、前スレでコード書けなかったアホだろ>>1は?

「俺はコード書くほど暇人じゃない」とか言っといて
わざわざ文章改悪してスレ立てまでやってんのかよ
ビックリするほど暇人じゃねーか
8デフォルトの名無しさん:2013/05/03(金) 14:22:33.50
少し修正
[for (x in A) if (x % 2 == 0) x * 2]
9デフォルトの名無しさん:2013/05/03(金) 14:29:01.90
>>8で思ったんだけど

[x * 2 for (x in A) if (x % 2 == 0)]

こう書いたほうが見やすくね?
10デフォルトの名無しさん:2013/05/03(金) 14:31:40.77
こうじゃねーの?

[x * 2 for (x in A if (x % 2 == 0) )]
11デフォルトの名無しさん:2013/05/03(金) 14:35:46.46
>>5
数学の素養の無いドカタは
無理に内包表記を使う必要は無いよ
12デフォルトの名無しさん:2013/05/03(金) 14:39:26.51
>>11
典型的だね。
何も言えないから、とりあえず馬鹿にして満足感を得る。
13デフォルトの名無しさん:2013/05/03(金) 14:41:17.84
別にどれも変わらねーよ
くだらねえなあ
次いでに普通のforでも変わらねーよ
14デフォルトの名無しさん:2013/05/03(金) 14:47:48.89
リスト内包表記の方が効率が良い
入れ子は避けるべきだが、ここで挙がってるのは論外
リスト内包表記をディスるためにわざわざ一つの式を格好で括るとか
少なくともpythonではないな。前スレでC的な書き方が分かりやすくて良いとか言ってたC脳だろうが
15デフォルトの名無しさん:2013/05/03(金) 14:49:59.75
効率が効率がって、公式実装がC言語の100倍遅い言語で言われましてもw
16デフォルトの名無しさん:2013/05/03(金) 14:50:06.04
効率は変わらんよw
17デフォルトの名無しさん:2013/05/03(金) 14:50:28.57
集合は {x| x は偶数 } って書くから x が左に来てないとすわりが悪いかな
18デフォルトの名無しさん:2013/05/03(金) 14:51:39.00
うーん、そういう文脈でCを使われるのはなぁ
C使う人間の全てがアホではないよ
前スレのアホは底なしの低能だが
19デフォルトの名無しさん:2013/05/03(金) 14:51:49.98
haskellの内包表記こそが至高
forなどというキーワードを使うpythonは数学に慣れてると見にくい
20デフォルトの名無しさん:2013/05/03(金) 14:52:17.98
>>17
だから>>11でFA
21デフォルトの名無しさん:2013/05/03(金) 14:52:57.72
>>18
視野が狭いと文脈違いに見えるよねえw
22デフォルトの名無しさん:2013/05/03(金) 14:55:35.63
リスト内包表記はリストを返すが、繰り返し文でリスト末尾に追加していくより効率が良い
条件分岐がある場合、最初に必要な長さを指定して確保しておくことはできない
23デフォルトの名無しさん:2013/05/03(金) 14:57:00.00
>>20
>>11
典型的だね。
何も言えないから、とりあえず馬鹿にして満足感を得る。
24デフォルトの名無しさん:2013/05/03(金) 14:57:22.17
どうだろう双方向リストなら末尾付加のコストは普通に定数だよね
25デフォルトの名無しさん:2013/05/03(金) 15:00:23.70
{x| x は偶数 }
なんでこんな単純なものが

[x for x in A if x % 2 == 0]
こんな風に複雑になるのかね?


[x | isEven(x) ]
ここまで単純化してやっと
数学っぽいといえると思うんだが?
26デフォルトの名無しさん:2013/05/03(金) 15:00:37.91
ジェネレータ式の効率が良すぎてどうでもいい
27デフォルトの名無しさん:2013/05/03(金) 15:01:05.20
ちょっと簡潔にかけるとか数学に似てるとか
つまんないことで満足してればいいよ
28デフォルトの名無しさん:2013/05/03(金) 15:03:01.51
上で言われてるようにジェネレータにもできるからメモリ効率も良い使い方ができる

>>24
関数呼び出しのコストがあるのでオーダーで考えてるんだろうけど実際は係数って無視できないくらい効いてくるので。
29デフォルトの名無しさん:2013/05/03(金) 15:03:23.98
>>25
それなら見やすいと思うね。

でもごちゃごちゃしていたら見にくい。
そこが内包表記の限界なのだろう。
30デフォルトの名無しさん:2013/05/03(金) 15:04:38.96
>>28
定数オーダーの末尾付加によるリストの作成が無視できないような状況で
pythonとかって、あんまり想像がつかないんだけど
31デフォルトの名無しさん:2013/05/03(金) 15:05:24.86
内包表記は数学の式まで完結化できる
pythonの場合はfor文を使えるようにしてる
32デフォルトの名無しさん:2013/05/03(金) 15:05:25.97
>>25
え?式の外でdomainを明示してるんじゃなかったら
数学でもdomainを書く必要があるよ?
33デフォルトの名無しさん:2013/05/03(金) 15:06:05.81
>>28
> 上で言われてるようにジェネレータにもできるからメモリ効率も良い使い方ができる

ループで回してもメモリ効率いいと思うけど?

本質的には値を入れた配列を作らずに
値を計算で求めるってだけだし。
34デフォルトの名無しさん:2013/05/03(金) 15:06:41.46
>>30
リスト内包表記を使った方が効率が良いという話
実際に比べればわかるし、内包表記を使わない理由がないのだが
35デフォルトの名無しさん:2013/05/03(金) 15:07:12.47
>>32
なら書けばいいのでは?
36デフォルトの名無しさん:2013/05/03(金) 15:08:32.57
{x| x∈A ∧x≡0 (mod 2)}
これが数学かな
37デフォルトの名無しさん:2013/05/03(金) 15:09:21.71
>>33
ジェネレータ関数について勉強しなおせ
38デフォルトの名無しさん:2013/05/03(金) 15:09:58.06
>>34
その効率の良さも無視できるレベルって話
ジェネレータも呼び出しを遅延させてるだけで
実際はそんな便利な場面は少ない
39デフォルトの名無しさん:2013/05/03(金) 15:11:51.52
お前が無視したいだけだろw無視する意味がわからん
itertoolsと組み合わせて使いどころありまくりだわ
40デフォルトの名無しさん:2013/05/03(金) 15:12:36.31
これも数学だよね?

{x| x は A に含まれる かつ x は 2で割った時のあまりが0}




何が言いたいかというと、数学は記号を使っているから
見やすいのであって、それを言葉(日本語英語関係ない)に
するととたんに見づらくなるということ
41デフォルトの名無しさん:2013/05/03(金) 15:14:15.07
>>37
勉強しなおしたが答えは同じだった。

はい、君のターン


○○しろとかいって、自分のターンを飛ばすやつ多いよねw
42デフォルトの名無しさん:2013/05/03(金) 15:14:51.25
>>40
慣れの問題
43デフォルトの名無しさん:2013/05/03(金) 15:14:51.82
ぼくのかんがえた究極数学猿真似言語

{x| x (- A /\ x _= 0 (mod 2)}
44デフォルトの名無しさん:2013/05/03(金) 15:17:53.86
var x = [];
for(i=0; i < A.length; i++) {
 if(i % 2) {
  x.push(i);
}
}

まあこれでなんの問題もないし、読みやすいし
パフォーマンスもpythonより速いよ
45デフォルトの名無しさん:2013/05/03(金) 15:18:53.97
>>42
うん。だから
頭から絞り込む方法も
後ろから絞り込む方法も
所詮慣れでしかないんだよ。

で、何故か世の中の多くは
頭から絞り込んでいく方法。
多くの人が慣れているのは
頭から絞り込む方法だってことさ。

数学かどうかは、記号を使うかどうかだから
記号を使って頭から絞り込むのが一番見やすい。
46デフォルトの名無しさん:2013/05/03(金) 15:19:13.29
>>35
情報量が違う式を比べて「数学と比べて複雑」とか言ってるアホ(>>25)が滑稽だなって
やっぱりドカタはそういう基本的な事が分からないんだね
47デフォルトの名無しさん:2013/05/03(金) 15:20:18.72
>>46
だから合わせればいいじゃん。
48デフォルトの名無しさん:2013/05/03(金) 15:23:10.02
>>44
これのほうが良い。だんだん内包表記に似てきたね。

for(i in A) if(isEven(i)) x.push(i);
49デフォルトの名無しさん:2013/05/03(金) 15:24:41.91
>>44
遅いのだが…
50デフォルトの名無しさん:2013/05/03(金) 15:25:00.24
>>48
正直、何 が 良 い の か 分 か ら な い
全く同じだろ?
ちょっと簡潔になってるだけだろ
そんなくだらない上っ面だけ見て満足なの?
51デフォルトの名無しさん:2013/05/03(金) 15:25:32.97
>>49
V8エンジンなら最適化されてるから、CPythonより速い
52デフォルトの名無しさん:2013/05/03(金) 15:26:08.24
forやifの一行でも必ず {} でくくること

という変なコーディング規約をなくせば
内包表記とほとんど変わらなくなる。

もっとも必ず {} でくくること。の理由にも
賛同できるので、

{}でくくらない場合は一行で書くこと
改行を入れるときは必ず{}でくくること。
というコーディング規約を推奨する。
53デフォルトの名無しさん:2013/05/03(金) 15:26:21.56
>>48みたいな糞コードを量産するねがJS厨だなあ
54デフォルトの名無しさん:2013/05/03(金) 15:27:04.83
>>50
え? 完結に書くことは重要だよ。

それだけ読む量が少ないってことだから。
55デフォルトの名無しさん:2013/05/03(金) 15:27:39.69
>>53
やっとこのスレに気づいたか
いつものアンチJS厨さんよぉw
56デフォルトの名無しさん:2013/05/03(金) 15:28:26.78
>>54
文字数・行数の少なさと、理解する量の多さは違う
読む量(理解量みたいなもの)と理解するスピードは、
少なくとも俺の場合はほぼ全く一緒なのだが
57デフォルトの名無しさん:2013/05/03(金) 15:28:30.29
一行に複数のブロックがあるから気持ち悪いんだな
その場合、結果が先行して書かれた方がわかりやすい
58デフォルトの名無しさん:2013/05/03(金) 15:30:34.64
>>52
リスト内包表記に嫉妬しすぎ。お前の代替案は醜すぎ
59デフォルトの名無しさん:2013/05/03(金) 15:32:23.60
>>56
100行コードを読むのと、それを関数にして読む場合の
理解のスピードが同じだって?

じゃあお前は関数使うなw

知識を使って読むべきコードを減らすのが関数の利点。
一連のコードを知識に置き換えることで読む量を減らす。

lengthまでiをインクリメントしていく。をinの一言で、
(i % 2)==0 を isEvenの一言にすることで、
読むべきコードを減らして、理解するスピードをアップさせている。
60デフォルトの名無しさん:2013/05/03(金) 15:32:51.60
例えば
if (x % 2 == 0) {
 hoge;
}

if (x % 2 == 0) hoge;
では後者がいいとかって話と一緒

どっちが早く理解できるか競争する大会があったとして、出場者の平均タイムは
どっちも同じだわいみたいなw
61デフォルトの名無しさん:2013/05/03(金) 15:33:54.43
>>59
意味のあるときは関数使うよ
でも、今回の場合、難解度に差はない
62デフォルトの名無しさん:2013/05/03(金) 15:34:00.18
>>57
> その場合、結果が先行して書かれた方がわかりやすい

それは慣れの問題だってさ。

英語と日本語の問題と話が全く一緒になった。
結論を頭に持ってくるのが英語風
結論を最後に持ってくるのが日本語風

>>58
醜すぎの理由が書いてない時点で、お前の嫉妬にしか見えんな。
63デフォルトの名無しさん:2013/05/03(金) 15:35:24.32
>>60
Perlだと両方かけるよね。

if (x % 2 == 0) hoge;



hoge if (x % 2 == 0);

どっちもコンパイルに通る。

この二つに違いはない。
64デフォルトの名無しさん:2013/05/03(金) 15:37:24.79
内包表記はfor文を簡潔にするけど、複雑な処理まで簡略化はしてくれない
結果、上っ面が簡潔になっただけで、たいして理解力は向上していない
65デフォルトの名無しさん:2013/05/03(金) 15:38:45.87
x % 2 == 0 は慣用句になってるけど
普通は関数にしたほうが読みやすいよ。

「フィボナッチ数列」と一言いうだけで
どんな数列かわかるだろう?

この数式なんだっけ?
あぁ、フィボナッチ数列か。
みたいな考える時間が要らなくなる。
66デフォルトの名無しさん:2013/05/03(金) 15:42:57.74
>>63
Perlでは前者は{}必須
67デフォルトの名無しさん:2013/05/03(金) 15:43:46.06
複雑な処理を簡潔にする魔法があるのかよ
上っ面とは物は言い様だな。それぞれのパーツを簡潔にするのが唯一の方法だし
pythonは設計も習慣もそういうスタンス
めちゃくちゃなJSが何か言ってることに非常に違和感がある
68デフォルトの名無しさん:2013/05/03(金) 15:49:27.50
>>65
結局そこなんだよ
ぶっちゃけ、for文が長いと言っても慣用句なんだよ
長い慣用句を簡潔な単語で表したところで、
理解力は上がらないんだよ
タイプ量が少なくて済むけど、コピペとかsnippetとかもあるしねえ
69デフォルトの名無しさん:2013/05/03(金) 15:51:52.73
>>67
なにいってんだばか?
処理を実行するのはコンピュータ
正確だから処理が複雑かどうかは関係ない。

人間にとって重要なのは、その処理を
どれだけ簡素に見せられるかどうかだろ。

お前はコンピュータか?人間か?言ってみろ。
70デフォルトの名無しさん:2013/05/03(金) 15:53:20.02
>>65
関数化よいよね。しかしアホには限界が…
ちなみにipythonでallclose?と入力したらヘルプが表示されるから安心

986/1001:デフォルトの名無しさん[sage]
2013/05/03(金) 10:13:47.88
>>985
しかし現実は
「allclose?mean?axis?arrayで囲ってる?xsとys交換してから比較?linalg?norm?」
Pythonのコードは知的教養レベルが高い人が抽象的な言葉でわけのわからん議論をしてるのに
似てるw
ただ、その割には他の言語でもたいして大変じゃないんだよなあ
71デフォルトの名無しさん:2013/05/03(金) 15:55:04.88
>>67
魔法なんてないよ
だから、大差はない
結局ライブラリの差
pythonは今のところ数値計算のライブラリは揃っているけど
内包表記やらが優れているわけではない
72デフォルトの名無しさん:2013/05/03(金) 15:55:12.87
>>68
おいおい、お前の言ってる「長い」は
せいぜい20文字ぐらいで限界だろうがw
73デフォルトの名無しさん:2013/05/03(金) 15:58:09.28
>>71
当たり前だろ。りすとこんぷりへんしょんなんて今日びまともな言語なら必ず備えてる
標準的な便利機能でしかない。それをできない言語が劣ってるだけ
for文のように書けるというのはよく考えられてるけどね
74デフォルトの名無しさん:2013/05/03(金) 15:59:39.26
内包表記もインデックス演算子のオーバーロードもipythonの使い易さも
それぞれは小さい、人によっては無視できる程度の違いにすぎない。

しかし、そういう物の積み重ねがアルゴリズムを記述したいユーザをPythonに引きつけ、
Pythonにはnumpy, scipyを作るようなユーザが集まる一方で、
Javascriptにはnumpyが産まれる兆しすら無いのに繋がっている。
75デフォルトの名無しさん:2013/05/03(金) 16:00:18.74
>>73
1.それが出来ない言語とは?

2.それが出来ない言語で簡単にかけない例は?
(ライブラリを使って簡単にかけることなら却下)

この二つを説明できて
初めて説得力があるというもの。
76デフォルトの名無しさん:2013/05/03(金) 16:00:49.01
>>73
お前、天才集団Googleさんに喧嘩売ってるの?
77デフォルトの名無しさん:2013/05/03(金) 16:01:04.23
>>74
と思いたいんだねぇ。
あっはっはw
78デフォルトの名無しさん:2013/05/03(金) 16:01:42.26
>>74
兆しはあるよ
あと二年後には多分ある
79デフォルトの名無しさん:2013/05/03(金) 16:02:17.99
演算子のオーバーロードなんていらねえ!
リスト内包表記なんていらねえ!
Cのように書けば良い!

>>75
このスレに挙がってるリスト内包表記の代替案とかw
挙げ句にわざわざ醜くしてリスト内包表記に似せる始末
80デフォルトの名無しさん:2013/05/03(金) 16:04:27.32
JavaScriptで生まれてるのは
ゲームやウェブアプリやウェブシステムだからな。
そういう人たちを惹きつける言語というわけか。
81デフォルトの名無しさん:2013/05/03(金) 16:04:37.01
二年後って、JSはずいぶん遅れてるんだねえ。まあそれもお得意の妄想だろうけど
ともかく未来にすがるしかないなんて現在の現実ではどうしようもない糞言語なんだろうな
82デフォルトの名無しさん:2013/05/03(金) 16:05:42.53
>>79
> このスレに挙がってるリスト内包表記の代替案とかw
> 挙げ句にわざわざ醜くしてリスト内包表記に似せる始末

へ? 普通の書き方じゃね?

うーん、何処にも変な所が見られない。

for(i in A) if(i % 2 == 0) x.push(i);
83デフォルトの名無しさん:2013/05/03(金) 16:06:18.49
>>79
実際要らないんじゃないかねえ
天才集団が作った言語、GoやDartにはどちらもないしさ
84デフォルトの名無しさん:2013/05/03(金) 16:06:44.01
Cやフォートランと仲良しの言語じゃないとダメだよ
JSは低レベルな計算とは切り離されてるから無理
85デフォルトの名無しさん:2013/05/03(金) 16:07:05.56
>>81
でもPythonで作られたものよりか
JavaScriptで作られたもののほうが
今は多いよ。
86デフォルトの名無しさん:2013/05/03(金) 16:08:26.82
>>84
JavaScriptが低レベルな計算と切り離されてるってのがよくわからん。
高レベルな計算は出来るってことだよな?

低レベルな計算ってなんのことだ?
87デフォルトの名無しさん:2013/05/03(金) 16:09:23.36
Javascriptは最近までブラウザの中の言語だったからね
C言語なんかと連携できるようになったのも最近の話だし、
パフォーマンスが良くなったのも最近
だから、確かに今はクリティカルな数値計算をしようとする人が少ない
ただ、V8の登場、node.jsで状況は一変した
兆しは確実にある
88デフォルトの名無しさん:2013/05/03(金) 16:10:13.69
int型の計算のことだろ?

まあそれもInt32ArrayなどのTyped Array(ブラウザに既に実装済み)で
できるようになったけど。
89デフォルトの名無しさん:2013/05/03(金) 16:10:32.25
やっぱり低レベルが通じない馬鹿がJSを擁護してた
90デフォルトの名無しさん:2013/05/03(金) 16:11:40.95
確かに低レベル。前スレからJS厨のレベルの低さが目立つ
91デフォルトの名無しさん:2013/05/03(金) 16:11:51.06
JavaScriptが登場したのは1995年だからね。

重要なのは開発スピード
この数年は、衰えるどころかスピードアップしている
92デフォルトの名無しさん:2013/05/03(金) 16:12:29.03
確かに新しい言語に内包表記も演算子オーバーロードも入れないGoogleは低レベルだよね
93デフォルトの名無しさん:2013/05/03(金) 16:12:34.04
アンチJSが低レベルだと認められる理由。

何も内容がないレスをするから。
94デフォルトの名無しさん:2013/05/03(金) 16:14:29.17
>>82
JS厨な俺としても、その記法で必須なxの初期化を省いてるのが気になる
95デフォルトの名無しさん:2013/05/03(金) 16:15:29.73
>>94
というか、JS厨の俺から見るとvar省いてるのとin使ってるのが気になる
つか、こいつJS知らんだろ
96デフォルトの名無しさん:2013/05/03(金) 16:15:34.86
>>92
それ、どこがpythonより優れてんの?天才集団とか権威主義のカスは死んでいいぞ
使ってから喋れ
97デフォルトの名無しさん:2013/05/03(金) 16:16:23.64
pythonもJavascriptも使い倒した上で天才集団が新しく作った言語に
文句あるの?
権威主義ですが何か?
98デフォルトの名無しさん:2013/05/03(金) 16:16:53.44
あ、アホな方のJS厨はJSすら知らないのかw
99デフォルトの名無しさん:2013/05/03(金) 16:18:02.42
まあ本質とは全く関係のないくだらん揚げ足取りだからあえて指摘しなかったけど
100デフォルトの名無しさん:2013/05/03(金) 16:18:21.58
>>97
開き直ったら正当化してんのかよ
goとdartを使ってから擁護しろと言ってんたよ
101デフォルトの名無しさん:2013/05/03(金) 16:18:32.30
いつから>>82がJavaScriptだと思い込んでいた?wwww
102デフォルトの名無しさん:2013/05/03(金) 16:19:05.78
自分がろくに書けない言語の厨になるとはレベル高いなw
103デフォルトの名無しさん:2013/05/03(金) 16:19:16.68
敵は皆JS厨じゃあー!

見るもの全部、JavaScriptじゃあー!
104デフォルトの名無しさん:2013/05/03(金) 16:19:42.60
訂正:正当化してんのかよ→正当化されるのかよ
105デフォルトの名無しさん:2013/05/03(金) 16:20:50.23
ぶっちゃけ、アホの方のJS厨は
LLスレだった頃から度々書き込んでたJavaドカタだと思う
106デフォルトの名無しさん:2013/05/03(金) 16:21:28.19
>>100
俺が使おうが使うまいが真実は変わらんだろ?
107デフォルトの名無しさん:2013/05/03(金) 16:22:37.88
>>105
説得力ありすぎてこまるw
邪魔すぎてスレタイ変更で追い出されたからな
108デフォルトの名無しさん:2013/05/03(金) 16:22:39.59
>>105
ぶっちゃけ、アホな方のアンチJSは妄想癖があると思う
109デフォルトの名無しさん:2013/05/03(金) 16:25:01.17
>>106
何が真実かも説明できないやつが何言ってんだ?お話にならない
110デフォルトの名無しさん:2013/05/03(金) 16:26:28.34
>>109
真実は、PythonもJavascriptも知り尽くした天才集団が新しく作った言語に
演算子オーバーロードと内包表記が採用されなかったということ

つまり、こんな機能はいらないんだよ
こんなゴミ機能で喜んでる奴はバカ
111デフォルトの名無しさん:2013/05/03(金) 16:30:16.43
>>107
皆で一斉にJavaをdisり始めたら、急にJavaを擁護し始めそうだねw

もしかして、内包表記を執拗にdisるのも、Javaに無い機能をdisってるのかも
112デフォルトの名無しさん:2013/05/03(金) 16:31:20.34
>>110
で、どこがどう優れてるんだ?
前スレのお題をその2つで綺麗に書いてくれ
goはかなり特殊な言語でオブジェクト思考プログラミングすら、他の言語のようにはしない
コードは冗長になりがち。Cの代替になれるかどうか
dartとかもうどうしようもない言語だと思うが
113デフォルトの名無しさん:2013/05/03(金) 16:31:44.95
誰もJava Disに参加しないのであったw

一人でやってろアホ
114デフォルトの名無しさん:2013/05/03(金) 16:32:36.78
Java8も延期になったし、言語自体も古くさくてゴミ
いまさらdisるのも馬鹿馬鹿しい程ウンコ
115デフォルトの名無しさん:2013/05/03(金) 16:33:06.81
最近思ってもみなかったところから白熱するねこのスレ
116デフォルトの名無しさん:2013/05/03(金) 16:33:09.82
敵を見つけないといけないから可哀想だよね。
このスレではJSが敵か。
敵を叩くことで精一杯。
何もためになる話をしない。
117デフォルトの名無しさん:2013/05/03(金) 16:34:58.48
>>112
俺がその二つで奇麗に書こうが書くまいが真実は全く変わらないのだが?
説得力が欲しいならお前がどうしても汚くなってしまうことをソースで書いてみせれば良いだろ
俺はやらないよ
天才集団が新しく作ったというだけで十分な説得力だし
118デフォルトの名無しさん:2013/05/03(金) 16:36:13.97
>>117
> 俺はやらないよ

コード書けない低能だからねw
やりたくても無理だね
119デフォルトの名無しさん:2013/05/03(金) 16:36:45.00
どうせ、112は長くなった行数を見て冗長だとか可読性が無いとか言い出す奴だろ
120デフォルトの名無しさん:2013/05/03(金) 16:37:31.11
JS厨あらためgo厨 or Dart厨かw
121デフォルトの名無しさん:2013/05/03(金) 16:38:25.10
goは何か少ない機能だな。必要最低限というか
リスト内包表記的なことはmapでやるっぽいな
その方法はpythonでもできるけどリスト内包表記を使った方が可読性面で良いとされてる
122デフォルトの名無しさん:2013/05/03(金) 16:38:27.83
>>118 >>120
中身を語らず人格批判
自分より先に人にソースを要求
これがアンチJS厨
123デフォルトの名無しさん:2013/05/03(金) 16:39:08.18
>>121
javascriptもそんな感じ
クロージャ使ってmap
124デフォルトの名無しさん:2013/05/03(金) 16:40:02.35
表記はあくまで表記であり
機能ではないから
その機能は別の表記できるんだよな。
125デフォルトの名無しさん:2013/05/03(金) 16:40:31.23
>>122
その逃げ回りっぷりを批判されてるってわからんの
自分より先にってなんだよ。こっちに示すもんねーだろ馬鹿か
126デフォルトの名無しさん:2013/05/03(金) 16:43:13.74
>>123
今回の流れでJS触ったがクロージャはマジで当たり前のように外部変数壊しててやばいと思った
リスト内包表記はそんなことできない
127デフォルトの名無しさん:2013/05/03(金) 16:44:14.00
JSも嫌いじゃないから、こんなアホが使ってると思いたく無かったわ
あーよかった
そうかー、JS厨じゃなくて偽プログラマだったのか
128デフォルトの名無しさん:2013/05/03(金) 16:44:49.72
>>126
むしろそれが出来るからこそ、クラスの代替になるんだけどね
クロージャはJSの中でもみんなが絶賛してる機能
メリットの方が大きい
129デフォルトの名無しさん:2013/05/03(金) 16:45:36.59
そりゃJSプログラマがみんなこんなんだったら世界が崩壊してる
130デフォルトの名無しさん:2013/05/03(金) 16:48:05.71
>>128
それは制約上の妥協点でしかなくで
関数でクラスの代替?とかやってるのが端から見たら終わってて
普通のクラスじゃダメな理由がわからない
131デフォルトの名無しさん:2013/05/03(金) 16:50:26.44
>>125
お前も逃げてるじゃん
示すものがない?
天才集団に楯突くからには、ソース示した方が説得力あるだろw
Pythonのソースだってお前が書いたソースじゃないだろ
アンチJSはまさに虎の威を借る狐

>>130
まあ分かりにくいだろうね
これのおかげで、ブラウザのイベント処理とか、非同期処理とかが
うまく扱えて、インターネットと非常に相性が良かったわけで
今また盛り上がってきてるのにつながるわけだけど
実際に書かないとこれは実感できない
132デフォルトの名無しさん:2013/05/03(金) 16:58:15.53
> 天才集団に楯突くからには、
> まさに虎の威を借る狐

ブーメランすぎるwww
133デフォルトの名無しさん:2013/05/03(金) 16:59:01.77
>>131
JS厨ってお前みたいな馬鹿しかいないんだな
何がどう優れてるのか示せない限りただの幻想じゃん
JSでは勝てないから自分も知らない言語に逃げるクズ
134デフォルトの名無しさん:2013/05/03(金) 17:01:05.12
JSというかHTML5の熱烈指支持者、アルファブロガーっていうのキュレーターだっけ?アーリーアダプターか?スタバでMac使ってる連中の言うことを真に受けちゃったんだろう。
135デフォルトの名無しさん:2013/05/03(金) 17:02:55.40
ちょっと俺がJS厨のフリして煽ったら
見ないうちに荒れやがってw

ほんと仲間はすぐに寄ってくるな。
136デフォルトの名無しさん:2013/05/03(金) 17:13:34.45
numpy.jsがあったらこんな雰囲気になるんだろうな
var numpy = require(numpy);

function kmeans(data, K) {
  var xs = random.randint(0, K, data.length),
    ys = zeros(data.length)
  while (!allclose(xs, ys)) {
    for (var k = 0, ms = []; k < K; k++) {
      ms.push(mean(at(data, xs, function(x) {return x==k;})),
        {axis: 0});
    }
    ys = xs;
    for (var i = 0, xs = []; i < data.length; i++) {
      for (var j = 0, ts = []; j < ms.length; j++) {
        ts.push(linalg.norm(data[i].sub(ms[j])));
      }
      xs.push(nanargmin(ts));
    }
  }
  return xs;
}

やっぱりたいして変わらない
ライブラリの違い
137デフォルトの名無しさん:2013/05/03(金) 17:16:46.17
JS厨は毎日これ
妄想を垂れ流す、今勝てないから未来(妄想)にすがる、見知らぬ権威に頼る
自分の知識は関係ないと言う、無知だからデタラメしか言えない
筋金入りのペテン師、といっても始めから誰も信用してないけど
ライブラリの違いが致命的であることを理解できない馬鹿
railsかなんで流行ったと思ってるんだ。まあCと相性悪い点も汎用言語としては論外だし
妄想が実現することは一生ないけど
138デフォルトの名無しさん:2013/05/03(金) 17:16:48.84
>>133
少なくとも、内包表記と演算子オーバーロードがないことくらいは知ってたから
お前よりはマシじゃね?w
139デフォルトの名無しさん:2013/05/03(金) 17:18:46.95
>>138
なんで劣ってる点を挙げて優れてると主張するんだ?キチガイか?
140デフォルトの名無しさん:2013/05/03(金) 17:20:06.60
>>137
お前は毎日それを言って過ごしてるってことだなw
141デフォルトの名無しさん:2013/05/03(金) 17:20:39.57
>>139
劣ってる?
採用されていないんだから、必要ない機能ってことだろ
つまり、劣ってないということ
むしろある方が劣ってるってこと
142デフォルトの名無しさん:2013/05/03(金) 17:20:45.28
>>136
そのライブラリの有無が重要なんだと思う
ライブラリを除いた狭義の言語だけ扱っていても
その言語で「実際に」何ができるのかはわからないし
143デフォルトの名無しさん:2013/05/03(金) 17:22:40.01
>>142
まあもちろんそうなんだけど、これは歴史的に見てしょうがない気がする
数値計算はまだはっきりと苦手分野
状況が一変し始めてる段階
144デフォルトの名無しさん:2013/05/03(金) 17:24:08.12
>>142
ライブラリを比較って意味では、scipy使えばコード書く必要すら無いんだよねkmeans...
145デフォルトの名無しさん:2013/05/03(金) 17:27:42.11
>>141
それは反証できない、お前お得意の詐欺だか
現にそれらの機能は広く使われて恩恵がある
リスト内包表記やC#のLINQがないほうが良いとか言ってる天才はいない
だからお前がないほうが良い理由を説明できないならそれはただの欠点でしかない
146デフォルトの名無しさん:2013/05/03(金) 17:28:58.06
>>144
kmeans関数さえあればね
それってライブラリさえあればJSでもなんでも変わらんということだけど
>>145
採用されなかった
その事実だけで十分説得力を持つから俺はそれ以上何か言う気はないね
詐欺だと勝手に思いたければ思ってれば?
147デフォルトの名無しさん:2013/05/03(金) 17:31:15.87
>>146
説得力のある説明ができないなら、リスト内包表記や演算子がない点については欠陥があるということだから
それ以外で何がなぜ優れてるのか説明しないとお前の論は何も通らない
天才が失敗した、それだけ。
148デフォルトの名無しさん:2013/05/03(金) 17:32:44.74
ライブラリさえあればー、誰か膨大なライブラリを用意してくれー、誰かー、JSをまともな言語にしてくれー
149デフォルトの名無しさん:2013/05/03(金) 17:33:04.97
かつてSunに居た天才達は、Javaをデザインするときに
「ブルーカラーでも使えるように」様々な機能を削ってJavaを作った

何が言いたいか分かるな?
150デフォルトの名無しさん:2013/05/03(金) 17:34:42.67
>>147
説得力ある説明してるしw
何を言っても無駄とはまさにこのことw
まさか、Pythonを使いこなしているGoogleがそれらの機能を知らないはずがないしな
Googleコーディング規約でも実はネストした内包表記禁止してるくらいだし、
少なくともまともに検討した結果、無い方が良いと判断したのは確実
仮にお前の言うように失敗だったとしても、それなりに根拠があるってこと
本当はそんなに喜ぶほどの価値はないんだよ
151デフォルトの名無しさん:2013/05/03(金) 17:35:06.78
>>149
ポインタは危険だったね。メモリ管理は大変だったね

つまりデメリットを説明しないかきりお前とGoogleは完全に間違ってるということ
152デフォルトの名無しさん:2013/05/03(金) 17:37:00.25
>>151
Googleが完全に間違ってるかどうかは
俺が説明できるかどうかにかかってるのか

すげえな俺
神かw
153デフォルトの名無しさん:2013/05/03(金) 17:37:49.42
内包表記は数学の素養がない馬鹿にとって可読性が低い
(自分が使わなくても、他人が書いたコードは読む必要がある)
だから馬鹿対策で機能を削った

自分達はPythonやC++を使うから、馬鹿は低能向けの言語使っとけってことだ
154デフォルトの名無しさん:2013/05/03(金) 17:39:05.83
>>153
C++には内包表記はないぞ
Pythonにしても、自分たちが使うコーディング規約で内包表記は単純なものだけにしましょう
と言ってるし
155デフォルトの名無しさん:2013/05/03(金) 17:39:17.91
>>150
なんでGoogle事情に詳しいお前が採用しなかった理由を説明できないんだ
あと演算子オーバーロードの恩恵を理解できないとかバカすぎ
いろんな自作クラスに対して直感的な記述は不可能になる
これは科学技術分野では特にありがたい機能だ。だから、Googleの言語はJS同様に劣った言語なんだな
156デフォルトの名無しさん:2013/05/03(金) 17:41:32.06
>>154
演算子オーバーロードがある
157デフォルトの名無しさん:2013/05/03(金) 17:44:46.83
>>149
> 何が言いたいか分かるな?

嘘を言いたいんでしょう?
158デフォルトの名無しさん:2013/05/03(金) 17:45:07.43
>>155
そう思いたければ思えば良い
科学技術に長けたGoogleがC/C++の代替を目指した言語で採用しなかった
お前より頭がいい奴はそう思ってるってだけ

>>156
そして、スタイルガイドにこう記述することになる
「特殊な状況を除き、演算子をオーバーロードしてはいけません。」
理由も載ってるからググってこいよw
159デフォルトの名無しさん:2013/05/03(金) 17:45:25.45
Google Python Style Guide より List Comprehensions の項を引用

> Pros:
> Simple list comprehensions can be clearer and simpler than other list creation techniques.
> Generator expressions can be very efficient, since they avoid the creation of a list entirely.

> Cons:
> Complicated list comprehensions or generator expressions can be hard to read.


複雑な場合に読み難いってだけじゃなく、
シンプルな場合は他の方法よりシンプルで明快だと書いてるね
さらにジェネレータ式は効率的だとも
160デフォルトの名無しさん:2013/05/03(金) 17:45:58.74
PHPer(何を議論しているのかさっぱり分からん・・・^p^)
161デフォルトの名無しさん:2013/05/03(金) 17:46:46.09
>>160
次のターゲットかい?
お前も懲りないね。
162デフォルトの名無しさん:2013/05/03(金) 17:48:46.84
>>159
can beって書いてあるように
あくまで良い場合もあるってだけ
言語に組み込むほどの良さでもないんだろう
悪い面の方がむしろあるってことなんだろうね
163デフォルトの名無しさん:2013/05/03(金) 17:49:07.66
内包表記のネストを避けるのはgoogleだけじゃなくpythonコミュニティ全体の話だ
そんな暗黙のルールはどの言語にもある

>>158
Pythonはお前より頭の良い奴が作ったんだから
お前はPythonに一切の文句を言えないはずだが?
164デフォルトの名無しさん:2013/05/03(金) 17:50:20.65
python開発者より馬鹿な奴がpython批判っておかしくないですか
お前が何を言ってもpythonの設計は正しいということですよね
誰よりも頭が悪いお前は何しにここに来てんだ
165デフォルトの名無しさん:2013/05/03(金) 17:50:32.33
>>162
その通り。can beって書いてあるように
あくまで複雑な内包表記でも読み難くなる場合もあるってだけ
166デフォルトの名無しさん:2013/05/03(金) 17:51:57.20
>>158
え?goは科学技術分野の言語ではないと思うが
googleに詳しいお前の公式見解を聞きたい
167デフォルトの名無しさん:2013/05/03(金) 17:52:47.13
まあ、python作った当時の作者なら俺の方が
新しい言語を知ってる分、この分野に関しての知恵はあるだろうな

pythonの人とやらも今新しく言語を作るなら内包表記採用しないかもなw
googleの場合は歴史的な試行錯誤の末、今採用してないわけでw
168デフォルトの名無しさん:2013/05/03(金) 17:55:25.43
リスト内包表記やLINQを批判してるまともなプログラマなんて見たことないよ
169デフォルトの名無しさん:2013/05/03(金) 17:57:04.12
俺達はいつまでこの既知外の相手をしなければいけないの?
170デフォルトの名無しさん:2013/05/03(金) 17:59:47.53
ちゃっかりLINQを混ぜて何がしたいんだ
LINQなんて採用されてなさすぎだろw
171デフォルトの名無しさん:2013/05/03(金) 17:59:48.74
>>167
googleが間違った。正解だというのなら証拠見せろ
また未来に頼るのか?お前そればっかだな
事実ベースで語るならそんなのを正解として出すほうが馬鹿。天才だからーって阿呆か
goやdartの設計思想も説明できないしさあ、お前ゴミすぎるだろ。反論できる?
172デフォルトの名無しさん:2013/05/03(金) 18:01:01.04
>>171
いや、だから、俺は証拠を見せる必要がないと思うから
しないだけ
今の時代にGoogleが間違ったってかw
へー説得力ありますなあ
173デフォルトの名無しさん:2013/05/03(金) 18:06:14.61
実際Google言語はまだ主流じゃないし、馬鹿みたいに正しい言語と言われても嘘っぱちにしかならない
174デフォルトの名無しさん:2013/05/03(金) 18:07:46.41
JSでは勝てなくて逃げ惑う、説明を求められ逃げ回る。これだけ
175デフォルトの名無しさん:2013/05/03(金) 18:08:20.49
http://golang.jp/go_faq#overloading

> メソッドと演算子のオーバロードをサポートしていない理由は?
>
> メソッドを呼び出す際に、メソッドの型をいちいち調べしなくてよい方がシンプルです。
> 他の言語に接した経験から言えることは、同じ名前で、かつシグネチャが異なるメソッドの寄せ集めを持つことは、
> ときに役に立ちますが、混乱を招くだけで充分に機能しません。
> 型の中で、メソッドが名前だけで検索できるよう制約を課すことは、Go言語の型システムを単純な仕組みにする上での大きな決断でした。

Javaを含む殆どの静的型付けOOPLを全否定だな
これがGoogleの天才が出した結論か
176デフォルトの名無しさん:2013/05/03(金) 18:09:39.92
それが吉と出るか凶と出るかわからないのだが、お前が正しいと思う根拠は何?
177デフォルトの名無しさん:2013/05/03(金) 18:11:17.57
googleがこう言ってるからって自己の無いただのgoogleの代弁者のくせにこの底抜けバカっぷりがすごい
何も理解せずに行き当たりばったりで喋るからこうなる
178デフォルトの名無しさん:2013/05/03(金) 18:11:58.07
主流になることには失敗するかもな
仕様の善し悪しより人気や宣伝の面もあるし

ただ、自分たちが使うことも念頭において開発してる言語だし、
真剣に検討した結果であることは間違いない
仮にそう決断したことが悪い判断だったとしても、
お前が言うように手放しで喜べるような単純なもんでもなく
議論が裏にあるってことだ
少なくとも、浅い考えで「内包表記がないー、オーバーロードがないー
話にならないー、全然違うー」
なんて話ではない
むしろ、そんなものあってもなくても実は生産性に大差はないんだよというのが
説得力を持つ
179デフォルトの名無しさん:2013/05/03(金) 18:13:26.78
> 演算子のオーバーロードに関しては、絶対に必要というより、あれば便利という程度であり、
> 採用しないことでシンプルさを保ちました。

そしてメソッドのオーバーロードは結構批判的なのに、
演算子オーバーロードはそうでもないという
180デフォルトの名無しさん:2013/05/03(金) 18:13:36.88
失敗したら説得力ねーよw
181デフォルトの名無しさん:2013/05/03(金) 18:14:02.28
>>179
C++スタイルガイド見てこいよ
かなり批判的
182デフォルトの名無しさん:2013/05/03(金) 18:16:57.58
>>181
見て来た

> 演算子をオーバーロードするとコードは直感的にわかりやすくなりますが、次のような欠点もあります。
>
> ・コストの高い操作なのに、コストの安い組み込み操作だと思わせてしまう。
> ・オーバーロードした演算子を呼び出している場所を見つけるのが非常に困難になる。== の呼び出しを探すよりも Equals() を探す方がはるかに簡単です。
> ・ポインタにも機能する演算子があるが、これらはバグを生みやすい。Foo + 4 がやることと、&Foo + 4 がやることは全く違います。コンパイラはどちらにも警告を出さないため、デバッグは非常に難しくなります。
> ・オーバーロードには想定外の悪影響もあります。たとえばクラスが単項 operator& をオーバーロードしていると、クラスは安全に前方宣言できません。

基本的に2番目以外はC++固有の問題だと思う
183デフォルトの名無しさん:2013/05/03(金) 18:18:47.69
>>178が必死に話を有耶無耶にしようとしてるところ悪いけどさあ
一長一短あるならリスト内包表記がなければ優れてるとかいう馬鹿な主張をしてる
お前は本当に救いようがない馬鹿だということを自白してることになるし
リスト内包表記やオーバーロードの有用性は未だに否定されてないのだが
184デフォルトの名無しさん:2013/05/03(金) 18:20:36.34
ぶっちゃけ、内包表記と演算子オーバーロードがなくても
>>136レベルの簡潔さにはなるんだろ
十分許容範囲だわw
理解に大きな差が出るとは思えない

>>182
そうかね、一番目は明らかに固有じゃない気がするし、3番や4番も
同類の問題が出てきそうだけど

>>183
有用性とデメリットがあってそのバランスを取った結果採用されなかったってことだろw
185デフォルトの名無しさん:2013/05/03(金) 18:20:49.34
C++の演算子オーバーロードはややこしい
Pythonはシンプルだし。むしろ無いと困る
というかどうせ代替のメソッドを定義することになるが
こうすると式に一貫性がなくなる
186デフォルトの名無しさん:2013/05/03(金) 18:23:32.13
まあ、人気が言語の良し悪しだと言いたいなら、
お前の嫌いなJavaがPythonより良い言語ってことになるけどいいの?w
187デフォルトの名無しさん:2013/05/03(金) 18:25:34.62
>>184
Googleの天才は採用しなかった、他の天才は採用した
なんでGoogleが一方的に正しいんだ?馬鹿?
188デフォルトの名無しさん:2013/05/03(金) 18:25:39.44
>>186
メソッドのオーバーロードがあるJavaなんて
Googleの天才達によって否定済みですけど?
189デフォルトの名無しさん:2013/05/03(金) 18:31:49.51
>>186
実際Javaの汎用性やそれに伴うライブラリの豊富さは強いだろ
それに対してPythonはPythonの良さがあると言えるわけ
一ミリも知らない言語をgoogleが作ったから良いと言っちゃう馬鹿と一緒くたにしないでほしいわけ
190デフォルトの名無しさん:2013/05/03(金) 18:38:56.67
>>187
一方的に正しいとか、まあそこまでは言ってない
他が天才かどうかは知らんが、仮にそうだとしても、意見が割れてるのは確かだ
その時点で、内包表記の有用性はかなり怪しいものになるんだよ

>>188
そうだね
人気がある方が正しいと考える君の考えは
ここでもGoogleに否定されたわけだ
DartやGoは今のところ人気はない
ただ、だからといって正しくないとは言えない
>>189
結局仕様の良し悪しじゃないじゃんw
191デフォルトの名無しさん:2013/05/03(金) 18:42:25.20
>>184
一番目も、C++の場合、オーバーロード無しで演算子が出来る事は
Cと同じだから低コストと思うワケで、
高コストな操作(文字列やリストの連結等)が演算子で書ける言語の場合
演算子だから低コストなんて思わないよ
だから前提からしてC++固有とまでいかなくても、最近の言語には当てはまらない話
192デフォルトの名無しさん:2013/05/03(金) 18:42:58.87
>>190
Javaの仕様の悪いところやPythonの仕様の良いところも馬鹿なお前と違って言えるし
それは議論されつくされてる。リスト内包表記が無い方がいいとか言ってる馬鹿はいないけど
実際正解してないgoogleを正解例としてpython批判してる馬鹿が
問題となるコードを例によって一回も出してくれないしこれからも一生出さないと思うと呆れるしか無い
193デフォルトの名無しさん:2013/05/03(金) 18:44:20.90
JavaとJavascriptがウンコって結論になれば
別にGoが最高の言語という結論になっても構わない俺がいるw
194デフォルトの名無しさん:2013/05/03(金) 18:45:04.15
言語を一ミリも知らないのはどっちだw
本当は、「まともなプログラマーなら、内包表記や演算子オーバーロードを採用して当たり前!
主要な新しい言語は全部そう!」って思ってたんだろw
正直になれよw

>>191
一番有名な例であるiostreamからして高コストなioだからなあ
195デフォルトの名無しさん:2013/05/03(金) 18:45:51.61
JS絶賛から逃げ出して苦し紛れにGoogle擁護してるゴミがどこまで頑張るか観察したい
頑張ってると言っても正しさは一切ないけど
196デフォルトの名無しさん:2013/05/03(金) 18:47:42.52
>>195
まあ別に逃げ出してないし、
俺がどこまで頑張ろうとJSの時代が来ることは変わらんわけでw
指をくわえてみてると良いよw
197デフォルトの名無しさん:2013/05/03(金) 18:48:40.93
>>193
そこなんだよな
逆に言えばJS厨はJSが糞だという結論に落ち着きかけたから
Googleをスケープゴートとして使ってるだけ
Googleの言語はまだまだだし、JSが科学で使い物にならないという事実は明らかなのに
198デフォルトの名無しさん:2013/05/03(金) 18:50:12.24
>>197
いつ結論が出たんだよw
お前が勝手に勝利宣言してるけど、
真実はライブラリがないだけで、JS自体はちっとも糞ではなく、
これからどんどんライブラリが出ることも確定してるってことだ
199デフォルトの名無しさん:2013/05/03(金) 18:50:48.10
>>196
ほら、今がショボいことを認めたくないから現実逃避を続けてるじゃん
200デフォルトの名無しさん:2013/05/03(金) 18:52:08.63
はい、今はライブラリがなくて完敗宣言っと
201デフォルトの名無しさん:2013/05/03(金) 18:52:14.65
え?確定してんの?
202デフォルトの名無しさん:2013/05/03(金) 18:53:26.65
>>199
いや、今はしょぼいよ
数値計算のライブラリがないという点でな
ただ、ウェブ関連は充実してるし、これから
数値計算もこれからしょぼくなくなるけど
>>200
今だけなw
良かったなw

>>201
まあ分かる奴には分かる
ヤバいよ
マジで来る
203デフォルトの名無しさん:2013/05/03(金) 18:54:20.74
確定してるわけないだろ。大規模なライブラリはブラッシュアップに時間がかかるし
万が一、数年後にまともなライブラリができるとして今JSを使う必要性はまったくない
完成してから吠えてくれw
204デフォルトの名無しさん:2013/05/03(金) 18:55:10.59
数値計算で今JS使わなくても良いのは確か
というかまず、充実したC++ライブラリのラッパーがくるんじゃないかね
205デフォルトの名無しさん:2013/05/03(金) 18:58:32.08
だからー、演算子オーバーロードがないと式の記述が不自然になるんだってw
 JSは一生ねーよ
206デフォルトの名無しさん:2013/05/03(金) 19:00:33.36
C++のラッパー作るだけで良ければ今頃どの言語にもscipy相当があるよ
Railsクローンが色んな言語にあるようにな

なのに、scipy相当がPythonにしか無い時点で察しろって話
207デフォルトの名無しさん:2013/05/03(金) 19:01:27.55
>>205
まあそういう奴も安心
なんせ別言語が定義できるくらいだから、別の言語が使えるようになるよ
俺は直接JS使うけどw
208デフォルトの名無しさん:2013/05/03(金) 19:04:09.87
>>207
君は科学技術計算に縁のない底辺ドカタなんだから
最初から関係ないよ
いつまでもJSを使っててくれて構わない
209デフォルトの名無しさん:2013/05/03(金) 19:05:36.81
>>208
確かにあんまり縁がなかったわw
万一今科学計算が必要でも別にC++やpython使うから良いけどw
210デフォルトの名無しさん:2013/05/03(金) 19:07:10.00
使うなよ気持ち悪い
211デフォルトの名無しさん:2013/05/03(金) 20:27:01.00
Scipyっての知らなかったけど、面白いな
遺伝的アルゴリズムとかもあるのか
ちょっと遊ぶのにいいかもしれん
このスレでJavascriptの良さを力説するのも無駄じゃなかったw
212デフォルトの名無しさん:2013/05/03(金) 20:51:38.70
馬鹿の上にこの気持ち悪さ
これは凄い
213デフォルトの名無しさん:2013/05/03(金) 21:42:10.23
伸びてるから何かと思ったら
数値計算向けの言語pythonで数値計算のお題出して
しかもライブラリ借りて解いて喜んでいるのか

dom操作のお題出したあとjQuery使って解いて
Javascriptスゲーと言ってるようなもんだわ
214デフォルトの名無しさん:2013/05/03(金) 21:45:20.48
しかも、Javascriptに一時間程度で簡単に解かれちゃってたw
215デフォルトの名無しさん:2013/05/03(金) 21:46:20.69
Linuxのシステムの一部でも使われてるのにそれは無理があるわなあ
実際JSってあらゆる普段使いに向かないんだからさ
216デフォルトの名無しさん:2013/05/03(金) 21:48:29.92
まあ、pythonが数値計算向けってのはちょっと違うな
もともとは汎用スクリプト言語
JSはブラウザ用言語だったが、今となっては広範囲に使える汎用言語
ただ、数値計算は凄いライブラリがある関係上、pythonが今のところ有利
217デフォルトの名無しさん:2013/05/03(金) 21:49:01.94
>>213
御題出したのはJS厨
で、解いたんだからお前も解けという流れ
218デフォルトの名無しさん:2013/05/03(金) 21:49:07.31
いやJS厨もライブラリ絶賛しまくりだったのに
返り討ちに合った途端にライブラリがある問題はダメってなんなん
自演下手過ぎだし
219デフォルトの名無しさん:2013/05/03(金) 21:50:26.18
その何でもかんでもJS厨に見える癖、何とかならんのか
しかも一人か二人だと思ってるようだし
220デフォルトの名無しさん:2013/05/03(金) 21:51:28.84
じゃあ論破された馬鹿な主張を繰り返すのやめろよ馬鹿
221デフォルトの名無しさん:2013/05/03(金) 21:51:41.74
JS厨っていうか、壮絶なアホが一匹いる
222デフォルトの名無しさん:2013/05/03(金) 21:52:15.14
論破された主張って何のことだよw
223デフォルトの名無しさん:2013/05/03(金) 21:52:38.61
JSが科学技術分野で追い付くことはないし
不確定な遠い未来しか武器がないなら黙ってろ
224デフォルトの名無しさん:2013/05/03(金) 21:52:50.82
>>221
中身のない中傷を繰り返すアンチJSのことか
225デフォルトの名無しさん:2013/05/03(金) 21:54:34.52
>>223
そう思うなら反論する必要がない
余裕こいてれば良いだろ
226デフォルトの名無しさん:2013/05/03(金) 21:55:04.23
ライブラリがあれば、どの言語も同じようにかけることが
証明されてしまったからな。

これからどう反論する?
227デフォルトの名無しさん:2013/05/03(金) 21:55:19.39
JSがnumpyに追い付く証拠も出さずに妄想を毎日垂れ流す限り一生中傷され続ける
自分がデタラメを並べてると気付いてないわけじゃないだろ
悪ふざけはやめろキチガイ
228デフォルトの名無しさん:2013/05/03(金) 21:55:44.21
お題だしたのがJS厨って怪しいな
scipyやnumpy知ってたっぽいし、むしろpython厨っぽい
229デフォルトの名無しさん:2013/05/03(金) 21:56:46.68
ライブラリの差が
言語の差になってるうちは
言語の優位性なんて語れないぞ。

言語だけの範囲で語ろうぜ。
230デフォルトの名無しさん:2013/05/03(金) 21:56:49.77
>>225
お前のペテンを批判してるだけ
231デフォルトの名無しさん:2013/05/03(金) 21:58:00.15
不確定な未来について好き勝手に論じるなら、
科学技術計算でJavascriptがPythonに追いつく未来より、
asm.jsで中間言語に落ちぶれる未来の方が
遥かに実現する可能性が高そう
少なくとも、asm.jsは既に存在するわけだし、Googleも興味を持ってる
232デフォルトの名無しさん:2013/05/03(金) 21:58:01.92
言語の差はライブラリで埋まる
証拠は数々上がっている。
233デフォルトの名無しさん:2013/05/03(金) 21:58:55.14
状況証拠みたいなものしかないけど、Javascriptが熱いというのはマジだってば
https://github.com/popular/starred
https://github.com/languages
234デフォルトの名無しさん:2013/05/03(金) 22:02:22.45
JSは外部の変数を暗示的に変更しまくらないと何もできないヤバい言語と結論でただろ
JS厨がpythonに対してスコープは絞るべきとか言ってたのは今考えたら悪うしかない
かなり危険な糞仕様
235デフォルトの名無しさん:2013/05/03(金) 22:02:27.12
>>232
Javascriptは全然マシだけど、Javaはウンコすぎて無理
関数オブジェクトすらないゴミでは話にならない
やっぱり言語による差はあるよ
236デフォルトの名無しさん:2013/05/03(金) 22:02:53.80
>>231
numpyみたいにコアの処理をCに任せればいいだけ
237デフォルトの名無しさん:2013/05/03(金) 22:03:41.07
>>235
それがならないんだなぁ。
証拠は数々上がっている。
238デフォルトの名無しさん:2013/05/03(金) 22:03:58.27
>>236
うん、簡単だね
今すぐ実装してきて良いぞ
239デフォルトの名無しさん:2013/05/03(金) 22:04:42.82
>>234
ちょっと抽象的すぎて良く分からんな
Lintで検出できないようなもんかね?
240デフォルトの名無しさん:2013/05/03(金) 22:06:16.82
>>239
変更するのがデフォだからテストも通る
241デフォルトの名無しさん:2013/05/03(金) 22:06:24.11
>>237
おいおい、JavascriptとJavaを一緒にするなよ
ぶっちぎりでゴミだよJavaは
関数オブジェクトが無いんだよ?信じられんわ
242デフォルトの名無しさん:2013/05/03(金) 22:07:06.29
>>234
> JSは外部の変数を暗示的に変更しまくらないと何もできないヤバい言語

それ、お前が変更しまくらないと
出来ない無能なんですーって
言ってるだけじゃないかw
243デフォルトの名無しさん:2013/05/03(金) 22:07:44.91
>>241
はいはい、必死だね。
世の中にはクラスすらない言語もあるんだよ。
244デフォルトの名無しさん:2013/05/03(金) 22:08:55.68
俺頭悪いので分からんから、具体例で説明してくれ
245デフォルトの名無しさん:2013/05/03(金) 22:11:07.96
>>234
それがないとクラスも作れないカス言語
pythonでは明示するしコミュニティでは極力避けてるのに
JSは文化的に積極的にやってる。というかそれがないと無理なんだろうな
だとしたら、意味もなく大量のvar宣言せずにクロージャの宣言をしたほうが良い
246デフォルトの名無しさん:2013/05/03(金) 22:12:40.24
Java使いでもEgor Kulikovみたいな奴いるしな
Egorの1/10もプログラム書けない奴が大半だろ
言語というよりやっぱ個人差の方が大きい
247デフォルトの名無しさん:2013/05/03(金) 22:13:49.80
>>245
自分の無知をさらけ出して恥ずかしくないの?w
JavaScriptにはグローバル変数すら無いしね。
248デフォルトの名無しさん:2013/05/03(金) 22:14:11.17
>>245
ちょっと具体例で説明して欲しいんだが、
こんな感じのこと?
a = 1;

function() {
 a=2; //ああ、変更できちゃったよ!
}
249デフォルトの名無しさん:2013/05/03(金) 22:14:14.08
>>244
Cでグローバル変数を使い回すようなもの
それを便利とか言って多様するのは
プログラミング初心者と競技プログラミングだけ
それ以外でもやむを得ず使う場合はあるが
普通は危険な割にメリットが少ないから避ける
250デフォルトの名無しさん:2013/05/03(金) 22:15:53.62
>>247
実際に関数を呼び出せば関数外の変数を書き換えるのが当然の言語だろ
違うなら反論よろ
251デフォルトの名無しさん:2013/05/03(金) 22:16:14.21
>>249
ちょっと良く分からん
pythonのコード例とjavascriptのコード例を対比させて説明してくれないか?
252デフォルトの名無しさん:2013/05/03(金) 22:16:21.63
>>248
そうそうそれのこと。
グローバルな変数を書き換えることができて
それを防ぐ方法がない。
これがJSというカス言語
253デフォルトの名無しさん:2013/05/03(金) 22:17:49.08
>>252
防ぐ方法はあるだろ
あんまり変な事書くなよPython使いが皆アホだと思われるだろ
254デフォルトの名無しさん:2013/05/03(金) 22:18:30.76
strictモードで防げるじゃん。

やっぱり無知だったか。

アハハハハ
255デフォルトの名無しさん:2013/05/03(金) 22:20:41.17
Python使いが皆アホということで結論が出ました

はい、撤収ーw
256デフォルトの名無しさん:2013/05/03(金) 22:21:32.60
なんだ Perl のパクリか(棒)
257デフォルトの名無しさん:2013/05/03(金) 22:24:06.89
あれれ〜、var宣言があるからクロージャが楽なんじゃなかったの?
その代わり「普通の」関数には宣言がいるのか、トホホ…
危険を承知で糞仕様にしたから、あとから継ぎ接ぎ対策したのか
そしたら一層、大量のvar宣言がつくづく無駄でしかないのだが?
258デフォルトの名無しさん:2013/05/03(金) 22:25:36.30
>>257
いいから比較して書けよ
話はそれからだ。

無知なPython厨をいたぶるのは楽しいね〜w
259デフォルトの名無しさん:2013/05/03(金) 22:26:25.56
安全モードがデフォじゃないのは危険な操作が普通に必須だからだろうな
260デフォルトの名無しさん:2013/05/03(金) 22:28:24.21
>>259
意味不明。安全モードは英語にしたらsafe modeだ。無知すぎ
261デフォルトの名無しさん:2013/05/03(金) 22:29:17.26
JSのデフォである危険モードを対比して言っただけだから
262デフォルトの名無しさん:2013/05/03(金) 22:30:58.95
どこから危険モードなんてでてきたんだ?

危険モードが有るんだったら
安全モードがあるのかよ?

無いよ。安全モードなんてねw
263デフォルトの名無しさん:2013/05/03(金) 22:31:03.56
え?use strictで防げるのか?
JS厨だがそれは知らなかった
通常var忘れるのは防げるが、外の変数とかぶっても防げたのか
264デフォルトの名無しさん:2013/05/03(金) 22:34:47.93
strictって日本語に翻訳したら
安全って単語だが?

ってどや顔していってほしいwwww
265デフォルトの名無しさん:2013/05/03(金) 22:35:45.16
内側の関数に責任を持つのは通常自分なので、ミスさえしなければ
通常問題は起きないのが救い
メリットとデメリットを考えるとメリットの方が大きいけど
クラスだけではjavascriptはとっくに廃れてた
266デフォルトの名無しさん:2013/05/03(金) 22:38:23.25
use strictを使えば通常はvarを強制できる
いきなりスペルミスで変数を宣言してしまうpythonの方がよっぽど危険
267デフォルトの名無しさん:2013/05/03(金) 22:39:54.89
>>262
デフォは危険だろ。そこは反論できないはずだ
だってそれを防ぐ方法を作ってるんだからw
糞言語すぎ
268デフォルトの名無しさん:2013/05/03(金) 22:41:14.88
>>267
頭悪いの?
静的型付け言語が安全って言いたいの?
269デフォルトの名無しさん:2013/05/03(金) 22:43:15.91
>>248
そもそもpython以外でこれができない有名言語ってあるの?
270デフォルトの名無しさん:2013/05/03(金) 22:44:28.11
静的言語は動的言語より安全だと思うけど
静的言語でもスペルミスによる意図しない変数の変更は防げないだろうねw
で、デフォで危険な事実は否定できてないなあ
271デフォルトの名無しさん:2013/05/03(金) 22:44:33.40
少なくとも、C/C++、Java、Schemeは出来る
272デフォルトの名無しさん:2013/05/03(金) 22:45:10.61
そういえば、Haskellは代入自体が出来ないな
273デフォルトの名無しさん:2013/05/03(金) 22:45:21.36
>>266
> いきなりスペルミスで変数を宣言してしまう
どんなコード?
274デフォルトの名無しさん:2013/05/03(金) 22:46:36.11
>>273

test = 2
teest = 3 #ああ、testを変えたつもりが新しい変数に!
275デフォルトの名無しさん:2013/05/03(金) 22:46:41.67
>>263
ここで暴れてるのは偽JS厨だから
276デフォルトの名無しさん:2013/05/03(金) 22:47:13.79
>>274
それは危険だなwwww
277デフォルトの名無しさん:2013/05/03(金) 22:47:59.28
>>274
もっとちゃんとしたコードにしてくれよ
うちのvim + pyflakes だと、宣言だけして未使用の変数は
警告で色付けされるから一目で分かるんだよ
278デフォルトの名無しさん:2013/05/03(金) 22:50:15.59
>>277
よくわからんが、こうすればいいのか?

test = 2
use(test)
teest = 3
use(teest) #変数名の間違いに気づかず補完してしまった!
279デフォルトの名無しさん:2013/05/03(金) 22:51:32.54
>>263
どういうこと?
280デフォルトの名無しさん:2013/05/03(金) 22:51:37.52
>>278
補完するときに候補が複数でる(testとteest)から気付くよ
もっと真面目に考えてくれよ
281デフォルトの名無しさん:2013/05/03(金) 22:52:03.00
アンチJSの人は結構有用なレスしてくれるようになったな
人格批判ばかりするのとは別人か
282デフォルトの名無しさん:2013/05/03(金) 22:54:28.40
>>280
補完は言語の機能ではありません。
283デフォルトの名無しさん:2013/05/03(金) 22:55:04.20
>>280
じゃあ、補完じゃなくてコピペで
284デフォルトの名無しさん:2013/05/03(金) 22:55:13.05
JS厨は何人もいるだろうが、アホなJS厨は一人しかいないと思ってる
そこでここのアホなJS厨(中傷されてるお前だよ)に聞きたいのだが
お前は以外にもアホなJS厨(毎日一日中妄想垂れ流し野郎)はいるのか?
お前みたいなのが複数人いるとかさぶいぼ立つけどアホなJS厨は何人いる?
285デフォルトの名無しさん:2013/05/03(金) 22:56:42.63
>>284
多分、お前は俺も中傷してるけど、他の奴も中傷してると思う
現実とはそんなもん
286デフォルトの名無しさん:2013/05/03(金) 22:57:02.77
なめJS厨はスペルミスによって外部変数が変更されうるという事実に気づかないのだろうか
287デフォルトの名無しさん:2013/05/03(金) 22:59:06.53
JS厨は優しさが垣間見える
あまり他人の中傷はしない
288デフォルトの名無しさん:2013/05/03(金) 22:59:37.30
>>285
つまり、今はライブラリないけど将来は必ずあるとか、
google様が考えた言語と違うから糞言語とか言ってるJS厨が複数人いるのか。うわあ
JS厨やべーな・・・
289デフォルトの名無しさん:2013/05/03(金) 23:01:10.82
JS厨は最初は句読点で平静を装って妄想を垂れ流すが
痛いところを疲れると草を生やして開き直って煽りまくる
290デフォルトの名無しさん:2013/05/03(金) 23:01:26.58
>>288
お前が中傷してるのはもっと前からだろう?w
291デフォルトの名無しさん:2013/05/03(金) 23:02:17.13
>>282
補完って言い出したの>>278だが……
それはともかく、エディタやツール類のサポートは一切考慮しないってこと?
ライブラリの件と同じく、そういうのが大事だと思うが……
292デフォルトの名無しさん:2013/05/03(金) 23:02:49.86
>>289
それが一人だと思ってるのか
良く規制に引っかからないな
IP使い分けてるのか
293デフォルトの名無しさん:2013/05/03(金) 23:03:43.54
スペルミスは言語の責任じゃないけど
これだけ使われてる言語にしてはまともな開発環境がないのが問題だよな

いっそブラウザに載せればいいのに
今でもChromeのコンソール使うと一応保管や保存できるが
前使った時はどうも挙動があやしいのでやめた

新しいファイルは作れないから
一旦別のエディッタで作ってからみたいになるし
294デフォルトの名無しさん:2013/05/03(金) 23:04:33.28
>>291
ちなみに278は283のレスをしてるだろ
295デフォルトの名無しさん:2013/05/03(金) 23:05:24.80
>>290
JSは奇跡の言語とかJSで凄い時代になるとか気持ち悪い煽動を始めた辺りから
叩いてるけど懲りずに毎日同じ妄想を垂れ流してる奴が
お前以外にいるのか?おそろしい
296デフォルトの名無しさん:2013/05/03(金) 23:07:18.07
あ、あとスペルミスはuse strictして
JSエンジンの設定弄ればV8でもFFのやつでも警告でたはず(実行前に)
JSでも静的解析はできるがevalとかがある都合上OFFになってる
297デフォルトの名無しさん:2013/05/03(金) 23:08:28.58
高機能化して欲しいのになんでブラウザ?
一番高機能なIDEであるVSがブラウザで動いてるところを想像できない
298デフォルトの名無しさん:2013/05/03(金) 23:08:41.67
>>293
右クリックの保存の挙動が怪しいの?
今は多分大丈夫と思う
Chrome Canary使ってるけど
299デフォルトの名無しさん:2013/05/03(金) 23:08:55.20
>>294
補完が使えるのにコピペなんてしないから、
もっと現実味のある理由を考えて
300デフォルトの名無しさん:2013/05/03(金) 23:09:52.95
>>295
俺の前は知らんが、今は俺一人だ
ちなみに俺はソース書いてるJS厨
301デフォルトの名無しさん:2013/05/03(金) 23:10:47.73
vimプラグインの補完は凄いと聞く。俺は数行の編集でしか使わないけど
あと最近はsublimeのステマをやたら聞く
302デフォルトの名無しさん:2013/05/03(金) 23:11:20.89
JSでvarつけ忘れて外部変数とぶつかったらどうなるの?教えて!警告でるの?
303デフォルトの名無しさん:2013/05/03(金) 23:11:48.81
>>299
実はダブルクリックの方が補完より速い場合あるから
マウス毛嫌いしてないで試してみ?
vimだから嫌いそうだけど
304デフォルトの名無しさん:2013/05/03(金) 23:12:23.20
sublimeは実際凄いよ
vimよりいいかも
305デフォルトの名無しさん:2013/05/03(金) 23:13:25.80
>>300
ソース書くって、今日も例を示せと数十回言ったけど返ってきた記憶がない
306デフォルトの名無しさん:2013/05/03(金) 23:14:37.56
>>305
まあほとんどJSのソースしか書いてないからな
たまに議論のついでにちょろっと小さいコード片をいれるくらい
307デフォルトの名無しさん:2013/05/03(金) 23:17:00.39
デタラメを重ねすぎて狼少年にしか見えない
308デフォルトの名無しさん:2013/05/03(金) 23:17:21.27
>>297
デバッガとセットになってて欲しいし
HTML上で使う場合はブラウザ使うし
HTMLの画像とか他のファイルも一元管理できた方がよくない?

>>298
今度試してみるかな
とは言え最近はNode.jsばっかり書いてるんだけどね
Node.jsでもブラウザをデバッガとして使うんだけど
ココら辺ももう少し連携しやすくして欲しいなあ

>>302
出ないよ
それで出たら親スコープの変数触れないじゃん
そうじゃなくて明らかに出てきてない変数から代入しようとしてたりするケースみたいなのは
JSエンジンのオプションで出せるようにできる
あとはvarを必至にすることでスペルミス軽減
309デフォルトの名無しさん:2013/05/03(金) 23:17:47.57
クラスターのプログラム書くときにベクトルのライブラリをググったら
sylvesterとかいうのしか引っかからなかったから
数値計算は相当苦手なのはわかった
まあ低機能だから適当に説明読んで即使えたけどw
310デフォルトの名無しさん:2013/05/03(金) 23:18:48.12
だからさ、親と子で宣言子付けるのが逆なんだよね
それで意味もなくvarだらけのコードになる
311デフォルトの名無しさん:2013/05/03(金) 23:20:04.26
「normって何?」と言ってるJS厨がいて数値計算は相当苦手なんだなあと思った
312デフォルトの名無しさん:2013/05/03(金) 23:21:19.40
俺みたいに理系の院行ってるならノルムは当然知ってるけど、それ以外の一般人は
普通に分からんだろうね
313デフォルトの名無しさん:2013/05/03(金) 23:21:56.12
>>310
何言ってるのかさっぱりわからない。
クロージャーは、関数外部の変数を見れたらいけないと言いたいのか?
それはもはやクロージャーではない。
なぜならクロージャーの要件の一つが外部の変数を見れること。
314デフォルトの名無しさん:2013/05/03(金) 23:22:37.48
>>311
知ってるか知ってないかの違い
ググればわかるようなことを
自慢げに言われてもなw
315デフォルトの名無しさん:2013/05/03(金) 23:22:44.91
>>313
pythonが真のクロージャを備えていないことが
よっぽどコンプレックスなんじゃないの
316デフォルトの名無しさん:2013/05/03(金) 23:25:11.17
Pythonに真のクロージャがないとか
JSのクロージャは危険じゃないとか
言ってる奴はアホだろ
317デフォルトの名無しさん:2013/05/03(金) 23:25:46.24
なんか1周回って戻ってきたな
Pythonのレキシカルスコープがちょっと変わってるんで、それを調べてから書き込んだほうがいい
JS厨の俺としてもうんざりですよ
318デフォルトの名無しさん:2013/05/03(金) 23:26:21.82
Javaで内部クラスをクロージャとして使うと
外部スコープはfinal変数しか参照できないけど、
そんな感じで、読むのは良いけど書くのはダメってのは
わりとありがち
319デフォルトの名無しさん:2013/05/03(金) 23:27:56.20
>>314
自慢じゃなくてかなり基本的なことだから、共通基盤が違うんだなあと
ノルムと言って伝わらない人は確かに科学的な計算しないと思う
320デフォルトの名無しさん:2013/05/03(金) 23:27:56.92
pythonでも一応外部の変数を「見る」ことはできたはず
代入が出来ないだけ
321デフォルトの名無しさん:2013/05/03(金) 23:29:53.60
>>318
F#とかもそうなんだっけ
そういう安全装置は意味あるし、pythonのスコープがおかしいって指摘が微妙だよな
322デフォルトの名無しさん:2013/05/03(金) 23:30:47.60
>>319
そいつは本当に自分が知らないことを聞いているのか
一般的な事柄としてそういう疑問があると言ってるのか、
そしてついでにいえば、そいつがどのレスと同一人物なのか
もう少し注意深く見た方が良い
323デフォルトの名無しさん:2013/05/03(金) 23:31:14.37
外部変数に代入したくないときに明示するか(var)、
代入したいときに明示するか(nonlocal)の違いじゃないの?

激しくどうでもいい
324デフォルトの名無しさん:2013/05/03(金) 23:31:45.32
>>318
それってfinalじゃなくても良くなるって話を随分前に聞いた覚えがあるけど、
Java7でもまだだっけ?
325デフォルトの名無しさん:2013/05/03(金) 23:32:15.33
Pythonってどうしてそういう仕様にしたんだろう
当然良いことも悪いこともあると思うが
自分には他の言事の差別化が大きいのかなと思ってしまう
326デフォルトの名無しさん:2013/05/03(金) 23:33:03.21
もしかして、pythonが簡潔を売りにしてる割にはself地獄なのも似たような思想なのかね
危険だとか
327デフォルトの名無しさん:2013/05/03(金) 23:35:13.75
>>323
JSのが明らかに危険なのにどうでもいいってw

>>322
それこそ本当にどうでもいいです。
科学的なコードに対して一般的に聞くことにどんな意味が?
JSで書いたほうが良いと言ってた奴だったと思うよ
328デフォルトの名無しさん:2013/05/03(金) 23:36:21.07
Python節、まあいいと思うよ
でも外側のスコープ変数変更出来ない方が普通だとは思わないな
変更されない、方を特殊に扱った方が自然だと思う
JSだってそれはできるし
329デフォルトの名無しさん:2013/05/03(金) 23:38:22.45
>>328
それは超初心者レベルのプログラミングも分かってないってこと
意図しない副作用に注意するなら、変更する場合に明示するほうが自然だろ
330デフォルトの名無しさん:2013/05/03(金) 23:38:27.76
>>327
レス見てきたけど、趣旨としては一般的なことだね
normは確かに数学の用語だけど、norm以外にもいろいろ挙げてる
から意味はあるね
normを揶揄するのは揚げ足取りの類い
331デフォルトの名無しさん:2013/05/03(金) 23:39:53.56
>>285
変更不可な変数の宣言と混同してる
332デフォルトの名無しさん:2013/05/03(金) 23:39:58.67
>>329
確かに
これはnonlocalの方が優れてるわ
まあselfは気に食わないけど
333デフォルトの名無しさん:2013/05/03(金) 23:40:33.94
>>324
final変数しか参照できないって不便だよな。

for(final int i : list) {
 //クロージャー呼び出し
}

for(int i : list) {
 final int i_ = i;
 //クロージャー呼び出し
}


いちいちfinal付けるかfinalつけた変数に代入しないといけないんだよな。
334デフォルトの名無しさん:2013/05/03(金) 23:41:43.58
>>329
自分で書いておいてその程度の事が意図しないとかいう感覚がわからない

内側のスコープにその変数を使ってるもんだと思って、
実際には無くて、外側のいじっちゃいけない同名の変数を
意図せず弄って問題が起きることがあるってこと?

簡単な具体例を説明して欲しい
335デフォルトの名無しさん:2013/05/03(金) 23:42:38.02
>>333
拡張forでfinal宣言するのは常識

> Java セキュアコーディングスタンダード > 01. 宣言と初期化 (DCL)
DCL02-J. 拡張 for 文のループ変数は必ず final 宣言する
http://www.jpcert.or.jp/java-rules/dcl02-j.html
336デフォルトの名無しさん:2013/05/03(金) 23:42:51.63
>>334
滅多に起きないけど、varを忘れてしまった場合にありうる
337デフォルトの名無しさん:2013/05/03(金) 23:44:09.47
>>335
マジか
これは良い情報
まあ仕事じゃレビューでfinalとってくれって言われるのが落ちだろうけど
338デフォルトの名無しさん:2013/05/03(金) 23:45:06.87
>>324
Java8で、final値だと自明な場合はfinalを書かなくても
final変数として参照できるようになる、らしい
339デフォルトの名無しさん:2013/05/03(金) 23:45:58.38
クロージャが呼ばれるときその中身は見えないし、その変数はそのクロージャ以外でも使われるのなら
変数の中身は当然追いにくくなるし、クロージャは基本的にメリットない気がする
なんで引数で渡したりしないの?
340デフォルトの名無しさん:2013/05/03(金) 23:46:33.01
>>336
あー、言いたいことはわかった気がするけど
ちょっといろいろと仮定が都合良すぎるな
確かに一昔前なら実際起きてそうなことだと思うけど

今は皆慣れてコーディングスタイルとかも良くなってきてるし
そのためにstrictmodeもあるしね
341デフォルトの名無しさん:2013/05/03(金) 23:48:11.95
strict modeの存在自体が危険性を示唆してるし
なんで普通の関数にそんなものを付けなきゃいけないのか謎
クロージャにだけ付ければ良いし、そしたらvar宣言自体が無駄
という結論ではダメですか
342デフォルトの名無しさん:2013/05/03(金) 23:49:43.39
クロージャを普通に使うJSではそれが逆に大変になるということだろうな
343デフォルトの名無しさん:2013/05/03(金) 23:52:10.68
>>339
それはさ、クロージャをクラスに置き換えても同じことが言えるんじゃない?
344デフォルトの名無しさん:2013/05/03(金) 23:52:23.01
var付け忘れというより、varつけて宣言した変数を使うつもりで変数名タイプミスして
グローバル変数になるとかのパターンが、かなり危険だね
なので"use strict"が導入された

>>341
"use strict"は関数毎につける必要はないよ
実質モジュール単位で有効にすればいい
345デフォルトの名無しさん:2013/05/03(金) 23:52:59.24
>>341
どういうこと?
今話してた意図せずスコープリークしてしまうのを防ぐ役目があるじゃん?

クロージャにだけ固いスコープが必要?
よくそのメリットがわかんないな
346デフォルトの名無しさん:2013/05/03(金) 23:53:54.26
>>344
だからさ、それ本当にuse strictで防げるのか?
俺の手元のテストコードがおかしいのか?
347デフォルトの名無しさん:2013/05/03(金) 23:54:23.89
>>343
クラスは変更される変数と独立してないだろ
348デフォルトの名無しさん:2013/05/03(金) 23:55:28.33
>>345
クロージャはコードが長くなりがち。
長いコードはスコープが広いのと同じことになる。
つまり何処で変数を変更しているかわかりにくい。

影響範囲を狭くするために
外のスコープに一切アクセス出来ない
クロージャ(?)が必要。

これをクロージャと呼ばないとかどうでもいい
違う名前でいいから、そういうものが必要。
349デフォルトの名無しさん:2013/05/03(金) 23:55:53.00
use strict で防げる派と防げない派がいるけど
350デフォルトの名無しさん:2013/05/03(金) 23:56:01.24
>>347
メソッドはフィールド変数と独立してるじゃん
同じじゃないの?
外側のクラスに囲まれてるから独立してないというのなら、
クロージャだってさらに外側のクロージャに囲まれているの
だから独立してない
351デフォルトの名無しさん:2013/05/03(金) 23:57:09.50
だからさ、varつけて宣言した変数を使うつもりで変数名タイプミスして
それが偶然グローバル変数とバッティングした場合は
use strict付けてても無力ってことだろ

そんなレアケースどうでもいいわ
352デフォルトの名無しさん:2013/05/03(金) 23:57:31.88
>>346
varで宣言してない変数を触ろうとするとエラーになるんだから
意図しない外側の変数やグローバル変数を弄ることがないってことでしょ?
それでも何か不満があるの?

>>348
クロージャは即時関数とも重なるから
むしろだいたい短いと思うんだけど
353デフォルトの名無しさん:2013/05/03(金) 23:57:58.80
>>351
varを付け忘れた変数が外側とバッティングする場合はそこまでレアではない
ただ、これもレアっちゃレアだと思うが
354デフォルトの名無しさん:2013/05/03(金) 23:58:11.69
>>349
タイプミスして
グローバル変数の宣言になるパターンは防げる
宣言済みの外部変数へのアクセスになるのは防げない
355デフォルトの名無しさん:2013/05/03(金) 23:59:44.13
宣言済の変数もゲッター、セッター使えば一応防げる
356デフォルトの名無しさん:2013/05/04(土) 00:02:52.85
お前らと話していると、静的型付け言語のほうが
優れていると言ってるとしか思えなくなって来るな。

人間ミスをする生き物だ。ミスしても謝ればいいだけ。
誰もそれを責める権利は持っていない。
ミスが怖いならコンピュータにでもなれよ。
357デフォルトの名無しさん:2013/05/04(土) 00:03:35.37
クラス内のメソッドはクロージャで、だからselfを付けるってこと?なるほど
358デフォルトの名無しさん:2013/05/04(土) 00:04:36.54
オブジェクトなら簡単に代入参照制限できるし外部関数化もできるけど
プリミティブ型はちょっと面倒だな

まあPython-JSコンバータつくるときはいいかも
359デフォルトの名無しさん:2013/05/04(土) 00:12:48.16
>>308
使ったことないけど、Cloud 9とかintelliJ IDEAってのが良いらしい。
ただ、sublimeもlintやdev toolと連携すればそこそこいけるし、
セットってのがそんなに利点かなあ
360デフォルトの名無しさん:2013/05/04(土) 00:13:13.68
まあスコープ浸透しない変数が本当にあった方がよくてそれで速度向上するんなら
ES.strawmanくらいには挙がってないとおかしいんだが
361デフォルトの名無しさん:2013/05/04(土) 00:15:26.73
速度向上?
362デフォルトの名無しさん:2013/05/04(土) 00:16:09.51
>>359
最近段々とChromeがOS化してきちゃってさ
というか9割の時間Chromeを全画面表示してるし
363デフォルトの名無しさん:2013/05/04(土) 00:16:25.04
Colud 9 IDE
http://www.publickey1.jp/blog/11/nodejsjavascriptcloud9_ide.html
凄い時代だよなあ
クラウドでIDEとか
Javascriptすげえ
364デフォルトの名無しさん:2013/05/04(土) 00:19:51.95
>>361
初期のconstみたいに実装に思わぬ負担となる場合がある

浸透しないとその分内側は軽くなると普通思うが
前例があるからどうなるのか心配

普通の変数と変わらない程度なら実装のコンパクト化を考えるといらない
365デフォルトの名無しさん:2013/05/04(土) 00:22:14.41
>>364
いや、誰も速度の話なんてしてなかったように思えるのに
急に速度向上の話になったからビックリしただけ
366デフォルトの名無しさん:2013/05/04(土) 00:23:47.20
>>356
どうだろうねえ
静的型付けの方がより安全ではあるけど、動的でも
だいぶ頑張れるしねえ
むしろ柔軟性を考えるとデメリットかもしれない
静的型付け言語だったとしたら、jQueryだのが生まれるイメージがあまり湧かない
367デフォルトの名無しさん:2013/05/04(土) 00:26:41.58
> 静的型付け言語だったとしたら、jQueryだのが生まれるイメージがあまり湧かない
そうか?

jQueryのキモは、セレクタ文字列から、jQueryオブジェクト型を返すだけだろ?
普通に型つきオブジェクト指向のやり方だと思うけど。
368デフォルトの名無しさん:2013/05/04(土) 00:29:22.65
静的言語でjQueryの$関数を実装するとかマジキチ
業界を破門レベル
369デフォルトの名無しさん:2013/05/04(土) 00:29:32.64
>>356
このスレではスコープ関係の議論をしてて、スコープについては
ダイナミックスコープより安全なレキシカルスコープが主流になってるから
あんまり違和感が無かった
370デフォルトの名無しさん:2013/05/04(土) 00:30:34.51
>>365
誰もしてなくてもJSにとって速度向上はものすごく大事なことなの
371デフォルトの名無しさん:2013/05/04(土) 00:31:25.32
>>367
例えばプラグインがメソッドを追加しまくってるけど、
単純な継承では継承の順番を指定しないと駄目だろ
372デフォルトの名無しさん:2013/05/04(土) 00:31:48.16
なぜならJSはリアルタイム性が重視される用途によく使われるから。
GUIとか、その動作速度でさくさく感が大きく変わる。
373デフォルトの名無しさん:2013/05/04(土) 00:33:23.12
>>371
プラグインがメソッド追加するのは
jQueryの失敗点の一つだと思ってるけど。

だって、名前かぶったらどうするのさ?
374デフォルトの名無しさん:2013/05/04(土) 00:35:19.53
VS+C#は戦車、スクリプト言語は拳銃くらいのイメージ
375デフォルトの名無しさん:2013/05/04(土) 00:35:20.19
>>368
いいじゃない
jQuery-C++とかjQuery-Javaとか

JQuery $ = new JQuery();
$(”ul li .hoge”).css("color", "red");

がJavaのコードでも別に良いじゃない
376デフォルトの名無しさん:2013/05/04(土) 00:37:20.94
>>373
noconflictとかでなんとかならんかね
実際そんなに問題出てる?
377デフォルトの名無しさん:2013/05/04(土) 00:39:15.03
>>375
全然よくない
本当は型によって振る舞いを変えるのは
JIT妨害の代表格みたいなものだからJSでも最悪なんだよ

でもjQueryはブラウザとHTMLの柔らかさや非互換性があるからこそ便利なもの
静的言語でやると悪いことしか産まない
378デフォルトの名無しさん:2013/05/04(土) 00:39:50.55
>>375
だよな。作れない理由が思いつかない。

>>376
noconflictは単にjQueryのエイリアスである$を使わない(jQueryだけを使う)
ってだけの意味でしか無いので、何も効果はない。
379デフォルトの名無しさん:2013/05/04(土) 00:41:11.04
>>377
具体的な理由何一つ言ってないなw
380デフォルトの名無しさん:2013/05/04(土) 00:41:20.53
>>374
C, C#, Java あたりは PC で
スクリプト言語はスマホやタブレットなのかもしれない
381デフォルトの名無しさん:2013/05/04(土) 00:41:31.07
Javaで$(”ul li .hoge”)という書き方は内部で$メソッドを定義しない限り
残念ながら出来ない
どうしても、$.$()になる
Cなら出来るだろうけどそれこそ破門レベルw
あと当然extends JQueryはそれぞれ別のクラスになってしまう
382デフォルトの名無しさん:2013/05/04(土) 00:42:49.00
>>378
名前かぶったら別の変数にして使えるじゃん
383デフォルトの名無しさん:2013/05/04(土) 00:42:57.27
jQueryはイベントハンドラとかthisの上書きとかいろいろJSならではのことやってるから
静的言語で移植するのは100%無理
ブラウザのDOM関数叩ける、V8のライブラリとして作るのならなんとかというところ
384デフォルトの名無しさん:2013/05/04(土) 00:44:09.85
>>381
$が関数名として使えないとかいう話?
使えるけど?

> $.$()になる
あぁ、staticインポート機能を知らないのか。
385デフォルトの名無しさん:2013/05/04(土) 00:45:24.42
>>382
えとね、今はプラグインのメソッド名の話してるの

$オブジェクトを別の変数で使う話してないの
386デフォルトの名無しさん:2013/05/04(土) 00:45:25.53
>>384
ああ忘れてたわ
すまん
387デフォルトの名無しさん:2013/05/04(土) 00:46:12.63
>>385
だから、プラグインのメソッド名がかぶるなら、$オブジェクトを別の変数に入れて
それぞれ使い分ければ良いだろ
388デフォルトの名無しさん:2013/05/04(土) 00:47:39.72
staticだと、それこそnoconflictができないよね
まあ何か考えれば方法があるのかもしれないが
389デフォルトの名無しさん:2013/05/04(土) 00:47:41.21
無理だって言われてるのに意地張るなよ
それともチューリング完全だからとかいうのか?
390デフォルトの名無しさん:2013/05/04(土) 00:50:57.95
>>387
お前馬鹿か?

$をhogeって変数に入れても
プラグインのメソッドは、
$にもhogeにも作られるんだよ。

$はオブジェクト、つまり参照型なんだから
コピーは作られない。
391デフォルトの名無しさん:2013/05/04(土) 00:54:19.33
>>388
noconflictもstaticもお前勘違いしてるだろ。
無理に参加しなくていいよw
392デフォルトの名無しさん:2013/05/04(土) 00:55:26.14
>>390
deep copyすればいいじゃない
393デフォルトの名無しさん:2013/05/04(土) 00:58:42.91
>>383
> jQueryはイベントハンドラとかthisの上書きとかいろいろJSならではのことやってるから
> 静的言語で移植するのは100%無理

JavaとJavaScriptでthisの扱いが違うのだからそれは当然
100%同じインターフェースで実装できるわけじゃないが
実用上困らないレベルでは実装可能。

例えばthisは、クロージャー(Javaでは匿名クラス)の第一引数にすれば良い。
394デフォルトの名無しさん:2013/05/04(土) 00:59:10.41
>>390
何がどう出来ないんだ?
単なるオブジェクトだよ?
クローンも作れるし、それぞれに独自の拡張が出来る
プロトタイプベースの言語に慣れてないのか?
395デフォルトの名無しさん:2013/05/04(土) 01:00:22.56
jQueryはJavaでは無理って言われて
ついにJavaドカタが本性を現した、の巻
396デフォルトの名無しさん:2013/05/04(土) 01:00:54.91
>>392
プラグインはjQueryにメソッドを生やす。
jQueryをコピーして作られたjQuery2にメソッドは生やさない。

jQueryに生えたメソッドをjQuery2に移し替えても
プラグインはjQuery2ではなくjQueryを参照する。
397デフォルトの名無しさん:2013/05/04(土) 01:02:33.63
まあ実際にjQueryを真似たjsoupというJavaライブラリが存在するしな。
実証されてることをうだうだ言っても意味が無い。
398デフォルトの名無しさん:2013/05/04(土) 01:03:16.21
>>393
>100%同じインターフェースで実装できるわけじゃない
>例えばthisは、クロージャー(Javaでは匿名クラス)の第一引数にすれば良い。

別に昨日が実装できるのは当たり前なんですけど?
あの簡素で柔軟なインターフェースは静的言語では困難って話をしてるんだけど
399デフォルトの名無しさん:2013/05/04(土) 01:03:40.69
http://gihyo.jp/dev/clip/01/orangenews/vol67/0001


2012年1月27日,XMLをjQuery風に操作できるJavaライブラリ「jOOX 1.0.0」が
リリースされました。jOOXはLukas Eder氏が開発したもので,流れるような
インタフェース(Fluent Interface)(注1)で記述していくことでXMLの走査や
編集が行えます。Java 5から導入されたStatic Importをうまく使っており,
非常に簡潔な記述を実現しています(リスト)。



リスト jOOXを使ったコード
Document doc = $(new File("foo.xml")).document();
Match m = $(doc).find("book").filter(ids("book1", "book2"));
400デフォルトの名無しさん:2013/05/04(土) 01:04:18.51
>>398
> あの簡素で柔軟なインターフェースは静的言語では困難って話をしてるんだけど

具体的には?
401デフォルトの名無しさん:2013/05/04(土) 01:04:39.83
>>396
プラグインAでjQueryにメソッドをはやしてから
別名変数にクローンを保存
ブラグインBでjQueryのメソッドを上書き
余裕
402デフォルトの名無しさん:2013/05/04(土) 01:05:30.54
https://code.google.com/p/joox/

// Parse the document from a file
Document document = $(xmlFile).document();

// Wrap the document with the jOOX API
Match x1 = $(document);

// This will get all books (wrapped <book/> DOM Elements)
Match x2 = $(document).find("book");

// This will get all even or odd books
Match x3 = $(document).find("book").filter(even());
Match x4 = $(document).find("book").filter(odd());

// This will get all book ID's
List<String> ids = $(document).find("book").ids();

// This will get all books with ID = 1 or ID = 2
Match x5 = $(document).find("book").filter(ids(1, 2));

// Or, use css-selector syntax:
Match x6 = $(document).find("book#1, book#2");

// This will use XPath to find books with ID = 1 or ID = 2
Match x7 = $(document).xpath("//book[@id = 1 or @id = 2]");
403デフォルトの名無しさん:2013/05/04(土) 01:05:59.81
そのjOOXとやらのプラグインはどうなってるの?
イベント操作は?
404デフォルトの名無しさん:2013/05/04(土) 01:07:39.75
// This will add a new book
$(document).find("books").append("<book id=\"5\"><name>Harry Potter</name></book>");

// But so does this
$(document).find("book").filter(ids(5)).after("<book id=\"6\"/>");

// This will remove book ID = 1
$(document).find("book").filter(ids(1)).remove();

// Or this
$(document).find("book").remove(ids(1));
405デフォルトの名無しさん:2013/05/04(土) 01:08:41.21
>>403
落ち着け
これはXMLをjQuery風に操作できるライブラリ
406デフォルトの名無しさん:2013/05/04(土) 01:08:52.25
>>396
jQueryを読み込んでから各プラグインを読み込む間
いつでも変数弄ったり自由にできるんだけど

JQ=DC(jQuery)
プラグイン1を読み込む
[jQuery1,jQuery]=[jQuery,DC(JQ)]
プラグイン2を読み込む
[jQuery2,jQuery]=[jQuery,DC(JQ)]
プラグイン3を読み込む
[jQuery3,jQuery]=[jQuery,DC(JQ)]

でぜんぶ別々のプラグインが使える
407デフォルトの名無しさん:2013/05/04(土) 01:14:14.18
>>403
イベント? Javaはブラウザじゃないんだが
一体誰がイベントを送信するんだ?
408デフォルトの名無しさん:2013/05/04(土) 01:15:37.17
イベントとブラウザかどうかは関係ないんだが
タイマー、ソケット、エラーとかいろいろ発生源はある
409デフォルトの名無しさん:2013/05/04(土) 01:17:55.92
>>380
それは汎用性という観点だろうけど、C/C++は別格

汎用性:
C/C++ >>>>>> C#, Java, JVM言語 >>>>>>>>>>>>>>>>>>>> スクリプト言語

プログラミング能力:

Lv6 => C/C++使い
Lv3-5 => C#, Java, JVM言語使い
無能力者〜Lv1 => スクリプト言語使い
410デフォルトの名無しさん:2013/05/04(土) 01:18:22.60
>>408
> タイマー、ソケット、エラーとかいろいろ発生源はある

だからなんでそれをjQuery風ライブラリで扱わないといかんの?

お前が言ってるのはsetTimeoutでできることを
jQueryでやりましょうって言ってるようなもんだよ。

jQueryが扱う対象はDOMのイベント
DOMのイベントはブラウザが発生させる。
411デフォルトの名無しさん:2013/05/04(土) 01:18:39.92
Javaだとメソッドの引数に無名関数渡すようなのはできるのかね
jQueryのメソッドにはそういうのけっこうあるんだが
412デフォルトの名無しさん:2013/05/04(土) 01:19:00.89
イベントループはユーザーの操作とかと関係ない
シングルスレッド、IOフリーのJSと相性がいいだけ
413デフォルトの名無しさん:2013/05/04(土) 01:19:09.33
クラス相当のものも全部単なるオブジェクト
うひょおおおかっこいい
さすがJavascriptすげーw
クラスをコピーしたりできない他の言語とはひと味違うぜw
414デフォルトの名無しさん:2013/05/04(土) 01:19:26.74
>>411
匿名クラスで可能。
415デフォルトの名無しさん:2013/05/04(土) 01:20:27.00
>>414
jOOXの例で書いてみてくれよ
416デフォルトの名無しさん:2013/05/04(土) 01:21:22.65
>>414
無理
真のクロージャじゃない

あと、Javaの場合jsonで渡すのが難しいだろうね
それこそ全部文字列にしないと
417デフォルトの名無しさん:2013/05/04(土) 01:21:23.43
イベントとか言ってる人はXMLとかHTMLとかDOMの区別がつかんのだろう
418デフォルトの名無しさん:2013/05/04(土) 01:21:30.25
>>408
お前が言ってる云々は意味がわからないな
自分は誰がイベントを送信するんだとか
イベントループをまったく理解してない頓珍漢な言葉に反応しただけですが?
419デフォルトの名無しさん:2013/05/04(土) 01:21:34.90
いや最近の静的言語はより安全だしIDEのサポートもあるから難易度は低いよ
スクリプト言語でちゃんとプログラミングするのはC++並みに難しい
まあ、不等号を間抜けに並べる奴に正論は通じないけど
420デフォルトの名無しさん:2013/05/04(土) 01:23:39.70
まあJavaScriptはスクリプト言語の王様だかな
妬み、文句を付けたがる落ち目な言語開発者の気持ちはわかるw
421デフォルトの名無しさん:2013/05/04(土) 01:23:48.47
>>415
サンプルコードを見たいならテストコードを見るのが一番手っ取り早いぞ。一つ賢くなったね。

https://github.com/jOOQ/jOOX/blob/master/jOOX/src/test/java/org/joox/test/JOOXTest.java

830行
@Test
public void testMap() throws Exception {
assertEquals(
Arrays.asList("1", "2", "3", "4", "1", "3", "1", "2"),
$.find("book").map(JOOX.ids()));

assertEquals(
Arrays.asList("Amazon", "Roesslitor", "Orell Fuessli"),
$.find("library").map(JOOX.attrs("name")));

assertEquals(Arrays.asList(0, 1, 2, 3), $.children().first().find("book").map(new Mapper<Integer>() {
@Override
public Integer map(Context context) {
assertEquals(context.element(), context.match());
assertEquals(context.elementIndex(), context.matchIndex());
assertEquals(context.elementSize(), context.matchSize());

assertEquals(4, context.matchSize());

return context.matchIndex();
}
}));
}
422デフォルトの名無しさん:2013/05/04(土) 01:25:00.06
なにこの
  
  糞

みたいな言語
423デフォルトの名無しさん:2013/05/04(土) 01:25:11.88
>>419
「ちゃんとしたプログラミング」が必要な場面で
スクリプト言語を選ぶのは無能

わざわざ遅い言語で書く必要性がない
424デフォルトの名無しさん:2013/05/04(土) 01:25:40.10
>>421
本当にできるもんだなぁw
425デフォルトの名無しさん:2013/05/04(土) 01:26:16.00
JavaScriptの速度とかJAVA並なんですけど?
426デフォルトの名無しさん:2013/05/04(土) 01:26:28.29
結局プラグインは何一つなしと
427デフォルトの名無しさん:2013/05/04(土) 01:27:20.30
>>421
うひょ〜〜〜w


ワロス
428デフォルトの名無しさん:2013/05/04(土) 01:27:44.41
>>416
> あと、Javaの場合jsonで渡すのが難しいだろうね
> それこそ全部文字列にしないと

ぷっ。当たり前じゃね?
jsonはJavaScriptの文法から生まれたもので、
JavaScript以外じゃ文字列として渡すしかねーよ。
429デフォルトの名無しさん:2013/05/04(土) 01:27:59.77
>>423
なんのためにスレタイを変更したと思う?
今すぐに死んだほうが良い知的障害を寄せ付けないため
430デフォルトの名無しさん:2013/05/04(土) 01:28:03.91
JS厨まだ居座ってるんだな
スレタイからRuby消して最初にJavaScript持って来てるし
431デフォルトの名無しさん:2013/05/04(土) 01:28:50.25
>>426
プラグインはjQueryの設計ミスなんでどうでもいい。
432デフォルトの名無しさん:2013/05/04(土) 01:29:46.37
>>423
JSはasm.jsとかParallels.jsで今年末にはC#並の速度の言語になってるよ
今でもJAVAに勝ったり負けたりするレベルにはきてるし
433デフォルトの名無しさん:2013/05/04(土) 01:30:10.70
>>430
まあ荒らしが続くようならJAVAドカタと同じ道を辿るだけ
434デフォルトの名無しさん:2013/05/04(土) 01:31:08.74
JsonはJavaでも、リフレクションを使って生成すれば何とかなる気がする
プラグイン側がクラスを用意する必要があるがな
ただ、静的言語でこれやるのは破門レベルとされてるから
それをやる奴は出てこないだろうw
435デフォルトの名無しさん:2013/05/04(土) 01:31:12.27
>>433
それが狙いw
436デフォルトの名無しさん:2013/05/04(土) 01:31:15.95
>>428
静的言語でjQueryの代わりを作るのが大変だという話だろ
当たり前でも大変なのは変わりねえよ
437デフォルトの名無しさん:2013/05/04(土) 01:31:41.69
>>431
プラグイン無しのJQueryとか考えられないんだが
438デフォルトの名無しさん:2013/05/04(土) 01:32:53.25
>>434
> JsonはJavaでも、リフレクションを使って生成すれば何とかなる気がする

てんさいがいる気がする。


天災がw
何を考えてるのかさっぱりだね。
439デフォルトの名無しさん:2013/05/04(土) 01:34:07.78
>>432
馬鹿かw
C#並になるわけないわw
JITコンパイルはコードによっては逆に遅くなることもしらない低能JS厨
440デフォルトの名無しさん:2013/05/04(土) 01:34:51.79
>>434
素直にC使えよ
JAVAとか文字列の扱いが一番糞なんだから
jQueryの代わりなんぞできた所で激重で使えるわけない
対抗できるのはCくらいのもんだ
441デフォルトの名無しさん:2013/05/04(土) 01:35:40.80
>437
普通にクラスを作ればいいだけだよ。

普通にjQueryオブジェクトを引数にして
jQueryオブジェクトを返すメソッドを作れば
それがプラグインになる。

メソッドチェーンができないだけ。
442デフォルトの名無しさん:2013/05/04(土) 01:35:43.27
ご存知の通り、JS厨が語る未来は現実を完全に無視したSFだから
443デフォルトの名無しさん:2013/05/04(土) 01:36:42.31
>>439
asm.jsはJITじゃないんですけど?
それにasm.jsはマイクロベンチや物理演算ベンチではすでにC#並になってるの知らないの?
444デフォルトの名無しさん:2013/05/04(土) 01:38:57.03
>>439
JITに限界があるからAOTにするのがasmだろ
知ったか乙
445デフォルトの名無しさん:2013/05/04(土) 01:39:09.76
>>443
JITじゃないならなんなんだよ
AOTコンパイラあるのかよ
446デフォルトの名無しさん:2013/05/04(土) 01:39:34.14
ぶっちゃけメソッドチェーンは糞だと思うが、
Javaでプラグインをメソッドチェーンで使いたいなら

>>421のJavaライブラリを参考に)
$.children().first().find("book").plugin(MyPlugin.class).map( 〜略〜

ってやれば出来るだろうね。

これだとクラス名は名前空間があるから
かぶることはないし。
447デフォルトの名無しさん:2013/05/04(土) 01:41:18.33
>>438

org.apache.commons.lang3.builder.ReflectionToStringBuilder

>>446
よくわからんが、毎回pluginなんちゃら.classとか書かないと駄目なのか?
448デフォルトの名無しさん:2013/05/04(土) 01:42:09.78
>>447
書かなくていいよ。
補完されるw
449デフォルトの名無しさん:2013/05/04(土) 01:42:32.76
>>444
AOTでも型が確定してなければ遅いし

>>443
特定のベンチだけ速くてもいみない
C#並ならソースだしてみろよ

あと「ベンチマークはXより速い」ってのは
実績のない言語のお決まりの宣伝パターンなんだよな
node.js推してる奴もそればっかり言ってたわ
450デフォルトの名無しさん:2013/05/04(土) 01:42:39.16
補完って、見た目変わらんのかw
ワロスw
451デフォルトの名無しさん:2013/05/04(土) 01:42:39.53
JS厨よお、ちゃんと使い物になってる言語の話はできないのかい?
Googleの天才言語とか普及してないベンチとか大好きだな。頭大丈夫か
452デフォルトの名無しさん:2013/05/04(土) 01:44:37.26
>>449
asm.jsは型が確定してる
453デフォルトの名無しさん:2013/05/04(土) 01:45:38.57
>>443
ある、というか最近出た
まだ完璧ではないけど
一部計算をマルチスレッドでさせるParallels.js(こっちはまだまだ)と合わせて
JAVAのポテンシャルを抜くことは確実

JAVAはプリミティブ型の扱いを中間コードにする仕方が悪いらしく
そこの部分ではもうだめ

>>449
型を確定させる書き方をするんだよ
a = a|0
ならaはintみたいに
ちったあ調べろ
http://j15r.com/blog/2013/04/25/Box2d_Revisited
454デフォルトの名無しさん:2013/05/04(土) 01:47:25.72
JSが速くなるわけじゃねーじゃん
型を指示する魔改造なんてほかにもある
ただの糞言語
455デフォルトの名無しさん:2013/05/04(土) 01:49:17.92
>>450
ん? pluginってメソッドがそんなに気になる?
これはjQuery UIでも用いられてる方法なんだけど
あっちは.pluginではなく.dialogだけどね。

jQuery UIは機能が多すぎ&似ているため、
jQueryプラグインとしてjQueryオブジェクトにメソッドを生やすと
確実にメソッド名がかぶるだろう。

だから、$( ".selector" ).dialog( "option", { disabled: true } );
のように、.dialogメソッドを介して、.optionメソッドを呼び出している。

自分でjQuery UIのwidgetを作ればわかるよ。
自分で作ったwidgetクラスのメソッドは、このように
dialogメソッドを介して呼び出すことになる。
456デフォルトの名無しさん:2013/05/04(土) 01:49:25.67
C#の型推定の方が万倍マシな件について
457デフォルトの名無しさん:2013/05/04(土) 01:50:31.14
注目を集めるために実績のない言語が宣伝するのは決まってベンチマーク
そのベンチマークもねつ造でした

http://d.hatena.ne.jp/skymouse/20130323/1363979203
boaoa 2013/03/23 12:52
asm.js、大変興味あるのですが
現在asm.js用のサンプルコードをChromeで動かすと
普通のコードよりなんと60倍も遅くなりました
+等の演算子がJITに悪影響を与えるみたいです
そして、そのasmコードをnightlyビルドで動かしてみても、
普通に書いた時コードのChromeと全然変わりませんでした


普通のコードよりなんと60倍も遅くなりました
普通のコードよりなんと60倍も遅くなりました
普通のコードよりなんと60倍も遅くなりました
458デフォルトの名無しさん:2013/05/04(土) 01:50:54.69
asm.jsは型を確定させ、GCを止め、仮想メモリを弄らせるという
鬼畜サブセットだから当然速度はC系に追いつく
当然これを全部で使う野郎はいないだろうが
ライブラリ、特に物理演算やゲームエンジンがサポートしたり
関数単位で使えるから「要所」で使うことで劇的にパフォーマンスがよくなる
459デフォルトの名無しさん:2013/05/04(土) 01:52:33.71
JITは面白いが型指定は周回遅れ
460デフォルトの名無しさん:2013/05/04(土) 01:54:29.29
半日でここまで来るとかお前ら暇だな
461デフォルトの名無しさん:2013/05/04(土) 01:55:21.25
JavaScript使いと
それに嫉妬するその他のスレになってるね。
462デフォルトの名無しさん:2013/05/04(土) 01:56:52.81
>>455
とりあえずそれ別にoptionメソッドじゃないだろ
optionセットしてるだけ

Javaでやるならこうか
$( ".selector" ).plugin(Dialog.class).option(new Option().disable("true"))
まあちょっと冗長だが目をつぶれないこともないか
463デフォルトの名無しさん:2013/05/04(土) 01:59:00.83
>>457
それ、ガチで俺が書いた
興奮気味に書いたからやや大げさだった

FF22じゃなくて23で試してみたらちゃんと早くなったからそこは大丈夫
V8が対応するまで使う気が起きないのは言うまでもないが
それはどんな新機能でも同じ

まずはFFが実験台となって
Parallels.jsとともに精査してほしい
そしてES.nextとぶつかるようなことにならなければ
比較的V8での実装は早いんじゃないかな?

流石に5倍とか早くなるのは大きい
それを書く前に既にV8グループで挙がってたし
早ければ1年後にはってとこかな?

ES7に入る可能性もなくもないかも
そうなったら逆に遅くなるかな
464デフォルトの名無しさん:2013/05/04(土) 02:01:31.38
JS厨が散々すごいと吹聴してた未来ってこれかよ
互換性のための無理やり感がダサすぎw
もうJS厨のこと何も信じられない(胡散臭すぎてはじめから何も真に受けてないけど
465デフォルトの名無しさん:2013/05/04(土) 02:01:49.13
>>463
5倍速くなると言ってもベンチマーク用に用意した
特殊なシチュエーションでそれだけ速くなるだけだと思う
正直、平均的に見たらもう素のJavascriptが5倍程度で収まる気がする
466デフォルトの名無しさん:2013/05/04(土) 02:03:29.01
なぜJS厨は息をするように嘘をつくのか
467デフォルトの名無しさん:2013/05/04(土) 02:03:53.66
じゃあ他の言語に立派な未来があるのかというと「?」
これはもう嫉妬にしか見えない
468デフォルトの名無しさん:2013/05/04(土) 02:05:49.77
型の指定みたいな言語の根幹にかかわるところは
言語の仕様としてきっちり定義しないとダメにきまってる。
asm.jsのようにライブラリで魔改造して別言語にするアプローチは腐ってる

互換性のないコードが一時的に氾濫するだけ。
その後はだれも使わなくなる。
469デフォルトの名無しさん:2013/05/04(土) 02:07:51.88
>>465
特殊なシチュエーションでいいのよ?
だってJSの速度が気になるのって特殊なシチュエーションだけだし

とくに3D周り
WebGLはなんと行列変換をJSでやらないといけないのよ
気持ち悪いでしょ、なんでネイティブで実装してくれないのって
でもasm.jsは特に型付配列を使った演算が高速になるからまさにぴったし

あと個人的にはJSでボードゲーム作ってるんだけど
ほんと、1%でも早くなって欲しいから期待してる
470デフォルトの名無しさん:2013/05/04(土) 02:08:05.73
>>467
なんでキチガイJS厨の「?」な希望的観測に嫉妬しなきゃならんの?頭大丈夫?
471デフォルトの名無しさん:2013/05/04(土) 02:08:30.85
>>462
少し例が悪かったね。自分も少し間違ったし。
optionはメソッド。これは変わらない。

http://nbnote.jp/blog/2011/12/jquery-widget-1/
一部抜粋

// ウィジェット定義
$.widget('test.myWidget', {
 // パブリックメソッド
 setContent: function(str) {
  this.options.content = str;
  this._update();
 }
}

この独自作成ウィジットのsetContentメソッドを呼び出す方法はこれ。
$('#myWidget').myWidget('setContent', 'piyo');

× $('#myWidget').setContent('piyo');
こうではない。


$( ".selector" ).dialog( "option", { disabled: true } );
これも同じで、dialogウィジットのoptionメソッドを呼び出す書式。
472デフォルトの名無しさん:2013/05/04(土) 02:10:22.97
JSアンチは自分の言語を誇らしげに語ろうとはしない
なぜ?
473デフォルトの名無しさん:2013/05/04(土) 02:10:57.21
asm.jsのベンチマークのグラフは、素のFFが軒並み素のChromeに大幅に勝ってる時点で
都合のいい状況選んだんだろうな感が満載なんだがw
474デフォルトの名無しさん:2013/05/04(土) 02:11:14.94
単にCと相性が悪い糞仕様を自作の糞言語で尻拭いしてるだけじゃねーか
糞JS固有の問題とかどうでもいいし特に優位性もない
475デフォルトの名無しさん:2013/05/04(土) 02:11:24.93
>>472
叩くのが好きで、叩かれるのは嫌いだからに決まってるだろw

ほら俺の言語を叩いてみろ。何の言語かは教えないけどな!
476デフォルトの名無しさん:2013/05/04(土) 02:12:01.08
>>468
asm.jsはライブラリなんかじゃないよ?
asm.jsという名前がちょっとまぎらわしいかね
言語仕様をきっちり決めた新しい言語で、JSとも互換性があるっていうだけ
477デフォルトの名無しさん:2013/05/04(土) 02:12:54.41
Cソースをemscriptenでasm.js変換したものならかなり有意な効果がある
V8のasm.js対応はわりと簡単そう
これが普及してしまいそうだとAppleとMSはけっこう焦るだろうなあ
478デフォルトの名無しさん:2013/05/04(土) 02:13:15.67
asm.jsはマジキチだが
逆にそれがいいw
ただし現状では、100行を超えるコードのasm化は人間には無理
今はIDEもデバッガも皆無
早急に整備すべし
479デフォルトの名無しさん:2013/05/04(土) 02:13:59.86
>>472
誇らしげに嘘八百を並べる方が理解不能

>>475
さっさとpython叩けよ
あ、関数内関数のスコープがおかしい、でしたっけ?
JSがおかしいだけだったwww
480デフォルトの名無しさん:2013/05/04(土) 02:15:16.88
>>477
> これが普及してしまいそうだとAppleとMSはけっこう焦るだろうなあ
Appleはハード売れなくなるから焦るってのはわかるが、
MSはなんで焦るの?
481デフォルトの名無しさん:2013/05/04(土) 02:15:43.78
asm.jsはできるだけ機械変換するものと思っていたほうがいい
asm.jsを手で書くのはCでasmを書くのと近い
482デフォルトの名無しさん:2013/05/04(土) 02:16:55.81
>>477
簡単そうって何?また希望的妄想ですかw
それしかないな、本当にそれだけ。自分でもそう思うでしょ?
自分の馬鹿さ加減が嫌にならない?
483デフォルトの名無しさん:2013/05/04(土) 02:18:27.03
出たよ。トランスレータがあるからOK
デジャブ感が半端ない
484デフォルトの名無しさん:2013/05/04(土) 02:18:37.80
Pythonは良い言語だから叩かないわ
ブラウザでインタラクティブなことが出来たら良いんだけどね

ちなみにJavascriptの最近のベンチマークな
http://d.hatena.ne.jp/satosystems/20121228/1356655565
485デフォルトの名無しさん:2013/05/04(土) 02:19:31.05
>>473
マイクロベンチではFFの方が早い
V8はアプリ単位になると早くなる
http://kripken.github.io/mloc_emscripten_talk/#/27
http://kripken.github.io/mloc_emscripten_talk/#/28
486デフォルトの名無しさん:2013/05/04(土) 02:20:02.69
>>483
トランスレータがあるからOKなんじゃなくて、
そもそも最初からトランスレーターで変換することを想定してるの
それがasmという名前がついてる理由
487デフォルトの名無しさん:2013/05/04(土) 02:22:39.48
>>484
すごいな

http://d.hatena.ne.jp/satosystems/20121228/1356655565

さて、ぶっちぎりで速いのが Scheme48 のコンパイルバージョン。
なんと 0.004sec。ただこれはタネがあって、コンパイル時に関数を評価して
フィボナッチ数を算出しているためです。したがって、コンパイルがインタプリタで
実行するのと同程度の時間がかかります。ただ、コンパイル時に評価できる
関数は評価してしまうというアプローチは関数型言語の特性をうまく生かした良い方法だと思います。

Scheme48 を除いたら、Java がトップでした(追記:[2012/12/30] Haskell の
型宣言を指定したら、Jhc に抜かれてしまいました)。JIT が効いているのは当然として、
Java VM の動作や実装を熟知している身としては、よくこんな短時間で
ブートストラップクラスを初期化できるものだと感心してしまいま
Oracle の最新の Java VM を使えば、速くなるんじゃないでしょうか。いやはや。
488デフォルトの名無しさん:2013/05/04(土) 02:23:09.04
メンヘラの妄想に付き合うの疲れるなあ
脱洗脳のカウンセラーとかの辛さがわかる
現実に生きてない。都合の悪い話が聞こえてない
さっさとCのコードをこの場で変換してみせろ!
489デフォルトの名無しさん:2013/05/04(土) 02:23:51.79
C (gcc -O2) 1.18
JavaScript (node.js) 2.62

速いwww
もう下手な静的言語並みになってるw
490デフォルトの名無しさん:2013/05/04(土) 02:24:53.21
たしかV8のグループでは
Node.jsとかが挙がってた

ブラウザの中だけで考えると押しが弱いけど
これからJSは広がっていくし
例えば昨今ではモバイルOSの「ネイティブ」として使われ始めたところを見ると
V8も気にはなると思う

あと、asm.js部分は基本的に特定のエンジンに依存しない形になってるらしい
というか既存のコンパイラの上にasm.jsコンパイラが乗る形
だから多分V8での実装は困難ではないはず
491デフォルトの名無しさん:2013/05/04(土) 02:26:40.56
もう希望的観測はいいから…
お願いだから確認した事実を喋ってくれ、お願いだから…
492デフォルトの名無しさん:2013/05/04(土) 02:27:54.77
確認した事実・・・。

JavaScriptはここまで広く使われている。
493デフォルトの名無しさん:2013/05/04(土) 02:27:55.09
>>489
単純な四則演算はもう十分に早いよ
でも実物になるとまだCの10倍遅い

JITの限界とか、GCとか、メモリアクセスとかがネックになってるらしい
もうここいらで限界みたい
そこを改善して実物でもCの2倍の実行時間で済ませようとするのが
asm.jsサブセット
494デフォルトの名無しさん:2013/05/04(土) 02:29:12.50
長文で妄想垂れ流したいだけならブログでいいと思うよ
デタラメで本人すら確認のしようもない、再現性もないことで議論とか無理だし
だからこそいくらでも大きなことが言える。ログが誇大妄想で埋まってる
495デフォルトの名無しさん:2013/05/04(土) 02:29:12.84
>>44
f(i % 2) {
496デフォルトの名無しさん:2013/05/04(土) 02:30:58.35
嘘をついているという自覚がないっぽいのが本当に怖い
497デフォルトの名無しさん:2013/05/04(土) 02:31:10.91
確認した事実 ↓
Python (CPython) 53.651
498デフォルトの名無しさん:2013/05/04(土) 02:32:07.97
C言語というJavaScriptとは全く違った文法から
asm.jsの力を借りてブラウザで実行するコードを生成できる

ということは、JavaScriptを改良した言語から
asm.jsの力を借りてブラウザで実行するコードを生成できるということでもある。

JavaScriptを進化させるのにブラウザのバージョンアップを
またなくて良くなる世界ができつつある。
499デフォルトの名無しさん:2013/05/04(土) 02:33:27.08
でもこれだけJSの高速化が盛んになってくると気軽に書けなくなる

if(i % 2)

if(i % 2 == 1)
ってどのくらい違うのか

でも将来の賢いコンパイラにとってはどちらも同じ意味にとられるかもと考えてしまう
これは大げさな例だけど本当に難しい
500デフォルトの名無しさん:2013/05/04(土) 02:36:29.15
昔はVBが一世を風靡していたとき、
GUIは作るのが簡単なVBで
速度が必要な場合はC++でDLLを作る。
という手法が使われていた。

それと同じ構図がブラウザの世界にもできつつある。
JavaScriptはブラウザで動くGUIを作るのが簡単である。
だからJavaScriptでの開発というのはこれからもメインになるだろう。
そして速度が必要な場合のみ、他の言語で開発することもある。
501デフォルトの名無しさん:2013/05/04(土) 02:38:33.70
>>493
単純な四則演算ではない実物ってのがよくわからない
再帰のフィボナッチはスタック使いまくりだよね
スタック領域のアクセスは良いけどヒープが駄目ってこと?
502デフォルトの名無しさん:2013/05/04(土) 02:39:23.21
V8の登場以降からブラックボックス度は高まりつつあるよね

今では内部的にintを使うとか当たり前だし
それを考えると

for(i=2^31-1; i>=0; ++i) //iはfloat型と推論される

for(i=2^31; i>=0; ++i) //iはint型と推論される
の違いとかきになる

あとなんかfor文は結構書き方によって最適化されてるらしい
iが0からじゃなくて10からとかだと特別な意味があるのではと思われるという「噂」もあるくらい
503デフォルトの名無しさん:2013/05/04(土) 02:40:28.29
まーた始まった。無知が自分に酔いしれて一人妄想を語る
テキトー言うだけならブログでやれよキチガイ
504デフォルトの名無しさん:2013/05/04(土) 02:41:51.85
もうスレ半分使っちまったのかw
505デフォルトの名無しさん:2013/05/04(土) 02:42:16.55
>>500には言葉が通じず対話が不可能で一切の意味のあるレスをしないから害悪でしかない
506デフォルトの名無しさん:2013/05/04(土) 02:44:57.13
>>501
すまん、正直にいうと詳細はわからん

でもこの手のマイクロベンチだといつも2,3倍だが
大きなベンチになるとCの十数倍になるのを多く見てきた

http://kripken.github.io/mloc_emscripten_talk/#/27
http://kripken.github.io/mloc_emscripten_talk/#/28

asm.jsの説明によると
型チェックやGCが遅くしてる原因らしい
それでたしかasmはMath関数にも手を入れたり追加してるんだっけか
そのあたりがネックなんだと思う

あとasmでは型付配列をよく使う
そこもいくらか最適化されてるらしい
507デフォルトの名無しさん:2013/05/04(土) 02:45:55.49
もう嘘しか言わないキチガイJS厨の相手をするのはよそう。時間の無駄だ
中身は空っぽの荒らしスクリプトなんだから。もちろんJSで記述されててバグがてんこ盛り
508デフォルトの名無しさん:2013/05/04(土) 02:48:02.13
@A = 1..10;
@x = map {$_ * 2}
     grep{$_ % 2 == 0} @A;
509デフォルトの名無しさん:2013/05/04(土) 02:49:07.77
確かに>>500はちょっと間違ってるな
VBは遅かったが、Javascriptは十分に速い
速度が必要な場合にもJavascriptを使うことが多くなる
他の言語で書くようになるとか妄想はブログでやって欲しい
510デフォルトの名無しさん:2013/05/04(土) 02:49:18.23
JSの話をやめた所で他の言語の話をする奴がいなさそうなんだが……
511デフォルトの名無しさん:2013/05/04(土) 02:51:50.40
>>507
> もう嘘しか言わないキチガイJS厨の相手をするのはよそう。時間の無駄だ

消える宣言した以上、ちゃんと消えろよな。

レスなんかしたら見苦しいぞ。



よし、キチガイが消えたw
512デフォルトの名無しさん:2013/05/04(土) 02:51:58.75
JavaScriptはあとはメモリアクセスだよなあ
せめてピットボードを用意して欲しい
その辺が自由になれば巨大数の問題とか解決できるのに
あとは演算子オーバーロードだな
513デフォルトの名無しさん:2013/05/04(土) 02:53:38.99
>>510
別に無理に伸ばす必要ない
JS厨が荒らすだけのスレならJSスレに行ってくれ。邪魔
特にブラウザの話しかできないやつ見ると明らかに他のスクリプト言語から浮いてる
というかWebは板違いじゃね。日常で使うスクリプトという話は皆無
もういいよJSの話は。次スレから外して問題ない
イキイキと荒らす馬鹿が目障り
514デフォルトの名無しさん:2013/05/04(土) 02:54:47.54
ピットボード?
さっきのボードゲーム作ってる奴でビットボードと間違えたとか?
515デフォルトの名無しさん:2013/05/04(土) 02:55:07.15
スクリプト言語からWebやWebサーバーを取ったら……
516デフォルトの名無しさん:2013/05/04(土) 02:55:14.34
>>508
@A=1..10;
@x=map{$_ %2 ? () : $_*2} @A;

再帰や遅延評価を使うまでもないリスト処理は面白くないんだよね…
517デフォルトの名無しさん:2013/05/04(土) 02:55:57.32
Webはちゃんと板があるし
ブラウザは共通の話題ないし比較もできない
518デフォルトの名無しさん:2013/05/04(土) 02:56:16.36
>>513
> JS厨が荒らすだけのスレならJSスレに行ってくれ。邪魔

毎回思うんだけど、そんなこと言っても
いうこと聞くわけ無いだろう?
519デフォルトの名無しさん:2013/05/04(土) 02:57:08.98
>>513を苦しませるには
JSの話題をどんどんやったほうがよさそうだw
自分からやられて嫌なことを語るなんて
馬鹿だなぁ。
520デフォルトの名無しさん:2013/05/04(土) 02:57:27.51
>>518
そうだよ。JS厨は死ぬまで己の馬鹿を晒し続ける
521デフォルトの名無しさん:2013/05/04(土) 02:57:35.07
すまんww
ビットボードと入力してもピットボードになってしまう
GoogleIME
522デフォルトの名無しさん:2013/05/04(土) 02:57:58.03
>>513
普通に言語の速度とか、node.jsとか、科学計算とか、クロージャとか
内包表記とか、Javaの話とかPythonの話とか
ブラウザ以外の話も豊富じゃん
523デフォルトの名無しさん:2013/05/04(土) 02:59:45.56
>>522
奴には見えてないのですよ。
標的意外なにもね。
524デフォルトの名無しさん:2013/05/04(土) 02:59:51.38
>>519
論破されたから悪意を持って荒らすだけのゴミになったんだよね
ゴミすぎる自分をどう評価してる?いきる価値ないと思うよね。死んで良いよ
525デフォルトの名無しさん:2013/05/04(土) 03:01:02.15
というか他の言語って何が原因で遅くなってるの?
ただ高速化の需要が少ないだけ?
JSでエンジン作った方が早そうな勢いなんだけど
526デフォルトの名無しさん:2013/05/04(土) 03:01:08.04
>>524
死んでいいよと言われても死ぬわけないしw

お前の願い、死んでほしい?

残念、お前の願いは棄却されましたぁぁぁw
527デフォルトの名無しさん:2013/05/04(土) 03:01:51.39
>>523
本当に妄想以外で議論が出来るなら、JS厨はなんで嘘で荒らし続けるわけ?
どうせJSのことも何も知らないんだろ。幻想を語るだけなら黙ってろ
528デフォルトの名無しさん:2013/05/04(土) 03:02:16.46
>>524
端から見てるとお前も悪意持ってて怖いわw
今までJS厨は人の中傷はあまりしてなかったが、519の人が
やり始めたな
529デフォルトの名無しさん:2013/05/04(土) 03:02:28.00
お前が嘘だというのが
間違いなだけだろ。
冷静になれよ。
530デフォルトの名無しさん:2013/05/04(土) 03:04:04.81
http://d.hatena.ne.jp/satosystems/20121228/1356655565
とかみるとPerlがこんなに、PHPよりも遅いのが意外
Perlと言えば歴史ある言語だし
その正規表現は今なお他の言語(JSも)に影響を与えている
素晴らしい言語なのになぜ計算は遅いのか?
531デフォルトの名無しさん:2013/05/04(土) 03:05:24.12
>>530
だって開発者がPerl6なんてやってて
Perl5は放置状態だもの。
532デフォルトの名無しさん:2013/05/04(土) 03:06:00.32
>>529
そうだな、嘘でも本当でもない、不確定のゴミ情報
というかお前の存在自体がゴミ。1つもまともな情報を出さずにオナニーしてるだけ
醜すぎるわ。反論できる?
533デフォルトの名無しさん:2013/05/04(土) 03:06:22.45
>>530
何かどうでもいい話
性能なら別の手段つかうさ
534デフォルトの名無しさん:2013/05/04(土) 03:07:28.74
>>532
面倒くさいやつだなw

お前はキチガイ。反論できる?
535デフォルトの名無しさん:2013/05/04(土) 03:07:44.25
>>525
他の言語も頑張ってる
V8作ったGoogleが天才すぎるだけ
536デフォルトの名無しさん:2013/05/04(土) 03:10:20.95
>>534
できないね。お前みたいなゴミカス荒らしに唯一構ってるんだからな
普通の人間はヤバいキチガイを見たら邪魔だなあ、早くどっか行けと思いつつ関わらない
お前はそう思われてるんだよ。分かるか?なんで荒らすんだ。妄想なら他所でやればいいじゃないか
537デフォルトの名無しさん:2013/05/04(土) 03:11:18.10
Googleが頑張ってほかの言語エンジンも改良すれば世界が良くなるな
538デフォルトの名無しさん:2013/05/04(土) 03:11:53.35
>>536
残念、またしても
お前の願いは叶えられなかったw
539デフォルトの名無しさん:2013/05/04(土) 03:12:10.97
V8の開発してるのは以前はSunでJavaのJITのVMの開発で活躍してた人だと思った
JIT関連のノウハウで圧倒的に先行してるんだろう
540デフォルトの名無しさん:2013/05/04(土) 03:12:54.30
>>536
ならスルーしろよ
というか、Google天才とか言ってるのはそいつじゃねーからw
お前が誰彼構わずアタックするからこうなっちゃんたんだぞ
541デフォルトの名無しさん:2013/05/04(土) 03:13:46.51
>>536
北風と太陽

よそにいけといえば言うほど
このスレにいることになる。

逆にここにいろと言ったほうがいいよ。

そう言ったとしてもここにいるわけだけどなwww
542デフォルトの名無しさん:2013/05/04(土) 03:14:51.46
>>538
俺の願いじゃなくて、みんなの願いね
心配しなくても、お前の願いであるみんなの迷惑になる行為を続けることは毎日叶えられる
良かったな。もう誰もお前がまともなんて思わない
JS厨の詐欺にはかからない
543デフォルトの名無しさん:2013/05/04(土) 03:15:46.09
アンチJS厨が一番うざい。
だからみんな誰もお前にレスしてないんだぞ?
544デフォルトの名無しさん:2013/05/04(土) 03:15:54.79
Goの開発もベル研にいた有名な人たちが参加してるね
545デフォルトの名無しさん:2013/05/04(土) 03:16:24.75
まとも面したJS厨がいかにキチガイか周知できれば十分
546デフォルトの名無しさん:2013/05/04(土) 03:16:30.42
さて、またJavaScriptの話でもしますか。
547デフォルトの名無しさん:2013/05/04(土) 03:19:07.64
最近どんなプラットフォームでも
HTML+CSS+JavaScriptを使うことが標準的になっている。

これらは一例。

Google Chrome add-ons
Mozilla XUL apps and Firefox extensions
Firefox OS apps
Chrome OS apps
Windows 8 Store (“Modern/Metro UI”) apps
BlackBerry 10 WebWorks apps
PhoneGap/Cordova apps
Apple UIWebView class
Microsoft WebBrowser control
node.js (combined with jsdom or similar)
548デフォルトの名無しさん:2013/05/04(土) 03:20:29.60
>>544
各会社から、有名な天才達がGoogleに集まってきているってことだな
Pythonの作者もちょっと前までGoogleだったらしい
今は脱退したようだが
549デフォルトの名無しさん:2013/05/04(土) 03:23:46.29
現在広く普及している、スマホ、タブレットはもちろんのこと
テレビでもJavaScriptが動く時代だからな。
550デフォルトの名無しさん:2013/05/04(土) 04:19:23.91
例のアンチが消えた途端静かになったなw
551デフォルトの名無しさん:2013/05/04(土) 04:25:52.97
なんか寂しいな
俺も寝るか
552デフォルトの名無しさん:2013/05/04(土) 04:42:23.52
どんな言語を使おうと避けられないウェブ化によってHTMLが
ユーザーインターフェースになるのは避けられなかったわけで。

jQueryが一番うまくHTMLを扱えたことが
JavaScriptの大ヒットに繋がったんだろうな。
553デフォルトの名無しさん:2013/05/04(土) 05:16:59.66
多分Googleのお陰が50%だと思う
やっぱり再注目のきっかけになったのは
検索とかマップのAjaxだし
554デフォルトの名無しさん:2013/05/04(土) 07:19:47.60
>>539
そんな奴があんな中二っぽいコード書くのか?
555デフォルトの名無しさん:2013/05/04(土) 07:27:41.67
>>554
どんなコード?って聞かれて
答えられないなら、そんなこと言い出すなよ
556デフォルトの名無しさん:2013/05/04(土) 09:13:59.47
>>530
PythonでCython使って書いたら相当速くなった(53.98 -> 2.63)
こんな感じに、Perlにも高速化の手段があるんだろう

ソースコードはこれ

cimport cython

cdef fib(int n):
    if n < 2: return n
    return fib(n - 2) + fib(n - 1)

print(fib(38))



実行結果はこれ(CPython版との比較)

$ time python fib.py
39088169
python fib.py  53.82s user 0.04s system 99% cpu 53.983 total

$ time python fibc.py
39088169
python fibc.py  2.61s user 0.02s system 99% cpu 2.635 total
557デフォルトの名無しさん:2013/05/04(土) 09:16:22.92
さすがに悔しいからってPythonじゃない言語を持ち出されても
「int n」でバレるぞw
558デフォルトの名無しさん:2013/05/04(土) 09:17:55.49
せめてCythonでググれよ……
559デフォルトの名無しさん:2013/05/04(土) 09:22:18.87
wikipediaより
>Cython は、C言語によるPythonの拡張モジュールの作成の労力を軽減することを
>目的として開発されたプログラミング言語である。
>その言語仕様はほとんど Python のものと同じ (上位互換) だが、Cの関数を直接呼び出したり、
>C言語の変数の型やクラスを宣言できるなどの拡張が行われている。

Pythonじゃない別言語じゃん
TypeScriptを持ち出してJavaScriptはええって言ってるようなもん
560デフォルトの名無しさん:2013/05/04(土) 09:22:49.55
CythonはPythonに型注釈を追加したような言語で、
コンパイルしてPythonのC言語拡張を作る事が出来る

Cythonで書かれた関数やクラスはPythonから呼び出す事ができるし
Pythonで書かれた関数やクラスをCythonから呼び出す事もできるよ
561デフォルトの名無しさん:2013/05/04(土) 09:25:31.15
>>559
Pythonの上位互換って書いてあるだろ
ここ遅いから速くしたいなーってなったら型を書けば良い感じ
で、C言語拡張にコンパイルするから、普通のCPython処理系で動く
562デフォルトの名無しさん:2013/05/04(土) 09:48:47.64
>>556で関数の戻り値の型を書くのを忘れてたので、

cdef int fib(int n):

に変えて実行してみたら、もっと速くなった


$ time python fibc2.py
39088169
python fibc2.py  0.08s user 0.01s system 95% cpu 0.098 total
563デフォルトの名無しさん:2013/05/04(土) 09:54:22.94
C のコードはどこまで減らせるんだろうね
Python 界隈はそこらへんの問題に極めて意識的だけど

>>559
自分も別言語だと思う。Python のサブセットである RPython ならともかく
564デフォルトの名無しさん:2013/05/04(土) 10:12:13.17
>>560-561
つまりCに変換できるようにしたTypeScriptみたいなもんじゃん
TypeScriptをCやasm.jsに変換したらそりゃ速いよ

>>562
これ最適化でコンパイル時に値を計算したっぽいな
565デフォルトの名無しさん:2013/05/04(土) 10:15:36.41
>>564
> これ最適化でコンパイル時に値を計算したっぽい

print(fib(38))をコンパイルに含めずに
実行時にPython側からfib(38)を呼び出しても同じ
566デフォルトの名無しさん:2013/05/04(土) 10:19:10.38
>>565
良く分からないんだけど、コンパイル時に計算していないのに、
Cの数十倍速いってこと?

ちょっと良く分からない現象だね
何かタネがあるんだろうけど
567デフォルトの名無しさん:2013/05/04(土) 10:26:25.09
>>566
こちらの環境でC(gcc47 -O2)を実行した場合

$ time ./a.out
39088169
./a.out  0.25s user 0.00s system 99% cpu 0.257 total
568デフォルトの名無しさん:2013/05/04(土) 10:27:02.43
>>566
こちらの環境でC(gcc47 -O2)を実行した場合

$ time ./a.out
39088169
./a.out  0.25s user 0.00s system 99% cpu 0.257 total
569567:2013/05/04(土) 10:34:54.74
連投すまん
実行環境が違うのか、Cの速度も>>530と全然違うね
同じソースコードを使ったんだが

つまり、CPythonの速度がむちゃくちゃ遅い……?Python3.2なんだけど
570デフォルトの名無しさん:2013/05/04(土) 10:51:19.53
最後に、比較用にnode.js(v0.10.4)

$ time node fib.js
39088169
node fib.js  1.06s user 0.03s system 100% cpu 1.080 total
571デフォルトの名無しさん:2013/05/04(土) 11:06:43.12
なんだろう
Cの計算自体がすぐ終わりすぎて計測誤差が大きいのかな
何度もループさせないと駄目か
572デフォルトの名無しさん:2013/05/04(土) 11:19:59.98
node.jsはCの4倍程度か
たいしてPythonは200倍か
遅すぎワロス
573デフォルトの名無しさん:2013/05/04(土) 12:01:45.29
うちでもやってみた。Cython の使い方間違ってたら指摘してくれると助かる

% cat fib_c.c
#include <stdio.h>
int fib(int n) {
if (n < 2) return n;
return fib(n - 1) + fib(n - 2);
}
int main(void) {
printf("%d\n", fib(38));
return 0;
}
% gcc -o fib_c fib_c.c
% time ./fib_c
39088169
./fib_c 1.12s user 0.00s system 99% cpu 1.125 total

つづく
574デフォルトの名無しさん:2013/05/04(土) 12:03:22.85
つづき

% cat fib_py.pyx
cimport cython
cdef fib(int n):
if n < 2: return n
return fib(n - 2) + fib(n - 1)
print(fib(38))

% cat setup.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup(
cmdclass = {'build_ext': build_ext},
ext_modules = [Extension("fib_py", ["fib_py.pyx"])]
)

% python setup.py build_ext --inplace
[...]

% time python -c "import fib_py"
39088169
python -c "import fib_py" 3.87s user 0.01s system 99% cpu 3.894 total
575デフォルトの名無しさん:2013/05/04(土) 12:12:14.16
>>562みたいに、戻り値の型を書くともっと速くなる?
576デフォルトの名無しさん:2013/05/04(土) 12:22:55.70
pythonが200倍遅いからって、他の言語に頼るとは、、、
python厨には失望した
577デフォルトの名無しさん:2013/05/04(土) 12:25:49.15
>>575
うっかりしてた。戻り値記述して再トライ

% cat fib2_py.pyx
cimport cython
cdef int fib(int n):
if n < 2: return n
return fib(n - 2) + fib(n - 1)
print(fib(38))

% cat setup2.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup(
cmdclass = {'build_ext': build_ext},
ext_modules = [Extension("fib2_py", ["fib2_py.pyx"])]
)

% python setup2.py build_ext --inplace
cythoning fib2_py.pyx to fib2_py.c
[...]

% time python -c 'import fib2_py'
39088169
python -c 'import fib2_py' 0.56s user 0.02s system 99% cpu 0.577 total

% cat fib2_py.c
[...]
__pyx_r = (__pyx_f_7fib2_py_fib((__pyx_v_n - 2)) + __pyx_f_7fib2_py_fib((__pyx_v_n - 1)));
578デフォルトの名無しさん:2013/05/04(土) 12:57:07.99
常識レベルの話として長いコードをここに貼るな
それがある外部リンクだけで良いから
579デフォルトの名無しさん:2013/05/04(土) 13:01:53.10
node.jsより速いという結果は貼るな
遅かった場合だけ貼れ
580デフォルトの名無しさん:2013/05/04(土) 13:13:35.96
cythonってpythonの拡張モジュール書いたりできるんだろ?
あれ、これってasm.jsという糞言語で高速化したいところを局所的に書けばいい
と言ってたのと同じじゃね。遅れてね?ただの後追いじゃね
で、asm.jsのコードと実行時間は?
なんかこのスレ見ても「できるらしい」とか「できるはず」とかいう胡散臭いレスが目立つけど
実際どうなの?
581デフォルトの名無しさん:2013/05/04(土) 13:24:30.70
>>580
Pyrex が 2002 年でそこからフォークした Cython が 2007 年
後追いではないと思われ
582デフォルトの名無しさん:2013/05/04(土) 13:34:55.32
「今JSが熱い!みんなが熱狂している!薔薇色の未来!」
って、他の言語が数年前に通った道なんだね…
Cに変換するか、Cから変換されるかって違いか。さて、どっちが速いかね
583デフォルトの名無しさん:2013/05/04(土) 13:37:47.14
>>582
JSが熱いってそんなCに変換するだのなんだののくだらない狭い世界の話じゃないんだが
asm.jsを熱弁してる奴がいただけで、JS熱は別次元だよ
node.jsやweb用ライブラリ界隈で起こってる熱狂
584デフォルトの名無しさん:2013/05/04(土) 13:37:56.28
>>582
> 「今JSが熱い!みんなが熱狂している!薔薇色の未来!」
> って、他の言語が数年前に通った道なんだね…

いや、その道は他の言語は通っていない(苦笑)

今の話の流れからは「型つけて速くしましょう」という
道しか通ってないだろう?
585デフォルトの名無しさん:2013/05/04(土) 13:40:09.50
デスクトップアプリがWEB用アプリに置き換わりはじめてるから、
この流れは相当続くね
下手したらスマフォのネイティブアプリの領域も浸食しそうだし(ここはまだ不確定)
586デフォルトの名無しさん:2013/05/04(土) 13:40:31.51
ああ、asm.jsの奴はJS的にもアレなので
あそこまで言うのならコードと実行時間くらい示してほしいが
587デフォルトの名無しさん:2013/05/04(土) 13:44:24.21
ん?ちょっとまて
この流れはひょっとしてCythonが最強という事でよろしいか?
588デフォルトの名無しさん:2013/05/04(土) 14:00:56.34
Cythonって静的型付け言語ってことでいいの?
589デフォルトの名無しさん:2013/05/04(土) 14:02:44.37
ハイブリッド
590デフォルトの名無しさん:2013/05/04(土) 14:33:20.50
node.jsって実行速度を自慢する割には、
静的に型付けした場合と比較するとゴミだな……

所詮は、他言語がepollやkqueueを使わない場合という
ハンデをつけた状況に限れば非同期処理が速いってだけのウンコか……
591デフォルトの名無しさん:2013/05/04(土) 14:35:16.37
> node.jsって実行速度を自慢する割には、
またいつもの勘違いさんかw
592デフォルトの名無しさん:2013/05/04(土) 14:45:32.92
静的型付け言語の下位と同じくらいだな
動的型付け言語としては十分自慢できるぐらい速い
593デフォルトの名無しさん:2013/05/04(土) 14:56:24.24
要するに静的型付け言語が優れてるってことだよ。

スクリプト言語で気軽にかけるといっても
大規模になって、多く使われるようになってくると
結局その複雑度や速度に対応するために
静的型付け言語の機能が取り入れられていく。

JavaScript、Python、Basic(VB)、PHP


http://www.publickey1.jp/blog/11/phpjithiphop_virtual_machinefacebook.html
HipHop Virtual Machineは、PHPを高速に実行するためにPHPのコードをC/C++に変換して
g++でコンパイルし、バイナリコードにするHiphop compiler(hphpc)と、PHP
594デフォルトの名無しさん:2013/05/04(土) 15:14:56.88
それが一般的なんだけど、nodeは動的言語でも静的言語並に速いから
どうでもいいや
595デフォルトの名無しさん:2013/05/04(土) 15:18:17.77
>>594
Java (OpenJDK) 0.732
C (gcc -O2) 1.18
JavaScript (node.js) 2.62
596デフォルトの名無しさん:2013/05/04(土) 15:22:08.54
>>595
はえええ
マジで静的言語並みじゃん
597デフォルトの名無しさん:2013/05/04(土) 15:24:34.65
3倍以上さがついているものは
静的型付け言語なみとはいえない。
598デフォルトの名無しさん:2013/05/04(土) 15:27:02.07
Scala (case) 1.896 静的
Fortran (gfortran) 1.92 静的
Go (run) 1.956 静的
Haskell (ghci) 1.992 静的
Scheme (ikarus) 2.068 動的
JavaScript (node.js) 2.62 動的
Boo (compile) 2.674 静的
Java (gcj) 2.88 静的
Lisp (sbcl) 3.292 動的
Boo (interpret) 3.56 静的
Scheme (Gambit: gcs -O2) 4.524 動的
599デフォルトの名無しさん:2013/05/04(土) 15:27:50.27
>>597
3倍どころか、普通に静的型付言語がJavascriptに負けてますが
600デフォルトの名無しさん:2013/05/04(土) 15:30:12.33
やっぱりこれからはJavaScriptの時代なんだろうな。
どこでも動く、そして速い
601デフォルトの名無しさん:2013/05/04(土) 16:19:20.23
GUIはWebアプリで作るのがお手軽だから、
かつてお手軽GUIアプリを作る定番だった旧VBのような位置にJavascriptはなるよ

サーバサイド?サーバをVBで書くアホがいるか?
602デフォルトの名無しさん:2013/05/04(土) 16:22:35.75
諦めるしかないんだね
603デフォルトの名無しさん:2013/05/04(土) 16:52:12.02
>>601
JavascriptはVBとは違うんだよVBとは
IEではJScriptもVBScriptも書けた
しかし今や誰もVBで書いてない
JavaScriptが優れていたのだよ
604デフォルトの名無しさん:2013/05/04(土) 17:24:04.86
>>603
IEなんて誰も使わなくなるよ。
605デフォルトの名無しさん:2013/05/04(土) 18:40:55.74
でも、nodeが出てきたときの世間の反応こんな感じだったよな
サーバサイド?サーバをJavaScriptで書くアホがいるか?
みたいな
革命的な事をやる人は大体最初こんな感じの評価
606デフォルトの名無しさん:2013/05/04(土) 18:45:08.78
革命と自称する大半はただの糞に終わるんだから当然だろ
糞に集る五月蝿いハエがいるのも世の常だが、騒ぐ以外は何もしないから非常に鬱陶しい
607デフォルトの名無しさん:2013/05/04(土) 18:46:59.63
まあ革命的なものを糞だと言って認めない奴がいるのも世の常だしね
オブジェクト指向が出てきたときも、ブログが出てきたときも、iPhoneが出てきたときも
全部そうだった
608デフォルトの名無しさん:2013/05/04(土) 18:59:23.02
>>607
認めなくてならないようなものなの?
609デフォルトの名無しさん:2013/05/04(土) 18:59:31.27
まあ、俺はJavaScriptが
ここまで普及するってことは
かなり初期に見抜いていたけどな。

HTML、CSS、JavaScriptは将来普及する。
足りないものはJavaScriptライブラリ。
そして他の何かから変換して
生成したりするだろうってね。
610デフォルトの名無しさん:2013/05/04(土) 19:05:51.77
>>608
物事を客観的に見つめて、現実を正しく認識するのって
とても大切な事じゃない?
611デフォルトの名無しさん:2013/05/04(土) 19:07:30.41
なんでもかんでもマンセーしてたら一つは当たるだろ
実はあの技術は僕のアイデアなんですーってか?じゃあ、今回はお前がさっさと妄想を実現しろよ
失敗したら知らん、成功したら俺すごい!
はいはい、あきれた常勝無敗だわ。無能をさらす前に何か見せて見ろよカス
スレを荒らす以外には何もできない社会のゴミがよお
612デフォルトの名無しさん:2013/05/04(土) 19:11:23.46
>>611
まずお前は自分の嫌いなものにも長所があるっていう現実を受け入れるところから始めよ
613デフォルトの名無しさん:2013/05/04(土) 19:16:37.79
>>612
え、お前の長所ってなに?
妄想垂れ流しとか何もやらなかった武勇伝とかを聞かされても
長所なんて一つもわからないよ

長所がないわけないだろ。信者レスの無意味性、無批判性、無論理性、無情報性を叩かれてるってわからんの?
614デフォルトの名無しさん:2013/05/04(土) 19:17:30.70
>>613
お前、そこでなぜJavaScriptを連想せずに人を連想してしまった・・・
615デフォルトの名無しさん:2013/05/04(土) 19:19:06.10
そもそも無批判性ってなんだよw
ブーメランにならないようにかw
616デフォルトの名無しさん:2013/05/04(土) 19:19:10.45
挑戦的な試みっていうのはだいたい失敗する可能性が高いから
なんでもかんでも叩いておけば自分大勝利だよね
まれに成功した例は無視すればいい
617デフォルトの名無しさん:2013/05/04(土) 19:21:58.75
少なくともこのスレは結構良い情報あるけどな
618デフォルトの名無しさん:2013/05/04(土) 19:23:06.66
>>615-616
クリティカルシンキングだよ
もちろん信者のゴミレスが叩かれてるのはそんな高尚なものじゃない
明らかにゴミだからゴミと言ってるだけ
言われたくなければまともなレスをしろ
619デフォルトの名無しさん:2013/05/04(土) 19:24:38.64
>>617
JS厨の妄想レスで有益な情報ってどれ?
620デフォルトの名無しさん:2013/05/04(土) 19:24:43.67
アンチJS様がお目覚めになられたようだ
621デフォルトの名無しさん:2013/05/04(土) 19:24:50.31
>>618
良いものは良いと認めることも時には大事だよ
JS信者もCythonやSciPyを認めて使い始めただろう
得をしたのはどっちだろうね?
622デフォルトの名無しさん:2013/05/04(土) 19:24:54.27
奴が目覚めたな
623デフォルトの名無しさん:2013/05/04(土) 19:25:52.63
>>619
JSが盛り上がってるってことを知っただけでも有益だった
624デフォルトの名無しさん:2013/05/04(土) 19:26:35.51
>>621
お前の妄想垂れ流しレスは一切良くないのだが?
何を問題としてるか理解できてないだろ。どんだけ馬鹿なの
625デフォルトの名無しさん:2013/05/04(土) 19:41:56.06
>>610
少なくともオブジェクト指向は違うみたい。
626デフォルトの名無しさん:2013/05/04(土) 19:47:45.08
>>610
詳しく
627デフォルトの名無しさん:2013/05/04(土) 19:49:22.00
>>625だった
詳しく
628デフォルトの名無しさん:2013/05/04(土) 20:20:08.15
>>618
クリティカルシンキングと言うならPythonについてしてみたらどうかね?
Pythonがお気に入りみたいだから、
Pythonについて批判したほうが世の中のためになるだろう
629デフォルトの名無しさん:2013/05/04(土) 20:22:13.97
>>625
もっと考えてしゃべれよ。デタラメばかりじゃなくてさ
お前がオブジェクト指向の何を知ってるというんだ。何も知らないだろ
630デフォルトの名無しさん:2013/05/04(土) 20:40:49.70
>>624
お前がそういう姿勢だからだよ
JavaScriptが盛り上がってるなんて認めたくない!
俺の嫌いなJavaScriptが絶賛されるのは認めたくない!
こんな姿勢ではね
Webアプリを開発してみるなり、アイディアを学ぶなり、
状況を注視してみるなり、他のスレにいくなり、
もっと良いやりようがいろいろあるだろうに
レスの有用性は受け取る側の姿勢によって変わるものだ
631デフォルトの名無しさん:2013/05/04(土) 20:45:44.65
>>630
もう言い訳はいいよ。なんで言い訳しか言わないんだ?
お前は妄想垂れ流しで毎日フルボッコされるだけの悲しい人生を送れよ
632デフォルトの名無しさん:2013/05/04(土) 20:47:04.83
>>625
妄想垂れ流し野郎じゃないならちゃんと説明してね
633デフォルトの名無しさん:2013/05/04(土) 20:49:43.00
>>631
まあ、お前にかかれば、説明=言い訳だろうからね
そうなるのは当たり前
このスレはなかなか満足している
634デフォルトの名無しさん:2013/05/04(土) 20:52:27.18
>>632
お前の思う妄想垂れ流し野郎って>>607>>610じゃないのかw
誰が誰なのかごっちゃになってきたなw
635デフォルトの名無しさん:2013/05/04(土) 21:00:06.10
>>633
まともなJSの説明なら、説明自体は叩かれてないって気づいてる?
そこで初めてJSディスができる
お前が何かを説明してると認識しているものは、説明とは呼べないほど欠陥だらけなんだよ
無条件に馬鹿にされてると思ってるならただの被害妄想、自分の無能を他人のせいにするな

>>625
根拠なく言ったんだな
テキトーに言えば誰かが代弁してくれるとでも思ったか
デタラメ言ったのならさっさと謝れクズ
636デフォルトの名無しさん:2013/05/04(土) 21:03:19.72
[Mac/NUC] AGK / DarkBASIC / Basic4GL / 99BASIC 2013 Part.1
http://jbbs.livedoor.jp/bbs/read.cgi/computer/43761/1367197701/l100
637デフォルトの名無しさん:2013/05/04(土) 21:14:43.89
>>635
2ch歴短い?
多分、2chというものを誤解してるんじゃないかな
ネタにくだらんレスにウケ狙い、推測に主観
そんなもんに腹立ててたらキリがないぞ
レスする方も高度なレスをする気なんかこれっぽっちもないよ
お前こそ、人に要求する前にスルースキル学べよ
自分で妥当性を考えろ
638デフォルトの名無しさん:2013/05/04(土) 21:17:34.57
人格攻撃はスルーして
内容でバトルロワイヤルしなさい。
639デフォルトの名無しさん:2013/05/04(土) 21:21:19.20
まあ、JS厨の俺から見て、レスの質はともかくアンチJSの人は
かなり能力はあると思うよ
特に科学計算がどうとかPythonのコードを投入してる人
640デフォルトの名無しさん:2013/05/04(土) 21:36:11.53
優秀な人は直感とか推測とか主観が大抵当たるから
普通に自分の主観で決めつけて言う傾向にある
641デフォルトの名無しさん:2013/05/04(土) 21:42:43.93
>>618
つ 好意の原則
642デフォルトの名無しさん:2013/05/04(土) 21:44:57.03
>>637,640,641
最悪の自己弁護だな。つまりまた言い訳。それしかできない
どんなレスをしようが勝手だが
ただ気持ち悪いだけのレスが叩かれるのは当然のこと
穴を指摘されたらちゃんと根拠を説明しろよ。それが出来ないのは中身が空っぽだから
はぐらかすな、逃げ回るな

>>639
仕様や科学計算ライブラリについては知ってるし確認した上でかなりレスしてるが
コードを投下してるのは優れていて優しい別の人な場合が多い
643デフォルトの名無しさん:2013/05/04(土) 21:52:06.70
>>642
ああ、コード投下してる奴は別の奴だったのか
なるほど
ドンマイw
644デフォルトの名無しさん:2013/05/04(土) 21:57:00.32
>>637
本当にそんなつもりでレスしてるなら
指摘されて妄想じゃない!と反発し続ける意味がわからない
それでいて当然ながら証明はできない
645デフォルトの名無しさん:2013/05/04(土) 22:09:44.13
>>643
> ああ、コード投下してる奴は別の奴だったのか
そりゃそうだろw

アンチJSの人はただのキチガイだもんなw
646デフォルトの名無しさん:2013/05/04(土) 22:14:12.04
>>644
具体的にはどのレスの事?
別に「妄想じゃない!」って反発してるわけではないと思うんだが
「妄想」を「客観的に根拠の不十分な推測」と捉えてるなら
反論の余地はない
確かにその通り
ただ、少なくとも「実際には間違っている主観」ではないと思ってるから
その部分について反発があるのは当たり前
ネタでなければ言ってる本人は自分の意見が間違いではないと思ってるはずだ
証明ができるかどうかは状況、気分次第
647デフォルトの名無しさん:2013/05/04(土) 22:18:34.80
まあネタと言うか、ちょっと大げさに言う傾向はあるけどね
648デフォルトの名無しさん:2013/05/04(土) 22:18:57.55
>>646
証明も反証もできないよ。だから詐欺だと言ってるわけ
もちろん、そんな正論を受け付けないだろうがね
649デフォルトの名無しさん:2013/05/04(土) 22:22:53.00
>>648
お前が要求してるのは、「〇〇が熱い!」「将来はこうなる!」ってことの
証明でしょ?
まあ特に後者は無理だろw
前者はURLとかちらほら出てたけど、それを「証明」と認めるかどうかは
お前次第だし、まあ無理だろw
結局、間違ってるという結論先にありきなんだよ
だから詐欺だといって満足したいんだろう
650デフォルトの名無しさん:2013/05/04(土) 22:23:39.00
正しいという結論ありきだからおかしいとしてるだけだが
651デフォルトの名無しさん:2013/05/04(土) 22:28:56.32
説得力の問題だろう
突拍子のないほど説得は難しくなる
少なくとも胡散臭い妄想を並べるのは気持ち悪いだけで論外
凄さを伝えたいなら実際に使って見せればいいのに
本人の手元にすらそれがないみたいな言い回しだから、なんで?と思わざるをえない
652デフォルトの名無しさん:2013/05/04(土) 22:29:12.74
> 正しいという結論ありきだからおかしいとしてるだけだが
間違ってるという結論ありきだからおかしいとしてるだけだが

これも成り立つよな。
なんでこう言わない?
そこにお前が満足したいって気持ちが現れてるのさ。
653デフォルトの名無しさん:2013/05/04(土) 22:30:22.51
>>652
証明も反証もできない宣伝だから詐欺なんだよ。分かるか?
654デフォルトの名無しさん:2013/05/04(土) 22:31:02.18
>>653
> 証明も反証もできない宣伝だから詐欺なんだよ。分かるか?

そもそもそれが間違っとる。
655デフォルトの名無しさん:2013/05/04(土) 22:31:16.22
>>650
「おかしい」ってのは「客観的に見て納得できるだけの証拠がない」ことを指してるんでしょ
ならその通りだよ
ただの主観だし
別に反論しようとも思わん

現実にどちらが正しいかは、誰彼の意見とは
一切関係ないがねw
656デフォルトの名無しさん:2013/05/04(土) 22:33:10.19
JS厨は主観的な操作感などを評価してるわけじゃない
世界の人々はこう動くべき、という個人的希望が反感を買いやすいのは当然
そこには必ず理由が必要だ
657デフォルトの名無しさん:2013/05/04(土) 22:33:32.35
「連続体仮説は証明も反証もできない命題である」

では、連続体仮説は詐欺か?

詐欺ではない。れっきとした仮説だ。
658デフォルトの名無しさん:2013/05/04(土) 22:36:06.46
>>654,657
どうとでも言える主張は詐欺でしかないんだよ
659デフォルトの名無しさん:2013/05/04(土) 22:36:37.63
>>656
反感を買いやすいとか、一般的な意見のように言ってるけど、
要するに、>>656個人が
個人的希望はきらいだって言ってるにすぎない。

>>656個人が、みんな俺と同じ気持なんだと
みんな俺の考えに賛同していると
思い込んで書き込んでる。

それだけ。

>>656はキチガイにすぎない。
660デフォルトの名無しさん:2013/05/04(土) 22:37:46.58
>>658
あー、はいはい。

どうとでも言える主張は詐欺なんだよ。
俺が言ったから詐欺なんだよ。
みんな詐欺と思ってるんだよ。
俺の考えは正しいんだよ。

ですね。わかりますw
661デフォルトの名無しさん:2013/05/04(土) 22:39:02.60
「どうとでも言える主張=詐欺」という前提ならその通り
「嘘をついて騙す事=詐欺」なら、仮に間違った事を言っていても本人がそう思ってないなら
そういうのを嘘とは言わないだろし、詐欺ではないだろ
662デフォルトの名無しさん:2013/05/04(土) 22:39:26.09
「詐欺」には明確な定義があるけどな

ま、そんなの>>658には関係なく
俺が詐欺と言ったら詐欺なんだ。

なんだろうな。
663デフォルトの名無しさん:2013/05/04(土) 22:40:41.87
JavaScriptは今後モバイル系から始まりディスプレイがついてる大抵の電化製品の
「ネイティブ」言語としての位置づけになっていくことは確定してる
2020年にはCかJSかとなってると思われる
664デフォルトの名無しさん:2013/05/04(土) 22:41:13.00
>>659
良いこと言うね。みんながJSに熱狂しているとか言ってるキチガイはそろそろ自分の間違いに気づいただろうか
665デフォルトの名無しさん:2013/05/04(土) 22:42:06.17
>>664
それも「みんな」の定義によるな
率で言えば少ない、数で言えば多い
666デフォルトの名無しさん:2013/05/04(土) 22:42:08.03
>>664
お前がキチガイって気づいたw
667デフォルトの名無しさん:2013/05/04(土) 22:42:41.03
俺も一瞬で見ぬいたw
668デフォルトの名無しさん:2013/05/04(土) 22:43:30.90
>>661
いやむしろ無自覚な方がヤバイし
さんざん指摘しても>>663のように悪意を持って印象操作してるだけだから
669デフォルトの名無しさん:2013/05/04(土) 22:43:38.88
キチガイ=個性
別に悪い事じゃない
670デフォルトの名無しさん:2013/05/04(土) 22:44:21.07
>>663
詐欺だ!
671デフォルトの名無しさん:2013/05/04(土) 22:45:00.59
>>668
> さんざん指摘しても>>663のように悪意を持って印象操作してるだけだから

お前が書き込んだんだろ
タイミング良すぎるわw
672デフォルトの名無しさん:2013/05/04(土) 22:46:22.49
>>671
俺はこんな気持ち悪い文章を思いつけないし
何を言ってるかも理解できないがJS厨には
ごく自然なことなんだろいな
673デフォルトの名無しさん:2013/05/04(土) 22:46:33.19
>>668
まあ、一人じゃないしねw
少なくとも俺は663ではないし、悪意を持ってる自覚はないな
ヤバいかもw
674デフォルトの名無しさん:2013/05/04(土) 22:46:41.12
>>663
> JavaScriptは今後モバイル系から始まりディスプレイがついてる大抵の電化製品の
> 「ネイティブ」言語としての位置づけになっていくことは確定してる

検証してみよう。

スマホ・・・JavaScript対応
テレビ・・・一部JavaScript対応

JavaScript以外の言語は?=対応していない。
675デフォルトの名無しさん:2013/05/04(土) 22:48:27.38
>>673
良心の呵責を受けないなら犯罪者に向いてるよ
というか論理的思考ができてないから他のまともな仕事は無理
676デフォルトの名無しさん:2013/05/04(土) 22:49:52.39
実際にJavaScriptがモバイル系や家電で使えるのは事実なわけで
それは否定できんよ。詐欺でもなく現実ね。
677デフォルトの名無しさん:2013/05/04(土) 22:50:01.10
>>674
いや、ちょっとまて
ネイティブ言語が何をさすのか知らんが、
俺の知る限り、Objective-C、Java、C/C++はお前の言うネイティブ対応されてるっぽい気がするぞw
スクリプト言語という意味か?
それもLuaとかあるしな

>>675
まともな定職に就いてしまってる可能性を考えて保険をかけてるところが
可愛いなw
678デフォルトの名無しさん:2013/05/04(土) 22:50:19.11
>>674
JAVAの一人勝ちじゃねーか
679デフォルトの名無しさん:2013/05/04(土) 22:50:53.60
TizenOS,FireFoxOS,ChromeOSのアプリ、一部のTVのアプリがHTML5になってきていることは現実
あとデジタルサイネージやカーナビアプリもそうなりつつある
680デフォルトの名無しさん:2013/05/04(土) 22:52:09.40
>>679
スマフォで言えば、一旦HTML5が浸透していきかけたけど、
今は少し足踏みしてる状態に見える
やっぱりまだパフォーマンスや互換性など様々な問題がある
ただ、今後はわからんけどね
681デフォルトの名無しさん:2013/05/04(土) 22:52:29.54
家電って何を指してるんだ?一般的な家電はほとんど組み込みだろw
682デフォルトの名無しさん:2013/05/04(土) 22:53:21.66
未来のことは言わずに、現在どうなっているかを言えば
それは詐欺でもなんでもないなw
683デフォルトの名無しさん:2013/05/04(土) 22:57:38.61
>>680
足踏みも何もTizenOSやFirefoxOSでは基本HTML5でしかアプリが作れないんだけど?
そして今年度中から日本でそれ搭載のスマホが売られるの知らないの?

互換性なんて既存のスマホアプリのJAVAやobjectiv-Cに比べたら些細なもんだよ
アレだって複数のプラットフォーム向けに作るの大変だし
だから最近ハイブリットアプリが流行ってるんでしょ
684デフォルトの名無しさん:2013/05/04(土) 22:59:18.25
C/C++とかはメーカーの人しか使えない言語。
ハードを作る人のための言語だね。

その作られたハードでアプリを動かすには
Objective-C(Apple系のみ)、Java
この二つはインストール系

そしてウェブアプリではHTML5+JavaScriptになる。
これが現在の状態。

その他の言語は出てこない。
685デフォルトの名無しさん:2013/05/04(土) 22:59:55.50
>>683
それは知らんかったが、現状ではまだ浸透してないだろ?
今のスマフォはiOSとAndroidで、後は誤差だから無視して構わない
そして、iOSとAndroidでJavascriptを使ったアプローチは
今はそれほど伸びてない
有名な企業がとりやめて、普通にネイティブに戻したりとか
686デフォルトの名無しさん:2013/05/04(土) 23:01:09.68
> 有名な企業がとりやめて、普通にネイティブに戻したりとか
そんな事例はFacebookしかしりません。
687デフォルトの名無しさん:2013/05/04(土) 23:02:29.46
>>686
後俺が知ってるのはLinkedIn
まあ二つしか知らんけどw
688デフォルトの名無しさん:2013/05/04(土) 23:02:58.41
有名な企業がとりやめて、普通にネイティブに戻したりとか
逆に、ネイティブやめてウェブアプリに移行したりとかね


TweetDeckのモバイルアプリは5月7日に終了
http://www.itmedia.co.jp/news/articles/1304/22/news052.html
モバイルアプリの終了は、Webアプリ版TweetDeckに集中するためという。
689デフォルトの名無しさん:2013/05/04(土) 23:04:41.73
>>684
他の言語の話ができないのはわかった
それは別のスレを立てて、このスレはその他マイナー言語専用スレでいいかな?
やっぱり明らかに用途が違うから
690デフォルトの名無しさん:2013/05/04(土) 23:05:01.82
>>685
既存のスマホはそもそもWebアプリを作れる環境が整ってないでしょ
それを整えたのが去年から出始めた各種モダンOS
691デフォルトの名無しさん:2013/05/04(土) 23:05:05.40
>>668
まあ、そういうのもあるんだけど、アプリの大半を占める
ゲーム分野とかは普通にパフォーマンス重視のネイティブ多いままだし
どんどん浸透って感じではないと思う
たんなる実感だけど
692デフォルトの名無しさん:2013/05/04(土) 23:08:21.69
JS+HTMLスレ立ったら誘導してね
他の言語は関係ないから
693デフォルトの名無しさん:2013/05/04(土) 23:10:39.35
>>691
ソフトウェア業界の歴史を見てみろよ。

昔はアセンブラだった
開発効率向上のためCになった。
遅いと言われたが時間が解決した。

開発効率向上のためC++になった。
遅いと言われたが時間が解決した。

UI向上のためWindowsになった。
DOSに比べて遅いと言われたが時間が解決した。

ウェブアプリ化のためHTML+JavaScriptになった。
遅いと言われたがデスクトップ機では時間が解決した。

モバイル端末が出た。当時のガラケーはスペックが低くかったが
時間が解決し、ガラケーでもゲームが出来るようになった。

ずっとな、何かしらの理由で「遅い環境」に変わるが
時間が解決し続ける。これこそがソフトウェア業界の本質といえるんだよ。
694デフォルトの名無しさん:2013/05/04(土) 23:10:44.56
そうかな
ハイブリットアプリとかまさに浸透してるけど?
現状WebアプリにかけているのはAPIとそれぞれにプラットフォームにあった外側の見た目をつくること
速度はそんなに大したことない
フェイスブックだってやっぱりちゃんと作ればWebアプリの方が良かったって証明されたじゃん
いつの話をしてんのよ?
695デフォルトの名無しさん:2013/05/04(土) 23:13:34.04
デスクップもネイティブアプリだらけじゃん
単純に開発効率の問題もあるわ
Web化する必要性がなかったりサーバーサイドで問題なかったり
すべてがJSになる必然性がまるでない
696デフォルトの名無しさん:2013/05/04(土) 23:14:34.16
>>693
まあ確かに時間が経てばいずれはそうなるかも
ただ、現状、一時期と違って増加スピードは鈍ってるってのがマジな実感

>>694
そうかね
まあ、単に俺の実感がずれてるだけかもしれん
データとかも検索すれば出てくるかもしれんが、まあいいや
この議論はこの辺で打ち止めだな
697デフォルトの名無しさん:2013/05/04(土) 23:14:57.30
>>692
http://toro.2ch.net/test/read.cgi/tech/1367676856/

立ててあげたよ。
誘導です。どうぞこっちに行ってください。
698デフォルトの名無しさん:2013/05/04(土) 23:15:12.19
ゲームとか既存のスマホでは当然向かないというか、
そもそもあんまり考慮されてない

それでも情報社会と情報端末、Webは相性がいいし
Webと相性がいいのはJSとなってる

そういえばWiiUでもHTML5でゲーム作れるみたいだし
本質的に向いてないということはない
699デフォルトの名無しさん:2013/05/04(土) 23:17:28.22
>>697
病気だなあ
700デフォルトの名無しさん:2013/05/04(土) 23:17:36.44
>>695
現状はな
今はまだ「気づけばちらほらと出てきてる」程度だね
特に開発者好みのエディタとか
Komodoとか、Cluod 9、Markdownのエディタ
ただ、デスクトップに関しては今後加速すると思う
理由は、インターネットが重要性を増してる事と、クロスプラットフォームな事、
ビジュアルの表現力がある事など
701デフォルトの名無しさん:2013/05/04(土) 23:20:22.45
ハイブリッドアプリは審査なくても
ウェブサイトと同じでハージョンアップできる
というメリットが有る。

だから問題がなければ出来るだけ
ハイブリッド化したいと思っている。
702デフォルトの名無しさん:2013/05/04(土) 23:21:27.09
>>696
HTML5が悪いんじゃない
wayohoo.com/facebook/news/fastbook.html
703デフォルトの名無しさん:2013/05/04(土) 23:22:32.50
2016年、企業向けモバイルアプリの半分がWebとネイティブのハイブリッドアプリに――米Gartner調べ
http://www.itmedia.co.jp/promobile/articles/1302/05/news080.html

こんなふうに予測されてるしな。
704デフォルトの名無しさん:2013/05/04(土) 23:24:28.79
荒らし(=例のアンチJS)がいなくなると
ほんと静かになるなw
705デフォルトの名無しさん:2013/05/04(土) 23:25:01.00
[Mac/NUC] AGK / DarkBASIC / Basic4GL / 99BASIC 2013 Part.1
http://jbbs.livedoor.jp/bbs/read.cgi/computer/43761/1367197701/l100
706デフォルトの名無しさん:2013/05/04(土) 23:25:15.99
Sublime Text 2も設定ファイルがJSONだし、UIがChromeっぽい
何で開発されてるんだろう
707デフォルトの名無しさん:2013/05/04(土) 23:27:33.38
>>706
いきなり何なのか知らんが、
スクリプト言語じゃないだろうな
708デフォルトの名無しさん:2013/05/04(土) 23:29:27.37
>>704
普通に議論に参加してますが?
いきいきと妄想がはかどってるね
HTMLの時代だからJS!と言われたら何も言えないわ
そろそろ他の言語の議論させてくれないかな
それとも、このスレは永久にJSの夢物語を並べる場所になるのか
キチガイ地獄もいいところだな。JS厨に侵略され、JS以外スレとかいう暴挙も許し
全てがJSの不確定な将来をあれこれと語り合うJS厨の楽園スレ…終わったよ、全てが
709デフォルトの名無しさん:2013/05/04(土) 23:30:02.54
>>704
アイツ一人で荒らしてるんだよ。
自覚無さそうだけどな。真性ってやつ。
710デフォルトの名無しさん:2013/05/04(土) 23:30:51.25
>>708
まあ仕方がない
現実、そういう時代だし
ただ、PythonでHTML5とかも開発できるようになると思うけど
711デフォルトの名無しさん:2013/05/04(土) 23:34:03.62
ただのデファクトスタンダードが勘違いした結果、糞スレ化が確定した
JS厨に喋らすとHTMLだから!としか言わないからもう駄目だ
次スレでは確実に追放だが
712デフォルトの名無しさん:2013/05/04(土) 23:37:03.66
>>706
設定ファイルはJSのJSON形式、プラグインはPythonで、カラースキームとかはXMLで書かれてるな
かなりごった煮だわ
713デフォルトの名無しさん:2013/05/04(土) 23:49:07.99
>>711
いや、クロージャ、プロトタイプベース、DOM連携とかかなり良い言語だと思う
Pythonと比べるとそうでもないかもしれんが
714デフォルトの名無しさん:2013/05/04(土) 23:49:22.60
俺はJS厨だが他の言語が嫌いなわけじゃないぜ
JS主体で悪いが
他の言語プログラマは自分の言語のいいところアピールして欲しいな

実際JAVAやPerlの機能の導入がJS,nextでは沢山議論されてるし
昨日のスコープの違いとまでなると不可能だが
JSを自分の好きな言語に仕立てる余地は十分ある

構文レベルが難しくてもAPIレベルなら本当に1個人の意見が大きいし
715デフォルトの名無しさん:2013/05/04(土) 23:56:39.63
このスレにおいてJSに対する一切の批判は受け入れられてないからな
不確定、未解決の問題も謎の「確定事実」において一蹴される
議論は許されない。ただ未来のJSってよいよねと言うだけのスレ
716デフォルトの名無しさん:2013/05/04(土) 23:58:10.10
>>714
どんなに良いことがあっても無駄だろ
この世界はHTML5で、それに関われないカス言語はまず議論のステージに立てないのだから
JS以外はお断りだよ。JS以外スレを立てたんだからそっちに行ってもらうしかない
717デフォルトの名無しさん:2013/05/05(日) 00:00:14.99
不満を愚痴るんならまだわかるけど批判なんかしてどうするの?
JSに限らず何も批判すべきじゃないと思うけど

まあ例えばサーバーサイドでこの言語のこういうところが問題とかはあると思う
でもJSは主にクライアントサイドだと比べるものがないから批判は意味ない
718デフォルトの名無しさん:2013/05/05(日) 00:01:53.94
>>714
スコープの違いって
外部の変数を書き換えるのに宣言必要になればいいんだろ?
互換性を切り捨ててやろうと思えば余裕だと思うが、
切り捨てるだけのメリットがないってだけだと思う
719デフォルトの名無しさん:2013/05/05(日) 00:02:17.50
だからJSにおいてはここで何の議論も発生しない。全く無関係の言語だから
不満を愚痴ること=批判することだが、JSに対して不満を愚痴ることは許されていない
720デフォルトの名無しさん:2013/05/05(日) 00:05:46.12
>>603
VBScriptが普及しなかったのは、IE以外のブラウザの台頭と、Ajaxがなかったから


とはいえループの中で変数宣言できないVBScriptはJSより糞なのは間違いない
721デフォルトの名無しさん:2013/05/05(日) 00:05:46.85
>>718
子に浸透にないスコープを持つ変数はできると思うよ
そうじゃなくて他にもクロージャはデフォでそうすべきとかいろいろ
言語の根幹の問題があったからさ、そういうのは無理
722デフォルトの名無しさん:2013/05/05(日) 00:05:55.21
>>716
普通にCoffeeとか別言語出てきてるし、Python等の既存の言語が関わる事も余裕でしょ
つうか、今既に出来るわけで
HTMLの世界でJavascriptがどこまで王者として勝ち残るかどうかはかなり不透明
ただ、長い間勝ち残ったとしても俺はあまり不満はないけどね
723デフォルトの名無しさん:2013/05/05(日) 00:07:03.20
ここはバトルロワイヤルスレに端を発していたし
用途が競合する場合、言語ディスやそれに対する反論は意味を持ったけど
もはやその問題は消え去った。HTML+JSが世界のすべてで
なんと将来はすべてのプログラムがCとJSだけで書かれる
現に今もJS以外で書かれてるまともなwebコンテンツはひとつもない
724デフォルトの名無しさん:2013/05/05(日) 00:08:14.17
>>720
VBScriptって悪名高いけど他に何か大きな問題があったの?
そして何故こんなに廃れた今になって尚質問サイトでちょくちょく見かけるのか不思議
725デフォルトの名無しさん:2013/05/05(日) 00:08:30.44
>>722
いいか?coffeeはJSだ。JSから逃げることはできない
不満がある奴は生きる価値なし。それを口に出すなんてもってのほか
726デフォルトの名無しさん:2013/05/05(日) 00:10:32.67
>>725
んー、ちょっと賛同できないかなあ
CoffeeはCoffeeでしょ?
君の言う、JSってどういう定義なの?
PythonをJSにコンパイルするやつはやっぱりPythonと言うべきだと思うけど
727デフォルトの名無しさん:2013/05/05(日) 00:12:00.13
>>726
JSの糞コードを読まなければならないものはJSと言う他ない
728デフォルトの名無しさん:2013/05/05(日) 00:20:25.83
>>724
単にIE以外ではサポートされてなかったのが問題
あとJSが爆発的に流行ることになったのは、FireFoxでもサポートされていたのと
GoogleがMapで使い始めたから。
もしGoogle MapがVBSで作られていたら、歴史は変わったと思う

ただ、継承すらできないのに、クラスベースのオブジェクト指向型言語だったから
普及していたらJSと同じく、変換言語が複数出ていたのは間違いない
729デフォルトの名無しさん:2013/05/05(日) 00:22:37.69
Googleが素晴らしいMap作れたのはJSが良い言語だったからだよ
730デフォルトの名無しさん:2013/05/05(日) 00:27:18.22
というか時代が追いついた感じだな
やっぱりスクリプト言語は環境によって価値が大きく変わるし
731デフォルトの名無しさん:2013/05/05(日) 00:27:18.95
>>727
読まなくてはいけないってほどでもないと思う
昔はC使ってる時にデバッグモードでアセンブラ見てたらしいけど
今はそんな事もあまりないのと同じで時間が解決するよ
まあ、最初は読んだ方が良いかもな
732デフォルトの名無しさん:2013/05/05(日) 00:27:46.88
歴代の素晴らしいアプリは無数にあって、その多くは糞言語で作られてる事実

ブラウザ以外のスクリプトについて何も語れないJS専用糞スレだからどうでもいいけど
733デフォルトの名無しさん:2013/05/05(日) 00:42:51.91
パフォーマンスと仕様のバランスを考えれば、C言語は当時としては良言語の部類だったと思うけどね
734デフォルトの名無しさん:2013/05/05(日) 00:47:17.07
すべてがブラウザなんて少なくとも数年はありえんぞ。クロームOSも受けてないし
その間ソフトウェア開発以外やファイル処理やバッチ処理やプラグインにJS以外のスクリプトを使う
しかも、JSが使われるのは良言語だからではなくJavaと同じ理由だし
735デフォルトの名無しさん:2013/05/05(日) 00:50:34.97
>>734
そりゃまあ
「全てが」なんて言い出したらな
ただ、それが主流になるのは数年後にはひょっとしたらあるかもな
それも、もの凄い勢いで普及した場合だな
736デフォルトの名無しさん:2013/05/05(日) 00:59:37.86
node.jsが作られた理由・・・JSに非同期IOのライブラリがあったから
クロージャが採用された理由が非同期処理と相性が良かったから
巡り巡って、JSが良言語な事が影響してる
もともとクラスもモジュールもなかったけど、今同等の機能を実現しているのは
クロージャ等の言語機能が強力な潜在能力を持っていて時代が追いついたおかげ
737デフォルトの名無しさん:2013/05/05(日) 01:00:05.86
>>721
クロージャはデフォでそうすべきって意味がわからない
JSはすべての関数がクロージャだよね?
738デフォルトの名無しさん:2013/05/05(日) 01:03:17.09
なんか動きがあるとワーって騒いで、ああこれで世界がいきなり変わるんじゃないかとか妄想するんだけど
今まで使われてきたものの良さが否定されるわけではなく
また、古いシステムを変えるにしても移行コストがかかるので
実際には受け入れられたとしても徐々に変わるものだ
今もガラケーやWindowsXPを使ってて、それで問題ないと言う人が数多くいる
で、もし変わるならJSの糞仕様はどうしようもないけど、Javaが選ばれてたように、他の言語の選択肢はない
だからこのスレで他の言語を語ることは許されない
でも普通に他の言語は生き残り続けるし使うことができる
ただHTML5がすべての社会では存在自体が許されない
739デフォルトの名無しさん:2013/05/05(日) 01:07:51.34
選択肢は普通にあるよ
選択肢が出ても「それもJSだ!」と言ってるだけだしw
740デフォルトの名無しさん:2013/05/05(日) 01:08:27.29
この世界がHTMLだけでできてるのは確定事項だから
JSは糞言語だけどJSの呪いからは逃げられない
741デフォルトの名無しさん:2013/05/05(日) 01:09:06.43
別にクソじゃないだろ。
JavaScriptはよく出来た言語だよ。
742デフォルトの名無しさん:2013/05/05(日) 01:10:42.47
JS厨が今どれくらい調子に乗ってるかというと
他の言語を慮ってこんなスレを立てるくらい調子に乗ってる
だからおよそコミュニケーションと呼べるものは成立しないと思ってる

【JavaScript以外】 その他のスクリプト言語
http://toro.2ch.net/test/read.cgi/tech/1367676856/
743デフォルトの名無しさん:2013/05/05(日) 01:11:34.83
>>740
この世界はJSによってのみ作られる。それを理解しろ
744デフォルトの名無しさん:2013/05/05(日) 01:12:47.83
ちなみに、Javaも普通に競合する言語たくさんあるんだが
C#とか
最近だとScalaが少し出てきたか
745デフォルトの名無しさん:2013/05/05(日) 01:13:12.30
JS以外の選択肢を口にだそうものなら途端に総攻撃に合うことは覚悟すべき
神言語JSが神であることに理由はいらない。欠陥すべてがメリット、それがJS
746デフォルトの名無しさん:2013/05/05(日) 01:15:56.73
>>744
最近の話ね。Javaは割とオワコン化してる
一応使われ続けるだろうが盛り上がりはしないだろうなあ
糞言語でもJavaは革命だった。それこそJS以上にね
747デフォルトの名無しさん:2013/05/05(日) 01:24:38.85
天上天下唯我独尊、C並みの高速JSがネイティブ言語である確定事項を覆せないのなら
何を言っても無駄無駄無駄
748デフォルトの名無しさん:2013/05/05(日) 01:27:12.22
PHPとかPerlとかC(CGI)、VB(ASP)も昔のJavaの競合だよ
Javaが選ばれたのは主にパフォーマンスのせいではあるけど
やはりCっぽい外見とオブジェクト指向が良かったってのもあるとは思う
749デフォルトの名無しさん:2013/05/05(日) 01:28:27.57
>>744
いや、C#は静的型づけでVMで動作する以外にJavaとの共通点がないだろ
普通はOSをWindowsにするかどうか、それでほぼ決まるし。
もちろんWindowsでもJavaは動くがC#やVBと比べたら論外だから

むしろJavaが競合するのは、PHPとかだろ
750デフォルトの名無しさん:2013/05/05(日) 01:28:47.07
既存のすべてのCコードはJSの資産なので
Cで書かれたプログラムのソースをここに持ってきてきてください
すぐにブラウザアプリにして差し上げますよ
751デフォルトの名無しさん:2013/05/05(日) 01:32:01.94
>>749
ASP.NETとサーバーサイドJavaは競合しとりますがな
まあどっちかというとOS合戦の面は否めないが
752デフォルトの名無しさん:2013/05/05(日) 01:33:59.29
JavaはWEBのサーバサイド以外でもけっこう使われてるしね
753デフォルトの名無しさん:2013/05/05(日) 01:39:07.31
>>751
言うように、それは言語以前にOS選びの時点で決まっているから言語の競合じゃない。

もちろんWindowsでWebアプリを作る場合もASP.NETじゃなくてStrutsやSpringを使う馬鹿が0じゃない訳じゃないけど、
ただの馬鹿だからな、それ。
MSが宗教的な理由で嫌いとか、.NET土方が集まらずJava土方しかいなかったからとか、
そういう理由がなければ劣化C#2.0のJavaを選ぶ必要性などない。
754デフォルトの名無しさん:2013/05/05(日) 01:41:06.73
世界のすべてのアプリは今すぐにでもJSになる。まあ見てろ(ニヤッ
755デフォルトの名無しさん:2013/05/05(日) 01:47:46.82
JSが世界の中心であることは疑いようのない歴然とした事実は
出来損ないでも頂点に立てるという勇気を与えてくれる
ただし、HTMLのような巨大な後ろ楯が必要。無理ぽ。
他のカス言語はどんなに素晴らしい設計でライブラリが豊富でも諦めるしかない
話題に上げるまでもないカス言語は例のゴミ箱スレに行こう
756デフォルトの名無しさん:2013/05/05(日) 01:53:07.07
>>753
それは全くその通りだな
でも、本当にJavaが優れていたら、WindowsでもSpring使われていたはずだ
結局、言語の優劣で決まってると思うぞ
757デフォルトの名無しさん:2013/05/05(日) 02:32:58.88
そもそもJSに関わってこなかった人間はブラウザで何かしようなんて初めから考えてなかったはずが、もうそれは許されない
すべての仕事をブラウザでやってる人間からしたらそんな遅れてる化石人間は論外なんだよ
ブラウザ以外でアプリを使う?笑わせるな
今すぐブラウザ以外のアプリをアンインストールしろ。世界が変わるぞ。現に俺は変われた
今ブラウザ以外で起動してるアプリを見てみろ。本当にそんなもの必要か?
それはブラウザでやるべき、ブラウザでやらなければ問題が生じる仕事なはずだろ
すべての仕事はそうだ。現実を受け入れろ
758デフォルトの名無しさん:2013/05/05(日) 02:45:03.74
>>755 >>757
どう見てもアンチJSのレスにしか見えないw
759デフォルトの名無しさん:2013/05/05(日) 02:53:05.11
インターネット時代がやっと追い付いてきた
数年後には全ての家電はネットに接続する
つまり洗濯機やアイロン、こたつなどをJSで作られたインターフェースで操作するようになる
これは確定した未来で、そこに他の言語は存在しない。単なる事実だからしかたない
760デフォルトの名無しさん:2013/05/05(日) 03:04:21.36
他の確定事項としては、ubuntuの次のバージョンはブラウザベースになり、pythonやperlなどははじめからインストールされない。必要ないからだ
既存のアプリは全て革命の名のもとにブラウザアプリに置き換わる
その未来がギラギラと眼前に迫って来ているのをみんなが感じてる
761デフォルトの名無しさん:2013/05/05(日) 03:05:59.57
>>759
一つは間違いで一つは正しい。
間違いというのは、すべての家電がネットに接続するということ。
これは間違い。

正しいというのは、ネットに繋がった家電を操作できるならば
それはJavaScriptであるということ。
762デフォルトの名無しさん:2013/05/05(日) 03:16:47.22
さすがのJS厨の俺でもどっちも間違いだって分かるわw
760はどう見てもネタだしw
763デフォルトの名無しさん:2013/05/05(日) 03:21:44.02
Node.jsが受けたのはV8の設計が神だったことが大きい
C++ともの凄く相性いいからな
764デフォルトの名無しさん:2013/05/05(日) 03:22:03.08
JS厨とアンチJS厨がもともと同一人物説
765デフォルトの名無しさん:2013/05/05(日) 03:25:47.12
革命に対するはじめの反応は往々にしてこんなものか
確定した未来つまり数年後のHTML5が全てにおいて使われる新しい世界に
一部の人間は気づき始めてる。その熱狂してるコミュニティの瞳に映る未来は
JSでできないことはないし、現に彼らはJS以外をつかっていない
766デフォルトの名無しさん:2013/05/05(日) 03:30:43.49
JSは他の言語とは比較にならないほどの神言語である
HTML5と言えば神であるJS以外は考えられないので
何かを比較するということ自体が不敬だと言える
実際、JS以外の言語は確定した未来において存在しない
767デフォルトの名無しさん:2013/05/05(日) 03:33:36.74
うーん、これは…
768デフォルトの名無しさん:2013/05/05(日) 03:35:39.62
シンパシーを感じた真性JS厨である>>761だけが崩壊してる論理に真面目に取り合っててワロタ
769デフォルトの名無しさん:2013/05/05(日) 03:36:55.48
HTMLのscriptタグはJavaScript以外にも
対応できるようになっている。
実際にVBScriptに対応していた。

ならばscriptタグを使って、PHP、Perl、Pythonなどを
動せるようにすればいいではないか?

残念ながらこの単純な考えは実現が難しい。

なぜなら他のスクリプト言語では
言語の基本機能としてファイルの読み書きが可能だから。
単純に実装してしまうと言語そのものがセキュリティホールとなってしまう。

ファイルの読み書きができることを前提に構築された言語とライブラリは
すでに巨大なものとなってしまっており、今更制限できない。

もしJavaScriptを置き換える言語が将来出来るとすれば
それは最初からセキュリティを考慮しファイルアクセス機能が
オプションである新しい言語だろう。
770デフォルトの名無しさん:2013/05/05(日) 03:41:29.14
つまりJS以外の言語は何も考慮する必要がないただのノイズだし
実際、GoogleはJSだけを使い素晴らしいプロダクトを次々に産み出してる
全ての言語を熟知した天才集団が選んだ言語それがJS
つまりJS厨のIQは他の言語ユーザーより高い
771デフォルトの名無しさん:2013/05/05(日) 03:45:21.70
アンチJSの奴がついに俺のマネをし出したw
772デフォルトの名無しさん:2013/05/05(日) 03:53:04.75
考えて見れば恐ろしいもので、
何処の誰が作ったかもわからないプログラムを
無許可で実行するのがブラウザ。

本来ならすごく危険な行為
JavaScriptのメリットはこれが可能という
セキュリティの高さだろう。
773デフォルトの名無しさん:2013/05/05(日) 03:58:01.54
pythonで科学技術計算?プラグイン?perlでワンライナ?RoR?
C#でポトペタ?C/C++で高速化?

笑わせるな!JSを知らないからそんな愚かな方法を続けてしまうのだ
情弱どもがそんなものでドヤ顔するとはほとほと呆れ果てる
数年後のHTML5+JSで作られた世界を全く理解してない
もう既にpythonやC#の牙城が崩れ去った音が聞こえなかったのか?
JS指向世界こそが唯一の答え。googleが選んだ答えだ。誰も逆らえまい
774デフォルトの名無しさん:2013/05/05(日) 03:59:57.65
JSはこの世界を支配しているが安心しろ
JSは究極のセキュリティを備えている
お前が普段見ているそのサイト、それがその証拠だ
他の言語でこれほどのセキュリティを実現する方法はこれまで、そしておそらくこれからも存在しない
775デフォルトの名無しさん:2013/05/05(日) 04:00:56.16
asm.jsが脅威だわ。
あれを使うと、既存のライブラリが
JavaScriptライブラリに変えられちまう。
776デフォルトの名無しさん:2013/05/05(日) 04:08:25.15
君たちのHDDにある大量のCのソースコード
それは今この場でJSのライブラリになる
一丁前のJSプログラマに仲間入りだ。何故試さない?
あの日作った力作Cプログラムもそっくりそのままブラウザで動く
何故試さない?
777デフォルトの名無しさん:2013/05/05(日) 04:26:53.55
わかってる人間は既に変換し終えたころか
Cで書かれた大規模システム、ライブラリは無数にあり、公開されているものも多い
それが全部JSのものだ。来週か、来月か、近いうちに大規模な「革命」が起こる
JS以外の言語がこの世から消え去る審判の日だ
778デフォルトの名無しさん:2013/05/05(日) 04:32:12.83
ほとんどの言語はCで書かれている
それらの言語はもはやJSの一部として当然に機能する
まさに今、まさにここで。
JSを使う、世界を手中に納めるということはそういことだ
779デフォルトの名無しさん:2013/05/05(日) 05:33:40.48
>>765
それで。オブジェクト指向は革命ではなかった。
780デフォルトの名無しさん:2013/05/05(日) 07:44:17.19
>>779
この手の議論はまず、意図を明らかにしないと不毛
革命ではなかったとは?
君の考える革命とは何で、その定義のどこがオブジェクト指向に足りない?
781デフォルトの名無しさん:2013/05/05(日) 08:11:41.60
2000年代はウェブの隆盛でPerlやPHPのようなスクリプト言語も隆盛になったんだけど、すでにピーク過ぎてる。
今までこの手のスクリプト言語が使われて来た分野はJSが代替する。
が、JSというかHTML5が凄く有望なアプリケーションプラットフォームかと言うとそうでもなくて、スマートデバイスの普及、ストアアプリって仕組みの導入でアプリケーションをHTML5みたいな不自由で低速な実行環境、収益力のない配布形態で作る必要なくなった。
スマートフォンではGmailだってアプリから使うのが普通。
Windows8からPCにもその流れは来てる。
782デフォルトの名無しさん:2013/05/05(日) 08:12:09.72
node.js触ってみたけど、面白い言語だねぇ

下みたいな、明らかに間違ったコードでも
実行時例外すら出ないんだね

var x = [0, 1, 2, 3]
for(var i = 0; i <= x.length; i++) {
  console.log(x[i])
}
var f = function(x, y){return 2 * (x + y)}
console.log(f(1))


まともな実行時チェックを何もやらないから高速に動くの?
783デフォルトの名無しさん:2013/05/05(日) 08:23:55.85
>>780
RDBは革命だったと思うよ。
784デフォルトの名無しさん:2013/05/05(日) 08:24:49.56
>>782
それってJavaScript的には間違ってるわけじゃない
undefinedという概念があるから
それのおかげで、様々なブラウザやバージョンに対応できた側面がある
785デフォルトの名無しさん:2013/05/05(日) 08:32:55.96
>>783
NoSQL
786デフォルトの名無しさん:2013/05/05(日) 08:38:30.08
まあ、様々な環境に対応させたり、探りを入れたりするには、
「手動で」チェックを入れるのが意外と妥当な解決策だったんだよな
ブラウザという特殊な環境だけの話かもしれん
787デフォルトの名無しさん:2013/05/05(日) 08:40:47.90
>>784
f(1)の方はundefinedじゃなくてNaNが返ってくるよ
NaNの概念がある言語は沢山あるけど、引数の数をチェックしない言語は少ないと思う
788デフォルトの名無しさん:2013/05/05(日) 08:43:20.60
>>787
最初にundefinedになった後、その値を計算に使用したからNaNになる
引数チェックしないのは、今ではオーバーロードをエミュレートするのに
使われてるけど、そもそもオーバーロードにした方が良かったかもしれないね
789デフォルトの名無しさん:2013/05/05(日) 08:46:34.56
バージョン違いで引数が増えてたりといった事が日常茶飯事だったと想像
790デフォルトの名無しさん:2013/05/05(日) 08:48:50.72
>>788
なるほど、fの引数のyがundefinedになってるんだね
納得
791デフォルトの名無しさん:2013/05/05(日) 08:50:21.62
>>789
そうだね
'undefined'を変数名として使えるという変態言語w
function (a, b, undefined)とすればちゃんとundefinedがundefinedになるという
バッドノウハウもあるw
でもこういう柔軟性結構好きなんだよねw
792デフォルトの名無しさん:2013/05/05(日) 09:03:08.76
function(x, y){return x + y}('foo')
ってやったら"fooundefined"が返ってきたw
793デフォルトの名無しさん:2013/05/05(日) 09:06:02.95
文字列として結合したのか
これは動的言語ではよくあるやつだな
794デフォルトの名無しさん:2013/05/05(日) 09:21:49.34
>>793
静的動的は全然関係ないわ
795デフォルトの名無しさん:2013/05/05(日) 09:32:40.05
動的型付けのRubyは "foo" + nil で例外投げるし、Pythonも 'foo' + None で例外投げる
静的型付けのJavaは "foo" + null が"foonull"を返す
796デフォルトの名無しさん:2013/05/05(日) 10:55:31.55
>>755
jqueryなければウンコやん
797デフォルトの名無しさん:2013/05/05(日) 11:20:39.22
>>755とかネタ混じりで言ってるんだろうけど
似たような傾向の人がスレ乱立とかスレタイテンプレ勝手にいじるのはやめてほしいな
798デフォルトの名無しさん:2013/05/05(日) 11:38:39.76
googleはpythonも使ってるとか、Javaも使ってるとか可愛い勘違いするなよ
天才が暇つぶしに触ってただけだ。本気で使いこなしているのはJSだけ
799デフォルトの名無しさん:2013/05/05(日) 11:59:19.77
>>795
例外投げるのが正しいし、それ以外は危険以外のなにものでもないけど
例えばPythonでは
class&nbsp;myStr(str):
&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;__init__(self,&nbsp;s):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.s&nbsp;=&nbsp;s
&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;__add__(self,&nbsp;s):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;s&nbsp;is&nbsp;None:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self.s
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif&nbsp;isinstance(s,&nbsp;int):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self.s&nbsp;+&nbsp;str(s)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self.s&nbsp;+&nbsp;s

foo_str&nbsp;=&nbsp;myStr('foo')

print&nbsp;foo_str&nbsp;+&nbsp;'bar'
print&nbsp;foo_str&nbsp;+&nbsp;100
print&nbsp;foo_str&nbsp;+&nbsp;None
800デフォルトの名無しさん:2013/05/05(日) 12:02:45.52
デフォルトが安全側に寄ってるのが大事なんだよ
801デフォルトの名無しさん:2013/05/05(日) 12:05:45.13
ごめん間違えた><
pythonコード貼ってる人がやってるホイトスペースの置き換えがわからん

>>795
例外投げるのが正しいし、それ以外は危険以外のなにものでもないけど
Pythonではその挙動を自分の好きなように定義したいとき
たとえばこうするんだけど、他の言語ではどうやるのかな
特に妄想垂れ流しキチガイJS厨にはよく聞きたい

class myStr(str):
def __init__(self, s):
self.s = s
def __add__(self, s):
if s is None:
return self.s
elif isinstance(s, int):
return self.s + str(s)
else:
return self.s + s

foo_str = myStr('foo')

print foo_str + 'bar' # 'foobar'
print foo_str + 100 # 'foo100'
print foo_str + None # 'foo'

>>801 これで見れる?
802デフォルトの名無しさん:2013/05/05(日) 12:33:29.42
>>801
今は 10 進数の数値参照でないといけないっぽい
& # 160; をスペース抜きで
803デフォルトの名無しさん:2013/05/05(日) 12:34:24.38
>>802
ほうほう、サンクス
804デフォルトの名無しさん:2013/05/05(日) 12:47:18.25
>>801
対称性が壊れてる
805デフォルトの名無しさん:2013/05/05(日) 13:00:46.80
>>343,350はやっぱり違うな。少なくともpythonはクラス内のメソッドに引数でselfを渡すし
外部変数にはselfを付けてるという意味で独立してない
JSは無条件でクロージャだから全部メソッド外の変数を間違って弄れる

>>804
ただの例だから。自作の型同士で定義するのが正しい使い方だろうね
806デフォルトの名無しさん:2013/05/05(日) 13:05:22.47
>>804
myStrに次のメソッドを追加すると対称性を確保できる

def __radd__(self, s):
    return self.__add__(s)

numpy 等で
1 + array([0, 1, 2])
って書いたら array([1, 2, 3]) が返ってくるのも同じ
807デフォルトの名無しさん:2013/05/05(日) 13:06:26.82
>>806
それだ!ありがとう
808デフォルトの名無しさん:2013/05/05(日) 13:53:44.40
>>805
正直、selfが面倒なだけ
809デフォルトの名無しさん:2013/05/05(日) 13:59:31.05
>>808
いやselfの変数とそれ以外のローカル変数は明らかに性質が違う
コードを追うときもいちいち宣言の有無を確認しなくていいので可読性は上がる
810デフォルトの名無しさん:2013/05/05(日) 14:05:54.93
ま、来たるHTML5+JSの時代にはどんなまともな設計でも意味ないんですけど
811デフォルトの名無しさん:2013/05/05(日) 14:11:54.05
>>809
簡潔に書けるのが良いのに、最初のメソッドにいちいちselfを明示的に宣言するところとか
邪魔でしょうがない
812デフォルトの名無しさん:2013/05/05(日) 14:21:37.63
それだと一貫性がなくなるから
813デフォルトの名無しさん:2013/05/05(日) 14:26:53.26
第一引数と変数の前にselfを書くことで簡潔さが失われるのか甚だ疑問
それは文字数が一文字でも少ないほうが良いという価値観なのだろうが
基本的にpythonはそんな姿勢を取ってないと思うけど
814デフォルトの名無しさん:2013/05/05(日) 14:31:54.47
エラー起こしたときに python やクラス書いた人の考える引数の個数(self 込み)と
ユーザの考える引数の個数(self 抜き)が一致しないのはどうなんだろ
例えばこんなの

>>> f = Foo("a")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() takes 1 positional argument but 2 were given
815デフォルトの名無しさん:2013/05/05(日) 14:39:33.92
but 2 were given がなければ、pythonユーザーでも混乱するかもね
でも実際には親切に書かれてるし、それでどん詰まりしたりするものかなあ
というかREPLで help(Foo) と打てばわかるんじゃね。無理かな?
816デフォルトの名無しさん:2013/05/05(日) 14:58:24.38
学習という面でPythonは論外だね。初心者に厳しすぎる
その点JSは簡単明瞭な設計とブラウザで動くという最強の強みで学習には最適
というかブラウザで動かない言語を学習というのは事実上不可能な時代になってる
最近の若者はみんなJSからプログラミングに入門してるらしいしね
彼らは変な趣味でも持ってなければもう他の言語を学習する必要がないし
最低の学習コストで最大のパフォーマンスが得られるわけだ
817デフォルトの名無しさん:2013/05/05(日) 15:09:19.04
selfが無い場合、デコレータがselfを参照できるようにするのは
相当に面倒くさそうだ
普通の関数用とメンバ関数用で別々のデコレータ(と実現する仕組み)が必要になると思う
Pythonはレキシカルスコープだから
818デフォルトの名無しさん:2013/05/05(日) 15:15:51.97
windowsにプリインストールされていない点は関門ではあるが
pythonは公式でインストーラーやチュートリアル等のドキュメントが用意されているし
対話型環境が充実している(helpやdir)から学習面で論外と言い切るのは不適切
819デフォルトの名無しさん:2013/05/05(日) 15:25:57.16
この世界はHTML5+JSの時代であるという大前提を忘れてないか?
820デフォルトの名無しさん:2013/05/05(日) 15:37:13.73
無視してたけどさ、>>819みたいな書き込みって絶対アンチJSだろw
821デフォルトの名無しさん:2013/05/05(日) 15:43:55.55
JSの時代になって得するのは誰か
陰謀論のように富を独り占めする黒幕がいるのか。答えはNOだ
JSを使う全員が幸せになれる
彼女ができるとか宝くじにあたるという個人的なことだけじゃなく
世界の貧困層や難病に苦しむ人々だって救われている
このように現にNode.jsで人々の生活は一変したわけだが
asm.jsの衝撃はこんなもんじゃない
その衝撃的な効率によって世界のエネルギー問題が解決しこの世から戦争がなくなる
822デフォルトの名無しさん:2013/05/05(日) 15:45:34.96
文才はあるなw
823デフォルトの名無しさん:2013/05/05(日) 16:17:46.14
自分の主張がとおらないと暴れだすとか最悪だよ
824デフォルトの名無しさん:2013/05/05(日) 16:22:36.76
>>823
2ch歴短い?
多分、2chというものを誤解してるんじゃないかな
ネタにくだらんレスにウケ狙い、推測に主観
そんなもんに腹立ててたらキリがないぞ
レスする方も高度なレスをする気なんかこれっぽっちもないよ
お前こそ、人に要求する前にスルースキル学べよ
自分で妥当性を考えろ
825デフォルトの名無しさん:2013/05/05(日) 16:27:17.14
2ch歴が短いと、むかついた時に
相手にあっちにいけとか書き込むなとか
言ったりする。

そんなこと言っても無駄なんだよな。
防ぐ方法ないし、逆に無視され書き込み続けた時
自分がむかつくだけ、それを相手に教えているわけで
まぬけだよなーってなる。
826デフォルトの名無しさん:2013/05/05(日) 16:30:29.08
真摯に誠実に真実しか語ってないのにあっちいけとか言われる意味がわからないしね
827デフォルトの名無しさん:2013/05/05(日) 16:31:14.10
自分の文章に酔って気持ちよくなってるっぽいのが
壮絶にキモい

さらに、2chというものは〜とか語っちゃってるのがキモい
828デフォルトの名無しさん:2013/05/05(日) 16:31:30.18
こっちは正しいことを言ってるだけだから
やめろと言われてもやめる必要がない
間違ってるのは確実にそっちなのだから
829デフォルトの名無しさん:2013/05/05(日) 16:33:40.92
>>827
JSの素晴らしさを布教することより気持ちがいいことはないからね
時代のビッグウェーブに乗ることの気持ちよさ
君もこっちに来なよ
830デフォルトの名無しさん:2013/05/05(日) 16:45:35.11
スルースキル学べよwwwwww
831デフォルトの名無しさん:2013/05/05(日) 16:48:40.65
スルーしても無意味、反応しても無意味。残酷なJSが支配する
832デフォルトの名無しさん:2013/05/05(日) 17:02:20.76
アンチjsが自作自演で暴れ出したぞw
833デフォルトの名無しさん:2013/05/05(日) 17:04:44.29
仮に暴れていても本人がそう思ってないなら
そういうのを暴れてるとは言わない
834デフォルトの名無しさん:2013/05/05(日) 17:05:44.46
アンチ自作自演
アンチ荒らし
アンチ妄想垂れ流し

そういう奴の意見は通らない。ここは2chだから
835デフォルトの名無しさん:2013/05/05(日) 17:07:21.72
JSがいかに素晴らしいか主観によって語ることが批判されるとかおかしくね?
836デフォルトの名無しさん:2013/05/05(日) 17:10:20.65
例えば未来のJSでは>>801,806はもっと簡潔に、もっとセキュアに記述できる
837デフォルトの名無しさん:2013/05/05(日) 17:44:49.82
JSの型がユルユルなのは結構やばそうなんだけど
実際に開発してる人はどうやって対応してるんだろう
適当なシンタックスチェックのツールがあるのかな?
838デフォルトの名無しさん:2013/05/05(日) 17:48:39.46
JSは自由な言語だから。ちゃんとわかってコーディングすれば何の問題もない
それよりも何かと緩いことのメリットが大きい
確かにヤバそうに見えるけど実際は全くやばくない。それがJSの特に優れているところ
839デフォルトの名無しさん:2013/05/05(日) 17:49:28.90
>>838
あ、実際に開発してない人の意見はいいです
840デフォルトの名無しさん:2013/05/05(日) 17:51:43.32
俺が開発してるかどうかは問題じゃない
いずれにしてもJSがそういう優れた言語であることに代わりはない
Googleマップがその証拠だ
841デフォルトの名無しさん:2013/05/05(日) 18:09:26.71
sublime linter いいよ
842デフォルトの名無しさん:2013/05/05(日) 18:13:55.91
>>840
それは言語じゃなくてブラウザのAPIと実装のおかげ
843デフォルトの名無しさん:2013/05/05(日) 20:14:54.90
結局JS厨はブラウザで動くという意外のメリットを提示できないんだね
JS自体は型チェックもザルのゴミ言語だけど、ブラウザで動く唯一の言語だから仕方なく使ってるんだね
844デフォルトの名無しさん:2013/05/05(日) 20:20:57.54
>>837
シンタックスのチェックなら実際に動かしてみれば検出される
ある程度の規模になるならモジュールテスト書いて動かす
Lintツールも使いたい奴は使う
845デフォルトの名無しさん:2013/05/05(日) 21:41:58.32
>>792>>795
JavaとJavascriptはダメだなぁ

特にJavaは静的型言語特有の冗長さ全開なのに
肝心なところで穴が開いてて酷いわ
846デフォルトの名無しさん:2013/05/05(日) 21:47:07.18
RubyとPythonは文字列の足し算も出来ないのか
Noneを出力するためにわざわざtostr()みたいな関数かますのかな
いちいちめんどくさいなあ
847デフォルトの名無しさん:2013/05/05(日) 21:51:41.28
文字列連結と出力に何の関係が……?
頭がおかしくなっちゃったの?
848デフォルトの名無しさん:2013/05/05(日) 21:54:17.73
'foo' + nullでfoonullになったら何かまずいことあるのか?

obj = null;
'foo' + obj


これがfoonullだったらよくないけど
849デフォルトの名無しさん:2013/05/05(日) 21:58:46.89
>>847
write 'debug value = ' + value
ここでいちいち動作が中断するし、出力も出来ないんだろ

>>848
それもfoonullになって欲しいわ
850デフォルトの名無しさん:2013/05/05(日) 22:03:32.94
まずnullの中身が文字列'null'なのがおかしいだろw
どんな設計だよ
851デフォルトの名無しさん:2013/05/05(日) 22:07:18.70
>>> value = None
>>> print 'debug value =', value
debug value = None
852デフォルトの名無しさん:2013/05/05(日) 22:07:47.86
obj が null のまま加算することがあってはならないのに
'foo' + obj が 'foonull' になるなんてのは論外だろう

デバッグ用の出力ならそれ用の関数を用意して
write('debug value = ', value) とかすればいい
853デフォルトの名無しさん:2013/05/05(日) 22:08:27.56
nullの中身?
854デフォルトの名無しさん:2013/05/05(日) 22:16:23.72
>>852
ほら、結局そういうのかまさないと駄目なんだろ
めんどくさ
855デフォルトの名無しさん:2013/05/05(日) 22:21:03.18
856デフォルトの名無しさん:2013/05/05(日) 22:21:12.99
出力以外でそんな加算をしたらバグなのにエラーも吐かずにプログラム続行
テストで検出できない
857デフォルトの名無しさん:2013/05/05(日) 23:04:10.94
nullやundefinedが文字列と連結出来なくても
全然冗長じゃなかったねw

ていうか、そんなとこで冗長さを気にするくらいなら
JavascriptはfunctionをSMLやOCamlに習ってfnやfunにすべきだし、
Javaは冗長すぎるから死滅すべき
858デフォルトの名無しさん:2013/05/05(日) 23:09:15.87
そのためにコンマという演算子を定義して仕様のシンプルさを
犠牲にしちゃってるけどね
pythonだけだし
859デフォルトの名無しさん:2013/05/05(日) 23:20:09.04
この点に関してはPythonの方がいいだろ
JavaScriptは細かい点でミスが多いし、エラーで止まることより動くこと
を重視してる面はある
昔のCの発想に似てる
860デフォルトの名無しさん:2013/05/05(日) 23:25:03.47
Python3 (または Python2 で from __future__ import print_function使用時) では
printはただの可変長引数の関数で、カンマに特殊な意味はない(引数を区切るだけ)

当然 print('debug value =', value) で>>851と同じ出力が得られる
861デフォルトの名無しさん:2013/05/05(日) 23:28:29.01
>>860
可変長引数は危険だな
引数間違えてもエラーで止まらない
862デフォルトの名無しさん:2013/05/05(日) 23:29:58.47
>>861
引数間違えたら困る関数に
可変長引数を使わなきゃ良い
863デフォルトの名無しさん:2013/05/05(日) 23:30:06.91
まあブラウザでは多少エラーが出ても
内容を表示してくれないと困るからねえ
864デフォルトの名無しさん:2013/05/05(日) 23:30:11.91
お、今日はJSアンチきてないのか。
あいつが来てないと流れがまともだな
865デフォルトの名無しさん:2013/05/05(日) 23:31:59.60
>>863
それは分かる
でもデバッグ用にもっとstrictなモードがあっても良いような
866デフォルトの名無しさん:2013/05/05(日) 23:35:06.42
use strictがそのうちもっと厳しくなるんじゃね
まぁes5の機能ですらまだ使いにくいんだけど
867デフォルトの名無しさん:2013/05/05(日) 23:36:10.24
>>864
ずっと書き込んでますが?ソースも晒してますが?
今日はいつものように妄想垂れ流さないですか?
868デフォルトの名無しさん:2013/05/05(日) 23:38:13.61
>>861
言いがかりが苦しすぎ
869デフォルトの名無しさん:2013/05/05(日) 23:45:45.84
>>868
GoやHaskellには可変長引数は基本は無い
870デフォルトの名無しさん:2013/05/05(日) 23:49:11.89
基本はね
でもHaskellなら Text.Printf.printf は可変長引数
871デフォルトの名無しさん:2013/05/05(日) 23:50:10.48
>>869
で、printが可変長で何が問題?
GoやHaskellはwrite 'debug value = ' + valueが出力できるのか?
872デフォルトの名無しさん:2013/05/05(日) 23:51:34.37
本当にお前らの言い分聞いてると、
まるで厳密なチェックをたくさんしてエラーをたくさん出した方が
いいかのような口ぶりだな
動的型付けな時点でどうなのよ
もしくは静的信者?
873デフォルトの名無しさん:2013/05/05(日) 23:53:01.84
メリットとデメリットを天秤にかけてるだけでしょ
874デフォルトの名無しさん:2013/05/05(日) 23:53:16.98
>>872
動的だからこそ実行時エラーを捕まえる必要がある
875デフォルトの名無しさん:2013/05/05(日) 23:53:19.89
>>870
haskellのは特殊
でもpythonは基本的な普通の言語機能として可変長が定義できる
876デフォルトの名無しさん:2013/05/05(日) 23:54:01.09
>>875
お前が言ってるのはwhileループが止まらないかもしれないと言ってるのと同じ
877デフォルトの名無しさん:2013/05/05(日) 23:54:36.87
>>874
実行時のエラーなんて解釈によって変わるじゃん
878デフォルトの名無しさん:2013/05/05(日) 23:54:49.65
>>875
いかんのか?
879デフォルトの名無しさん:2013/05/05(日) 23:55:22.20
>>878
危険なものを簡単に定義できちゃうのは危険
880デフォルトの名無しさん:2013/05/05(日) 23:56:30.14
>>877
まあ、解釈によるのは事実なので>>801みたいな抜け道はあっても良いと思うよ
でもデフォルトはstrictな方が良いでしょう
881デフォルトの名無しさん:2013/05/05(日) 23:58:21.91
>>879
可変長はデフォでもなければ推奨されてるわけでもない
882デフォルトの名無しさん:2013/05/05(日) 23:58:49.58
>>880
デフォで型についてもstrictな方がいいとは思わんの?
883デフォルトの名無しさん:2013/05/05(日) 23:58:54.42
>>879
うっかりミスで気付かないうちに
可変長引数を定義したことなんてねーよ
884デフォルトの名無しさん:2013/05/05(日) 23:59:54.69
>>882
型についてstrictな方が良いって話をしてるんだろ
885デフォルトの名無しさん:2013/05/06(月) 00:00:45.60
>>883
うっかり引数書き忘れたりすることはあるだろ
それがエラーにならない
そして簡単にできちゃったら、便利だから乱発するもんだろ
それが良くない
886デフォルトの名無しさん:2013/05/06(月) 00:01:19.36
>>884
つまり、静的型付けが優れていると
887デフォルトの名無しさん:2013/05/06(月) 00:02:48.86
>>885
引数を何に使うのか知ってれば可変長の方が便利で乱発するとか言えないと思うのだが
何が来るのか分からない方が便利なのか?
888デフォルトの名無しさん:2013/05/06(月) 00:03:47.24
>>885
> そして簡単にできちゃったら、便利だから乱発するもんだろ

お前と一緒にすんな
別に可変長引数は常に便利ってワケじゃねーよ
むしろ関数を定義する側は面倒臭いわ
889デフォルトの名無しさん:2013/05/06(月) 00:05:22.07
>>886
型付けを静的に行うか動的に行うかと、
型付けの強い弱いを混同するな

Cは静的に型付けを行うが型付けは弱いし、Javaだって文字列連結に関しては弱い
890デフォルトの名無しさん:2013/05/06(月) 00:06:56.55
>>888
誰も常に便利だとか言ってないし、全く面倒ではないとまでは
言ってないのだが
891デフォルトの名無しさん:2013/05/06(月) 00:07:49.78
>>890
言いがかりが苦しすぎるつってんだよ
プログラミングしたことないだろ?
892デフォルトの名無しさん:2013/05/06(月) 00:08:02.89
まあ、心配せんでも乱発はしないよ、常識的に
あんまり無茶な難癖付けてもツマランよ
893デフォルトの名無しさん:2013/05/06(月) 00:09:16.62
>>889
でも、静的に行うことによって、動的に型を変更できなくなるのだから
その点ではstrictだろ?
894デフォルトの名無しさん:2013/05/06(月) 00:10:29.09
>>892
言語の思想として制限する言語があるくらいだし、
的外れでもないんだけどな
895デフォルトの名無しさん:2013/05/06(月) 00:10:33.01
よくわからないけどこれは名言かもしれない
896デフォルトの名無しさん:2013/05/06(月) 00:13:11.89
strictがいいなら、値の変更代入自体出来ないhaskell最強だろう
897デフォルトの名無しさん:2013/05/06(月) 00:14:46.48
JavaScriptはデフォで全てのfunctionが可変引数ですが何か?
Argumentsで便利にアクセスできますが?
898デフォルトの名無しさん:2013/05/06(月) 00:16:57.10
>>897
ワロタ
899 忍法帖【Lv=29,xxxPT】(-1+0:5) :2013/05/06(月) 00:19:04.61
まんこ
900デフォルトの名無しさん:2013/05/06(月) 00:20:29.19
JSのfunctionひどすぎるだろ…
そりゃ可変長は危険と言いたくもなるわ…
901デフォルトの名無しさん:2013/05/06(月) 00:22:27.98
72 ◆/6c/RpHY/o 「 #&%#)&'%#()'$&'#(&)#('&)#$('&〜!!!!!(意味不明w 」

コマンドを選択して下さい

  構ってやる
  措置入院
> ハブる
  通報する
902デフォルトの名無しさん:2013/05/06(月) 00:24:34.31
function fib(n) {
if (n < 2) {
return n;
} else {
return fib(n - 1) + fib(n - 2);
}
}

これ引数一個と思うやんかあ?可変長なんよぉ〜www
引数の数間違えても動くんよぉwww
903デフォルトの名無しさん:2013/05/06(月) 00:25:18.45
javascriptは柔軟性が高いんだよ
だからこそ何でもできる
やり方が発見されて行く言語なんだよ
904デフォルトの名無しさん:2013/05/06(月) 00:25:27.71
個人的には、こんなイメージ

C, Javascript: ユーザを全面的に信頼する。ユーザがミスすること等ありえない
Python: ユーザの意思を尊重する。自覚的にやるなら何でも許すが、デフォルトは安全寄り
Haskell: ユーザの知能を信頼する。実用的なプログラムを書けない?貴方が馬鹿だからですよ(ニッコリ)
905デフォルトの名無しさん:2013/05/06(月) 00:27:58.40
>>903
余計なincludeしなくても始めから使えるところはいいね。
906デフォルトの名無しさん:2013/05/06(月) 00:35:34.03
argumentsの最大の罠は
やっぱりそれがただのプロパティだってこと
argumentsに大して代入してもエラー投げない
use strictすると流石に投げるけど
まぁ便利だとは思うけどねarguments
907デフォルトの名無しさん:2013/05/06(月) 00:36:05.92
まあ確かにこうして見るとJavaScriptは酷いな
案外問題になってないのが不思議だ
908デフォルトの名無しさん:2013/05/06(月) 00:39:11.90
問題になってるからJavascriptへコンパイルする言語が
雨後のタケノコのように出来てるんじゃないかなぁ
909デフォルトの名無しさん:2013/05/06(月) 00:46:07.18
ここでも「JSのバッドノウハウ」が顔を出す
糞仕様をトリッキーに利用しそれが横行している
910デフォルトの名無しさん:2013/05/06(月) 00:48:20.92
CとJSはなんか雰囲気似てるよね
911デフォルトの名無しさん:2013/05/06(月) 00:53:35.79
いくらCでもデフォルトで可変引数なんてことはないぞ
912デフォルトの名無しさん:2013/05/06(月) 00:57:12.55
次のテンプレに可変長引数がデフォの言語はスレ違いですって入れとくか
913デフォルトの名無しさん:2013/05/06(月) 01:12:27.37
arguments使わなければよい
914デフォルトの名無しさん:2013/05/06(月) 01:18:38.43
問題は呼び出される側じゃなくて、呼び出す側が全く引数リストに縛られないことだろ
argumentsとか関係ない
915デフォルトの名無しさん:2013/05/06(月) 01:40:13.73
消費早いから立てといたぞ

[JavaScript] スクリプト言語34 [Perl,Python,PHP]
http://toro.2ch.net/test/read.cgi/tech/1367771981/
916デフォルトの名無しさん:2013/05/06(月) 01:44:48.22
950あたりになったらちゃんとしたスレタイで立て直すから削除依頼出してこいよ
917デフォルトの名無しさん:2013/05/06(月) 01:45:33.17
いや、しかしなんでデフォルトで可変引数なんだ?
これはちょっと不可解だ
そんなにブラウザで動かしたかったんかいな
918デフォルトの名無しさん:2013/05/06(月) 01:46:40.54
rubyがフェイドアウトしている件w
919デフォルトの名無しさん:2013/05/06(月) 01:46:45.95
>>908
でも問題視している発言は確かにあまり聞かない
920デフォルトの名無しさん:2013/05/06(月) 01:47:31.62
>>918
前スレから荒らしてたJS厨がスレタイとテンプレを改変した
ついでのJS以外スレというのも立てた
921デフォルトの名無しさん:2013/05/06(月) 01:48:20.59
>>919
型がユルユルなことは常に問題視されまくってるじゃん
922デフォルトの名無しさん:2013/05/06(月) 01:52:41.41
>>921
俺が言ってるのはデフォルトで可変長引数になる問題な
というか、気づいてないやつが大半な気すらする
923デフォルトの名無しさん:2013/05/06(月) 01:55:08.62
>>922
確かに。ありえないから自分の言語と比較しようとちょっと触ったくらいじゃ試さないしねw
ちょっと衝撃だった。引数を間違えても動いてしまうというデメリットしかない
924デフォルトの名無しさん:2013/05/06(月) 01:56:10.47
>>915
またアンチJSが立てたか
おまえpythonに泥塗ってる罠
925デフォルトの名無しさん:2013/05/06(月) 01:56:55.30
>>924
俺は立ててないけど誰かが立ててくれました

【PHP,Python】スクリプト,バトルロワイヤル34【Perl,Ruby】
http://toro.2ch.net/test/read.cgi/tech/1367772345/
926デフォルトの名無しさん:2013/05/06(月) 01:57:27.86
仮に100歩譲ってデフォルトが可変長引数なのは良しとしよう(良くないけど)
可変長引数じゃなくするにはどうするの?
もしかしてargumentsをチェックしたりの面倒な作業が必要なの?
927デフォルトの名無しさん:2013/05/06(月) 02:02:29.97
>>926
普通はundefinedをチェックして足りないことは検出するね
と言ってもエラーにすることは普通はしない
デフォルトの値を割り当てて継続するのが普通
あと、多すぎる場合は、普通は無視する
どうしてもエラーにしたかったら、arguments.lengthのチェックだな
928デフォルトの名無しさん:2013/05/06(月) 02:07:48.73
全ての言語のに劣る糞仕様だな
929デフォルトの名無しさん:2013/05/06(月) 02:16:17.31
実際はそういう言語設計ミスも揚げ足取りの類だよ
意外と誰も困ってない
そんなことより、クロージャとかプロトタイプベースのオブジェクト指向
とかの方が影響が大きい
930デフォルトの名無しさん:2013/05/06(月) 02:19:37.26
いやー、困ってるんじゃないかなぁ
931デフォルトの名無しさん:2013/05/06(月) 02:23:19.47
どんなに困ってても使わなければいけないというだけ
他のまともな言語を使ったことがあるなら気持ち悪くてしかたないだろ
実際、なんのメリットもない罠がしかけられてる
それでもHTML+JSの時代だから糞言語を強いられるんだよ
932デフォルトの名無しさん:2013/05/06(月) 02:26:31.03
困ってるなら、これを指摘して文句をいうブログなりなんなりが
多数引っかかるはずだけど、あんまりそんな話は聞いたことがないし、
自分で困った記憶も確かにない
933デフォルトの名無しさん:2013/05/06(月) 02:28:27.40
こんだけ糞仕様なのに素晴らしい言語だから使われてるとか
いまだに思ってる奴は脳ミソ湧いてる。クロージャも並み以下
世のデフォで可変長引数については呆れ果ててるって感じだな
他の引数が明らかにまともだとみんな思ってる
934デフォルトの名無しさん:2013/05/06(月) 02:29:32.08
糞なところもあるけれど、
やっぱりセキュリティ的に安全というのが
普及した原因ではないだろうか。
935デフォルトの名無しさん:2013/05/06(月) 02:30:37.03
JSをどげんかせんといかんと思ってる人は本当に多いよ
936デフォルトの名無しさん:2013/05/06(月) 02:32:38.52
>>933
並以下とは思わんね
最近までメジャーな言語ではクロージャない言語の方が多かったわけだし
問題があるとしたらfunctionが長ったらしいのと
外部の変数がどうのとかってのくらいで、基本は素晴らしい機能だと思う
937デフォルトの名無しさん:2013/05/06(月) 02:36:33.34
普及した原因は言語の良し悪しとは一切関係ない
他にない素晴らしいコード、安全なコードを見せてくれよ

>>936
最近までとか予防線張ってるところが虚しいな
問題はあるし、他の言語では当たり前だし
JSの価値はHTMLにさないって事実になぜ気づかない?
言語としては本当にゴミだよ
938デフォルトの名無しさん:2013/05/06(月) 02:37:13.09
個人的にはES5準拠で常にuse strict出来るならjsのままでもいいかな
でもそれは何年後なのか知らない
939デフォルトの名無しさん:2013/05/06(月) 02:37:28.55
HTMLにしかない
940デフォルトの名無しさん:2013/05/06(月) 02:37:36.56
javascriptへコンパイルする言語が多いのは、不満が多いからというより、
柔軟になんでもできるし、この場合は人間じゃないので、エラーチェックの
欠如が問題にならないかがないから
って理由もあるだろ
941デフォルトの名無しさん:2013/05/06(月) 02:38:45.82
>>937
実際、最近のメジャーな言語はクロージャを備え出したんで、
予防線でも何でもなく事実
javaも備える予定だし
942デフォルトの名無しさん:2013/05/06(月) 02:40:33.11
たとえばPythonをJSにコンパイルするとかってPython完コピは無理なんだなって感じ
柔軟にできるといっても所詮はそんなもん。糞仕様に我慢してもなんでもできるわけじゃない
早く誰かPythonを完コピしてくれればJSを使う理由なんて完全になくなる
943デフォルトの名無しさん:2013/05/06(月) 02:42:20.96
普通にwikipediaの例
function newCounter() {
var i = 0;
return function() { // 無名関数
i = i + 1;
return i;
}
}
とか、クロージャがない言語には無理
最近の言語は同等の事が出来るけど
944デフォルトの名無しさん:2013/05/06(月) 02:43:08.04
>>941
だから今はJSは並以下じゃん
945デフォルトの名無しさん:2013/05/06(月) 02:44:01.27
例えば、var mod = requrie('module');
ってのも、普通の言語の
import module
とかと違って変数に代入した後クローンをいくらでも作れる
点で普通の言語には無理
946デフォルトの名無しさん:2013/05/06(月) 02:44:02.84
>>943
pythonでも大昔からできるなあ
947デフォルトの名無しさん:2013/05/06(月) 02:44:27.58
>>943
具体的にどの言語が無理?
948デフォルトの名無しさん:2013/05/06(月) 02:45:05.79
>>946
pythonは良い言語だからね
たいていはpython持ち出しとけばできるし
949デフォルトの名無しさん:2013/05/06(月) 02:45:36.52
>>943
無理なのは同じ書き方であって、
そのコードで実現していることは
どの言語でも実現できるよね?
950デフォルトの名無しさん:2013/05/06(月) 02:49:05.51
>>945
作れるから?
それによってできる、他の言語では実現が難しい操作って何?
クラスのインスタンスと同じように見えるが
951デフォルトの名無しさん:2013/05/06(月) 02:50:40.33
CでもJavaでも出来ますね
Cは関数ポインタが出てきてわかりにくいし、Javaは無名クラスになって無駄に長くなっちゃうけど
952デフォルトの名無しさん:2013/05/06(月) 02:53:39.62
>>951
関数ポインタでも無名クラスでもダメ
クロージャーがない言語は
クロージャーで作れない。
953デフォルトの名無しさん:2013/05/06(月) 02:53:53.67
糞仕様を利用したとんでもないショートカットはあるかもしれないが
基本的にJSに強力な武器はないんじゃね。そう、HTML以外はね
954デフォルトの名無しさん:2013/05/06(月) 02:54:17.25
>>947
CもJavaも無理だね

>>949
書き方がかなり違っても良いのならそりゃ出来るけど
Cで出来る事はアセンブリ言語で出来るのと一緒で

>>950
ちょっと前に、jQueryのプラグインの議論であったじゃない
ああいう感じのこと
他の言語ではクラスのインスタンスにメソッドを追加するのが
出来なかったりする
rubyではできるし、pythonは知らないけど多分出来るだろうが

>>951
どちらも記述が違いすぎて気軽には使えないね
それに、Javaはfinalしか参照できないし、Cは外側の環境は基本参照できないし
955デフォルトの名無しさん:2013/05/06(月) 02:56:45.47
無理 → 気軽にできない

に変わりましたw
956デフォルトの名無しさん:2013/05/06(月) 02:57:28.48
>>952
はあ?じゃあクロージャでクラスはできないんだな
聞いてた話と違うわ。そんな言葉遊びしかできのか
結局いつものJS厨だな
957デフォルトの名無しさん:2013/05/06(月) 02:58:29.63
これも一例かな
<script data-xxx="hoge" src="xxx.js"></script>
まあ、javascriptじゃなくてhtml込みだけどw
これで新しい言語を実行したり、マクロを付け加えたり、
プリプロセスを行ったりできる
しかし、これは反則かw
958デフォルトの名無しさん:2013/05/06(月) 02:59:11.11
>>955
それでいいよ
まあ、正確な事言えば無理な事なんて基本はないからw
959デフォルトの名無しさん:2013/05/06(月) 02:59:14.97
はい草。いつものJS厨でしたとさ
960デフォルトの名無しさん:2013/05/06(月) 03:00:22.19
Javascriptご自慢のfunctionの挙動がキモい(実行はnode.js)


a = function() { return 'a'; }
b = function() { return 'b'; }
function c() { return 'c'; }
function d() { return 'd'; }
if (false) {
  a = function() { return 'A'; }
  function b() { return 'B'; }
  function c() { return 'C'; }
  d = function() { return 'D'; }
}
console.log(a()) // a
console.log(b()) // b
console.log(c()) // C
console.log(d()) // d
961デフォルトの名無しさん:2013/05/06(月) 03:00:29.66
そうだねjavaでクロージャの記述は大変だね
逆にjsでjavaみたいなクラス気軽に書けたらよかったのにね
962デフォルトの名無しさん:2013/05/06(月) 03:02:49.02
>>961
気軽にかけるよ
functionは実はクラス相当
963デフォルトの名無しさん:2013/05/06(月) 03:04:19.94
結局HTMLに逃げるしかないんだからこの板に向いてないよ
964デフォルトの名無しさん:2013/05/06(月) 03:09:19.83
JSはデフォルト引数もだせえな

なんで一般的なC++風ができないんだ?
965デフォルトの名無しさん:2013/05/06(月) 03:10:22.19
C言語で>>943を実装するなら
こんなんのでいいんじゃねーの?

int newCounter(void) {
 return 0;
}
int getCount(int *i) {
 return i++; // ポインタってこんな書き方でよかったっけ?忘れた。
}

int counter1 = newCounter();
print("%d", getCount(&counter1));
966デフォルトの名無しさん:2013/05/06(月) 03:11:32.07
>>942
Python -> JSなら、最近はここが活発に開発してる。構文だけならPython3を結構再現できてる
http://brython.info/index_en.html

少し遊んでみたんだけど、ちゃんとジェネレータが使えたり、JSのライブラリを呼ぶ事もできた
http://codepad.org/WYYBLIqa
967デフォルトの名無しさん:2013/05/06(月) 03:11:35.56
>>960
そういうのがあるのと、統一的な理解のしやすさの理由から
var a= function()やa:function()の書き方の方をfunction a()の書き方よりも推奨する人が多い
多分有名なライブラリは後者の書き方はしてないんじゃないかな
968デフォルトの名無しさん:2013/05/06(月) 03:13:50.50
んで、>>943をJavaで書くのなら
こんな感じか? こっちも書き方忘れたが。

class Counter {
 private int i = 0;
 public int get() {
  i++;
  return i;
 }
}

行数おんなじ。
969デフォルトの名無しさん:2013/05/06(月) 03:16:37.82
>>960
何もキモくないな。
宣言はコンパイルフェーズに行われて
代入は実行フェーズに行われるだけ。
970デフォルトの名無しさん:2013/05/06(月) 03:18:26.66
>>966
だからそれのことを言ってるんだが。pyjsはないので試してない
それはせっかく3に対応してるのにnonlocal使えない(JSのせいか?)し
>>801みたいな組込型の継承もできなかった
完コピは無理だろうが洗練していけばcoffeeとかより100倍マシだろうな
そもそもPythonを使ってる俺はブラウザでやる意味がないので使わないけど
971デフォルトの名無しさん:2013/05/06(月) 03:19:39.89
>>968
それだとnew Counterとかやらなくちゃいけなくなるよ
期せずして、クロージャがクラス相当ってのがわかりやすいコードだね
クロージャはクラスの機能を潜在的に持っていると言われる所以
972デフォルトの名無しさん:2013/05/06(月) 03:22:09.90
>>970
原理的には何でも出来るだろ
ただ、追いついていないだけで
973デフォルトの名無しさん:2013/05/06(月) 03:26:09.26
よし、じゃあjavascriptで作られた有名ソフトと
pythonで作られた有名ソフトで対決したらどうだ?
公平にデスクトップアプリ限定にしよう
974デフォルトの名無しさん:2013/05/06(月) 03:27:04.27
>>971
> それだとnew Counterとかやらなくちゃいけなくなるよ
やればいいんじゃね?

クロージャー使ってもnewCounterってやるだろ?
まあ別にnewCounter() {return new Counter() }って
staticメソッド作ってもいいけど?
975デフォルトの名無しさん:2013/05/06(月) 03:28:14.00
クロージャーが気軽っていうわりに
クラス使った場合と大差ないってのが
まあ、現実ってやつか。
976デフォルトの名無しさん:2013/05/06(月) 03:30:42.39
クラスがないのにクラスっぽいのができて嬉しかっただけで
もともとクラスがある言語からしたら別にって感じなのかな
じゃあ糞仕様ばかりのJSってますますいいところなしじゃん
977デフォルトの名無しさん:2013/05/06(月) 03:31:20.43
>>974
それだと、メソッドがまた一つ増える上に
Counter.newCounter().get()になる上に
毎回インスタンス作ってるなw

>>975
俺はJavaでクラスとか気軽に作れないけど
978デフォルトの名無しさん:2013/05/06(月) 03:34:04.50
>>977
いやさ、使う方も大差ないよねって言ってるんだけど、わかる?

function newCounter() {
 var i = 0;
 return function() { // 無名関数
  i = i + 1;
  return i;
 }
}

var counter1 = newCounter();
print counter1();



Counter counter1 = new Counter();
print counter1.get();
979デフォルトの名無しさん:2013/05/06(月) 03:34:48.02
>>977
> 俺はJavaでクラスとか気軽に作れないけど
知らんがな。お前の知識不足なんか。

俺は普通に一つのファイル内に
複数のクラスを気軽に作ってる。
980デフォルトの名無しさん:2013/05/06(月) 03:36:40.48
>>969
キリッとしてるところ申し訳ないんだけど、
Firefoxで実行すると a, b, c, d になるんですよ
981デフォルトの名無しさん:2013/05/06(月) 03:36:54.91
>>977
もしかしてお前、
JavaScriptのコードで、newCounter()を呼び出すごとに
カウントアップするとか思ってね?

newCounter()を呼び出すごとにJavaScript風インスタンス作ってるんだけど。
カウントアップするときは、newCounterで生成したインスタンスの
メソッド(と同等のクロージャ)呼び出すんだけど?
982デフォルトの名無しさん:2013/05/06(月) 03:37:04.24
>>973
どこが公平なんだよ
JSでデスクトップアプリ作るのなんてXUL以降くらいからだろw

>>976
「別に」とは思わんねえ
javaのインターフェースやクラスでdomイベント扱うコードとか書きたくない

>>978
それだと(newCounter())();でいいんじゃないの?
javaの方はインスタンス作っちゃうから一旦変数に入れるけどw
983デフォルトの名無しさん:2013/05/06(月) 03:39:13.61
>>982
クラスがある言語はJavaだけじゃないよ
984デフォルトの名無しさん:2013/05/06(月) 03:39:25.44
>>979
俺も作ってるけど、クロージャほど気軽じゃないな
やっぱり、名前付けなくちゃいけないし、インスタンス作るからか
985デフォルトの名無しさん:2013/05/06(月) 03:44:20.00
>>982
だからさ、他の言語と全然話題を共有できないでしょ
これがブラウザでは相性が良いとか意味不明な言い訳するばかりで
それって他の言語には関係のない都合じゃん
単純に気持ちの悪いだけの設計ミスを挙げたら切りがない
最終的にはHTML5だから使うって結論に落ち着く
じゃあJSファミリーのスレを立てればいいじゃんとだいぶ前にも進言したはずだが
986デフォルトの名無しさん:2013/05/06(月) 03:46:57.77
>>982
> それだと(newCounter())();でいいんじゃないの?
> javaの方はインスタンス作っちゃうから一旦変数に入れるけどw

JavaScriptでも一旦変数に入れてるだろ。

> var counter1 = newCounter();
> print counter1();

それともお前、カウンタなのに一回使って終わりか?
二回目どうするんだ?言ってみろ。
987デフォルトの名無しさん:2013/05/06(月) 03:48:26.37
>984
> やっぱり、名前付けなくちゃいけないし、インスタンス作るからか
newCounterがnew Counterになっただけじゃん。
どっちも名前つけてる。
988デフォルトの名無しさん:2013/05/06(月) 03:50:15.51
>>982
> それだと(newCounter())();でいいんじゃないの?

Javaだと同じコードは

(new Counter()).get();

別に一旦変数に入れる必要はない。
989デフォルトの名無しさん:2013/05/06(月) 03:52:17.36
>>986
スマンそこは俺が間違ってた
>>987
いや、それはその例が付けてるだけで
クロージャは定義して即引数に渡したり呼び出したりする場合に
付けなくて良い
>>988
そうだな
まあgetが冗長だけど
990デフォルトの名無しさん:2013/05/06(月) 03:53:49.15
無理→気軽にできない→getが冗長
だいぶ下がりましたねぇ…
991デフォルトの名無しさん:2013/05/06(月) 03:55:00.19
>>990
getが冗長だし、名前もつけなくちゃいけない
結果として気軽に出来ない
992デフォルトの名無しさん:2013/05/06(月) 03:56:40.78
ほら見て、たった4文字の争いw
993デフォルトの名無しさん:2013/05/06(月) 03:57:42.25
getはたいしたことはないが、名前考える負担は大きいよ
994デフォルトの名無しさん:2013/05/06(月) 04:06:14.41
クロージャ(メソッド一つのインスタンス)
の代わりなら全部getでよい。
995デフォルトの名無しさん:2013/05/06(月) 04:08:42.05
>>985
有名なデスクトップアプリ挙げれば良いんだろ?
C++が明らかに有利だけど意味あるの?
ちょっと検索して見つけたのは
Mozilla Thunderbird
Komodo Editor
996デフォルトの名無しさん:2013/05/06(月) 04:15:33.90
>>994
ライブラリによってcallだったりapplyだったりfだったりしそう
で、同じクロージャなのに、あっちのライブラリでは使えるけど
こっちには使えないとか発生しそう
997デフォルトの名無しさん:2013/05/06(月) 04:18:10.50
>>996
超些細な問題。
どうせドット押せばわかること。
998デフォルトの名無しさん:2013/05/06(月) 04:22:29.73
え?それはダサいよ
999デフォルトの名無しさん:2013/05/06(月) 04:32:22.73
おい、最後 Javascript vs Java になってるじゃねーか
誰得の展開なんだよ
1000結論:2013/05/06(月) 04:34:03.66
Python >> 越えられない壁 >> Java >= Javascript
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。