トップページ⇒tech
1001コメント325KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2013/05/03(金) 13:55:49.86
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/
0002デフォルトの名無しさん2013/05/03(金) 13:57:29.26
>>1
乙
0003デフォルトの名無しさん2013/05/03(金) 13:59:38.86
さりげなくスレタイからRubyを抜くなw
0004デフォルトの名無しさん2013/05/03(金) 14:00:06.41
残念入らなかった。
0005デフォルトの名無しさん2013/05/03(金) 14:16:25.04
前スレ>>999

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

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

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

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

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

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

英語の文化のせいで後ろから絞り込むやり方が存在するけど、
論理的に考えたら前から絞り込むほうがいいのだろう。
日本語は基本的に前から絞り込む文化。
0006デフォルトの名無しさん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]

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

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

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

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

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

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

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


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

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

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

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

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

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




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

はい、君のターン


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

if (x % 2 == 0) hoge;

と

hoge if (x % 2 == 0);

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

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

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

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

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

お前はコンピュータか?人間か?言ってみろ。
0070デフォルトの名無しさん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
ただ、その割には他の言語でもたいして大変じゃないんだよなあ
0071デフォルトの名無しさん2013/05/03(金) 15:55:04.88
>>67
魔法なんてないよ
だから、大差はない
結局ライブラリの差
pythonは今のところ数値計算のライブラリは揃っているけど
内包表記やらが優れているわけではない
0072デフォルトの名無しさん2013/05/03(金) 15:55:12.87
>>68
おいおい、お前の言ってる「長い」は
せいぜい20文字ぐらいで限界だろうがw
0073デフォルトの名無しさん2013/05/03(金) 15:58:09.28
>>71
当たり前だろ。りすとこんぷりへんしょんなんて今日びまともな言語なら必ず備えてる
標準的な便利機能でしかない。それをできない言語が劣ってるだけ
for文のように書けるというのはよく考えられてるけどね
0074デフォルトの名無しさん2013/05/03(金) 15:59:39.26
内包表記もインデックス演算子のオーバーロードもipythonの使い易さも
それぞれは小さい、人によっては無視できる程度の違いにすぎない。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ほんと仲間はすぐに寄ってくるな。
0136デフォルトの名無しさん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;
}

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

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

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

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

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

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

>>156
そして、スタイルガイドにこう記述することになる
「特殊な状況を除き、演算子をオーバーロードしてはいけません。」
理由も載ってるからググってこいよw
0159デフォルトの名無しさん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.


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

やっぱり無知だったか。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

簡単な具体例を説明して欲しい
0335デフォルトの名無しさん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
0336デフォルトの名無しさん2013/05/03(金) 23:42:51.63
>>334
滅多に起きないけど、varを忘れてしまった場合にありうる
0337デフォルトの名無しさん2013/05/03(金) 23:44:09.47
>>335
マジか
これは良い情報
まあ仕事じゃレビューでfinalとってくれって言われるのが落ちだろうけど
0338デフォルトの名無しさん2013/05/03(金) 23:45:06.87
>>324
Java8で、final値だと自明な場合はfinalを書かなくても
final変数として参照できるようになる、らしい
0339デフォルトの名無しさん2013/05/03(金) 23:45:58.38
クロージャが呼ばれるときその中身は見えないし、その変数はそのクロージャ以外でも使われるのなら
変数の中身は当然追いにくくなるし、クロージャは基本的にメリットない気がする
なんで引数で渡したりしないの?
0340デフォルトの名無しさん2013/05/03(金) 23:46:33.01
>>336
あー、言いたいことはわかった気がするけど
ちょっといろいろと仮定が都合良すぎるな
確かに一昔前なら実際起きてそうなことだと思うけど

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

別に昨日が実装できるのは当たり前なんですけど?
あの簡素で柔軟なインターフェースは静的言語では困難って話をしてるんだけど
0399デフォルトの名無しさん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"));
0400デフォルトの名無しさん2013/05/04(土) 01:04:18.51
>>398
> あの簡素で柔軟なインターフェースは静的言語では困難って話をしてるんだけど

具体的には?
0401デフォルトの名無しさん2013/05/04(土) 01:04:39.83
>>396
プラグインAでjQueryにメソッドをはやしてから
別名変数にクローンを保存
ブラグインBでjQueryのメソッドを上書き
余裕
0402デフォルトの名無しさん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]");
0403デフォルトの名無しさん2013/05/04(土) 01:05:59.81
そのjOOXとやらのプラグインはどうなってるの?
イベント操作は?
0404デフォルトの名無しさん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));
0405デフォルトの名無しさん2013/05/04(土) 01:08:41.21
>>403
落ち着け
これはXMLをjQuery風に操作できるライブラリ
0406デフォルトの名無しさん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)]

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

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

プログラミング能力:

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

あと「ベンチマークはXより速い」ってのは
実績のない言語のお決まりの宣伝パターンなんだよな
node.js推してる奴もそればっかり言ってたわ
0450デフォルトの名無しさん2013/05/04(土) 01:42:39.16
補完って、見た目変わらんのかw
ワロスw
0451デフォルトの名無しさん2013/05/04(土) 01:42:39.53
JS厨よお、ちゃんと使い物になってる言語の話はできないのかい?
Googleの天才言語とか普及してないベンチとか大好きだな。頭大丈夫か
0452デフォルトの名無しさん2013/05/04(土) 01:44:37.26
>>449
asm.jsは型が確定してる
0453デフォルトの名無しさん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
0454デフォルトの名無しさん2013/05/04(土) 01:47:25.72
JSが速くなるわけじゃねーじゃん
型を指示する魔改造なんてほかにもある
ただの糞言語
0455デフォルトの名無しさん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メソッドを介して呼び出すことになる。
0456デフォルトの名無しさん2013/05/04(土) 01:49:25.67
C#の型推定の方が万倍マシな件について
0457デフォルトの名無しさん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倍も遅くなりました
0458デフォルトの名無しさん2013/05/04(土) 01:50:54.69
asm.jsは型を確定させ、GCを止め、仮想メモリを弄らせるという
鬼畜サブセットだから当然速度はC系に追いつく
当然これを全部で使う野郎はいないだろうが
ライブラリ、特に物理演算やゲームエンジンがサポートしたり
関数単位で使えるから「要所」で使うことで劇的にパフォーマンスがよくなる
0459デフォルトの名無しさん2013/05/04(土) 01:52:33.71
JITは面白いが型指定は周回遅れ
0460デフォルトの名無しさん2013/05/04(土) 01:54:29.29
半日でここまで来るとかお前ら暇だな
0461デフォルトの名無しさん2013/05/04(土) 01:55:21.25
JavaScript使いと
それに嫉妬するその他のスレになってるね。
0462デフォルトの名無しさん2013/05/04(土) 01:56:52.81
>>455
とりあえずそれ別にoptionメソッドじゃないだろ
optionセットしてるだけ

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

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

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

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

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

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

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

あと個人的にはJSでボードゲーム作ってるんだけど
ほんと、1%でも早くなって欲しいから期待してる
0470デフォルトの名無しさん2013/05/04(土) 02:08:05.73
>>467
なんでキチガイJS厨の「?」な希望的観測に嫉妬しなきゃならんの?頭大丈夫?
0471デフォルトの名無しさん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メソッドを呼び出す書式。
0472デフォルトの名無しさん2013/05/04(土) 02:10:22.97
JSアンチは自分の言語を誇らしげに語ろうとはしない
なぜ?
0473デフォルトの名無しさん2013/05/04(土) 02:10:57.21
asm.jsのベンチマークのグラフは、素のFFが軒並み素のChromeに大幅に勝ってる時点で
都合のいい状況選んだんだろうな感が満載なんだがw
0474デフォルトの名無しさん2013/05/04(土) 02:11:14.94
単にCと相性が悪い糞仕様を自作の糞言語で尻拭いしてるだけじゃねーか
糞JS固有の問題とかどうでもいいし特に優位性もない
0475デフォルトの名無しさん2013/05/04(土) 02:11:24.93
>>472
叩くのが好きで、叩かれるのは嫌いだからに決まってるだろw

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

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

ちなみにJavascriptの最近のベンチマークな
http://d.hatena.ne.jp/satosystems/20121228/1356655565
0485デフォルトの名無しさん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
0486デフォルトの名無しさん2013/05/04(土) 02:20:02.69
>>483
トランスレータがあるからOKなんじゃなくて、
そもそも最初からトランスレーターで変換することを想定してるの
それがasmという名前がついてる理由
0487デフォルトの名無しさん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 を使えば、速くなるんじゃないでしょうか。いやはや。
0488デフォルトの名無しさん2013/05/04(土) 02:23:09.04
メンヘラの妄想に付き合うの疲れるなあ
脱洗脳のカウンセラーとかの辛さがわかる
現実に生きてない。都合の悪い話が聞こえてない
さっさとCのコードをこの場で変換してみせろ!
0489デフォルトの名無しさん2013/05/04(土) 02:23:51.79
C (gcc -O2) 1.18
JavaScript (node.js) 2.62

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

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

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

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

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

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

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

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

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

それと同じ構図がブラウザの世界にもできつつある。
JavaScriptはブラウザで動くGUIを作るのが簡単である。
だからJavaScriptでの開発というのはこれからもメインになるだろう。
そして速度が必要な場合のみ、他の言語で開発することもある。
0501デフォルトの名無しさん2013/05/04(土) 02:38:33.70
>>493
単純な四則演算ではない実物ってのがよくわからない
再帰のフィボナッチはスタック使いまくりだよね
スタック領域のアクセスは良いけどヒープが駄目ってこと?
0502デフォルトの名無しさん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からとかだと特別な意味があるのではと思われるという「噂」もあるくらい
0503デフォルトの名無しさん2013/05/04(土) 02:40:28.29
まーた始まった。無知が自分に酔いしれて一人妄想を語る
テキトー言うだけならブログでやれよキチガイ
0504デフォルトの名無しさん2013/05/04(土) 02:41:51.85
もうスレ半分使っちまったのかw
0505デフォルトの名無しさん2013/05/04(土) 02:42:16.55
>>500には言葉が通じず対話が不可能で一切の意味のあるレスをしないから害悪でしかない
0506デフォルトの名無しさん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では型付配列をよく使う
そこもいくらか最適化されてるらしい
0507デフォルトの名無しさん2013/05/04(土) 02:45:55.49
もう嘘しか言わないキチガイJS厨の相手をするのはよそう。時間の無駄だ
中身は空っぽの荒らしスクリプトなんだから。もちろんJSで記述されててバグがてんこ盛り
0508デフォルトの名無しさん2013/05/04(土) 02:48:02.13
@A = 1..10;
@x = map {$_ * 2}
     grep{$_ % 2 == 0} @A;
0509デフォルトの名無しさん2013/05/04(土) 02:49:07.77
確かに>>500はちょっと間違ってるな
VBは遅かったが、Javascriptは十分に速い
速度が必要な場合にもJavascriptを使うことが多くなる
他の言語で書くようになるとか妄想はブログでやって欲しい
0510デフォルトの名無しさん2013/05/04(土) 02:49:18.23
JSの話をやめた所で他の言語の話をする奴がいなさそうなんだが……
0511デフォルトの名無しさん2013/05/04(土) 02:51:50.40
>>507
> もう嘘しか言わないキチガイJS厨の相手をするのはよそう。時間の無駄だ

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

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



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

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

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

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

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

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

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

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

そう言ったとしてもここにいるわけだけどなwww
0542デフォルトの名無しさん2013/05/04(土) 03:14:51.46
>>538
俺の願いじゃなくて、みんなの願いね
心配しなくても、お前の願いであるみんなの迷惑になる行為を続けることは毎日叶えられる
良かったな。もう誰もお前がまともなんて思わない
JS厨の詐欺にはかからない
0543デフォルトの名無しさん2013/05/04(土) 03:15:46.09
アンチJS厨が一番うざい。
だからみんな誰もお前にレスしてないんだぞ?
0544デフォルトの名無しさん2013/05/04(土) 03:15:54.79
Goの開発もベル研にいた有名な人たちが参加してるね
0545デフォルトの名無しさん2013/05/04(土) 03:16:24.75
まとも面したJS厨がいかにキチガイか周知できれば十分
0546デフォルトの名無しさん2013/05/04(土) 03:16:30.42
さて、またJavaScriptの話でもしますか。
0547デフォルトの名無しさん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)
0548デフォルトの名無しさん2013/05/04(土) 03:20:29.60
>>544
各会社から、有名な天才達がGoogleに集まってきているってことだな
Pythonの作者もちょっと前までGoogleだったらしい
今は脱退したようだが
0549デフォルトの名無しさん2013/05/04(土) 03:23:46.29
現在広く普及している、スマホ、タブレットはもちろんのこと
テレビでもJavaScriptが動く時代だからな。
0550デフォルトの名無しさん2013/05/04(土) 04:19:23.91
例のアンチが消えた途端静かになったなw
0551デフォルトの名無しさん2013/05/04(土) 04:25:52.97
なんか寂しいな
俺も寝るか
0552デフォルトの名無しさん2013/05/04(土) 04:42:23.52
どんな言語を使おうと避けられないウェブ化によってHTMLが
ユーザーインターフェースになるのは避けられなかったわけで。

jQueryが一番うまくHTMLを扱えたことが
JavaScriptの大ヒットに繋がったんだろうな。
0553デフォルトの名無しさん2013/05/04(土) 05:16:59.66
多分Googleのお陰が50%だと思う
やっぱり再注目のきっかけになったのは
検索とかマップのAjaxだし
0554デフォルトの名無しさん2013/05/04(土) 07:19:47.60
>>539
そんな奴があんな中二っぽいコード書くのか?
0555デフォルトの名無しさん2013/05/04(土) 07:27:41.67
>>554
どんなコード?って聞かれて
答えられないなら、そんなこと言い出すなよ
0556デフォルトの名無しさん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
0557デフォルトの名無しさん2013/05/04(土) 09:16:22.92
さすがに悔しいからってPythonじゃない言語を持ち出されても
「int n」でバレるぞw
0558デフォルトの名無しさん2013/05/04(土) 09:17:55.49
せめてCythonでググれよ……
0559デフォルトの名無しさん2013/05/04(土) 09:22:18.87
wikipediaより
>Cython は、C言語によるPythonの拡張モジュールの作成の労力を軽減することを
>目的として開発されたプログラミング言語である。
>その言語仕様はほとんど Python のものと同じ (上位互換) だが、Cの関数を直接呼び出したり、
>C言語の変数の型やクラスを宣言できるなどの拡張が行われている。

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

Cythonで書かれた関数やクラスはPythonから呼び出す事ができるし
Pythonで書かれた関数やクラスをCythonから呼び出す事もできるよ
0561デフォルトの名無しさん2013/05/04(土) 09:25:31.15
>>559
Pythonの上位互換って書いてあるだろ
ここ遅いから速くしたいなーってなったら型を書けば良い感じ
で、C言語拡張にコンパイルするから、普通のCPython処理系で動く
0562デフォルトの名無しさん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
0563デフォルトの名無しさん2013/05/04(土) 09:54:22.94
C のコードはどこまで減らせるんだろうね
Python 界隈はそこらへんの問題に極めて意識的だけど

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

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

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

ちょっと良く分からない現象だね
何かタネがあるんだろうけど
0567デフォルトの名無しさん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
0568デフォルトの名無しさん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
05695672013/05/04(土) 10:34:54.74
連投すまん
実行環境が違うのか、Cの速度も>>530と全然違うね
同じソースコードを使ったんだが

つまり、CPythonの速度がむちゃくちゃ遅い……?Python3.2なんだけど
0570デフォルトの名無しさん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
0571デフォルトの名無しさん2013/05/04(土) 11:06:43.12
なんだろう
Cの計算自体がすぐ終わりすぎて計測誤差が大きいのかな
何度もループさせないと駄目か
0572デフォルトの名無しさん2013/05/04(土) 11:19:59.98
node.jsはCの4倍程度か
たいしてPythonは200倍か
遅すぎワロス
0573デフォルトの名無しさん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

つづく
0574デフォルトの名無しさん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
0575デフォルトの名無しさん2013/05/04(土) 12:12:14.16
>>562みたいに、戻り値の型を書くともっと速くなる?
0576デフォルトの名無しさん2013/05/04(土) 12:22:55.70
pythonが200倍遅いからって、他の言語に頼るとは、、、
python厨には失望した
0577デフォルトの名無しさん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)));
0578デフォルトの名無しさん2013/05/04(土) 12:57:07.99
常識レベルの話として長いコードをここに貼るな
それがある外部リンクだけで良いから
0579デフォルトの名無しさん2013/05/04(土) 13:01:53.10
node.jsより速いという結果は貼るな
遅かった場合だけ貼れ
0580デフォルトの名無しさん2013/05/04(土) 13:13:35.96
cythonってpythonの拡張モジュール書いたりできるんだろ?
あれ、これってasm.jsという糞言語で高速化したいところを局所的に書けばいい
と言ってたのと同じじゃね。遅れてね?ただの後追いじゃね
で、asm.jsのコードと実行時間は?
なんかこのスレ見ても「できるらしい」とか「できるはず」とかいう胡散臭いレスが目立つけど
実際どうなの?
0581デフォルトの名無しさん2013/05/04(土) 13:24:30.70
>>580
Pyrex が 2002 年でそこからフォークした Cython が 2007 年
後追いではないと思われ
0582デフォルトの名無しさん2013/05/04(土) 13:34:55.32
「今JSが熱い!みんなが熱狂している!薔薇色の未来!」
って、他の言語が数年前に通った道なんだね…
Cに変換するか、Cから変換されるかって違いか。さて、どっちが速いかね
0583デフォルトの名無しさん2013/05/04(土) 13:37:47.14
>>582
JSが熱いってそんなCに変換するだのなんだののくだらない狭い世界の話じゃないんだが
asm.jsを熱弁してる奴がいただけで、JS熱は別次元だよ
node.jsやweb用ライブラリ界隈で起こってる熱狂
0584デフォルトの名無しさん2013/05/04(土) 13:37:56.28
>>582
> 「今JSが熱い!みんなが熱狂している!薔薇色の未来!」
> って、他の言語が数年前に通った道なんだね…

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

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

所詮は、他言語がepollやkqueueを使わない場合という
ハンデをつけた状況に限れば非同期処理が速いってだけのウンコか……
0591デフォルトの名無しさん2013/05/04(土) 14:35:16.37
> node.jsって実行速度を自慢する割には、
またいつもの勘違いさんかw
0592デフォルトの名無しさん2013/05/04(土) 14:45:32.92
静的型付け言語の下位と同じくらいだな
動的型付け言語としては十分自慢できるぐらい速い
0593デフォルトの名無しさん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
0594デフォルトの名無しさん2013/05/04(土) 15:14:56.88
それが一般的なんだけど、nodeは動的言語でも静的言語並に速いから
どうでもいいや
0595デフォルトの名無しさん2013/05/04(土) 15:18:17.77
>>594
Java (OpenJDK) 0.732
C (gcc -O2) 1.18
JavaScript (node.js) 2.62
0596デフォルトの名無しさん2013/05/04(土) 15:22:08.54
>>595
はえええ
マジで静的言語並みじゃん
0597デフォルトの名無しさん2013/05/04(土) 15:24:34.65
3倍以上さがついているものは
静的型付け言語なみとはいえない。
0598デフォルトの名無しさん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 動的
0599デフォルトの名無しさん2013/05/04(土) 15:27:50.27
>>597
3倍どころか、普通に静的型付言語がJavascriptに負けてますが
0600デフォルトの名無しさん2013/05/04(土) 15:30:12.33
やっぱりこれからはJavaScriptの時代なんだろうな。
どこでも動く、そして速い
0601デフォルトの名無しさん2013/05/04(土) 16:19:20.23
GUIはWebアプリで作るのがお手軽だから、
かつてお手軽GUIアプリを作る定番だった旧VBのような位置にJavascriptはなるよ

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

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

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

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

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

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

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

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

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

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

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

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

それだけ。

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

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

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

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

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

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

検証してみよう。

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


まともな実行時チェックを何もやらないから高速に動くの?
0783デフォルトの名無しさん2013/05/05(日) 08:23:55.85
>>780
RDBは革命だったと思うよ。
0784デフォルトの名無しさん2013/05/05(日) 08:24:49.56
>>782
それってJavaScript的には間違ってるわけじゃない
undefinedという概念があるから
それのおかげで、様々なブラウザやバージョンに対応できた側面がある
0785デフォルトの名無しさん2013/05/05(日) 08:32:55.96
>>783
NoSQL
0786デフォルトの名無しさん2013/05/05(日) 08:38:30.08
まあ、様々な環境に対応させたり、探りを入れたりするには、
「手動で」チェックを入れるのが意外と妥当な解決策だったんだよな
ブラウザという特殊な環境だけの話かもしれん
0787デフォルトの名無しさん2013/05/05(日) 08:40:47.90
>>784
f(1)の方はundefinedじゃなくてNaNが返ってくるよ
NaNの概念がある言語は沢山あるけど、引数の数をチェックしない言語は少ないと思う
0788デフォルトの名無しさん2013/05/05(日) 08:43:20.60
>>787
最初にundefinedになった後、その値を計算に使用したからNaNになる
引数チェックしないのは、今ではオーバーロードをエミュレートするのに
使われてるけど、そもそもオーバーロードにした方が良かったかもしれないね
0789デフォルトの名無しさん2013/05/05(日) 08:46:34.56
バージョン違いで引数が増えてたりといった事が日常茶飯事だったと想像
0790デフォルトの名無しさん2013/05/05(日) 08:48:50.72
>>788
なるほど、fの引数のyがundefinedになってるんだね
納得
0791デフォルトの名無しさん2013/05/05(日) 08:50:21.62
>>789
そうだね
'undefined'を変数名として使えるという変態言語w
function (a, b, undefined)とすればちゃんとundefinedがundefinedになるという
バッドノウハウもあるw
でもこういう柔軟性結構好きなんだよねw
0792デフォルトの名無しさん2013/05/05(日) 09:03:08.76
function(x, y){return x + y}('foo')
ってやったら"fooundefined"が返ってきたw
0793デフォルトの名無しさん2013/05/05(日) 09:06:02.95
文字列として結合したのか
これは動的言語ではよくあるやつだな
0794デフォルトの名無しさん2013/05/05(日) 09:21:49.34
>>793
静的動的は全然関係ないわ
0795デフォルトの名無しさん2013/05/05(日) 09:32:40.05
動的型付けのRubyは "foo" + nil で例外投げるし、Pythonも 'foo' + None で例外投げる
静的型付けのJavaは "foo" + null が"foonull"を返す
0796デフォルトの名無しさん2013/05/05(日) 10:55:31.55
>>755
jqueryなければウンコやん
0797デフォルトの名無しさん2013/05/05(日) 11:20:39.22
>>755とかネタ混じりで言ってるんだろうけど
似たような傾向の人がスレ乱立とかスレタイテンプレ勝手にいじるのはやめてほしいな
0798デフォルトの名無しさん2013/05/05(日) 11:38:39.76
googleはpythonも使ってるとか、Javaも使ってるとか可愛い勘違いするなよ
天才が暇つぶしに触ってただけだ。本気で使いこなしているのはJSだけ
0799デフォルトの名無しさん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
0800デフォルトの名無しさん2013/05/05(日) 12:02:45.52
デフォルトが安全側に寄ってるのが大事なんだよ
0801デフォルトの名無しさん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 これで見れる?
0802デフォルトの名無しさん2013/05/05(日) 12:33:29.42
>>801
今は 10 進数の数値参照でないといけないっぽい
& # 160; をスペース抜きで
0803デフォルトの名無しさん2013/05/05(日) 12:34:24.38
>>802
ほうほう、サンクス
0804デフォルトの名無しさん2013/05/05(日) 12:47:18.25
>>801
対称性が壊れてる
0805デフォルトの名無しさん2013/05/05(日) 13:00:46.80
>>343,350はやっぱり違うな。少なくともpythonはクラス内のメソッドに引数でselfを渡すし
外部変数にはselfを付けてるという意味で独立してない
JSは無条件でクロージャだから全部メソッド外の変数を間違って弄れる

>>804
ただの例だから。自作の型同士で定義するのが正しい使い方だろうね
0806デフォルトの名無しさん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]) が返ってくるのも同じ
0807デフォルトの名無しさん2013/05/05(日) 13:06:26.82
>>806
それだ!ありがとう
0808デフォルトの名無しさん2013/05/05(日) 13:53:44.40
>>805
正直、selfが面倒なだけ
0809デフォルトの名無しさん2013/05/05(日) 13:59:31.05
>>808
いやselfの変数とそれ以外のローカル変数は明らかに性質が違う
コードを追うときもいちいち宣言の有無を確認しなくていいので可読性は上がる
0810デフォルトの名無しさん2013/05/05(日) 14:05:54.93
ま、来たるHTML5+JSの時代にはどんなまともな設計でも意味ないんですけど
0811デフォルトの名無しさん2013/05/05(日) 14:11:54.05
>>809
簡潔に書けるのが良いのに、最初のメソッドにいちいちselfを明示的に宣言するところとか
邪魔でしょうがない
0812デフォルトの名無しさん2013/05/05(日) 14:21:37.63
それだと一貫性がなくなるから
0813デフォルトの名無しさん2013/05/05(日) 14:26:53.26
第一引数と変数の前にselfを書くことで簡潔さが失われるのか甚だ疑問
それは文字数が一文字でも少ないほうが良いという価値観なのだろうが
基本的にpythonはそんな姿勢を取ってないと思うけど
0814デフォルトの名無しさん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
0815デフォルトの名無しさん2013/05/05(日) 14:39:33.92
but 2 were given がなければ、pythonユーザーでも混乱するかもね
でも実際には親切に書かれてるし、それでどん詰まりしたりするものかなあ
というかREPLで help(Foo) と打てばわかるんじゃね。無理かな?
0816デフォルトの名無しさん2013/05/05(日) 14:58:24.38
学習という面でPythonは論外だね。初心者に厳しすぎる
その点JSは簡単明瞭な設計とブラウザで動くという最強の強みで学習には最適
というかブラウザで動かない言語を学習というのは事実上不可能な時代になってる
最近の若者はみんなJSからプログラミングに入門してるらしいしね
彼らは変な趣味でも持ってなければもう他の言語を学習する必要がないし
最低の学習コストで最大のパフォーマンスが得られるわけだ
0817デフォルトの名無しさん2013/05/05(日) 15:09:19.04
selfが無い場合、デコレータがselfを参照できるようにするのは
相当に面倒くさそうだ
普通の関数用とメンバ関数用で別々のデコレータ(と実現する仕組み)が必要になると思う
Pythonはレキシカルスコープだから
0818デフォルトの名無しさん2013/05/05(日) 15:15:51.97
windowsにプリインストールされていない点は関門ではあるが
pythonは公式でインストーラーやチュートリアル等のドキュメントが用意されているし
対話型環境が充実している(helpやdir)から学習面で論外と言い切るのは不適切
0819デフォルトの名無しさん2013/05/05(日) 15:25:57.16
この世界はHTML5+JSの時代であるという大前提を忘れてないか?
0820デフォルトの名無しさん2013/05/05(日) 15:37:13.73
無視してたけどさ、>>819みたいな書き込みって絶対アンチJSだろw
0821デフォルトの名無しさん2013/05/05(日) 15:43:55.55
JSの時代になって得するのは誰か
陰謀論のように富を独り占めする黒幕がいるのか。答えはNOだ
JSを使う全員が幸せになれる
彼女ができるとか宝くじにあたるという個人的なことだけじゃなく
世界の貧困層や難病に苦しむ人々だって救われている
このように現にNode.jsで人々の生活は一変したわけだが
asm.jsの衝撃はこんなもんじゃない
その衝撃的な効率によって世界のエネルギー問題が解決しこの世から戦争がなくなる
0822デフォルトの名無しさん2013/05/05(日) 15:45:34.96
文才はあるなw
0823デフォルトの名無しさん2013/05/05(日) 16:17:46.14
自分の主張がとおらないと暴れだすとか最悪だよ
0824デフォルトの名無しさん2013/05/05(日) 16:22:36.76
>>823
2ch歴短い?
多分、2chというものを誤解してるんじゃないかな
ネタにくだらんレスにウケ狙い、推測に主観
そんなもんに腹立ててたらキリがないぞ
レスする方も高度なレスをする気なんかこれっぽっちもないよ
お前こそ、人に要求する前にスルースキル学べよ
自分で妥当性を考えろ
0825デフォルトの名無しさん2013/05/05(日) 16:27:17.14
2ch歴が短いと、むかついた時に
相手にあっちにいけとか書き込むなとか
言ったりする。

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

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

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

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

obj = null;
'foo' + obj


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

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

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

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

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

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

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

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

  構ってやる
  措置入院
> ハブる
  通報する
0902デフォルトの名無しさん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
0903デフォルトの名無しさん2013/05/06(月) 00:25:18.45
javascriptは柔軟性が高いんだよ
だからこそ何でもできる
やり方が発見されて行く言語なんだよ
0904デフォルトの名無しさん2013/05/06(月) 00:25:27.71
個人的には、こんなイメージ

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

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

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

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

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

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

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

に変わりましたw
0956デフォルトの名無しさん2013/05/06(月) 02:57:28.48
>>952
はあ?じゃあクロージャでクラスはできないんだな
聞いてた話と違うわ。そんな言葉遊びしかできのか
結局いつものJS厨だな
0957デフォルトの名無しさん2013/05/06(月) 02:58:29.63
これも一例かな
<script data-xxx="hoge" src="xxx.js"></script>
まあ、javascriptじゃなくてhtml込みだけどw
これで新しい言語を実行したり、マクロを付け加えたり、
プリプロセスを行ったりできる
しかし、これは反則かw
0958デフォルトの名無しさん2013/05/06(月) 02:59:11.11
>>955
それでいいよ
まあ、正確な事言えば無理な事なんて基本はないからw
0959デフォルトの名無しさん2013/05/06(月) 02:59:14.97
はい草。いつものJS厨でしたとさ
0960デフォルトの名無しさん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
0961デフォルトの名無しさん2013/05/06(月) 03:00:29.66
そうだねjavaでクロージャの記述は大変だね
逆にjsでjavaみたいなクラス気軽に書けたらよかったのにね
0962デフォルトの名無しさん2013/05/06(月) 03:02:49.02
>>961
気軽にかけるよ
functionは実はクラス相当
0963デフォルトの名無しさん2013/05/06(月) 03:04:19.94
結局HTMLに逃げるしかないんだからこの板に向いてないよ
0964デフォルトの名無しさん2013/05/06(月) 03:09:19.83
JSはデフォルト引数もだせえな

なんで一般的なC++風ができないんだ?
0965デフォルトの名無しさん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));
0966デフォルトの名無しさん2013/05/06(月) 03:11:32.07
>>942
Python -> JSなら、最近はここが活発に開発してる。構文だけならPython3を結構再現できてる
http://brython.info/index_en.html

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

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

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

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

>>975
俺はJavaでクラスとか気軽に作れないけど
0978デフォルトの名無しさん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();
0979デフォルトの名無しさん2013/05/06(月) 03:34:48.02
>>977
> 俺はJavaでクラスとか気軽に作れないけど
知らんがな。お前の知識不足なんか。

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

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

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

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

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

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

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

Javaだと同じコードは

(new Counter()).get();

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