[JavaScript,PHP] スクリプト言語33 [Perl,Python]
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/05/03(金) 13:55:49.86スクリプト言語をすべて扱うスレッドです。
最強のスクリプト言語は、どれよ?
さあ、死ぬまで語りやがれ!!!
■ スクリプト言語の用途
簡易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乙
0003デフォルトの名無しさん
2013/05/03(金) 13:59:38.860004デフォルトの名無しさん
2013/05/03(金) 14:00:06.410005デフォルトの名無しさん
2013/05/03(金) 14:16:25.04> リスト内包は集合論とかの数式を見慣れた人には分かりやすいよね
短い場合はそうだと思うけど、
長くなった場合は見にくいよ。
多分その理由は思考の流れと逆に書くからだと思うな。
ディレクトリのように、前から絞り込んでいくやりかたと
後ろから絞り込んでいくやり方がある。
長い場合は、前から絞り込むほうが理にかなっている。
例えばドメインは、後ろから絞り込んでいくやり方だけど
パスの部分は前から絞り込んでいくやり方になってる。
住所を真似して後ろから絞り込んだのはいいが、
途中(パスの部分)で破綻したのではないかな。
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は?
「俺はコード書くほど暇人じゃない」とか言っといて
わざわざ文章改悪してスレ立てまでやってんのかよ
ビックリするほど暇人じゃねーか
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[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数学の素養の無いドカタは
無理に内包表記を使う必要は無いよ
0012デフォルトの名無しさん
2013/05/03(金) 14:39:26.51典型的だね。
何も言えないから、とりあえず馬鹿にして満足感を得る。
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.750016デフォルトの名無しさん
2013/05/03(金) 14:50:06.040017デフォルトの名無しさん
2013/05/03(金) 14:50:28.570018デフォルトの名無しさん
2013/05/03(金) 14:51:39.00C使う人間の全てがアホではないよ
前スレのアホは底なしの低能だが
0019デフォルトの名無しさん
2013/05/03(金) 14:51:49.98forなどというキーワードを使うpythonは数学に慣れてると見にくい
0020デフォルトの名無しさん
2013/05/03(金) 14:52:17.98だから>>11でFA
0021デフォルトの名無しさん
2013/05/03(金) 14:52:57.72視野が狭いと文脈違いに見えるよねえw
0022デフォルトの名無しさん
2013/05/03(金) 14:55:35.63条件分岐がある場合、最初に必要な長さを指定して確保しておくことはできない
0023デフォルトの名無しさん
2013/05/03(金) 14:57:00.00>>11
典型的だね。
何も言えないから、とりあえず馬鹿にして満足感を得る。
0024デフォルトの名無しさん
2013/05/03(金) 14:57:22.170025デフォルトの名無しさん
2013/05/03(金) 15:00:23.70なんでこんな単純なものが
[x for x in A if x % 2 == 0]
こんな風に複雑になるのかね?
[x | isEven(x) ]
ここまで単純化してやっと
数学っぽいといえると思うんだが?
0026デフォルトの名無しさん
2013/05/03(金) 15:00:37.910027デフォルトの名無しさん
2013/05/03(金) 15:01:05.20つまんないことで満足してればいいよ
0028デフォルトの名無しさん
2013/05/03(金) 15:03:01.51>>24
関数呼び出しのコストがあるのでオーダーで考えてるんだろうけど実際は係数って無視できないくらい効いてくるので。
0029デフォルトの名無しさん
2013/05/03(金) 15:03:23.98それなら見やすいと思うね。
でもごちゃごちゃしていたら見にくい。
そこが内包表記の限界なのだろう。
0030デフォルトの名無しさん
2013/05/03(金) 15:04:38.96定数オーダーの末尾付加によるリストの作成が無視できないような状況で
pythonとかって、あんまり想像がつかないんだけど
0031デフォルトの名無しさん
2013/05/03(金) 15:05:24.86pythonの場合はfor文を使えるようにしてる
0032デフォルトの名無しさん
2013/05/03(金) 15:05:25.97え?式の外でdomainを明示してるんじゃなかったら
数学でもdomainを書く必要があるよ?
0033デフォルトの名無しさん
2013/05/03(金) 15:06:05.81> 上で言われてるようにジェネレータにもできるからメモリ効率も良い使い方ができる
ループで回してもメモリ効率いいと思うけど?
本質的には値を入れた配列を作らずに
値を計算で求めるってだけだし。
0034デフォルトの名無しさん
2013/05/03(金) 15:06:41.46リスト内包表記を使った方が効率が良いという話
実際に比べればわかるし、内包表記を使わない理由がないのだが
0035デフォルトの名無しさん
2013/05/03(金) 15:07:12.47なら書けばいいのでは?
0036デフォルトの名無しさん
2013/05/03(金) 15:08:32.57これが数学かな
0037デフォルトの名無しさん
2013/05/03(金) 15:09:21.71ジェネレータ関数について勉強しなおせ
0038デフォルトの名無しさん
2013/05/03(金) 15:09:58.06その効率の良さも無視できるレベルって話
ジェネレータも呼び出しを遅延させてるだけで
実際はそんな便利な場面は少ない
0039デフォルトの名無しさん
2013/05/03(金) 15:11:51.52itertoolsと組み合わせて使いどころありまくりだわ
0040デフォルトの名無しさん
2013/05/03(金) 15:12:36.31{x| x は A に含まれる かつ x は 2で割った時のあまりが0}
何が言いたいかというと、数学は記号を使っているから
見やすいのであって、それを言葉(日本語英語関係ない)に
するととたんに見づらくなるということ
0041デフォルトの名無しさん
2013/05/03(金) 15:14:15.07勉強しなおしたが答えは同じだった。
はい、君のターン
○○しろとかいって、自分のターンを飛ばすやつ多いよねw
0042デフォルトの名無しさん
2013/05/03(金) 15:14:51.25慣れの問題
0043デフォルトの名無しさん
2013/05/03(金) 15:14:51.82{x| x (- A /\ x _= 0 (mod 2)}
0044デフォルトの名無しさん
2013/05/03(金) 15:17:53.86for(i=0; i < A.length; i++) {
if(i % 2) {
x.push(i);
}
}
まあこれでなんの問題もないし、読みやすいし
パフォーマンスもpythonより速いよ
0045デフォルトの名無しさん
2013/05/03(金) 15:18:53.97うん。だから
頭から絞り込む方法も
後ろから絞り込む方法も
所詮慣れでしかないんだよ。
で、何故か世の中の多くは
頭から絞り込んでいく方法。
多くの人が慣れているのは
頭から絞り込む方法だってことさ。
数学かどうかは、記号を使うかどうかだから
記号を使って頭から絞り込むのが一番見やすい。
0046デフォルトの名無しさん
2013/05/03(金) 15:19:13.29情報量が違う式を比べて「数学と比べて複雑」とか言ってるアホ(>>25)が滑稽だなって
やっぱりドカタはそういう基本的な事が分からないんだね
0047デフォルトの名無しさん
2013/05/03(金) 15:20:18.72だから合わせればいいじゃん。
0048デフォルトの名無しさん
2013/05/03(金) 15:23:10.02これのほうが良い。だんだん内包表記に似てきたね。
for(i in A) if(isEven(i)) x.push(i);
0049デフォルトの名無しさん
2013/05/03(金) 15:24:41.91遅いのだが…
0050デフォルトの名無しさん
2013/05/03(金) 15:25:00.24正直、何 が 良 い の か 分 か ら な い
全く同じだろ?
ちょっと簡潔になってるだけだろ
そんなくだらない上っ面だけ見て満足なの?
0051デフォルトの名無しさん
2013/05/03(金) 15:25:32.97V8エンジンなら最適化されてるから、CPythonより速い
0052デフォルトの名無しさん
2013/05/03(金) 15:26:08.24という変なコーディング規約をなくせば
内包表記とほとんど変わらなくなる。
もっとも必ず {} でくくること。の理由にも
賛同できるので、
{}でくくらない場合は一行で書くこと
改行を入れるときは必ず{}でくくること。
というコーディング規約を推奨する。
0053デフォルトの名無しさん
2013/05/03(金) 15:26:21.560054デフォルトの名無しさん
2013/05/03(金) 15:27:04.83え? 完結に書くことは重要だよ。
それだけ読む量が少ないってことだから。
0055デフォルトの名無しさん
2013/05/03(金) 15:27:39.69やっとこのスレに気づいたか
いつものアンチJS厨さんよぉw
0056デフォルトの名無しさん
2013/05/03(金) 15:28:26.78文字数・行数の少なさと、理解する量の多さは違う
読む量(理解量みたいなもの)と理解するスピードは、
少なくとも俺の場合はほぼ全く一緒なのだが
0057デフォルトの名無しさん
2013/05/03(金) 15:28:30.29その場合、結果が先行して書かれた方がわかりやすい
0058デフォルトの名無しさん
2013/05/03(金) 15:30:34.64リスト内包表記に嫉妬しすぎ。お前の代替案は醜すぎ
0059デフォルトの名無しさん
2013/05/03(金) 15:32:23.60100行コードを読むのと、それを関数にして読む場合の
理解のスピードが同じだって?
じゃあお前は関数使うなw
知識を使って読むべきコードを減らすのが関数の利点。
一連のコードを知識に置き換えることで読む量を減らす。
lengthまでiをインクリメントしていく。をinの一言で、
(i % 2)==0 を isEvenの一言にすることで、
読むべきコードを減らして、理解するスピードをアップさせている。
0060デフォルトの名無しさん
2013/05/03(金) 15:32:51.60if (x % 2 == 0) {
hoge;
}
と
if (x % 2 == 0) hoge;
では後者がいいとかって話と一緒
どっちが早く理解できるか競争する大会があったとして、出場者の平均タイムは
どっちも同じだわいみたいなw
0061デフォルトの名無しさん
2013/05/03(金) 15:33:54.43意味のあるときは関数使うよ
でも、今回の場合、難解度に差はない
0062デフォルトの名無しさん
2013/05/03(金) 15:34:00.18> その場合、結果が先行して書かれた方がわかりやすい
それは慣れの問題だってさ。
英語と日本語の問題と話が全く一緒になった。
結論を頭に持ってくるのが英語風
結論を最後に持ってくるのが日本語風
>>58
醜すぎの理由が書いてない時点で、お前の嫉妬にしか見えんな。
0063デフォルトの名無しさん
2013/05/03(金) 15:35:24.32Perlだと両方かけるよね。
if (x % 2 == 0) hoge;
と
hoge if (x % 2 == 0);
どっちもコンパイルに通る。
この二つに違いはない。
0064デフォルトの名無しさん
2013/05/03(金) 15:37:24.79結果、上っ面が簡潔になっただけで、たいして理解力は向上していない
0065デフォルトの名無しさん
2013/05/03(金) 15:38:45.87普通は関数にしたほうが読みやすいよ。
「フィボナッチ数列」と一言いうだけで
どんな数列かわかるだろう?
この数式なんだっけ?
あぁ、フィボナッチ数列か。
みたいな考える時間が要らなくなる。
0066デフォルトの名無しさん
2013/05/03(金) 15:42:57.74Perlでは前者は{}必須
0067デフォルトの名無しさん
2013/05/03(金) 15:43:46.06上っ面とは物は言い様だな。それぞれのパーツを簡潔にするのが唯一の方法だし
pythonは設計も習慣もそういうスタンス
めちゃくちゃなJSが何か言ってることに非常に違和感がある
0068デフォルトの名無しさん
2013/05/03(金) 15:49:27.50結局そこなんだよ
ぶっちゃけ、for文が長いと言っても慣用句なんだよ
長い慣用句を簡潔な単語で表したところで、
理解力は上がらないんだよ
タイプ量が少なくて済むけど、コピペとかsnippetとかもあるしねえ
0069デフォルトの名無しさん
2013/05/03(金) 15:51:52.73なにいってんだばか?
処理を実行するのはコンピュータ
正確だから処理が複雑かどうかは関係ない。
人間にとって重要なのは、その処理を
どれだけ簡素に見せられるかどうかだろ。
お前はコンピュータか?人間か?言ってみろ。
0070デフォルトの名無しさん
2013/05/03(金) 15:53:20.02関数化よいよね。しかしアホには限界が…
ちなみに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魔法なんてないよ
だから、大差はない
結局ライブラリの差
pythonは今のところ数値計算のライブラリは揃っているけど
内包表記やらが優れているわけではない
0072デフォルトの名無しさん
2013/05/03(金) 15:55:12.87おいおい、お前の言ってる「長い」は
せいぜい20文字ぐらいで限界だろうがw
0073デフォルトの名無しさん
2013/05/03(金) 15:58:09.28当たり前だろ。りすとこんぷりへんしょんなんて今日びまともな言語なら必ず備えてる
標準的な便利機能でしかない。それをできない言語が劣ってるだけ
for文のように書けるというのはよく考えられてるけどね
0074デフォルトの名無しさん
2013/05/03(金) 15:59:39.26それぞれは小さい、人によっては無視できる程度の違いにすぎない。
しかし、そういう物の積み重ねがアルゴリズムを記述したいユーザをPythonに引きつけ、
Pythonにはnumpy, scipyを作るようなユーザが集まる一方で、
Javascriptにはnumpyが産まれる兆しすら無いのに繋がっている。
0075デフォルトの名無しさん
2013/05/03(金) 16:00:18.741.それが出来ない言語とは?
2.それが出来ない言語で簡単にかけない例は?
(ライブラリを使って簡単にかけることなら却下)
この二つを説明できて
初めて説得力があるというもの。
0076デフォルトの名無しさん
2013/05/03(金) 16:00:49.01お前、天才集団Googleさんに喧嘩売ってるの?
0077デフォルトの名無しさん
2013/05/03(金) 16:01:04.23と思いたいんだねぇ。
あっはっはw
0078デフォルトの名無しさん
2013/05/03(金) 16:01:42.26兆しはあるよ
あと二年後には多分ある
0079デフォルトの名無しさん
2013/05/03(金) 16:02:17.99リスト内包表記なんていらねえ!
Cのように書けば良い!
>>75
このスレに挙がってるリスト内包表記の代替案とかw
挙げ句にわざわざ醜くしてリスト内包表記に似せる始末
0080デフォルトの名無しさん
2013/05/03(金) 16:04:27.32ゲームやウェブアプリやウェブシステムだからな。
そういう人たちを惹きつける言語というわけか。
0081デフォルトの名無しさん
2013/05/03(金) 16:04:37.01ともかく未来にすがるしかないなんて現在の現実ではどうしようもない糞言語なんだろうな
0082デフォルトの名無しさん
2013/05/03(金) 16:05:42.53> このスレに挙がってるリスト内包表記の代替案とかw
> 挙げ句にわざわざ醜くしてリスト内包表記に似せる始末
へ? 普通の書き方じゃね?
うーん、何処にも変な所が見られない。
for(i in A) if(i % 2 == 0) x.push(i);
0083デフォルトの名無しさん
2013/05/03(金) 16:06:18.49実際要らないんじゃないかねえ
天才集団が作った言語、GoやDartにはどちらもないしさ
0084デフォルトの名無しさん
2013/05/03(金) 16:06:44.01JSは低レベルな計算とは切り離されてるから無理
0085デフォルトの名無しさん
2013/05/03(金) 16:07:05.56でもPythonで作られたものよりか
JavaScriptで作られたもののほうが
今は多いよ。
0086デフォルトの名無しさん
2013/05/03(金) 16:08:26.82JavaScriptが低レベルな計算と切り離されてるってのがよくわからん。
高レベルな計算は出来るってことだよな?
低レベルな計算ってなんのことだ?
0087デフォルトの名無しさん
2013/05/03(金) 16:09:23.36C言語なんかと連携できるようになったのも最近の話だし、
パフォーマンスが良くなったのも最近
だから、確かに今はクリティカルな数値計算をしようとする人が少ない
ただ、V8の登場、node.jsで状況は一変した
兆しは確実にある
0088デフォルトの名無しさん
2013/05/03(金) 16:10:13.69まあそれもInt32ArrayなどのTyped Array(ブラウザに既に実装済み)で
できるようになったけど。
0089デフォルトの名無しさん
2013/05/03(金) 16:10:32.250090デフォルトの名無しさん
2013/05/03(金) 16:11:40.950091デフォルトの名無しさん
2013/05/03(金) 16:11:51.06重要なのは開発スピード
この数年は、衰えるどころかスピードアップしている
0092デフォルトの名無しさん
2013/05/03(金) 16:12:29.030093デフォルトの名無しさん
2013/05/03(金) 16:12:34.04何も内容がないレスをするから。
0094デフォルトの名無しさん
2013/05/03(金) 16:14:29.17JS厨な俺としても、その記法で必須なxの初期化を省いてるのが気になる
0095デフォルトの名無しさん
2013/05/03(金) 16:15:29.73というか、JS厨の俺から見るとvar省いてるのとin使ってるのが気になる
つか、こいつJS知らんだろ
0096デフォルトの名無しさん
2013/05/03(金) 16:15:34.86それ、どこがpythonより優れてんの?天才集団とか権威主義のカスは死んでいいぞ
使ってから喋れ
0097デフォルトの名無しさん
2013/05/03(金) 16:16:23.64文句あるの?
権威主義ですが何か?
0098デフォルトの名無しさん
2013/05/03(金) 16:16:53.440099デフォルトの名無しさん
2013/05/03(金) 16:18:02.420100デフォルトの名無しさん
2013/05/03(金) 16:18:21.58開き直ったら正当化してんのかよ
goとdartを使ってから擁護しろと言ってんたよ
0101デフォルトの名無しさん
2013/05/03(金) 16:18:32.300102デフォルトの名無しさん
2013/05/03(金) 16:19:05.780103デフォルトの名無しさん
2013/05/03(金) 16:19:16.68見るもの全部、JavaScriptじゃあー!
0104デフォルトの名無しさん
2013/05/03(金) 16:19:42.600105デフォルトの名無しさん
2013/05/03(金) 16:20:50.23LLスレだった頃から度々書き込んでたJavaドカタだと思う
0106デフォルトの名無しさん
2013/05/03(金) 16:21:28.19俺が使おうが使うまいが真実は変わらんだろ?
0107デフォルトの名無しさん
2013/05/03(金) 16:22:37.88説得力ありすぎてこまるw
邪魔すぎてスレタイ変更で追い出されたからな
0108デフォルトの名無しさん
2013/05/03(金) 16:22:39.59ぶっちゃけ、アホな方のアンチJSは妄想癖があると思う
0109デフォルトの名無しさん
2013/05/03(金) 16:25:01.17何が真実かも説明できないやつが何言ってんだ?お話にならない
0110デフォルトの名無しさん
2013/05/03(金) 16:26:28.34真実は、PythonもJavascriptも知り尽くした天才集団が新しく作った言語に
演算子オーバーロードと内包表記が採用されなかったということ
つまり、こんな機能はいらないんだよ
こんなゴミ機能で喜んでる奴はバカ
0111デフォルトの名無しさん
2013/05/03(金) 16:30:16.43皆で一斉にJavaをdisり始めたら、急にJavaを擁護し始めそうだねw
もしかして、内包表記を執拗にdisるのも、Javaに無い機能をdisってるのかも
0112デフォルトの名無しさん
2013/05/03(金) 16:31:20.34で、どこがどう優れてるんだ?
前スレのお題をその2つで綺麗に書いてくれ
goはかなり特殊な言語でオブジェクト思考プログラミングすら、他の言語のようにはしない
コードは冗長になりがち。Cの代替になれるかどうか
dartとかもうどうしようもない言語だと思うが
0113デフォルトの名無しさん
2013/05/03(金) 16:31:44.95一人でやってろアホ
0114デフォルトの名無しさん
2013/05/03(金) 16:32:36.78いまさらdisるのも馬鹿馬鹿しい程ウンコ
0115デフォルトの名無しさん
2013/05/03(金) 16:33:06.810116デフォルトの名無しさん
2013/05/03(金) 16:33:09.82このスレではJSが敵か。
敵を叩くことで精一杯。
何もためになる話をしない。
0117デフォルトの名無しさん
2013/05/03(金) 16:34:58.48俺がその二つで奇麗に書こうが書くまいが真実は全く変わらないのだが?
説得力が欲しいならお前がどうしても汚くなってしまうことをソースで書いてみせれば良いだろ
俺はやらないよ
天才集団が新しく作ったというだけで十分な説得力だし
0118デフォルトの名無しさん
2013/05/03(金) 16:36:13.97> 俺はやらないよ
コード書けない低能だからねw
やりたくても無理だね
0119デフォルトの名無しさん
2013/05/03(金) 16:36:45.000120デフォルトの名無しさん
2013/05/03(金) 16:37:31.110121デフォルトの名無しさん
2013/05/03(金) 16:38:25.10リスト内包表記的なことはmapでやるっぽいな
その方法はpythonでもできるけどリスト内包表記を使った方が可読性面で良いとされてる
0122デフォルトの名無しさん
2013/05/03(金) 16:38:27.83中身を語らず人格批判
自分より先に人にソースを要求
これがアンチJS厨
0123デフォルトの名無しさん
2013/05/03(金) 16:39:08.18javascriptもそんな感じ
クロージャ使ってmap
0124デフォルトの名無しさん
2013/05/03(金) 16:40:02.35機能ではないから
その機能は別の表記できるんだよな。
0125デフォルトの名無しさん
2013/05/03(金) 16:40:31.23その逃げ回りっぷりを批判されてるってわからんの
自分より先にってなんだよ。こっちに示すもんねーだろ馬鹿か
0126デフォルトの名無しさん
2013/05/03(金) 16:43:13.74今回の流れでJS触ったがクロージャはマジで当たり前のように外部変数壊しててやばいと思った
リスト内包表記はそんなことできない
0127デフォルトの名無しさん
2013/05/03(金) 16:44:14.00あーよかった
そうかー、JS厨じゃなくて偽プログラマだったのか
0128デフォルトの名無しさん
2013/05/03(金) 16:44:49.72むしろそれが出来るからこそ、クラスの代替になるんだけどね
クロージャはJSの中でもみんなが絶賛してる機能
メリットの方が大きい
0129デフォルトの名無しさん
2013/05/03(金) 16:45:36.590130デフォルトの名無しさん
2013/05/03(金) 16:48:05.71それは制約上の妥協点でしかなくで
関数でクラスの代替?とかやってるのが端から見たら終わってて
普通のクラスじゃダメな理由がわからない
0131デフォルトの名無しさん
2013/05/03(金) 16:50:26.44お前も逃げてるじゃん
示すものがない?
天才集団に楯突くからには、ソース示した方が説得力あるだろw
Pythonのソースだってお前が書いたソースじゃないだろ
アンチJSはまさに虎の威を借る狐
>>130
まあ分かりにくいだろうね
これのおかげで、ブラウザのイベント処理とか、非同期処理とかが
うまく扱えて、インターネットと非常に相性が良かったわけで
今また盛り上がってきてるのにつながるわけだけど
実際に書かないとこれは実感できない
0132デフォルトの名無しさん
2013/05/03(金) 16:58:15.53> まさに虎の威を借る狐
ブーメランすぎるwww
0133デフォルトの名無しさん
2013/05/03(金) 16:59:01.77JS厨ってお前みたいな馬鹿しかいないんだな
何がどう優れてるのか示せない限りただの幻想じゃん
JSでは勝てないから自分も知らない言語に逃げるクズ
0134デフォルトの名無しさん
2013/05/03(金) 17:01:05.120135デフォルトの名無しさん
2013/05/03(金) 17:02:55.40見ないうちに荒れやがってw
ほんと仲間はすぐに寄ってくるな。
0136デフォルトの名無しさん
2013/05/03(金) 17:13:34.45var 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妄想を垂れ流す、今勝てないから未来(妄想)にすがる、見知らぬ権威に頼る
自分の知識は関係ないと言う、無知だからデタラメしか言えない
筋金入りのペテン師、といっても始めから誰も信用してないけど
ライブラリの違いが致命的であることを理解できない馬鹿
railsかなんで流行ったと思ってるんだ。まあCと相性悪い点も汎用言語としては論外だし
妄想が実現することは一生ないけど
0138デフォルトの名無しさん
2013/05/03(金) 17:16:48.84少なくとも、内包表記と演算子オーバーロードがないことくらいは知ってたから
お前よりはマシじゃね?w
0139デフォルトの名無しさん
2013/05/03(金) 17:18:46.95なんで劣ってる点を挙げて優れてると主張するんだ?キチガイか?
0140デフォルトの名無しさん
2013/05/03(金) 17:20:06.60お前は毎日それを言って過ごしてるってことだなw
0141デフォルトの名無しさん
2013/05/03(金) 17:20:39.57劣ってる?
採用されていないんだから、必要ない機能ってことだろ
つまり、劣ってないということ
むしろある方が劣ってるってこと
0142デフォルトの名無しさん
2013/05/03(金) 17:20:45.28そのライブラリの有無が重要なんだと思う
ライブラリを除いた狭義の言語だけ扱っていても
その言語で「実際に」何ができるのかはわからないし
0143デフォルトの名無しさん
2013/05/03(金) 17:22:40.01まあもちろんそうなんだけど、これは歴史的に見てしょうがない気がする
数値計算はまだはっきりと苦手分野
状況が一変し始めてる段階
0144デフォルトの名無しさん
2013/05/03(金) 17:24:08.12ライブラリを比較って意味では、scipy使えばコード書く必要すら無いんだよねkmeans...
0145デフォルトの名無しさん
2013/05/03(金) 17:27:42.11それは反証できない、お前お得意の詐欺だか
現にそれらの機能は広く使われて恩恵がある
リスト内包表記やC#のLINQがないほうが良いとか言ってる天才はいない
だからお前がないほうが良い理由を説明できないならそれはただの欠点でしかない
0146デフォルトの名無しさん
2013/05/03(金) 17:28:58.06kmeans関数さえあればね
それってライブラリさえあればJSでもなんでも変わらんということだけど
>>145
採用されなかった
その事実だけで十分説得力を持つから俺はそれ以上何か言う気はないね
詐欺だと勝手に思いたければ思ってれば?
0147デフォルトの名無しさん
2013/05/03(金) 17:31:15.87説得力のある説明ができないなら、リスト内包表記や演算子がない点については欠陥があるということだから
それ以外で何がなぜ優れてるのか説明しないとお前の論は何も通らない
天才が失敗した、それだけ。
0148デフォルトの名無しさん
2013/05/03(金) 17:32:44.740149デフォルトの名無しさん
2013/05/03(金) 17:33:04.97「ブルーカラーでも使えるように」様々な機能を削ってJavaを作った
何が言いたいか分かるな?
0150デフォルトの名無しさん
2013/05/03(金) 17:34:42.67説得力ある説明してるしw
何を言っても無駄とはまさにこのことw
まさか、Pythonを使いこなしているGoogleがそれらの機能を知らないはずがないしな
Googleコーディング規約でも実はネストした内包表記禁止してるくらいだし、
少なくともまともに検討した結果、無い方が良いと判断したのは確実
仮にお前の言うように失敗だったとしても、それなりに根拠があるってこと
本当はそんなに喜ぶほどの価値はないんだよ
0151デフォルトの名無しさん
2013/05/03(金) 17:35:06.78ポインタは危険だったね。メモリ管理は大変だったね
つまりデメリットを説明しないかきりお前とGoogleは完全に間違ってるということ
0152デフォルトの名無しさん
2013/05/03(金) 17:37:00.25Googleが完全に間違ってるかどうかは
俺が説明できるかどうかにかかってるのか
すげえな俺
神かw
0153デフォルトの名無しさん
2013/05/03(金) 17:37:49.42(自分が使わなくても、他人が書いたコードは読む必要がある)
だから馬鹿対策で機能を削った
自分達はPythonやC++を使うから、馬鹿は低能向けの言語使っとけってことだ
0154デフォルトの名無しさん
2013/05/03(金) 17:39:05.83C++には内包表記はないぞ
Pythonにしても、自分たちが使うコーディング規約で内包表記は単純なものだけにしましょう
と言ってるし
0155デフォルトの名無しさん
2013/05/03(金) 17:39:17.91なんでGoogle事情に詳しいお前が採用しなかった理由を説明できないんだ
あと演算子オーバーロードの恩恵を理解できないとかバカすぎ
いろんな自作クラスに対して直感的な記述は不可能になる
これは科学技術分野では特にありがたい機能だ。だから、Googleの言語はJS同様に劣った言語なんだな
0156デフォルトの名無しさん
2013/05/03(金) 17:41:32.06演算子オーバーロードがある
0157デフォルトの名無しさん
2013/05/03(金) 17:44:46.83> 何が言いたいか分かるな?
嘘を言いたいんでしょう?
0158デフォルトの名無しさん
2013/05/03(金) 17:45:07.43そう思いたければ思えば良い
科学技術に長けたGoogleがC/C++の代替を目指した言語で採用しなかった
お前より頭がいい奴はそう思ってるってだけ
>>156
そして、スタイルガイドにこう記述することになる
「特殊な状況を除き、演算子をオーバーロードしてはいけません。」
理由も載ってるからググってこいよw
0159デフォルトの名無しさん
2013/05/03(金) 17:45:25.45> 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.740161デフォルトの名無しさん
2013/05/03(金) 17:46:46.09次のターゲットかい?
お前も懲りないね。
0162デフォルトの名無しさん
2013/05/03(金) 17:48:46.84can beって書いてあるように
あくまで良い場合もあるってだけ
言語に組み込むほどの良さでもないんだろう
悪い面の方がむしろあるってことなんだろうね
0163デフォルトの名無しさん
2013/05/03(金) 17:49:07.66そんな暗黙のルールはどの言語にもある
>>158
Pythonはお前より頭の良い奴が作ったんだから
お前はPythonに一切の文句を言えないはずだが?
0164デフォルトの名無しさん
2013/05/03(金) 17:50:20.65お前が何を言ってもpythonの設計は正しいということですよね
誰よりも頭が悪いお前は何しにここに来てんだ
0165デフォルトの名無しさん
2013/05/03(金) 17:50:32.33その通り。can beって書いてあるように
あくまで複雑な内包表記でも読み難くなる場合もあるってだけ
0166デフォルトの名無しさん
2013/05/03(金) 17:51:57.20え?goは科学技術分野の言語ではないと思うが
googleに詳しいお前の公式見解を聞きたい
0167デフォルトの名無しさん
2013/05/03(金) 17:52:47.13新しい言語を知ってる分、この分野に関しての知恵はあるだろうな
pythonの人とやらも今新しく言語を作るなら内包表記採用しないかもなw
googleの場合は歴史的な試行錯誤の末、今採用してないわけでw
0168デフォルトの名無しさん
2013/05/03(金) 17:55:25.430169デフォルトの名無しさん
2013/05/03(金) 17:57:04.120170デフォルトの名無しさん
2013/05/03(金) 17:59:47.53LINQなんて採用されてなさすぎだろw
0171デフォルトの名無しさん
2013/05/03(金) 17:59:48.74googleが間違った。正解だというのなら証拠見せろ
また未来に頼るのか?お前そればっかだな
事実ベースで語るならそんなのを正解として出すほうが馬鹿。天才だからーって阿呆か
goやdartの設計思想も説明できないしさあ、お前ゴミすぎるだろ。反論できる?
0172デフォルトの名無しさん
2013/05/03(金) 18:01:01.04いや、だから、俺は証拠を見せる必要がないと思うから
しないだけ
今の時代にGoogleが間違ったってかw
へー説得力ありますなあ
0173デフォルトの名無しさん
2013/05/03(金) 18:06:14.610174デフォルトの名無しさん
2013/05/03(金) 18:07:46.410175デフォルトの名無しさん
2013/05/03(金) 18:08:20.49> メソッドと演算子のオーバロードをサポートしていない理由は?
>
> メソッドを呼び出す際に、メソッドの型をいちいち調べしなくてよい方がシンプルです。
> 他の言語に接した経験から言えることは、同じ名前で、かつシグネチャが異なるメソッドの寄せ集めを持つことは、
> ときに役に立ちますが、混乱を招くだけで充分に機能しません。
> 型の中で、メソッドが名前だけで検索できるよう制約を課すことは、Go言語の型システムを単純な仕組みにする上での大きな決断でした。
Javaを含む殆どの静的型付けOOPLを全否定だな
これがGoogleの天才が出した結論か
0176デフォルトの名無しさん
2013/05/03(金) 18:09:39.920177デフォルトの名無しさん
2013/05/03(金) 18:11:17.57何も理解せずに行き当たりばったりで喋るからこうなる
0178デフォルトの名無しさん
2013/05/03(金) 18:11:58.07仕様の善し悪しより人気や宣伝の面もあるし
ただ、自分たちが使うことも念頭において開発してる言語だし、
真剣に検討した結果であることは間違いない
仮にそう決断したことが悪い判断だったとしても、
お前が言うように手放しで喜べるような単純なもんでもなく
議論が裏にあるってことだ
少なくとも、浅い考えで「内包表記がないー、オーバーロードがないー
話にならないー、全然違うー」
なんて話ではない
むしろ、そんなものあってもなくても実は生産性に大差はないんだよというのが
説得力を持つ
0179デフォルトの名無しさん
2013/05/03(金) 18:13:26.78> 採用しないことでシンプルさを保ちました。
そしてメソッドのオーバーロードは結構批判的なのに、
演算子オーバーロードはそうでもないという
0180デフォルトの名無しさん
2013/05/03(金) 18:13:36.880181デフォルトの名無しさん
2013/05/03(金) 18:14:02.28C++スタイルガイド見てこいよ
かなり批判的
0182デフォルトの名無しさん
2013/05/03(金) 18:16:57.58見て来た
> 演算子をオーバーロードするとコードは直感的にわかりやすくなりますが、次のような欠点もあります。
>
> ・コストの高い操作なのに、コストの安い組み込み操作だと思わせてしまう。
> ・オーバーロードした演算子を呼び出している場所を見つけるのが非常に困難になる。== の呼び出しを探すよりも Equals() を探す方がはるかに簡単です。
> ・ポインタにも機能する演算子があるが、これらはバグを生みやすい。Foo + 4 がやることと、&Foo + 4 がやることは全く違います。コンパイラはどちらにも警告を出さないため、デバッグは非常に難しくなります。
> ・オーバーロードには想定外の悪影響もあります。たとえばクラスが単項 operator& をオーバーロードしていると、クラスは安全に前方宣言できません。
基本的に2番目以外はC++固有の問題だと思う
0183デフォルトの名無しさん
2013/05/03(金) 18:18:47.69一長一短あるならリスト内包表記がなければ優れてるとかいう馬鹿な主張をしてる
お前は本当に救いようがない馬鹿だということを自白してることになるし
リスト内包表記やオーバーロードの有用性は未だに否定されてないのだが
0184デフォルトの名無しさん
2013/05/03(金) 18:20:36.34>>136レベルの簡潔さにはなるんだろ
十分許容範囲だわw
理解に大きな差が出るとは思えない
>>182
そうかね、一番目は明らかに固有じゃない気がするし、3番や4番も
同類の問題が出てきそうだけど
>>183
有用性とデメリットがあってそのバランスを取った結果採用されなかったってことだろw
0185デフォルトの名無しさん
2013/05/03(金) 18:20:49.34Pythonはシンプルだし。むしろ無いと困る
というかどうせ代替のメソッドを定義することになるが
こうすると式に一貫性がなくなる
0186デフォルトの名無しさん
2013/05/03(金) 18:23:32.13お前の嫌いなJavaがPythonより良い言語ってことになるけどいいの?w
0187デフォルトの名無しさん
2013/05/03(金) 18:25:34.62Googleの天才は採用しなかった、他の天才は採用した
なんでGoogleが一方的に正しいんだ?馬鹿?
0188デフォルトの名無しさん
2013/05/03(金) 18:25:39.44メソッドのオーバーロードがあるJavaなんて
Googleの天才達によって否定済みですけど?
0189デフォルトの名無しさん
2013/05/03(金) 18:31:49.51実際Javaの汎用性やそれに伴うライブラリの豊富さは強いだろ
それに対してPythonはPythonの良さがあると言えるわけ
一ミリも知らない言語をgoogleが作ったから良いと言っちゃう馬鹿と一緒くたにしないでほしいわけ
0190デフォルトの名無しさん
2013/05/03(金) 18:38:56.67一方的に正しいとか、まあそこまでは言ってない
他が天才かどうかは知らんが、仮にそうだとしても、意見が割れてるのは確かだ
その時点で、内包表記の有用性はかなり怪しいものになるんだよ
>>188
そうだね
人気がある方が正しいと考える君の考えは
ここでもGoogleに否定されたわけだ
DartやGoは今のところ人気はない
ただ、だからといって正しくないとは言えない
>>189
結局仕様の良し悪しじゃないじゃんw
0191デフォルトの名無しさん
2013/05/03(金) 18:42:25.20一番目も、C++の場合、オーバーロード無しで演算子が出来る事は
Cと同じだから低コストと思うワケで、
高コストな操作(文字列やリストの連結等)が演算子で書ける言語の場合
演算子だから低コストなんて思わないよ
だから前提からしてC++固有とまでいかなくても、最近の言語には当てはまらない話
0192デフォルトの名無しさん
2013/05/03(金) 18:42:58.87Javaの仕様の悪いところやPythonの仕様の良いところも馬鹿なお前と違って言えるし
それは議論されつくされてる。リスト内包表記が無い方がいいとか言ってる馬鹿はいないけど
実際正解してないgoogleを正解例としてpython批判してる馬鹿が
問題となるコードを例によって一回も出してくれないしこれからも一生出さないと思うと呆れるしか無い
0193デフォルトの名無しさん
2013/05/03(金) 18:44:20.90別にGoが最高の言語という結論になっても構わない俺がいるw
0194デフォルトの名無しさん
2013/05/03(金) 18:45:04.15本当は、「まともなプログラマーなら、内包表記や演算子オーバーロードを採用して当たり前!
主要な新しい言語は全部そう!」って思ってたんだろw
正直になれよw
>>191
一番有名な例であるiostreamからして高コストなioだからなあ
0195デフォルトの名無しさん
2013/05/03(金) 18:45:51.61頑張ってると言っても正しさは一切ないけど
0196デフォルトの名無しさん
2013/05/03(金) 18:47:42.52まあ別に逃げ出してないし、
俺がどこまで頑張ろうとJSの時代が来ることは変わらんわけでw
指をくわえてみてると良いよw
0197デフォルトの名無しさん
2013/05/03(金) 18:48:40.93そこなんだよな
逆に言えばJS厨はJSが糞だという結論に落ち着きかけたから
Googleをスケープゴートとして使ってるだけ
Googleの言語はまだまだだし、JSが科学で使い物にならないという事実は明らかなのに
0198デフォルトの名無しさん
2013/05/03(金) 18:50:12.24いつ結論が出たんだよw
お前が勝手に勝利宣言してるけど、
真実はライブラリがないだけで、JS自体はちっとも糞ではなく、
これからどんどんライブラリが出ることも確定してるってことだ
0199デフォルトの名無しさん
2013/05/03(金) 18:50:48.10ほら、今がショボいことを認めたくないから現実逃避を続けてるじゃん
0200デフォルトの名無しさん
2013/05/03(金) 18:52:08.630201デフォルトの名無しさん
2013/05/03(金) 18:52:14.650202デフォルトの名無しさん
2013/05/03(金) 18:53:26.65いや、今はしょぼいよ
数値計算のライブラリがないという点でな
ただ、ウェブ関連は充実してるし、これから
数値計算もこれからしょぼくなくなるけど
>>200
今だけなw
良かったなw
>>201
まあ分かる奴には分かる
ヤバいよ
マジで来る
0203デフォルトの名無しさん
2013/05/03(金) 18:54:20.74万が一、数年後にまともなライブラリができるとして今JSを使う必要性はまったくない
完成してから吠えてくれw
0204デフォルトの名無しさん
2013/05/03(金) 18:55:10.59というかまず、充実したC++ライブラリのラッパーがくるんじゃないかね
0205デフォルトの名無しさん
2013/05/03(金) 18:58:32.08JSは一生ねーよ
0206デフォルトの名無しさん
2013/05/03(金) 19:00:33.36Railsクローンが色んな言語にあるようにな
なのに、scipy相当がPythonにしか無い時点で察しろって話
0207デフォルトの名無しさん
2013/05/03(金) 19:01:27.55まあそういう奴も安心
なんせ別言語が定義できるくらいだから、別の言語が使えるようになるよ
俺は直接JS使うけどw
0208デフォルトの名無しさん
2013/05/03(金) 19:04:09.87君は科学技術計算に縁のない底辺ドカタなんだから
最初から関係ないよ
いつまでもJSを使っててくれて構わない
0209デフォルトの名無しさん
2013/05/03(金) 19:05:36.81確かにあんまり縁がなかったわw
万一今科学計算が必要でも別にC++やpython使うから良いけどw
0210デフォルトの名無しさん
2013/05/03(金) 19:07:10.000211デフォルトの名無しさん
2013/05/03(金) 20:27:01.00遺伝的アルゴリズムとかもあるのか
ちょっと遊ぶのにいいかもしれん
このスレで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.480215デフォルトの名無しさん
2013/05/03(金) 21:46:20.69実際JSってあらゆる普段使いに向かないんだからさ
0216デフォルトの名無しさん
2013/05/03(金) 21:48:29.92もともとは汎用スクリプト言語
JSはブラウザ用言語だったが、今となっては広範囲に使える汎用言語
ただ、数値計算は凄いライブラリがある関係上、pythonが今のところ有利
0217デフォルトの名無しさん
2013/05/03(金) 21:49:01.94御題出したのはJS厨
で、解いたんだからお前も解けという流れ
0218デフォルトの名無しさん
2013/05/03(金) 21:49:07.31返り討ちに合った途端にライブラリがある問題はダメってなんなん
自演下手過ぎだし
0219デフォルトの名無しさん
2013/05/03(金) 21:50:26.18しかも一人か二人だと思ってるようだし
0220デフォルトの名無しさん
2013/05/03(金) 21:51:28.840221デフォルトの名無しさん
2013/05/03(金) 21:51:41.740222デフォルトの名無しさん
2013/05/03(金) 21:52:15.140223デフォルトの名無しさん
2013/05/03(金) 21:52:38.61不確定な遠い未来しか武器がないなら黙ってろ
0224デフォルトの名無しさん
2013/05/03(金) 21:52:50.82中身のない中傷を繰り返すアンチJSのことか
0225デフォルトの名無しさん
2013/05/03(金) 21:54:34.52そう思うなら反論する必要がない
余裕こいてれば良いだろ
0226デフォルトの名無しさん
2013/05/03(金) 21:55:04.23証明されてしまったからな。
これからどう反論する?
0227デフォルトの名無しさん
2013/05/03(金) 21:55:19.39自分がデタラメを並べてると気付いてないわけじゃないだろ
悪ふざけはやめろキチガイ
0228デフォルトの名無しさん
2013/05/03(金) 21:55:44.21scipyやnumpy知ってたっぽいし、むしろpython厨っぽい
0229デフォルトの名無しさん
2013/05/03(金) 21:56:46.68言語の差になってるうちは
言語の優位性なんて語れないぞ。
言語だけの範囲で語ろうぜ。
0230デフォルトの名無しさん
2013/05/03(金) 21:56:49.77お前のペテンを批判してるだけ
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.14https://github.com/popular/starred
https://github.com/languages
0234デフォルトの名無しさん
2013/05/03(金) 22:02:22.45JS厨がpythonに対してスコープは絞るべきとか言ってたのは今考えたら悪うしかない
かなり危険な糞仕様
0235デフォルトの名無しさん
2013/05/03(金) 22:02:27.12Javascriptは全然マシだけど、Javaはウンコすぎて無理
関数オブジェクトすらないゴミでは話にならない
やっぱり言語による差はあるよ
0236デフォルトの名無しさん
2013/05/03(金) 22:02:53.80numpyみたいにコアの処理をCに任せればいいだけ
0237デフォルトの名無しさん
2013/05/03(金) 22:03:41.07それがならないんだなぁ。
証拠は数々上がっている。
0238デフォルトの名無しさん
2013/05/03(金) 22:03:58.27うん、簡単だね
今すぐ実装してきて良いぞ
0239デフォルトの名無しさん
2013/05/03(金) 22:04:42.82ちょっと抽象的すぎて良く分からんな
Lintで検出できないようなもんかね?
0240デフォルトの名無しさん
2013/05/03(金) 22:06:16.82変更するのがデフォだからテストも通る
0241デフォルトの名無しさん
2013/05/03(金) 22:06:24.11おいおい、JavascriptとJavaを一緒にするなよ
ぶっちぎりでゴミだよJavaは
関数オブジェクトが無いんだよ?信じられんわ
0242デフォルトの名無しさん
2013/05/03(金) 22:07:06.29> JSは外部の変数を暗示的に変更しまくらないと何もできないヤバい言語
それ、お前が変更しまくらないと
出来ない無能なんですーって
言ってるだけじゃないかw
0243デフォルトの名無しさん
2013/05/03(金) 22:07:44.91はいはい、必死だね。
世の中にはクラスすらない言語もあるんだよ。
0244デフォルトの名無しさん
2013/05/03(金) 22:08:55.680245デフォルトの名無しさん
2013/05/03(金) 22:11:07.96それがないとクラスも作れないカス言語
pythonでは明示するしコミュニティでは極力避けてるのに
JSは文化的に積極的にやってる。というかそれがないと無理なんだろうな
だとしたら、意味もなく大量のvar宣言せずにクロージャの宣言をしたほうが良い
0246デフォルトの名無しさん
2013/05/03(金) 22:12:40.24Egorの1/10もプログラム書けない奴が大半だろ
言語というよりやっぱ個人差の方が大きい
0247デフォルトの名無しさん
2013/05/03(金) 22:13:49.80自分の無知をさらけ出して恥ずかしくないの?w
JavaScriptにはグローバル変数すら無いしね。
0248デフォルトの名無しさん
2013/05/03(金) 22:14:11.17ちょっと具体例で説明して欲しいんだが、
こんな感じのこと?
a = 1;
function() {
a=2; //ああ、変更できちゃったよ!
}
0249デフォルトの名無しさん
2013/05/03(金) 22:14:14.08Cでグローバル変数を使い回すようなもの
それを便利とか言って多様するのは
プログラミング初心者と競技プログラミングだけ
それ以外でもやむを得ず使う場合はあるが
普通は危険な割にメリットが少ないから避ける
0250デフォルトの名無しさん
2013/05/03(金) 22:15:53.62実際に関数を呼び出せば関数外の変数を書き換えるのが当然の言語だろ
違うなら反論よろ
0251デフォルトの名無しさん
2013/05/03(金) 22:16:14.21ちょっと良く分からん
pythonのコード例とjavascriptのコード例を対比させて説明してくれないか?
0252デフォルトの名無しさん
2013/05/03(金) 22:16:21.63そうそうそれのこと。
グローバルな変数を書き換えることができて
それを防ぐ方法がない。
これがJSというカス言語
0253デフォルトの名無しさん
2013/05/03(金) 22:17:49.08防ぐ方法はあるだろ
あんまり変な事書くなよPython使いが皆アホだと思われるだろ
0254デフォルトの名無しさん
2013/05/03(金) 22:18:30.76やっぱり無知だったか。
アハハハハ
0255デフォルトの名無しさん
2013/05/03(金) 22:20:41.17はい、撤収ーw
0256デフォルトの名無しさん
2013/05/03(金) 22:21:32.600257デフォルトの名無しさん
2013/05/03(金) 22:24:06.89その代わり「普通の」関数には宣言がいるのか、トホホ…
危険を承知で糞仕様にしたから、あとから継ぎ接ぎ対策したのか
そしたら一層、大量のvar宣言がつくづく無駄でしかないのだが?
0258デフォルトの名無しさん
2013/05/03(金) 22:25:36.30いいから比較して書けよ
話はそれからだ。
無知なPython厨をいたぶるのは楽しいね〜w
0259デフォルトの名無しさん
2013/05/03(金) 22:26:25.560260デフォルトの名無しさん
2013/05/03(金) 22:28:24.21意味不明。安全モードは英語にしたらsafe modeだ。無知すぎ
0261デフォルトの名無しさん
2013/05/03(金) 22:29:17.260262デフォルトの名無しさん
2013/05/03(金) 22:30:58.95危険モードが有るんだったら
安全モードがあるのかよ?
無いよ。安全モードなんてねw
0263デフォルトの名無しさん
2013/05/03(金) 22:31:03.56JS厨だがそれは知らなかった
通常var忘れるのは防げるが、外の変数とかぶっても防げたのか
0264デフォルトの名無しさん
2013/05/03(金) 22:34:47.93安全って単語だが?
ってどや顔していってほしいwwww
0265デフォルトの名無しさん
2013/05/03(金) 22:35:45.16通常問題は起きないのが救い
メリットとデメリットを考えるとメリットの方が大きいけど
クラスだけではjavascriptはとっくに廃れてた
0266デフォルトの名無しさん
2013/05/03(金) 22:38:23.25いきなりスペルミスで変数を宣言してしまうpythonの方がよっぽど危険
0267デフォルトの名無しさん
2013/05/03(金) 22:39:54.89デフォは危険だろ。そこは反論できないはずだ
だってそれを防ぐ方法を作ってるんだからw
糞言語すぎ
0268デフォルトの名無しさん
2013/05/03(金) 22:41:14.88頭悪いの?
静的型付け言語が安全って言いたいの?
0269デフォルトの名無しさん
2013/05/03(金) 22:43:15.91そもそもpython以外でこれができない有名言語ってあるの?
0270デフォルトの名無しさん
2013/05/03(金) 22:44:28.11静的言語でもスペルミスによる意図しない変数の変更は防げないだろうねw
で、デフォで危険な事実は否定できてないなあ
0271デフォルトの名無しさん
2013/05/03(金) 22:44:33.400272デフォルトの名無しさん
2013/05/03(金) 22:45:10.610273デフォルトの名無しさん
2013/05/03(金) 22:45:21.36> いきなりスペルミスで変数を宣言してしまう
どんなコード?
0274デフォルトの名無しさん
2013/05/03(金) 22:46:36.11test = 2
teest = 3 #ああ、testを変えたつもりが新しい変数に!
0275デフォルトの名無しさん
2013/05/03(金) 22:46:41.67ここで暴れてるのは偽JS厨だから
0276デフォルトの名無しさん
2013/05/03(金) 22:47:13.79それは危険だなwwww
0277デフォルトの名無しさん
2013/05/03(金) 22:47:59.28もっとちゃんとしたコードにしてくれよ
うちのvim + pyflakes だと、宣言だけして未使用の変数は
警告で色付けされるから一目で分かるんだよ
0278デフォルトの名無しさん
2013/05/03(金) 22:50:15.59よくわからんが、こうすればいいのか?
test = 2
use(test)
teest = 3
use(teest) #変数名の間違いに気づかず補完してしまった!
0279デフォルトの名無しさん
2013/05/03(金) 22:51:32.54どういうこと?
0280デフォルトの名無しさん
2013/05/03(金) 22:51:37.52補完するときに候補が複数でる(testとteest)から気付くよ
もっと真面目に考えてくれよ
0281デフォルトの名無しさん
2013/05/03(金) 22:52:03.00人格批判ばかりするのとは別人か
0282デフォルトの名無しさん
2013/05/03(金) 22:54:28.40補完は言語の機能ではありません。
0283デフォルトの名無しさん
2013/05/03(金) 22:55:04.20じゃあ、補完じゃなくてコピペで
0284デフォルトの名無しさん
2013/05/03(金) 22:55:13.05そこでここのアホなJS厨(中傷されてるお前だよ)に聞きたいのだが
お前は以外にもアホなJS厨(毎日一日中妄想垂れ流し野郎)はいるのか?
お前みたいなのが複数人いるとかさぶいぼ立つけどアホなJS厨は何人いる?
0285デフォルトの名無しさん
2013/05/03(金) 22:56:42.63多分、お前は俺も中傷してるけど、他の奴も中傷してると思う
現実とはそんなもん
0286デフォルトの名無しさん
2013/05/03(金) 22:57:02.770287デフォルトの名無しさん
2013/05/03(金) 22:59:06.53あまり他人の中傷はしない
0288デフォルトの名無しさん
2013/05/03(金) 22:59:37.30つまり、今はライブラリないけど将来は必ずあるとか、
google様が考えた言語と違うから糞言語とか言ってるJS厨が複数人いるのか。うわあ
JS厨やべーな・・・
0289デフォルトの名無しさん
2013/05/03(金) 23:01:10.82痛いところを疲れると草を生やして開き直って煽りまくる
0290デフォルトの名無しさん
2013/05/03(金) 23:01:26.58お前が中傷してるのはもっと前からだろう?w
0291デフォルトの名無しさん
2013/05/03(金) 23:02:17.13補完って言い出したの>>278だが……
それはともかく、エディタやツール類のサポートは一切考慮しないってこと?
ライブラリの件と同じく、そういうのが大事だと思うが……
0292デフォルトの名無しさん
2013/05/03(金) 23:02:49.86それが一人だと思ってるのか
良く規制に引っかからないな
IP使い分けてるのか
0293デフォルトの名無しさん
2013/05/03(金) 23:03:43.54これだけ使われてる言語にしてはまともな開発環境がないのが問題だよな
いっそブラウザに載せればいいのに
今でもChromeのコンソール使うと一応保管や保存できるが
前使った時はどうも挙動があやしいのでやめた
新しいファイルは作れないから
一旦別のエディッタで作ってからみたいになるし
0294デフォルトの名無しさん
2013/05/03(金) 23:04:33.28ちなみに278は283のレスをしてるだろ
0295デフォルトの名無しさん
2013/05/03(金) 23:05:24.80JSは奇跡の言語とかJSで凄い時代になるとか気持ち悪い煽動を始めた辺りから
叩いてるけど懲りずに毎日同じ妄想を垂れ流してる奴が
お前以外にいるのか?おそろしい
0296デフォルトの名無しさん
2013/05/03(金) 23:07:18.07JSエンジンの設定弄ればV8でもFFのやつでも警告でたはず(実行前に)
JSでも静的解析はできるがevalとかがある都合上OFFになってる
0297デフォルトの名無しさん
2013/05/03(金) 23:08:28.58一番高機能なIDEであるVSがブラウザで動いてるところを想像できない
0298デフォルトの名無しさん
2013/05/03(金) 23:08:41.67右クリックの保存の挙動が怪しいの?
今は多分大丈夫と思う
Chrome Canary使ってるけど
0299デフォルトの名無しさん
2013/05/03(金) 23:08:55.20補完が使えるのにコピペなんてしないから、
もっと現実味のある理由を考えて
0300デフォルトの名無しさん
2013/05/03(金) 23:09:52.95俺の前は知らんが、今は俺一人だ
ちなみに俺はソース書いてるJS厨
0301デフォルトの名無しさん
2013/05/03(金) 23:10:47.73あと最近はsublimeのステマをやたら聞く
0302デフォルトの名無しさん
2013/05/03(金) 23:11:20.890303デフォルトの名無しさん
2013/05/03(金) 23:11:48.81実はダブルクリックの方が補完より速い場合あるから
マウス毛嫌いしてないで試してみ?
vimだから嫌いそうだけど
0304デフォルトの名無しさん
2013/05/03(金) 23:12:23.20vimよりいいかも
0305デフォルトの名無しさん
2013/05/03(金) 23:13:25.80ソース書くって、今日も例を示せと数十回言ったけど返ってきた記憶がない
0306デフォルトの名無しさん
2013/05/03(金) 23:14:37.56まあほとんどJSのソースしか書いてないからな
たまに議論のついでにちょろっと小さいコード片をいれるくらい
0307デフォルトの名無しさん
2013/05/03(金) 23:17:00.390308デフォルトの名無しさん
2013/05/03(金) 23:17:21.27デバッガとセットになってて欲しいし
HTML上で使う場合はブラウザ使うし
HTMLの画像とか他のファイルも一元管理できた方がよくない?
>>298
今度試してみるかな
とは言え最近はNode.jsばっかり書いてるんだけどね
Node.jsでもブラウザをデバッガとして使うんだけど
ココら辺ももう少し連携しやすくして欲しいなあ
>>302
出ないよ
それで出たら親スコープの変数触れないじゃん
そうじゃなくて明らかに出てきてない変数から代入しようとしてたりするケースみたいなのは
JSエンジンのオプションで出せるようにできる
あとはvarを必至にすることでスペルミス軽減
0309デフォルトの名無しさん
2013/05/03(金) 23:17:47.57sylvesterとかいうのしか引っかからなかったから
数値計算は相当苦手なのはわかった
まあ低機能だから適当に説明読んで即使えたけどw
0310デフォルトの名無しさん
2013/05/03(金) 23:18:48.12それで意味もなくvarだらけのコードになる
0311デフォルトの名無しさん
2013/05/03(金) 23:20:04.260312デフォルトの名無しさん
2013/05/03(金) 23:21:19.40普通に分からんだろうね
0313デフォルトの名無しさん
2013/05/03(金) 23:21:56.12何言ってるのかさっぱりわからない。
クロージャーは、関数外部の変数を見れたらいけないと言いたいのか?
それはもはやクロージャーではない。
なぜならクロージャーの要件の一つが外部の変数を見れること。
0314デフォルトの名無しさん
2013/05/03(金) 23:22:37.48知ってるか知ってないかの違い
ググればわかるようなことを
自慢げに言われてもなw
0315デフォルトの名無しさん
2013/05/03(金) 23:22:44.91pythonが真のクロージャを備えていないことが
よっぽどコンプレックスなんじゃないの
0316デフォルトの名無しさん
2013/05/03(金) 23:25:11.17JSのクロージャは危険じゃないとか
言ってる奴はアホだろ
0317デフォルトの名無しさん
2013/05/03(金) 23:25:46.24Pythonのレキシカルスコープがちょっと変わってるんで、それを調べてから書き込んだほうがいい
JS厨の俺としてもうんざりですよ
0318デフォルトの名無しさん
2013/05/03(金) 23:26:21.82外部スコープはfinal変数しか参照できないけど、
そんな感じで、読むのは良いけど書くのはダメってのは
わりとありがち
0319デフォルトの名無しさん
2013/05/03(金) 23:27:56.20自慢じゃなくてかなり基本的なことだから、共通基盤が違うんだなあと
ノルムと言って伝わらない人は確かに科学的な計算しないと思う
0320デフォルトの名無しさん
2013/05/03(金) 23:27:56.92代入が出来ないだけ
0321デフォルトの名無しさん
2013/05/03(金) 23:29:53.60F#とかもそうなんだっけ
そういう安全装置は意味あるし、pythonのスコープがおかしいって指摘が微妙だよな
0322デフォルトの名無しさん
2013/05/03(金) 23:30:47.60そいつは本当に自分が知らないことを聞いているのか
一般的な事柄としてそういう疑問があると言ってるのか、
そしてついでにいえば、そいつがどのレスと同一人物なのか
もう少し注意深く見た方が良い
0323デフォルトの名無しさん
2013/05/03(金) 23:31:14.37代入したいときに明示するか(nonlocal)の違いじゃないの?
激しくどうでもいい
0324デフォルトの名無しさん
2013/05/03(金) 23:31:45.32それってfinalじゃなくても良くなるって話を随分前に聞いた覚えがあるけど、
Java7でもまだだっけ?
0325デフォルトの名無しさん
2013/05/03(金) 23:32:15.33当然良いことも悪いこともあると思うが
自分には他の言事の差別化が大きいのかなと思ってしまう
0326デフォルトの名無しさん
2013/05/03(金) 23:33:03.21危険だとか
0327デフォルトの名無しさん
2013/05/03(金) 23:35:13.75JSのが明らかに危険なのにどうでもいいってw
>>322
それこそ本当にどうでもいいです。
科学的なコードに対して一般的に聞くことにどんな意味が?
JSで書いたほうが良いと言ってた奴だったと思うよ
0328デフォルトの名無しさん
2013/05/03(金) 23:36:21.07でも外側のスコープ変数変更出来ない方が普通だとは思わないな
変更されない、方を特殊に扱った方が自然だと思う
JSだってそれはできるし
0329デフォルトの名無しさん
2013/05/03(金) 23:38:22.45それは超初心者レベルのプログラミングも分かってないってこと
意図しない副作用に注意するなら、変更する場合に明示するほうが自然だろ
0330デフォルトの名無しさん
2013/05/03(金) 23:38:27.76レス見てきたけど、趣旨としては一般的なことだね
normは確かに数学の用語だけど、norm以外にもいろいろ挙げてる
から意味はあるね
normを揶揄するのは揚げ足取りの類い
0331デフォルトの名無しさん
2013/05/03(金) 23:39:53.56変更不可な変数の宣言と混同してる
0332デフォルトの名無しさん
2013/05/03(金) 23:39:58.67確かに
これはnonlocalの方が優れてるわ
まあselfは気に食わないけど
0333デフォルトの名無しさん
2013/05/03(金) 23:40:33.94final変数しか参照できないって不便だよな。
for(final int i : list) {
//クロージャー呼び出し
}
for(int i : list) {
final int i_ = i;
//クロージャー呼び出し
}
いちいちfinal付けるかfinalつけた変数に代入しないといけないんだよな。
0334デフォルトの名無しさん
2013/05/03(金) 23:41:43.58自分で書いておいてその程度の事が意図しないとかいう感覚がわからない
内側のスコープにその変数を使ってるもんだと思って、
実際には無くて、外側のいじっちゃいけない同名の変数を
意図せず弄って問題が起きることがあるってこと?
簡単な具体例を説明して欲しい
0335デフォルトの名無しさん
2013/05/03(金) 23:42:38.02拡張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滅多に起きないけど、varを忘れてしまった場合にありうる
0337デフォルトの名無しさん
2013/05/03(金) 23:44:09.47マジか
これは良い情報
まあ仕事じゃレビューでfinalとってくれって言われるのが落ちだろうけど
0338デフォルトの名無しさん
2013/05/03(金) 23:45:06.87Java8で、final値だと自明な場合はfinalを書かなくても
final変数として参照できるようになる、らしい
0339デフォルトの名無しさん
2013/05/03(金) 23:45:58.38変数の中身は当然追いにくくなるし、クロージャは基本的にメリットない気がする
なんで引数で渡したりしないの?
0340デフォルトの名無しさん
2013/05/03(金) 23:46:33.01あー、言いたいことはわかった気がするけど
ちょっといろいろと仮定が都合良すぎるな
確かに一昔前なら実際起きてそうなことだと思うけど
今は皆慣れてコーディングスタイルとかも良くなってきてるし
そのためにstrictmodeもあるしね
0341デフォルトの名無しさん
2013/05/03(金) 23:48:11.95なんで普通の関数にそんなものを付けなきゃいけないのか謎
クロージャにだけ付ければ良いし、そしたらvar宣言自体が無駄
という結論ではダメですか
0342デフォルトの名無しさん
2013/05/03(金) 23:49:43.390343デフォルトの名無しさん
2013/05/03(金) 23:52:10.68それはさ、クロージャをクラスに置き換えても同じことが言えるんじゃない?
0344デフォルトの名無しさん
2013/05/03(金) 23:52:23.01グローバル変数になるとかのパターンが、かなり危険だね
なので"use strict"が導入された
>>341
"use strict"は関数毎につける必要はないよ
実質モジュール単位で有効にすればいい
0345デフォルトの名無しさん
2013/05/03(金) 23:52:59.24どういうこと?
今話してた意図せずスコープリークしてしまうのを防ぐ役目があるじゃん?
クロージャにだけ固いスコープが必要?
よくそのメリットがわかんないな
0346デフォルトの名無しさん
2013/05/03(金) 23:53:54.26だからさ、それ本当にuse strictで防げるのか?
俺の手元のテストコードがおかしいのか?
0347デフォルトの名無しさん
2013/05/03(金) 23:54:23.89クラスは変更される変数と独立してないだろ
0348デフォルトの名無しさん
2013/05/03(金) 23:55:28.33クロージャはコードが長くなりがち。
長いコードはスコープが広いのと同じことになる。
つまり何処で変数を変更しているかわかりにくい。
影響範囲を狭くするために
外のスコープに一切アクセス出来ない
クロージャ(?)が必要。
これをクロージャと呼ばないとかどうでもいい
違う名前でいいから、そういうものが必要。
0349デフォルトの名無しさん
2013/05/03(金) 23:55:53.000350デフォルトの名無しさん
2013/05/03(金) 23:56:01.24メソッドはフィールド変数と独立してるじゃん
同じじゃないの?
外側のクラスに囲まれてるから独立してないというのなら、
クロージャだってさらに外側のクロージャに囲まれているの
だから独立してない
0351デフォルトの名無しさん
2013/05/03(金) 23:57:09.50それが偶然グローバル変数とバッティングした場合は
use strict付けてても無力ってことだろ
そんなレアケースどうでもいいわ
0352デフォルトの名無しさん
2013/05/03(金) 23:57:31.88varで宣言してない変数を触ろうとするとエラーになるんだから
意図しない外側の変数やグローバル変数を弄ることがないってことでしょ?
それでも何か不満があるの?
>>348
クロージャは即時関数とも重なるから
むしろだいたい短いと思うんだけど
0353デフォルトの名無しさん
2013/05/03(金) 23:57:58.80varを付け忘れた変数が外側とバッティングする場合はそこまでレアではない
ただ、これもレアっちゃレアだと思うが
0354デフォルトの名無しさん
2013/05/03(金) 23:58:11.69タイプミスして
グローバル変数の宣言になるパターンは防げる
宣言済みの外部変数へのアクセスになるのは防げない
0355デフォルトの名無しさん
2013/05/03(金) 23:59:44.130356デフォルトの名無しさん
2013/05/04(土) 00:02:52.85優れていると言ってるとしか思えなくなって来るな。
人間ミスをする生き物だ。ミスしても謝ればいいだけ。
誰もそれを責める権利は持っていない。
ミスが怖いならコンピュータにでもなれよ。
0357デフォルトの名無しさん
2013/05/04(土) 00:03:35.370358デフォルトの名無しさん
2013/05/04(土) 00:04:36.54プリミティブ型はちょっと面倒だな
まあPython-JSコンバータつくるときはいいかも
0359デフォルトの名無しさん
2013/05/04(土) 00:12:48.16使ったことないけど、Cloud 9とかintelliJ IDEAってのが良いらしい。
ただ、sublimeもlintやdev toolと連携すればそこそこいけるし、
セットってのがそんなに利点かなあ
0360デフォルトの名無しさん
2013/05/04(土) 00:13:13.68ES.strawmanくらいには挙がってないとおかしいんだが
0361デフォルトの名無しさん
2013/05/04(土) 00:15:26.730362デフォルトの名無しさん
2013/05/04(土) 00:16:09.51最近段々とChromeがOS化してきちゃってさ
というか9割の時間Chromeを全画面表示してるし
0363デフォルトの名無しさん
2013/05/04(土) 00:16:25.04http://www.publickey1.jp/blog/11/nodejsjavascriptcloud9_ide.html
凄い時代だよなあ
クラウドでIDEとか
Javascriptすげえ
0364デフォルトの名無しさん
2013/05/04(土) 00:19:51.95初期のconstみたいに実装に思わぬ負担となる場合がある
浸透しないとその分内側は軽くなると普通思うが
前例があるからどうなるのか心配
普通の変数と変わらない程度なら実装のコンパクト化を考えるといらない
0365デフォルトの名無しさん
2013/05/04(土) 00:22:14.41いや、誰も速度の話なんてしてなかったように思えるのに
急に速度向上の話になったからビックリしただけ
0366デフォルトの名無しさん
2013/05/04(土) 00:23:47.20どうだろうねえ
静的型付けの方がより安全ではあるけど、動的でも
だいぶ頑張れるしねえ
むしろ柔軟性を考えるとデメリットかもしれない
静的型付け言語だったとしたら、jQueryだのが生まれるイメージがあまり湧かない
0367デフォルトの名無しさん
2013/05/04(土) 00:26:41.58そうか?
jQueryのキモは、セレクタ文字列から、jQueryオブジェクト型を返すだけだろ?
普通に型つきオブジェクト指向のやり方だと思うけど。
0368デフォルトの名無しさん
2013/05/04(土) 00:29:22.65業界を破門レベル
0369デフォルトの名無しさん
2013/05/04(土) 00:29:32.64このスレではスコープ関係の議論をしてて、スコープについては
ダイナミックスコープより安全なレキシカルスコープが主流になってるから
あんまり違和感が無かった
0370デフォルトの名無しさん
2013/05/04(土) 00:30:34.51誰もしてなくてもJSにとって速度向上はものすごく大事なことなの
0371デフォルトの名無しさん
2013/05/04(土) 00:31:25.32例えばプラグインがメソッドを追加しまくってるけど、
単純な継承では継承の順番を指定しないと駄目だろ
0372デフォルトの名無しさん
2013/05/04(土) 00:31:48.16GUIとか、その動作速度でさくさく感が大きく変わる。
0373デフォルトの名無しさん
2013/05/04(土) 00:33:23.12プラグインがメソッド追加するのは
jQueryの失敗点の一つだと思ってるけど。
だって、名前かぶったらどうするのさ?
0374デフォルトの名無しさん
2013/05/04(土) 00:35:19.530375デフォルトの名無しさん
2013/05/04(土) 00:35:20.19いいじゃない
jQuery-C++とかjQuery-Javaとか
JQuery $ = new JQuery();
$(”ul li .hoge”).css("color", "red");
がJavaのコードでも別に良いじゃない
0376デフォルトの名無しさん
2013/05/04(土) 00:37:20.94noconflictとかでなんとかならんかね
実際そんなに問題出てる?
0377デフォルトの名無しさん
2013/05/04(土) 00:39:15.03全然よくない
本当は型によって振る舞いを変えるのは
JIT妨害の代表格みたいなものだからJSでも最悪なんだよ
でもjQueryはブラウザとHTMLの柔らかさや非互換性があるからこそ便利なもの
静的言語でやると悪いことしか産まない
0378デフォルトの名無しさん
2013/05/04(土) 00:39:50.55だよな。作れない理由が思いつかない。
>>376
noconflictは単にjQueryのエイリアスである$を使わない(jQueryだけを使う)
ってだけの意味でしか無いので、何も効果はない。
0379デフォルトの名無しさん
2013/05/04(土) 00:41:11.04具体的な理由何一つ言ってないなw
0380デフォルトの名無しさん
2013/05/04(土) 00:41:20.53C, C#, Java あたりは PC で
スクリプト言語はスマホやタブレットなのかもしれない
0381デフォルトの名無しさん
2013/05/04(土) 00:41:31.07残念ながら出来ない
どうしても、$.$()になる
Cなら出来るだろうけどそれこそ破門レベルw
あと当然extends JQueryはそれぞれ別のクラスになってしまう
0382デフォルトの名無しさん
2013/05/04(土) 00:42:49.00名前かぶったら別の変数にして使えるじゃん
0383デフォルトの名無しさん
2013/05/04(土) 00:42:57.27静的言語で移植するのは100%無理
ブラウザのDOM関数叩ける、V8のライブラリとして作るのならなんとかというところ
0384デフォルトの名無しさん
2013/05/04(土) 00:44:09.85$が関数名として使えないとかいう話?
使えるけど?
> $.$()になる
あぁ、staticインポート機能を知らないのか。
0385デフォルトの名無しさん
2013/05/04(土) 00:45:24.42えとね、今はプラグインのメソッド名の話してるの
$オブジェクトを別の変数で使う話してないの
0386デフォルトの名無しさん
2013/05/04(土) 00:45:25.53ああ忘れてたわ
すまん
0387デフォルトの名無しさん
2013/05/04(土) 00:46:12.63だから、プラグインのメソッド名がかぶるなら、$オブジェクトを別の変数に入れて
それぞれ使い分ければ良いだろ
0388デフォルトの名無しさん
2013/05/04(土) 00:47:39.72まあ何か考えれば方法があるのかもしれないが
0389デフォルトの名無しさん
2013/05/04(土) 00:47:41.21それともチューリング完全だからとかいうのか?
0390デフォルトの名無しさん
2013/05/04(土) 00:50:57.95お前馬鹿か?
$をhogeって変数に入れても
プラグインのメソッドは、
$にもhogeにも作られるんだよ。
$はオブジェクト、つまり参照型なんだから
コピーは作られない。
0391デフォルトの名無しさん
2013/05/04(土) 00:54:19.33noconflictもstaticもお前勘違いしてるだろ。
無理に参加しなくていいよw
0392デフォルトの名無しさん
2013/05/04(土) 00:55:26.14deep copyすればいいじゃない
0393デフォルトの名無しさん
2013/05/04(土) 00:58:42.91> jQueryはイベントハンドラとかthisの上書きとかいろいろJSならではのことやってるから
> 静的言語で移植するのは100%無理
JavaとJavaScriptでthisの扱いが違うのだからそれは当然
100%同じインターフェースで実装できるわけじゃないが
実用上困らないレベルでは実装可能。
例えばthisは、クロージャー(Javaでは匿名クラス)の第一引数にすれば良い。
0394デフォルトの名無しさん
2013/05/04(土) 00:59:10.41何がどう出来ないんだ?
単なるオブジェクトだよ?
クローンも作れるし、それぞれに独自の拡張が出来る
プロトタイプベースの言語に慣れてないのか?
0395デフォルトの名無しさん
2013/05/04(土) 01:00:22.56ついにJavaドカタが本性を現した、の巻
0396デフォルトの名無しさん
2013/05/04(土) 01:00:54.91プラグインはjQueryにメソッドを生やす。
jQueryをコピーして作られたjQuery2にメソッドは生やさない。
jQueryに生えたメソッドをjQuery2に移し替えても
プラグインはjQuery2ではなくjQueryを参照する。
0397デフォルトの名無しさん
2013/05/04(土) 01:02:33.63実証されてることをうだうだ言っても意味が無い。
0398デフォルトの名無しさん
2013/05/04(土) 01:03:16.21>100%同じインターフェースで実装できるわけじゃない
>例えばthisは、クロージャー(Javaでは匿名クラス)の第一引数にすれば良い。
別に昨日が実装できるのは当たり前なんですけど?
あの簡素で柔軟なインターフェースは静的言語では困難って話をしてるんだけど
0399デフォルトの名無しさん
2013/05/04(土) 01:03:40.692012年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> あの簡素で柔軟なインターフェースは静的言語では困難って話をしてるんだけど
具体的には?
0401デフォルトの名無しさん
2013/05/04(土) 01:04:39.83プラグインAでjQueryにメソッドをはやしてから
別名変数にクローンを保存
ブラグインBでjQueryのメソッドを上書き
余裕
0402デフォルトの名無しさん
2013/05/04(土) 01:05:30.54// 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イベント操作は?
0404デフォルトの名無しさん
2013/05/04(土) 01:07:39.75$(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落ち着け
これはXMLをjQuery風に操作できるライブラリ
0406デフォルトの名無しさん
2013/05/04(土) 01:08:52.25jQueryを読み込んでから各プラグインを読み込む間
いつでも変数弄ったり自由にできるんだけど
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イベント? Javaはブラウザじゃないんだが
一体誰がイベントを送信するんだ?
0408デフォルトの名無しさん
2013/05/04(土) 01:15:37.17タイマー、ソケット、エラーとかいろいろ発生源はある
0409デフォルトの名無しさん
2013/05/04(土) 01:17:55.92それは汎用性という観点だろうけど、C/C++は別格
汎用性:
C/C++ >>>>>> C#, Java, JVM言語 >>>>>>>>>>>>>>>>>>>> スクリプト言語
プログラミング能力:
Lv6 => C/C++使い
Lv3-5 => C#, Java, JVM言語使い
無能力者〜Lv1 => スクリプト言語使い
0410デフォルトの名無しさん
2013/05/04(土) 01:18:22.60> タイマー、ソケット、エラーとかいろいろ発生源はある
だからなんでそれをjQuery風ライブラリで扱わないといかんの?
お前が言ってるのはsetTimeoutでできることを
jQueryでやりましょうって言ってるようなもんだよ。
jQueryが扱う対象はDOMのイベント
DOMのイベントはブラウザが発生させる。
0411デフォルトの名無しさん
2013/05/04(土) 01:18:39.92jQueryのメソッドにはそういうのけっこうあるんだが
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匿名クラスで可能。
0415デフォルトの名無しさん
2013/05/04(土) 01:20:27.00jOOXの例で書いてみてくれよ
0416デフォルトの名無しさん
2013/05/04(土) 01:21:22.65無理
真のクロージャじゃない
あと、Javaの場合jsonで渡すのが難しいだろうね
それこそ全部文字列にしないと
0417デフォルトの名無しさん
2013/05/04(土) 01:21:23.430418デフォルトの名無しさん
2013/05/04(土) 01:21:30.25お前が言ってる云々は意味がわからないな
自分は誰がイベントを送信するんだとか
イベントループをまったく理解してない頓珍漢な言葉に反応しただけですが?
0419デフォルトの名無しさん
2013/05/04(土) 01:21:34.90スクリプト言語でちゃんとプログラミングするのはC++並みに難しい
まあ、不等号を間抜けに並べる奴に正論は通じないけど
0420デフォルトの名無しさん
2013/05/04(土) 01:23:39.70妬み、文句を付けたがる落ち目な言語開発者の気持ちはわかるw
0421デフォルトの名無しさん
2013/05/04(土) 01:23:48.47サンプルコードを見たいならテストコードを見るのが一番手っ取り早いぞ。一つ賢くなったね。
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「ちゃんとしたプログラミング」が必要な場面で
スクリプト言語を選ぶのは無能
わざわざ遅い言語で書く必要性がない
0424デフォルトの名無しさん
2013/05/04(土) 01:25:40.10本当にできるもんだなぁw
0425デフォルトの名無しさん
2013/05/04(土) 01:26:16.000426デフォルトの名無しさん
2013/05/04(土) 01:26:28.290427デフォルトの名無しさん
2013/05/04(土) 01:27:20.30うひょ〜〜〜w
ワロス
0428デフォルトの名無しさん
2013/05/04(土) 01:27:44.41> あと、Javaの場合jsonで渡すのが難しいだろうね
> それこそ全部文字列にしないと
ぷっ。当たり前じゃね?
jsonはJavaScriptの文法から生まれたもので、
JavaScript以外じゃ文字列として渡すしかねーよ。
0429デフォルトの名無しさん
2013/05/04(土) 01:27:59.77なんのためにスレタイを変更したと思う?
今すぐに死んだほうが良い知的障害を寄せ付けないため
0430デフォルトの名無しさん
2013/05/04(土) 01:28:03.91スレタイからRuby消して最初にJavaScript持って来てるし
0431デフォルトの名無しさん
2013/05/04(土) 01:28:50.25プラグインはjQueryの設計ミスなんでどうでもいい。
0432デフォルトの名無しさん
2013/05/04(土) 01:29:46.37JSはasm.jsとかParallels.jsで今年末にはC#並の速度の言語になってるよ
今でもJAVAに勝ったり負けたりするレベルにはきてるし
0433デフォルトの名無しさん
2013/05/04(土) 01:30:10.70まあ荒らしが続くようならJAVAドカタと同じ道を辿るだけ
0434デフォルトの名無しさん
2013/05/04(土) 01:31:08.74プラグイン側がクラスを用意する必要があるがな
ただ、静的言語でこれやるのは破門レベルとされてるから
それをやる奴は出てこないだろうw
0435デフォルトの名無しさん
2013/05/04(土) 01:31:12.27それが狙いw
0436デフォルトの名無しさん
2013/05/04(土) 01:31:15.95静的言語でjQueryの代わりを作るのが大変だという話だろ
当たり前でも大変なのは変わりねえよ
0437デフォルトの名無しさん
2013/05/04(土) 01:31:41.69プラグイン無しのJQueryとか考えられないんだが
0438デフォルトの名無しさん
2013/05/04(土) 01:32:53.25> JsonはJavaでも、リフレクションを使って生成すれば何とかなる気がする
てんさいがいる気がする。
天災がw
何を考えてるのかさっぱりだね。
0439デフォルトの名無しさん
2013/05/04(土) 01:34:07.78馬鹿かw
C#並になるわけないわw
JITコンパイルはコードによっては逆に遅くなることもしらない低能JS厨
0440デフォルトの名無しさん
2013/05/04(土) 01:34:51.79素直にC使えよ
JAVAとか文字列の扱いが一番糞なんだから
jQueryの代わりなんぞできた所で激重で使えるわけない
対抗できるのはCくらいのもんだ
0441デフォルトの名無しさん
2013/05/04(土) 01:35:40.80普通にクラスを作ればいいだけだよ。
普通にjQueryオブジェクトを引数にして
jQueryオブジェクトを返すメソッドを作れば
それがプラグインになる。
メソッドチェーンができないだけ。
0442デフォルトの名無しさん
2013/05/04(土) 01:35:43.270443デフォルトの名無しさん
2013/05/04(土) 01:36:42.31asm.jsはJITじゃないんですけど?
それにasm.jsはマイクロベンチや物理演算ベンチではすでにC#並になってるの知らないの?
0444デフォルトの名無しさん
2013/05/04(土) 01:38:57.03JITに限界があるからAOTにするのがasmだろ
知ったか乙
0445デフォルトの名無しさん
2013/05/04(土) 01:39:09.76JITじゃないならなんなんだよ
AOTコンパイラあるのかよ
0446デフォルトの名無しさん
2013/05/04(土) 01:39:34.14Javaでプラグインをメソッドチェーンで使いたいなら
(>>421のJavaライブラリを参考に)
$.children().first().find("book").plugin(MyPlugin.class).map( 〜略〜
ってやれば出来るだろうね。
これだとクラス名は名前空間があるから
かぶることはないし。
0447デフォルトの名無しさん
2013/05/04(土) 01:41:18.33つ
org.apache.commons.lang3.builder.ReflectionToStringBuilder
>>446
よくわからんが、毎回pluginなんちゃら.classとか書かないと駄目なのか?
0448デフォルトの名無しさん
2013/05/04(土) 01:42:09.78書かなくていいよ。
補完されるw
0449デフォルトの名無しさん
2013/05/04(土) 01:42:32.76AOTでも型が確定してなければ遅いし
>>443
特定のベンチだけ速くてもいみない
C#並ならソースだしてみろよ
あと「ベンチマークはXより速い」ってのは
実績のない言語のお決まりの宣伝パターンなんだよな
node.js推してる奴もそればっかり言ってたわ
0450デフォルトの名無しさん
2013/05/04(土) 01:42:39.16ワロスw
0451デフォルトの名無しさん
2013/05/04(土) 01:42:39.53Googleの天才言語とか普及してないベンチとか大好きだな。頭大丈夫か
0452デフォルトの名無しさん
2013/05/04(土) 01:44:37.26asm.jsは型が確定してる
0453デフォルトの名無しさん
2013/05/04(土) 01:45:38.57ある、というか最近出た
まだ完璧ではないけど
一部計算をマルチスレッドでさせる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型を指示する魔改造なんてほかにもある
ただの糞言語
0455デフォルトの名無しさん
2013/05/04(土) 01:49:17.92ん? 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.670457デフォルトの名無しさん
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鬼畜サブセットだから当然速度はC系に追いつく
当然これを全部で使う野郎はいないだろうが
ライブラリ、特に物理演算やゲームエンジンがサポートしたり
関数単位で使えるから「要所」で使うことで劇的にパフォーマンスがよくなる
0459デフォルトの名無しさん
2013/05/04(土) 01:52:33.710460デフォルトの名無しさん
2013/05/04(土) 01:54:29.290461デフォルトの名無しさん
2013/05/04(土) 01:55:21.25それに嫉妬するその他のスレになってるね。
0462デフォルトの名無しさん
2013/05/04(土) 01:56:52.81とりあえずそれ別にoptionメソッドじゃないだろ
optionセットしてるだけ
Javaでやるならこうか
$( ".selector" ).plugin(Dialog.class).option(new Option().disable("true"))
まあちょっと冗長だが目をつぶれないこともないか
0463デフォルトの名無しさん
2013/05/04(土) 01:59:00.83それ、ガチで俺が書いた
興奮気味に書いたからやや大げさだった
FF22じゃなくて23で試してみたらちゃんと早くなったからそこは大丈夫
V8が対応するまで使う気が起きないのは言うまでもないが
それはどんな新機能でも同じ
まずはFFが実験台となって
Parallels.jsとともに精査してほしい
そしてES.nextとぶつかるようなことにならなければ
比較的V8での実装は早いんじゃないかな?
流石に5倍とか早くなるのは大きい
それを書く前に既にV8グループで挙がってたし
早ければ1年後にはってとこかな?
ES7に入る可能性もなくもないかも
そうなったら逆に遅くなるかな
0464デフォルトの名無しさん
2013/05/04(土) 02:01:31.38互換性のための無理やり感がダサすぎw
もうJS厨のこと何も信じられない(胡散臭すぎてはじめから何も真に受けてないけど
0465デフォルトの名無しさん
2013/05/04(土) 02:01:49.135倍速くなると言ってもベンチマーク用に用意した
特殊なシチュエーションでそれだけ速くなるだけだと思う
正直、平均的に見たらもう素のJavascriptが5倍程度で収まる気がする
0466デフォルトの名無しさん
2013/05/04(土) 02:03:29.010467デフォルトの名無しさん
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特殊なシチュエーションでいいのよ?
だってJSの速度が気になるのって特殊なシチュエーションだけだし
とくに3D周り
WebGLはなんと行列変換をJSでやらないといけないのよ
気持ち悪いでしょ、なんでネイティブで実装してくれないのって
でもasm.jsは特に型付配列を使った演算が高速になるからまさにぴったし
あと個人的にはJSでボードゲーム作ってるんだけど
ほんと、1%でも早くなって欲しいから期待してる
0470デフォルトの名無しさん
2013/05/04(土) 02:08:05.73なんでキチガイJS厨の「?」な希望的観測に嫉妬しなきゃならんの?頭大丈夫?
0471デフォルトの名無しさん
2013/05/04(土) 02:08:30.85少し例が悪かったね。自分も少し間違ったし。
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なぜ?
0473デフォルトの名無しさん
2013/05/04(土) 02:10:57.21都合のいい状況選んだんだろうな感が満載なんだがw
0474デフォルトの名無しさん
2013/05/04(土) 02:11:14.94糞JS固有の問題とかどうでもいいし特に優位性もない
0475デフォルトの名無しさん
2013/05/04(土) 02:11:24.93叩くのが好きで、叩かれるのは嫌いだからに決まってるだろw
ほら俺の言語を叩いてみろ。何の言語かは教えないけどな!
0476デフォルトの名無しさん
2013/05/04(土) 02:12:01.08asm.jsはライブラリなんかじゃないよ?
asm.jsという名前がちょっとまぎらわしいかね
言語仕様をきっちり決めた新しい言語で、JSとも互換性があるっていうだけ
0477デフォルトの名無しさん
2013/05/04(土) 02:12:54.41V8のasm.js対応はわりと簡単そう
これが普及してしまいそうだとAppleとMSはけっこう焦るだろうなあ
0478デフォルトの名無しさん
2013/05/04(土) 02:13:15.67逆にそれがいいw
ただし現状では、100行を超えるコードのasm化は人間には無理
今はIDEもデバッガも皆無
早急に整備すべし
0479デフォルトの名無しさん
2013/05/04(土) 02:13:59.86誇らしげに嘘八百を並べる方が理解不能
>>475
さっさとpython叩けよ
あ、関数内関数のスコープがおかしい、でしたっけ?
JSがおかしいだけだったwww
0480デフォルトの名無しさん
2013/05/04(土) 02:15:16.88> これが普及してしまいそうだとAppleとMSはけっこう焦るだろうなあ
Appleはハード売れなくなるから焦るってのはわかるが、
MSはなんで焦るの?
0481デフォルトの名無しさん
2013/05/04(土) 02:15:43.78asm.jsを手で書くのはCでasmを書くのと近い
0482デフォルトの名無しさん
2013/05/04(土) 02:16:55.81簡単そうって何?また希望的妄想ですかw
それしかないな、本当にそれだけ。自分でもそう思うでしょ?
自分の馬鹿さ加減が嫌にならない?
0483デフォルトの名無しさん
2013/05/04(土) 02:18:27.03デジャブ感が半端ない
0484デフォルトの名無しさん
2013/05/04(土) 02:18:37.80ブラウザでインタラクティブなことが出来たら良いんだけどね
ちなみにJavascriptの最近のベンチマークな
http://d.hatena.ne.jp/satosystems/20121228/1356655565
0485デフォルトの名無しさん
2013/05/04(土) 02:19:31.05マイクロベンチでは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トランスレータがあるからOKなんじゃなくて、
そもそも最初からトランスレーターで変換することを想定してるの
それがasmという名前がついてる理由
0487デフォルトの名無しさん
2013/05/04(土) 02:22:39.48すごいな
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.79JavaScript (node.js) 2.62
速いwww
もう下手な静的言語並みになってるw
0490デフォルトの名無しさん
2013/05/04(土) 02:24:53.21Node.jsとかが挙がってた
ブラウザの中だけで考えると押しが弱いけど
これからJSは広がっていくし
例えば昨今ではモバイルOSの「ネイティブ」として使われ始めたところを見ると
V8も気にはなると思う
あと、asm.js部分は基本的に特定のエンジンに依存しない形になってるらしい
というか既存のコンパイラの上にasm.jsコンパイラが乗る形
だから多分V8での実装は困難ではないはず
0491デフォルトの名無しさん
2013/05/04(土) 02:26:40.56お願いだから確認した事実を喋ってくれ、お願いだから…
0492デフォルトの名無しさん
2013/05/04(土) 02:27:54.77JavaScriptはここまで広く使われている。
0493デフォルトの名無しさん
2013/05/04(土) 02:27:55.09単純な四則演算はもう十分に早いよ
でも実物になるとまだCの10倍遅い
JITの限界とか、GCとか、メモリアクセスとかがネックになってるらしい
もうここいらで限界みたい
そこを改善して実物でもCの2倍の実行時間で済ませようとするのが
asm.jsサブセット
0494デフォルトの名無しさん
2013/05/04(土) 02:29:12.50デタラメで本人すら確認のしようもない、再現性もないことで議論とか無理だし
だからこそいくらでも大きなことが言える。ログが誇大妄想で埋まってる
0495デフォルトの名無しさん
2013/05/04(土) 02:29:12.84f(i % 2) {
0496デフォルトの名無しさん
2013/05/04(土) 02:30:58.350497デフォルトの名無しさん
2013/05/04(土) 02:31:10.91Python (CPython) 53.651
0498デフォルトの名無しさん
2013/05/04(土) 02:32:07.97asm.jsの力を借りてブラウザで実行するコードを生成できる
ということは、JavaScriptを改良した言語から
asm.jsの力を借りてブラウザで実行するコードを生成できるということでもある。
JavaScriptを進化させるのにブラウザのバージョンアップを
またなくて良くなる世界ができつつある。
0499デフォルトの名無しさん
2013/05/04(土) 02:33:27.08if(i % 2)
と
if(i % 2 == 1)
ってどのくらい違うのか
でも将来の賢いコンパイラにとってはどちらも同じ意味にとられるかもと考えてしまう
これは大げさな例だけど本当に難しい
0500デフォルトの名無しさん
2013/05/04(土) 02:36:29.15GUIは作るのが簡単なVBで
速度が必要な場合はC++でDLLを作る。
という手法が使われていた。
それと同じ構図がブラウザの世界にもできつつある。
JavaScriptはブラウザで動くGUIを作るのが簡単である。
だからJavaScriptでの開発というのはこれからもメインになるだろう。
そして速度が必要な場合のみ、他の言語で開発することもある。
0501デフォルトの名無しさん
2013/05/04(土) 02:38:33.70単純な四則演算ではない実物ってのがよくわからない
再帰のフィボナッチはスタック使いまくりだよね
スタック領域のアクセスは良いけどヒープが駄目ってこと?
0502デフォルトの名無しさん
2013/05/04(土) 02:39:23.21今では内部的に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.850505デフォルトの名無しさん
2013/05/04(土) 02:42:16.550506デフォルトの名無しさん
2013/05/04(土) 02:44:57.13すまん、正直にいうと詳細はわからん
でもこの手のマイクロベンチだといつも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で記述されててバグがてんこ盛り
0508デフォルトの名無しさん
2013/05/04(土) 02:48:02.13@x = map {$_ * 2}
grep{$_ % 2 == 0} @A;
0509デフォルトの名無しさん
2013/05/04(土) 02:49:07.77VBは遅かったが、Javascriptは十分に速い
速度が必要な場合にもJavascriptを使うことが多くなる
他の言語で書くようになるとか妄想はブログでやって欲しい
0510デフォルトの名無しさん
2013/05/04(土) 02:49:18.230511デフォルトの名無しさん
2013/05/04(土) 02:51:50.40> もう嘘しか言わないキチガイJS厨の相手をするのはよそう。時間の無駄だ
消える宣言した以上、ちゃんと消えろよな。
レスなんかしたら見苦しいぞ。
よし、キチガイが消えたw
0512デフォルトの名無しさん
2013/05/04(土) 02:51:58.75せめてピットボードを用意して欲しい
その辺が自由になれば巨大数の問題とか解決できるのに
あとは演算子オーバーロードだな
0513デフォルトの名無しさん
2013/05/04(土) 02:53:38.99別に無理に伸ばす必要ない
JS厨が荒らすだけのスレならJSスレに行ってくれ。邪魔
特にブラウザの話しかできないやつ見ると明らかに他のスクリプト言語から浮いてる
というかWebは板違いじゃね。日常で使うスクリプトという話は皆無
もういいよJSの話は。次スレから外して問題ない
イキイキと荒らす馬鹿が目障り
0514デフォルトの名無しさん
2013/05/04(土) 02:54:47.54さっきのボードゲーム作ってる奴でビットボードと間違えたとか?
0515デフォルトの名無しさん
2013/05/04(土) 02:55:07.150516デフォルトの名無しさん
2013/05/04(土) 02:55:14.34@A=1..10;
@x=map{$_ %2 ? () : $_*2} @A;
再帰や遅延評価を使うまでもないリスト処理は面白くないんだよね…
0517デフォルトの名無しさん
2013/05/04(土) 02:55:57.32ブラウザは共通の話題ないし比較もできない
0518デフォルトの名無しさん
2013/05/04(土) 02:56:16.36> JS厨が荒らすだけのスレならJSスレに行ってくれ。邪魔
毎回思うんだけど、そんなこと言っても
いうこと聞くわけ無いだろう?
0519デフォルトの名無しさん
2013/05/04(土) 02:57:08.98JSの話題をどんどんやったほうがよさそうだw
自分からやられて嫌なことを語るなんて
馬鹿だなぁ。
0520デフォルトの名無しさん
2013/05/04(土) 02:57:27.51そうだよ。JS厨は死ぬまで己の馬鹿を晒し続ける
0521デフォルトの名無しさん
2013/05/04(土) 02:57:35.07ビットボードと入力してもピットボードになってしまう
GoogleIME
0522デフォルトの名無しさん
2013/05/04(土) 02:57:58.03普通に言語の速度とか、node.jsとか、科学計算とか、クロージャとか
内包表記とか、Javaの話とかPythonの話とか
ブラウザ以外の話も豊富じゃん
0523デフォルトの名無しさん
2013/05/04(土) 02:59:45.56奴には見えてないのですよ。
標的意外なにもね。
0524デフォルトの名無しさん
2013/05/04(土) 02:59:51.38論破されたから悪意を持って荒らすだけのゴミになったんだよね
ゴミすぎる自分をどう評価してる?いきる価値ないと思うよね。死んで良いよ
0525デフォルトの名無しさん
2013/05/04(土) 03:01:02.15ただ高速化の需要が少ないだけ?
JSでエンジン作った方が早そうな勢いなんだけど
0526デフォルトの名無しさん
2013/05/04(土) 03:01:08.04死んでいいよと言われても死ぬわけないしw
お前の願い、死んでほしい?
残念、お前の願いは棄却されましたぁぁぁw
0527デフォルトの名無しさん
2013/05/04(土) 03:01:51.39本当に妄想以外で議論が出来るなら、JS厨はなんで嘘で荒らし続けるわけ?
どうせJSのことも何も知らないんだろ。幻想を語るだけなら黙ってろ
0528デフォルトの名無しさん
2013/05/04(土) 03:02:16.46端から見てるとお前も悪意持ってて怖いわw
今までJS厨は人の中傷はあまりしてなかったが、519の人が
やり始めたな
0529デフォルトの名無しさん
2013/05/04(土) 03:02:28.00間違いなだけだろ。
冷静になれよ。
0530デフォルトの名無しさん
2013/05/04(土) 03:04:04.81とかみるとPerlがこんなに、PHPよりも遅いのが意外
Perlと言えば歴史ある言語だし
その正規表現は今なお他の言語(JSも)に影響を与えている
素晴らしい言語なのになぜ計算は遅いのか?
0531デフォルトの名無しさん
2013/05/04(土) 03:05:24.12だって開発者がPerl6なんてやってて
Perl5は放置状態だもの。
0532デフォルトの名無しさん
2013/05/04(土) 03:06:00.32そうだな、嘘でも本当でもない、不確定のゴミ情報
というかお前の存在自体がゴミ。1つもまともな情報を出さずにオナニーしてるだけ
醜すぎるわ。反論できる?
0533デフォルトの名無しさん
2013/05/04(土) 03:06:22.45何かどうでもいい話
性能なら別の手段つかうさ
0534デフォルトの名無しさん
2013/05/04(土) 03:07:28.74面倒くさいやつだなw
お前はキチガイ。反論できる?
0535デフォルトの名無しさん
2013/05/04(土) 03:07:44.25他の言語も頑張ってる
V8作ったGoogleが天才すぎるだけ
0536デフォルトの名無しさん
2013/05/04(土) 03:10:20.95できないね。お前みたいなゴミカス荒らしに唯一構ってるんだからな
普通の人間はヤバいキチガイを見たら邪魔だなあ、早くどっか行けと思いつつ関わらない
お前はそう思われてるんだよ。分かるか?なんで荒らすんだ。妄想なら他所でやればいいじゃないか
0537デフォルトの名無しさん
2013/05/04(土) 03:11:18.100538デフォルトの名無しさん
2013/05/04(土) 03:11:53.35残念、またしても
お前の願いは叶えられなかったw
0539デフォルトの名無しさん
2013/05/04(土) 03:12:10.97JIT関連のノウハウで圧倒的に先行してるんだろう
0540デフォルトの名無しさん
2013/05/04(土) 03:12:54.30ならスルーしろよ
というか、Google天才とか言ってるのはそいつじゃねーからw
お前が誰彼構わずアタックするからこうなっちゃんたんだぞ
0541デフォルトの名無しさん
2013/05/04(土) 03:13:46.51北風と太陽
よそにいけといえば言うほど
このスレにいることになる。
逆にここにいろと言ったほうがいいよ。
そう言ったとしてもここにいるわけだけどなwww
0542デフォルトの名無しさん
2013/05/04(土) 03:14:51.46俺の願いじゃなくて、みんなの願いね
心配しなくても、お前の願いであるみんなの迷惑になる行為を続けることは毎日叶えられる
良かったな。もう誰もお前がまともなんて思わない
JS厨の詐欺にはかからない
0543デフォルトの名無しさん
2013/05/04(土) 03:15:46.09だからみんな誰もお前にレスしてないんだぞ?
0544デフォルトの名無しさん
2013/05/04(土) 03:15:54.790545デフォルトの名無しさん
2013/05/04(土) 03:16:24.750546デフォルトの名無しさん
2013/05/04(土) 03:16:30.420547デフォルトの名無しさん
2013/05/04(土) 03:19:07.64HTML+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各会社から、有名な天才達がGoogleに集まってきているってことだな
Pythonの作者もちょっと前までGoogleだったらしい
今は脱退したようだが
0549デフォルトの名無しさん
2013/05/04(土) 03:23:46.29テレビでもJavaScriptが動く時代だからな。
0550デフォルトの名無しさん
2013/05/04(土) 04:19:23.910551デフォルトの名無しさん
2013/05/04(土) 04:25:52.97俺も寝るか
0552デフォルトの名無しさん
2013/05/04(土) 04:42:23.52ユーザーインターフェースになるのは避けられなかったわけで。
jQueryが一番うまくHTMLを扱えたことが
JavaScriptの大ヒットに繋がったんだろうな。
0553デフォルトの名無しさん
2013/05/04(土) 05:16:59.66やっぱり再注目のきっかけになったのは
検索とかマップのAjaxだし
0554デフォルトの名無しさん
2013/05/04(土) 07:19:47.60そんな奴があんな中二っぽいコード書くのか?
0555デフォルトの名無しさん
2013/05/04(土) 07:27:41.67どんなコード?って聞かれて
答えられないなら、そんなこと言い出すなよ
0556デフォルトの名無しさん
2013/05/04(土) 09:13:59.47Pythonで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「int n」でバレるぞw
0558デフォルトの名無しさん
2013/05/04(土) 09:17:55.490559デフォルトの名無しさん
2013/05/04(土) 09:22:18.87>Cython は、C言語によるPythonの拡張モジュールの作成の労力を軽減することを
>目的として開発されたプログラミング言語である。
>その言語仕様はほとんど Python のものと同じ (上位互換) だが、Cの関数を直接呼び出したり、
>C言語の変数の型やクラスを宣言できるなどの拡張が行われている。
Pythonじゃない別言語じゃん
TypeScriptを持ち出してJavaScriptはええって言ってるようなもん
0560デフォルトの名無しさん
2013/05/04(土) 09:22:49.55コンパイルしてPythonのC言語拡張を作る事が出来る
Cythonで書かれた関数やクラスはPythonから呼び出す事ができるし
Pythonで書かれた関数やクラスをCythonから呼び出す事もできるよ
0561デフォルトの名無しさん
2013/05/04(土) 09:25:31.15Pythonの上位互換って書いてあるだろ
ここ遅いから速くしたいなーってなったら型を書けば良い感じ
で、C言語拡張にコンパイルするから、普通のCPython処理系で動く
0562デフォルトの名無しさん
2013/05/04(土) 09:48:47.64cdef 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.94Python 界隈はそこらへんの問題に極めて意識的だけど
>>559
自分も別言語だと思う。Python のサブセットである RPython ならともかく
0564デフォルトの名無しさん
2013/05/04(土) 10:12:13.17つまりCに変換できるようにしたTypeScriptみたいなもんじゃん
TypeScriptをCやasm.jsに変換したらそりゃ速いよ
>>562
これ最適化でコンパイル時に値を計算したっぽいな
0565デフォルトの名無しさん
2013/05/04(土) 10:15:36.41> これ最適化でコンパイル時に値を計算したっぽい
print(fib(38))をコンパイルに含めずに
実行時にPython側からfib(38)を呼び出しても同じ
0566デフォルトの名無しさん
2013/05/04(土) 10:19:10.38良く分からないんだけど、コンパイル時に計算していないのに、
Cの数十倍速いってこと?
ちょっと良く分からない現象だね
何かタネがあるんだろうけど
0567デフォルトの名無しさん
2013/05/04(土) 10:26:25.09こちらの環境で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こちらの環境でC(gcc47 -O2)を実行した場合
$ time ./a.out
39088169
./a.out 0.25s user 0.00s system 99% cpu 0.257 total
0569567
2013/05/04(土) 10:34:54.74実行環境が違うのか、Cの速度も>>530と全然違うね
同じソースコードを使ったんだが
つまり、CPythonの速度がむちゃくちゃ遅い……?Python3.2なんだけど
0570デフォルトの名無しさん
2013/05/04(土) 10:51:19.53$ 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.12Cの計算自体がすぐ終わりすぎて計測誤差が大きいのかな
何度もループさせないと駄目か
0572デフォルトの名無しさん
2013/05/04(土) 11:19:59.98たいしてPythonは200倍か
遅すぎワロス
0573デフォルトの名無しさん
2013/05/04(土) 12:01:45.29% 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.160576デフォルトの名無しさん
2013/05/04(土) 12:22:55.70python厨には失望した
0577デフォルトの名無しさん
2013/05/04(土) 12:25:49.15うっかりしてた。戻り値記述して再トライ
% 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遅かった場合だけ貼れ
0580デフォルトの名無しさん
2013/05/04(土) 13:13:35.96あれ、これってasm.jsという糞言語で高速化したいところを局所的に書けばいい
と言ってたのと同じじゃね。遅れてね?ただの後追いじゃね
で、asm.jsのコードと実行時間は?
なんかこのスレ見ても「できるらしい」とか「できるはず」とかいう胡散臭いレスが目立つけど
実際どうなの?
0581デフォルトの名無しさん
2013/05/04(土) 13:24:30.70Pyrex が 2002 年でそこからフォークした Cython が 2007 年
後追いではないと思われ
0582デフォルトの名無しさん
2013/05/04(土) 13:34:55.32って、他の言語が数年前に通った道なんだね…
Cに変換するか、Cから変換されるかって違いか。さて、どっちが速いかね
0583デフォルトの名無しさん
2013/05/04(土) 13:37:47.14JSが熱いってそんなCに変換するだのなんだののくだらない狭い世界の話じゃないんだが
asm.jsを熱弁してる奴がいただけで、JS熱は別次元だよ
node.jsやweb用ライブラリ界隈で起こってる熱狂
0584デフォルトの名無しさん
2013/05/04(土) 13:37:56.28> 「今JSが熱い!みんなが熱狂している!薔薇色の未来!」
> って、他の言語が数年前に通った道なんだね…
いや、その道は他の言語は通っていない(苦笑)
今の話の流れからは「型つけて速くしましょう」という
道しか通ってないだろう?
0585デフォルトの名無しさん
2013/05/04(土) 13:40:09.50この流れは相当続くね
下手したらスマフォのネイティブアプリの領域も浸食しそうだし(ここはまだ不確定)
0586デフォルトの名無しさん
2013/05/04(土) 13:40:31.51あそこまで言うのならコードと実行時間くらい示してほしいが
0587デフォルトの名無しさん
2013/05/04(土) 13:44:24.21この流れはひょっとしてCythonが最強という事でよろしいか?
0588デフォルトの名無しさん
2013/05/04(土) 14:00:56.340589デフォルトの名無しさん
2013/05/04(土) 14:02:44.370590デフォルトの名無しさん
2013/05/04(土) 14:33:20.50静的に型付けした場合と比較するとゴミだな……
所詮は、他言語がepollやkqueueを使わない場合という
ハンデをつけた状況に限れば非同期処理が速いってだけのウンコか……
0591デフォルトの名無しさん
2013/05/04(土) 14:35:16.37またいつもの勘違いさんか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どうでもいいや
0595デフォルトの名無しさん
2013/05/04(土) 15:18:17.77Java (OpenJDK) 0.732
C (gcc -O2) 1.18
JavaScript (node.js) 2.62
0596デフォルトの名無しさん
2013/05/04(土) 15:22:08.54はえええ
マジで静的言語並みじゃん
0597デフォルトの名無しさん
2013/05/04(土) 15:24:34.65静的型付け言語なみとはいえない。
0598デフォルトの名無しさん
2013/05/04(土) 15:27:02.07Fortran (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.273倍どころか、普通に静的型付言語がJavascriptに負けてますが
0600デフォルトの名無しさん
2013/05/04(土) 15:30:12.33どこでも動く、そして速い
0601デフォルトの名無しさん
2013/05/04(土) 16:19:20.23かつてお手軽GUIアプリを作る定番だった旧VBのような位置にJavascriptはなるよ
サーバサイド?サーバをVBで書くアホがいるか?
0602デフォルトの名無しさん
2013/05/04(土) 16:22:35.750603デフォルトの名無しさん
2013/05/04(土) 16:52:12.02JavascriptはVBとは違うんだよVBとは
IEではJScriptもVBScriptも書けた
しかし今や誰もVBで書いてない
JavaScriptが優れていたのだよ
0604デフォルトの名無しさん
2013/05/04(土) 17:24:04.86IEなんて誰も使わなくなるよ。
0605デフォルトの名無しさん
2013/05/04(土) 18:40:55.74サーバサイド?サーバを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認めなくてならないようなものなの?
0609デフォルトの名無しさん
2013/05/04(土) 18:59:31.27ここまで普及するってことは
かなり初期に見抜いていたけどな。
HTML、CSS、JavaScriptは将来普及する。
足りないものはJavaScriptライブラリ。
そして他の何かから変換して
生成したりするだろうってね。
0610デフォルトの名無しさん
2013/05/04(土) 19:05:51.77物事を客観的に見つめて、現実を正しく認識するのって
とても大切な事じゃない?
0611デフォルトの名無しさん
2013/05/04(土) 19:07:30.41実はあの技術は僕のアイデアなんですーってか?じゃあ、今回はお前がさっさと妄想を実現しろよ
失敗したら知らん、成功したら俺すごい!
はいはい、あきれた常勝無敗だわ。無能をさらす前に何か見せて見ろよカス
スレを荒らす以外には何もできない社会のゴミがよお
0612デフォルトの名無しさん
2013/05/04(土) 19:11:23.46まずお前は自分の嫌いなものにも長所があるっていう現実を受け入れるところから始めよ
0613デフォルトの名無しさん
2013/05/04(土) 19:16:37.79え、お前の長所ってなに?
妄想垂れ流しとか何もやらなかった武勇伝とかを聞かされても
長所なんて一つもわからないよ
長所がないわけないだろ。信者レスの無意味性、無批判性、無論理性、無情報性を叩かれてるってわからんの?
0614デフォルトの名無しさん
2013/05/04(土) 19:17:30.70お前、そこでなぜJavaScriptを連想せずに人を連想してしまった・・・
0615デフォルトの名無しさん
2013/05/04(土) 19:19:06.10ブーメランにならないようにかw
0616デフォルトの名無しさん
2013/05/04(土) 19:19:10.45なんでもかんでも叩いておけば自分大勝利だよね
まれに成功した例は無視すればいい
0617デフォルトの名無しさん
2013/05/04(土) 19:21:58.750618デフォルトの名無しさん
2013/05/04(土) 19:23:06.66クリティカルシンキングだよ
もちろん信者のゴミレスが叩かれてるのはそんな高尚なものじゃない
明らかにゴミだからゴミと言ってるだけ
言われたくなければまともなレスをしろ
0619デフォルトの名無しさん
2013/05/04(土) 19:24:38.64JS厨の妄想レスで有益な情報ってどれ?
0620デフォルトの名無しさん
2013/05/04(土) 19:24:43.670621デフォルトの名無しさん
2013/05/04(土) 19:24:50.31良いものは良いと認めることも時には大事だよ
JS信者もCythonやSciPyを認めて使い始めただろう
得をしたのはどっちだろうね?
0622デフォルトの名無しさん
2013/05/04(土) 19:24:54.270623デフォルトの名無しさん
2013/05/04(土) 19:25:52.63JSが盛り上がってるってことを知っただけでも有益だった
0624デフォルトの名無しさん
2013/05/04(土) 19:26:35.51お前の妄想垂れ流しレスは一切良くないのだが?
何を問題としてるか理解できてないだろ。どんだけ馬鹿なの
0625デフォルトの名無しさん
2013/05/04(土) 19:41:56.06少なくともオブジェクト指向は違うみたい。
0626デフォルトの名無しさん
2013/05/04(土) 19:47:45.08詳しく
0627デフォルトの名無しさん
2013/05/04(土) 19:49:22.00詳しく
0628デフォルトの名無しさん
2013/05/04(土) 20:20:08.15クリティカルシンキングと言うならPythonについてしてみたらどうかね?
Pythonがお気に入りみたいだから、
Pythonについて批判したほうが世の中のためになるだろう
0629デフォルトの名無しさん
2013/05/04(土) 20:22:13.97もっと考えてしゃべれよ。デタラメばかりじゃなくてさ
お前がオブジェクト指向の何を知ってるというんだ。何も知らないだろ
0630デフォルトの名無しさん
2013/05/04(土) 20:40:49.70お前がそういう姿勢だからだよ
JavaScriptが盛り上がってるなんて認めたくない!
俺の嫌いなJavaScriptが絶賛されるのは認めたくない!
こんな姿勢ではね
Webアプリを開発してみるなり、アイディアを学ぶなり、
状況を注視してみるなり、他のスレにいくなり、
もっと良いやりようがいろいろあるだろうに
レスの有用性は受け取る側の姿勢によって変わるものだ
0631デフォルトの名無しさん
2013/05/04(土) 20:45:44.65もう言い訳はいいよ。なんで言い訳しか言わないんだ?
お前は妄想垂れ流しで毎日フルボッコされるだけの悲しい人生を送れよ
0632デフォルトの名無しさん
2013/05/04(土) 20:47:04.83妄想垂れ流し野郎じゃないならちゃんと説明してね
0633デフォルトの名無しさん
2013/05/04(土) 20:49:43.00まあ、お前にかかれば、説明=言い訳だろうからね
そうなるのは当たり前
このスレはなかなか満足している
0634デフォルトの名無しさん
2013/05/04(土) 20:52:27.18お前の思う妄想垂れ流し野郎って>>607、>>610じゃないのかw
誰が誰なのかごっちゃになってきたなw
0635デフォルトの名無しさん
2013/05/04(土) 21:00:06.10まともなJSの説明なら、説明自体は叩かれてないって気づいてる?
そこで初めてJSディスができる
お前が何かを説明してると認識しているものは、説明とは呼べないほど欠陥だらけなんだよ
無条件に馬鹿にされてると思ってるならただの被害妄想、自分の無能を他人のせいにするな
>>625
根拠なく言ったんだな
テキトーに言えば誰かが代弁してくれるとでも思ったか
デタラメ言ったのならさっさと謝れクズ
0636デフォルトの名無しさん
2013/05/04(土) 21:03:19.72http://jbbs.livedoor.jp/bbs/read.cgi/computer/43761/1367197701/l100
0637デフォルトの名無しさん
2013/05/04(土) 21:14:43.892ch歴短い?
多分、2chというものを誤解してるんじゃないかな
ネタにくだらんレスにウケ狙い、推測に主観
そんなもんに腹立ててたらキリがないぞ
レスする方も高度なレスをする気なんかこれっぽっちもないよ
お前こそ、人に要求する前にスルースキル学べよ
自分で妥当性を考えろ
0638デフォルトの名無しさん
2013/05/04(土) 21:17:34.57内容でバトルロワイヤルしなさい。
0639デフォルトの名無しさん
2013/05/04(土) 21:21:19.20かなり能力はあると思うよ
特に科学計算がどうとかPythonのコードを投入してる人
0640デフォルトの名無しさん
2013/05/04(土) 21:36:11.53普通に自分の主観で決めつけて言う傾向にある
0641デフォルトの名無しさん
2013/05/04(土) 21:42:43.93つ 好意の原則
0642デフォルトの名無しさん
2013/05/04(土) 21:44:57.03最悪の自己弁護だな。つまりまた言い訳。それしかできない
どんなレスをしようが勝手だが
ただ気持ち悪いだけのレスが叩かれるのは当然のこと
穴を指摘されたらちゃんと根拠を説明しろよ。それが出来ないのは中身が空っぽだから
はぐらかすな、逃げ回るな
>>639
仕様や科学計算ライブラリについては知ってるし確認した上でかなりレスしてるが
コードを投下してるのは優れていて優しい別の人な場合が多い
0643デフォルトの名無しさん
2013/05/04(土) 21:52:06.70ああ、コード投下してる奴は別の奴だったのか
なるほど
ドンマイw
0644デフォルトの名無しさん
2013/05/04(土) 21:57:00.32本当にそんなつもりでレスしてるなら
指摘されて妄想じゃない!と反発し続ける意味がわからない
それでいて当然ながら証明はできない
0645デフォルトの名無しさん
2013/05/04(土) 22:09:44.13> ああ、コード投下してる奴は別の奴だったのか
そりゃそうだろw
アンチJSの人はただのキチガイだもんなw
0646デフォルトの名無しさん
2013/05/04(土) 22:14:12.04具体的にはどのレスの事?
別に「妄想じゃない!」って反発してるわけではないと思うんだが
「妄想」を「客観的に根拠の不十分な推測」と捉えてるなら
反論の余地はない
確かにその通り
ただ、少なくとも「実際には間違っている主観」ではないと思ってるから
その部分について反発があるのは当たり前
ネタでなければ言ってる本人は自分の意見が間違いではないと思ってるはずだ
証明ができるかどうかは状況、気分次第
0647デフォルトの名無しさん
2013/05/04(土) 22:18:34.800648デフォルトの名無しさん
2013/05/04(土) 22:18:57.55証明も反証もできないよ。だから詐欺だと言ってるわけ
もちろん、そんな正論を受け付けないだろうがね
0649デフォルトの名無しさん
2013/05/04(土) 22:22:53.00お前が要求してるのは、「〇〇が熱い!」「将来はこうなる!」ってことの
証明でしょ?
まあ特に後者は無理だろw
前者はURLとかちらほら出てたけど、それを「証明」と認めるかどうかは
お前次第だし、まあ無理だろw
結局、間違ってるという結論先にありきなんだよ
だから詐欺だといって満足したいんだろう
0650デフォルトの名無しさん
2013/05/04(土) 22:23:39.000651デフォルトの名無しさん
2013/05/04(土) 22:28:56.32突拍子のないほど説得は難しくなる
少なくとも胡散臭い妄想を並べるのは気持ち悪いだけで論外
凄さを伝えたいなら実際に使って見せればいいのに
本人の手元にすらそれがないみたいな言い回しだから、なんで?と思わざるをえない
0652デフォルトの名無しさん
2013/05/04(土) 22:29:12.74間違ってるという結論ありきだからおかしいとしてるだけだが
これも成り立つよな。
なんでこう言わない?
そこにお前が満足したいって気持ちが現れてるのさ。
0653デフォルトの名無しさん
2013/05/04(土) 22:30:22.51証明も反証もできない宣伝だから詐欺なんだよ。分かるか?
0654デフォルトの名無しさん
2013/05/04(土) 22:31:02.18> 証明も反証もできない宣伝だから詐欺なんだよ。分かるか?
そもそもそれが間違っとる。
0655デフォルトの名無しさん
2013/05/04(土) 22:31:16.22「おかしい」ってのは「客観的に見て納得できるだけの証拠がない」ことを指してるんでしょ
ならその通りだよ
ただの主観だし
別に反論しようとも思わん
現実にどちらが正しいかは、誰彼の意見とは
一切関係ないがねw
0656デフォルトの名無しさん
2013/05/04(土) 22:33:10.19世界の人々はこう動くべき、という個人的希望が反感を買いやすいのは当然
そこには必ず理由が必要だ
0657デフォルトの名無しさん
2013/05/04(土) 22:33:32.35では、連続体仮説は詐欺か?
詐欺ではない。れっきとした仮説だ。
0658デフォルトの名無しさん
2013/05/04(土) 22:36:06.46どうとでも言える主張は詐欺でしかないんだよ
0659デフォルトの名無しさん
2013/05/04(土) 22:36:37.63反感を買いやすいとか、一般的な意見のように言ってるけど、
要するに、>>656個人が
個人的希望はきらいだって言ってるにすぎない。
>>656個人が、みんな俺と同じ気持なんだと
みんな俺の考えに賛同していると
思い込んで書き込んでる。
それだけ。
>>656はキチガイにすぎない。
0660デフォルトの名無しさん
2013/05/04(土) 22:37:46.58あー、はいはい。
どうとでも言える主張は詐欺なんだよ。
俺が言ったから詐欺なんだよ。
みんな詐欺と思ってるんだよ。
俺の考えは正しいんだよ。
ですね。わかります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「ネイティブ」言語としての位置づけになっていくことは確定してる
2020年にはCかJSかとなってると思われる
0664デフォルトの名無しさん
2013/05/04(土) 22:41:13.00良いこと言うね。みんながJSに熱狂しているとか言ってるキチガイはそろそろ自分の間違いに気づいただろうか
0665デフォルトの名無しさん
2013/05/04(土) 22:42:06.17それも「みんな」の定義によるな
率で言えば少ない、数で言えば多い
0666デフォルトの名無しさん
2013/05/04(土) 22:42:08.03お前がキチガイって気づいたw
0667デフォルトの名無しさん
2013/05/04(土) 22:42:41.030668デフォルトの名無しさん
2013/05/04(土) 22:43:30.90いやむしろ無自覚な方がヤバイし
さんざん指摘しても>>663のように悪意を持って印象操作してるだけだから
0669デフォルトの名無しさん
2013/05/04(土) 22:43:38.88別に悪い事じゃない
0670デフォルトの名無しさん
2013/05/04(土) 22:44:21.07詐欺だ!
0671デフォルトの名無しさん
2013/05/04(土) 22:45:00.59> さんざん指摘しても>>663のように悪意を持って印象操作してるだけだから
お前が書き込んだんだろ
タイミング良すぎるわw
0672デフォルトの名無しさん
2013/05/04(土) 22:46:22.49俺はこんな気持ち悪い文章を思いつけないし
何を言ってるかも理解できないがJS厨には
ごく自然なことなんだろいな
0673デフォルトの名無しさん
2013/05/04(土) 22:46:33.19まあ、一人じゃないしねw
少なくとも俺は663ではないし、悪意を持ってる自覚はないな
ヤバいかもw
0674デフォルトの名無しさん
2013/05/04(土) 22:46:41.12> JavaScriptは今後モバイル系から始まりディスプレイがついてる大抵の電化製品の
> 「ネイティブ」言語としての位置づけになっていくことは確定してる
検証してみよう。
スマホ・・・JavaScript対応
テレビ・・・一部JavaScript対応
JavaScript以外の言語は?=対応していない。
0675デフォルトの名無しさん
2013/05/04(土) 22:48:27.38良心の呵責を受けないなら犯罪者に向いてるよ
というか論理的思考ができてないから他のまともな仕事は無理
0676デフォルトの名無しさん
2013/05/04(土) 22:49:52.39それは否定できんよ。詐欺でもなく現実ね。
0677デフォルトの名無しさん
2013/05/04(土) 22:50:01.10いや、ちょっとまて
ネイティブ言語が何をさすのか知らんが、
俺の知る限り、Objective-C、Java、C/C++はお前の言うネイティブ対応されてるっぽい気がするぞw
スクリプト言語という意味か?
それもLuaとかあるしな
>>675
まともな定職に就いてしまってる可能性を考えて保険をかけてるところが
可愛いなw
0678デフォルトの名無しさん
2013/05/04(土) 22:50:19.11JAVAの一人勝ちじゃねーか
0679デフォルトの名無しさん
2013/05/04(土) 22:50:53.60あとデジタルサイネージやカーナビアプリもそうなりつつある
0680デフォルトの名無しさん
2013/05/04(土) 22:52:09.40スマフォで言えば、一旦HTML5が浸透していきかけたけど、
今は少し足踏みしてる状態に見える
やっぱりまだパフォーマンスや互換性など様々な問題がある
ただ、今後はわからんけどね
0681デフォルトの名無しさん
2013/05/04(土) 22:52:29.540682デフォルトの名無しさん
2013/05/04(土) 22:53:21.66それは詐欺でもなんでもないなw
0683デフォルトの名無しさん
2013/05/04(土) 22:57:38.61足踏みも何もTizenOSやFirefoxOSでは基本HTML5でしかアプリが作れないんだけど?
そして今年度中から日本でそれ搭載のスマホが売られるの知らないの?
互換性なんて既存のスマホアプリのJAVAやobjectiv-Cに比べたら些細なもんだよ
アレだって複数のプラットフォーム向けに作るの大変だし
だから最近ハイブリットアプリが流行ってるんでしょ
0684デフォルトの名無しさん
2013/05/04(土) 22:59:18.25ハードを作る人のための言語だね。
その作られたハードでアプリを動かすには
Objective-C(Apple系のみ)、Java
この二つはインストール系
そしてウェブアプリではHTML5+JavaScriptになる。
これが現在の状態。
その他の言語は出てこない。
0685デフォルトの名無しさん
2013/05/04(土) 22:59:55.50それは知らんかったが、現状ではまだ浸透してないだろ?
今のスマフォはiOSとAndroidで、後は誤差だから無視して構わない
そして、iOSとAndroidでJavascriptを使ったアプローチは
今はそれほど伸びてない
有名な企業がとりやめて、普通にネイティブに戻したりとか
0686デフォルトの名無しさん
2013/05/04(土) 23:01:09.68そんな事例はFacebookしかしりません。
0687デフォルトの名無しさん
2013/05/04(土) 23:02:29.46後俺が知ってるのは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他の言語の話ができないのはわかった
それは別のスレを立てて、このスレはその他マイナー言語専用スレでいいかな?
やっぱり明らかに用途が違うから
0690デフォルトの名無しさん
2013/05/04(土) 23:05:01.82既存のスマホはそもそもWebアプリを作れる環境が整ってないでしょ
それを整えたのが去年から出始めた各種モダンOS
0691デフォルトの名無しさん
2013/05/04(土) 23:05:05.40まあ、そういうのもあるんだけど、アプリの大半を占める
ゲーム分野とかは普通にパフォーマンス重視のネイティブ多いままだし
どんどん浸透って感じではないと思う
たんなる実感だけど
0692デフォルトの名無しさん
2013/05/04(土) 23:08:21.69他の言語は関係ないから
0693デフォルトの名無しさん
2013/05/04(土) 23:10:39.35ソフトウェア業界の歴史を見てみろよ。
昔はアセンブラだった
開発効率向上のため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まあ確かに時間が経てばいずれはそうなるかも
ただ、現状、一時期と違って増加スピードは鈍ってるってのがマジな実感
>>694
そうかね
まあ、単に俺の実感がずれてるだけかもしれん
データとかも検索すれば出てくるかもしれんが、まあいいや
この議論はこの辺で打ち止めだな
0697デフォルトの名無しさん
2013/05/04(土) 23:14:57.30http://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病気だなあ
0700デフォルトの名無しさん
2013/05/04(土) 23:17:36.44現状はな
今はまだ「気づけばちらほらと出てきてる」程度だね
特に開発者好みのエディタとか
Komodoとか、Cluod 9、Markdownのエディタ
ただ、デスクトップに関しては今後加速すると思う
理由は、インターネットが重要性を増してる事と、クロスプラットフォームな事、
ビジュアルの表現力がある事など
0701デフォルトの名無しさん
2013/05/04(土) 23:20:22.45ウェブサイトと同じでハージョンアップできる
というメリットが有る。
だから問題がなければ出来るだけ
ハイブリッド化したいと思っている。
0702デフォルトの名無しさん
2013/05/04(土) 23:21:27.09HTML5が悪いんじゃない
wayohoo.com/facebook/news/fastbook.html
0703デフォルトの名無しさん
2013/05/04(土) 23:22:32.50http://www.itmedia.co.jp/promobile/articles/1302/05/news080.html
こんなふうに予測されてるしな。
0704デフォルトの名無しさん
2013/05/04(土) 23:24:28.79ほんと静かになるなw
0705デフォルトの名無しさん
2013/05/04(土) 23:25:01.00http://jbbs.livedoor.jp/bbs/read.cgi/computer/43761/1367197701/l100
0706デフォルトの名無しさん
2013/05/04(土) 23:25:15.99何で開発されてるんだろう
0707デフォルトの名無しさん
2013/05/04(土) 23:27:33.38いきなり何なのか知らんが、
スクリプト言語じゃないだろうな
0708デフォルトの名無しさん
2013/05/04(土) 23:29:27.37普通に議論に参加してますが?
いきいきと妄想がはかどってるね
HTMLの時代だからJS!と言われたら何も言えないわ
そろそろ他の言語の議論させてくれないかな
それとも、このスレは永久にJSの夢物語を並べる場所になるのか
キチガイ地獄もいいところだな。JS厨に侵略され、JS以外スレとかいう暴挙も許し
全てがJSの不確定な将来をあれこれと語り合うJS厨の楽園スレ…終わったよ、全てが
0709デフォルトの名無しさん
2013/05/04(土) 23:30:02.54アイツ一人で荒らしてるんだよ。
自覚無さそうだけどな。真性ってやつ。
0710デフォルトの名無しさん
2013/05/04(土) 23:30:51.25まあ仕方がない
現実、そういう時代だし
ただ、PythonでHTML5とかも開発できるようになると思うけど
0711デフォルトの名無しさん
2013/05/04(土) 23:34:03.62JS厨に喋らすとHTMLだから!としか言わないからもう駄目だ
次スレでは確実に追放だが
0712デフォルトの名無しさん
2013/05/04(土) 23:37:03.66設定ファイルはJSのJSON形式、プラグインはPythonで、カラースキームとかはXMLで書かれてるな
かなりごった煮だわ
0713デフォルトの名無しさん
2013/05/04(土) 23:49:07.99いや、クロージャ、プロトタイプベース、DOM連携とかかなり良い言語だと思う
Pythonと比べるとそうでもないかもしれんが
0714デフォルトの名無しさん
2013/05/04(土) 23:49:22.60JS主体で悪いが
他の言語プログラマは自分の言語のいいところアピールして欲しいな
実際JAVAやPerlの機能の導入がJS,nextでは沢山議論されてるし
昨日のスコープの違いとまでなると不可能だが
JSを自分の好きな言語に仕立てる余地は十分ある
構文レベルが難しくてもAPIレベルなら本当に1個人の意見が大きいし
0715デフォルトの名無しさん
2013/05/04(土) 23:56:39.63不確定、未解決の問題も謎の「確定事実」において一蹴される
議論は許されない。ただ未来のJSってよいよねと言うだけのスレ
0716デフォルトの名無しさん
2013/05/04(土) 23:58:10.10どんなに良いことがあっても無駄だろ
この世界はHTML5で、それに関われないカス言語はまず議論のステージに立てないのだから
JS以外はお断りだよ。JS以外スレを立てたんだからそっちに行ってもらうしかない
0717デフォルトの名無しさん
2013/05/05(日) 00:00:14.99JSに限らず何も批判すべきじゃないと思うけど
まあ例えばサーバーサイドでこの言語のこういうところが問題とかはあると思う
でもJSは主にクライアントサイドだと比べるものがないから批判は意味ない
0718デフォルトの名無しさん
2013/05/05(日) 00:01:53.94スコープの違いって
外部の変数を書き換えるのに宣言必要になればいいんだろ?
互換性を切り捨ててやろうと思えば余裕だと思うが、
切り捨てるだけのメリットがないってだけだと思う
0719デフォルトの名無しさん
2013/05/05(日) 00:02:17.50不満を愚痴ること=批判することだが、JSに対して不満を愚痴ることは許されていない
0720デフォルトの名無しさん
2013/05/05(日) 00:05:46.12VBScriptが普及しなかったのは、IE以外のブラウザの台頭と、Ajaxがなかったから
とはいえループの中で変数宣言できないVBScriptはJSより糞なのは間違いない
0721デフォルトの名無しさん
2013/05/05(日) 00:05:46.85子に浸透にないスコープを持つ変数はできると思うよ
そうじゃなくて他にもクロージャはデフォでそうすべきとかいろいろ
言語の根幹の問題があったからさ、そういうのは無理
0722デフォルトの名無しさん
2013/05/05(日) 00:05:55.21普通に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.17VBScriptって悪名高いけど他に何か大きな問題があったの?
そして何故こんなに廃れた今になって尚質問サイトでちょくちょく見かけるのか不思議
0725デフォルトの名無しさん
2013/05/05(日) 00:08:30.44いいか?coffeeはJSだ。JSから逃げることはできない
不満がある奴は生きる価値なし。それを口に出すなんてもってのほか
0726デフォルトの名無しさん
2013/05/05(日) 00:10:32.67んー、ちょっと賛同できないかなあ
CoffeeはCoffeeでしょ?
君の言う、JSってどういう定義なの?
PythonをJSにコンパイルするやつはやっぱりPythonと言うべきだと思うけど
0727デフォルトの名無しさん
2013/05/05(日) 00:12:00.13JSの糞コードを読まなければならないものはJSと言う他ない
0728デフォルトの名無しさん
2013/05/05(日) 00:20:25.83単にIE以外ではサポートされてなかったのが問題
あとJSが爆発的に流行ることになったのは、FireFoxでもサポートされていたのと
GoogleがMapで使い始めたから。
もしGoogle MapがVBSで作られていたら、歴史は変わったと思う
ただ、継承すらできないのに、クラスベースのオブジェクト指向型言語だったから
普及していたらJSと同じく、変換言語が複数出ていたのは間違いない
0729デフォルトの名無しさん
2013/05/05(日) 00:22:37.690730デフォルトの名無しさん
2013/05/05(日) 00:27:18.22やっぱりスクリプト言語は環境によって価値が大きく変わるし
0731デフォルトの名無しさん
2013/05/05(日) 00:27:18.95読まなくてはいけないってほどでもないと思う
昔はC使ってる時にデバッグモードでアセンブラ見てたらしいけど
今はそんな事もあまりないのと同じで時間が解決するよ
まあ、最初は読んだ方が良いかもな
0732デフォルトの名無しさん
2013/05/05(日) 00:27:46.88ブラウザ以外のスクリプトについて何も語れないJS専用糞スレだからどうでもいいけど
0733デフォルトの名無しさん
2013/05/05(日) 00:42:51.910734デフォルトの名無しさん
2013/05/05(日) 00:47:17.07その間ソフトウェア開発以外やファイル処理やバッチ処理やプラグインにJS以外のスクリプトを使う
しかも、JSが使われるのは良言語だからではなくJavaと同じ理由だし
0735デフォルトの名無しさん
2013/05/05(日) 00:50:34.97そりゃまあ
「全てが」なんて言い出したらな
ただ、それが主流になるのは数年後にはひょっとしたらあるかもな
それも、もの凄い勢いで普及した場合だな
0736デフォルトの名無しさん
2013/05/05(日) 00:59:37.86クロージャが採用された理由が非同期処理と相性が良かったから
巡り巡って、JSが良言語な事が影響してる
もともとクラスもモジュールもなかったけど、今同等の機能を実現しているのは
クロージャ等の言語機能が強力な潜在能力を持っていて時代が追いついたおかげ
0737デフォルトの名無しさん
2013/05/05(日) 01:00:05.86クロージャはデフォでそうすべきって意味がわからない
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.29JSは糞言語だけどJSの呪いからは逃げられない
0741デフォルトの名無しさん
2013/05/05(日) 01:09:06.43JavaScriptはよく出来た言語だよ。
0742デフォルトの名無しさん
2013/05/05(日) 01:10:42.47他の言語を慮ってこんなスレを立てるくらい調子に乗ってる
だからおよそコミュニケーションと呼べるものは成立しないと思ってる
【JavaScript以外】 その他のスクリプト言語
http://toro.2ch.net/test/read.cgi/tech/1367676856/
0743デフォルトの名無しさん
2013/05/05(日) 01:11:34.83この世界はJSによってのみ作られる。それを理解しろ
0744デフォルトの名無しさん
2013/05/05(日) 01:12:47.83C#とか
最近だとScalaが少し出てきたか
0745デフォルトの名無しさん
2013/05/05(日) 01:13:12.30神言語JSが神であることに理由はいらない。欠陥すべてがメリット、それがJS
0746デフォルトの名無しさん
2013/05/05(日) 01:15:56.73最近の話ね。Javaは割とオワコン化してる
一応使われ続けるだろうが盛り上がりはしないだろうなあ
糞言語でもJavaは革命だった。それこそJS以上にね
0747デフォルトの名無しさん
2013/05/05(日) 01:24:38.85何を言っても無駄無駄無駄
0748デフォルトの名無しさん
2013/05/05(日) 01:27:12.22Javaが選ばれたのは主にパフォーマンスのせいではあるけど
やはりCっぽい外見とオブジェクト指向が良かったってのもあるとは思う
0749デフォルトの名無しさん
2013/05/05(日) 01:28:27.57いや、C#は静的型づけでVMで動作する以外にJavaとの共通点がないだろ
普通はOSをWindowsにするかどうか、それでほぼ決まるし。
もちろんWindowsでもJavaは動くがC#やVBと比べたら論外だから
むしろJavaが競合するのは、PHPとかだろ
0750デフォルトの名無しさん
2013/05/05(日) 01:28:47.07Cで書かれたプログラムのソースをここに持ってきてきてください
すぐにブラウザアプリにして差し上げますよ
0751デフォルトの名無しさん
2013/05/05(日) 01:32:01.94ASP.NETとサーバーサイドJavaは競合しとりますがな
まあどっちかというとOS合戦の面は否めないが
0752デフォルトの名無しさん
2013/05/05(日) 01:33:59.290753デフォルトの名無しさん
2013/05/05(日) 01:39:07.31言うように、それは言語以前にOS選びの時点で決まっているから言語の競合じゃない。
もちろんWindowsでWebアプリを作る場合もASP.NETじゃなくてStrutsやSpringを使う馬鹿が0じゃない訳じゃないけど、
ただの馬鹿だからな、それ。
MSが宗教的な理由で嫌いとか、.NET土方が集まらずJava土方しかいなかったからとか、
そういう理由がなければ劣化C#2.0のJavaを選ぶ必要性などない。
0754デフォルトの名無しさん
2013/05/05(日) 01:41:06.730755デフォルトの名無しさん
2013/05/05(日) 01:47:46.82出来損ないでも頂点に立てるという勇気を与えてくれる
ただし、HTMLのような巨大な後ろ楯が必要。無理ぽ。
他のカス言語はどんなに素晴らしい設計でライブラリが豊富でも諦めるしかない
話題に上げるまでもないカス言語は例のゴミ箱スレに行こう
0756デフォルトの名無しさん
2013/05/05(日) 01:53:07.07それは全くその通りだな
でも、本当にJavaが優れていたら、WindowsでもSpring使われていたはずだ
結局、言語の優劣で決まってると思うぞ
0757デフォルトの名無しさん
2013/05/05(日) 02:32:58.88すべての仕事をブラウザでやってる人間からしたらそんな遅れてる化石人間は論外なんだよ
ブラウザ以外でアプリを使う?笑わせるな
今すぐブラウザ以外のアプリをアンインストールしろ。世界が変わるぞ。現に俺は変われた
今ブラウザ以外で起動してるアプリを見てみろ。本当にそんなもの必要か?
それはブラウザでやるべき、ブラウザでやらなければ問題が生じる仕事なはずだろ
すべての仕事はそうだ。現実を受け入れろ
0758デフォルトの名無しさん
2013/05/05(日) 02:45:03.74どう見てもアンチJSのレスにしか見えないw
0759デフォルトの名無しさん
2013/05/05(日) 02:53:05.11数年後には全ての家電はネットに接続する
つまり洗濯機やアイロン、こたつなどをJSで作られたインターフェースで操作するようになる
これは確定した未来で、そこに他の言語は存在しない。単なる事実だからしかたない
0760デフォルトの名無しさん
2013/05/05(日) 03:04:21.36既存のアプリは全て革命の名のもとにブラウザアプリに置き換わる
その未来がギラギラと眼前に迫って来ているのをみんなが感じてる
0761デフォルトの名無しさん
2013/05/05(日) 03:05:59.57一つは間違いで一つは正しい。
間違いというのは、すべての家電がネットに接続するということ。
これは間違い。
正しいというのは、ネットに繋がった家電を操作できるならば
それはJavaScriptであるということ。
0762デフォルトの名無しさん
2013/05/05(日) 03:16:47.22760はどう見てもネタだしw
0763デフォルトの名無しさん
2013/05/05(日) 03:21:44.02C++ともの凄く相性いいからな
0764デフォルトの名無しさん
2013/05/05(日) 03:22:03.080765デフォルトの名無しさん
2013/05/05(日) 03:25:47.12確定した未来つまり数年後のHTML5が全てにおいて使われる新しい世界に
一部の人間は気づき始めてる。その熱狂してるコミュニティの瞳に映る未来は
JSでできないことはないし、現に彼らはJS以外をつかっていない
0766デフォルトの名無しさん
2013/05/05(日) 03:30:43.49HTML5と言えば神であるJS以外は考えられないので
何かを比較するということ自体が不敬だと言える
実際、JS以外の言語は確定した未来において存在しない
0767デフォルトの名無しさん
2013/05/05(日) 03:33:36.740768デフォルトの名無しさん
2013/05/05(日) 03:35:39.620769デフォルトの名無しさん
2013/05/05(日) 03:36:55.48対応できるようになっている。
実際にVBScriptに対応していた。
ならばscriptタグを使って、PHP、Perl、Pythonなどを
動せるようにすればいいではないか?
残念ながらこの単純な考えは実現が難しい。
なぜなら他のスクリプト言語では
言語の基本機能としてファイルの読み書きが可能だから。
単純に実装してしまうと言語そのものがセキュリティホールとなってしまう。
ファイルの読み書きができることを前提に構築された言語とライブラリは
すでに巨大なものとなってしまっており、今更制限できない。
もしJavaScriptを置き換える言語が将来出来るとすれば
それは最初からセキュリティを考慮しファイルアクセス機能が
オプションである新しい言語だろう。
0770デフォルトの名無しさん
2013/05/05(日) 03:41:29.14実際、GoogleはJSだけを使い素晴らしいプロダクトを次々に産み出してる
全ての言語を熟知した天才集団が選んだ言語それがJS
つまりJS厨のIQは他の言語ユーザーより高い
0771デフォルトの名無しさん
2013/05/05(日) 03:45:21.700772デフォルトの名無しさん
2013/05/05(日) 03:53:04.75何処の誰が作ったかもわからないプログラムを
無許可で実行するのがブラウザ。
本来ならすごく危険な行為
JavaScriptのメリットはこれが可能という
セキュリティの高さだろう。
0773デフォルトの名無しさん
2013/05/05(日) 03:58:01.54C#でポトペタ?C/C++で高速化?
笑わせるな!JSを知らないからそんな愚かな方法を続けてしまうのだ
情弱どもがそんなものでドヤ顔するとはほとほと呆れ果てる
数年後のHTML5+JSで作られた世界を全く理解してない
もう既にpythonやC#の牙城が崩れ去った音が聞こえなかったのか?
JS指向世界こそが唯一の答え。googleが選んだ答えだ。誰も逆らえまい
0774デフォルトの名無しさん
2013/05/05(日) 03:59:57.65JSは究極のセキュリティを備えている
お前が普段見ているそのサイト、それがその証拠だ
他の言語でこれほどのセキュリティを実現する方法はこれまで、そしておそらくこれからも存在しない
0775デフォルトの名無しさん
2013/05/05(日) 04:00:56.16あれを使うと、既存のライブラリが
JavaScriptライブラリに変えられちまう。
0776デフォルトの名無しさん
2013/05/05(日) 04:08:25.15それは今この場でJSのライブラリになる
一丁前のJSプログラマに仲間入りだ。何故試さない?
あの日作った力作Cプログラムもそっくりそのままブラウザで動く
何故試さない?
0777デフォルトの名無しさん
2013/05/05(日) 04:26:53.55Cで書かれた大規模システム、ライブラリは無数にあり、公開されているものも多い
それが全部JSのものだ。来週か、来月か、近いうちに大規模な「革命」が起こる
JS以外の言語がこの世から消え去る審判の日だ
0778デフォルトの名無しさん
2013/05/05(日) 04:32:12.83それらの言語はもはやJSの一部として当然に機能する
まさに今、まさにここで。
JSを使う、世界を手中に納めるということはそういことだ
0779デフォルトの名無しさん
2013/05/05(日) 05:33:40.48それで。オブジェクト指向は革命ではなかった。
0780デフォルトの名無しさん
2013/05/05(日) 07:44:17.19この手の議論はまず、意図を明らかにしないと不毛
革命ではなかったとは?
君の考える革命とは何で、その定義のどこがオブジェクト指向に足りない?
0781デフォルトの名無しさん
2013/05/05(日) 08:11:41.60今までこの手のスクリプト言語が使われて来た分野はJSが代替する。
が、JSというかHTML5が凄く有望なアプリケーションプラットフォームかと言うとそうでもなくて、スマートデバイスの普及、ストアアプリって仕組みの導入でアプリケーションをHTML5みたいな不自由で低速な実行環境、収益力のない配布形態で作る必要なくなった。
スマートフォンではGmailだってアプリから使うのが普通。
Windows8からPCにもその流れは来てる。
0782デフォルトの名無しさん
2013/05/05(日) 08:12:09.72下みたいな、明らかに間違ったコードでも
実行時例外すら出ないんだね
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.85RDBは革命だったと思うよ。
0784デフォルトの名無しさん
2013/05/05(日) 08:24:49.56それってJavaScript的には間違ってるわけじゃない
undefinedという概念があるから
それのおかげで、様々なブラウザやバージョンに対応できた側面がある
0785デフォルトの名無しさん
2013/05/05(日) 08:32:55.96NoSQL
0786デフォルトの名無しさん
2013/05/05(日) 08:38:30.08「手動で」チェックを入れるのが意外と妥当な解決策だったんだよな
ブラウザという特殊な環境だけの話かもしれん
0787デフォルトの名無しさん
2013/05/05(日) 08:40:47.90f(1)の方はundefinedじゃなくてNaNが返ってくるよ
NaNの概念がある言語は沢山あるけど、引数の数をチェックしない言語は少ないと思う
0788デフォルトの名無しさん
2013/05/05(日) 08:43:20.60最初にundefinedになった後、その値を計算に使用したからNaNになる
引数チェックしないのは、今ではオーバーロードをエミュレートするのに
使われてるけど、そもそもオーバーロードにした方が良かったかもしれないね
0789デフォルトの名無しさん
2013/05/05(日) 08:46:34.560790デフォルトの名無しさん
2013/05/05(日) 08:48:50.72なるほど、fの引数のyがundefinedになってるんだね
納得
0791デフォルトの名無しさん
2013/05/05(日) 08:50:21.62そうだね
'undefined'を変数名として使えるという変態言語w
function (a, b, undefined)とすればちゃんとundefinedがundefinedになるという
バッドノウハウもあるw
でもこういう柔軟性結構好きなんだよねw
0792デフォルトの名無しさん
2013/05/05(日) 09:03:08.76ってやったら"fooundefined"が返ってきたw
0793デフォルトの名無しさん
2013/05/05(日) 09:06:02.95これは動的言語ではよくあるやつだな
0794デフォルトの名無しさん
2013/05/05(日) 09:21:49.34静的動的は全然関係ないわ
0795デフォルトの名無しさん
2013/05/05(日) 09:32:40.05静的型付けのJavaは "foo" + null が"foonull"を返す
0796デフォルトの名無しさん
2013/05/05(日) 10:55:31.55jqueryなければウンコやん
0797デフォルトの名無しさん
2013/05/05(日) 11:20:39.22似たような傾向の人がスレ乱立とかスレタイテンプレ勝手にいじるのはやめてほしいな
0798デフォルトの名無しさん
2013/05/05(日) 11:38:39.76天才が暇つぶしに触ってただけだ。本気で使いこなしているのはJSだけ
0799デフォルトの名無しさん
2013/05/05(日) 11:59:19.77例外投げるのが正しいし、それ以外は危険以外のなにものでもないけど
例えばPythonでは
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'
print foo_str + 100
print foo_str + None
0800デフォルトの名無しさん
2013/05/05(日) 12:02:45.520801デフォルトの名無しさん
2013/05/05(日) 12:05:45.13pythonコード貼ってる人がやってるホイトスペースの置き換えがわからん
>>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今は 10 進数の数値参照でないといけないっぽい
& # 160; をスペース抜きで
0803デフォルトの名無しさん
2013/05/05(日) 12:34:24.38ほうほう、サンクス
0804デフォルトの名無しさん
2013/05/05(日) 12:47:18.25対称性が壊れてる
0805デフォルトの名無しさん
2013/05/05(日) 13:00:46.80外部変数にはselfを付けてるという意味で独立してない
JSは無条件でクロージャだから全部メソッド外の変数を間違って弄れる
>>804
ただの例だから。自作の型同士で定義するのが正しい使い方だろうね
0806デフォルトの名無しさん
2013/05/05(日) 13:05:22.47myStrに次のメソッドを追加すると対称性を確保できる
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それだ!ありがとう
0808デフォルトの名無しさん
2013/05/05(日) 13:53:44.40正直、selfが面倒なだけ
0809デフォルトの名無しさん
2013/05/05(日) 13:59:31.05いやselfの変数とそれ以外のローカル変数は明らかに性質が違う
コードを追うときもいちいち宣言の有無を確認しなくていいので可読性は上がる
0810デフォルトの名無しさん
2013/05/05(日) 14:05:54.930811デフォルトの名無しさん
2013/05/05(日) 14:11:54.05簡潔に書けるのが良いのに、最初のメソッドにいちいちselfを明示的に宣言するところとか
邪魔でしょうがない
0812デフォルトの名無しさん
2013/05/05(日) 14:21:37.630813デフォルトの名無しさん
2013/05/05(日) 14:26:53.26それは文字数が一文字でも少ないほうが良いという価値観なのだろうが
基本的にpythonはそんな姿勢を取ってないと思うけど
0814デフォルトの名無しさん
2013/05/05(日) 14:31:54.47ユーザの考える引数の個数(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でも実際には親切に書かれてるし、それでどん詰まりしたりするものかなあ
というかREPLで help(Foo) と打てばわかるんじゃね。無理かな?
0816デフォルトの名無しさん
2013/05/05(日) 14:58:24.38その点JSは簡単明瞭な設計とブラウザで動くという最強の強みで学習には最適
というかブラウザで動かない言語を学習というのは事実上不可能な時代になってる
最近の若者はみんなJSからプログラミングに入門してるらしいしね
彼らは変な趣味でも持ってなければもう他の言語を学習する必要がないし
最低の学習コストで最大のパフォーマンスが得られるわけだ
0817デフォルトの名無しさん
2013/05/05(日) 15:09:19.04相当に面倒くさそうだ
普通の関数用とメンバ関数用で別々のデコレータ(と実現する仕組み)が必要になると思う
Pythonはレキシカルスコープだから
0818デフォルトの名無しさん
2013/05/05(日) 15:15:51.97pythonは公式でインストーラーやチュートリアル等のドキュメントが用意されているし
対話型環境が充実している(helpやdir)から学習面で論外と言い切るのは不適切
0819デフォルトの名無しさん
2013/05/05(日) 15:25:57.160820デフォルトの名無しさん
2013/05/05(日) 15:37:13.730821デフォルトの名無しさん
2013/05/05(日) 15:43:55.55陰謀論のように富を独り占めする黒幕がいるのか。答えはNOだ
JSを使う全員が幸せになれる
彼女ができるとか宝くじにあたるという個人的なことだけじゃなく
世界の貧困層や難病に苦しむ人々だって救われている
このように現にNode.jsで人々の生活は一変したわけだが
asm.jsの衝撃はこんなもんじゃない
その衝撃的な効率によって世界のエネルギー問題が解決しこの世から戦争がなくなる
0822デフォルトの名無しさん
2013/05/05(日) 15:45:34.960823デフォルトの名無しさん
2013/05/05(日) 16:17:46.140824デフォルトの名無しさん
2013/05/05(日) 16:22:36.762ch歴短い?
多分、2chというものを誤解してるんじゃないかな
ネタにくだらんレスにウケ狙い、推測に主観
そんなもんに腹立ててたらキリがないぞ
レスする方も高度なレスをする気なんかこれっぽっちもないよ
お前こそ、人に要求する前にスルースキル学べよ
自分で妥当性を考えろ
0825デフォルトの名無しさん
2013/05/05(日) 16:27:17.14相手にあっちにいけとか書き込むなとか
言ったりする。
そんなこと言っても無駄なんだよな。
防ぐ方法ないし、逆に無視され書き込み続けた時
自分がむかつくだけ、それを相手に教えているわけで
まぬけだよなーってなる。
0826デフォルトの名無しさん
2013/05/05(日) 16:30:29.080827デフォルトの名無しさん
2013/05/05(日) 16:31:14.10壮絶にキモい
さらに、2chというものは〜とか語っちゃってるのがキモい
0828デフォルトの名無しさん
2013/05/05(日) 16:31:30.18やめろと言われてもやめる必要がない
間違ってるのは確実にそっちなのだから
0829デフォルトの名無しさん
2013/05/05(日) 16:33:40.92JSの素晴らしさを布教することより気持ちがいいことはないからね
時代のビッグウェーブに乗ることの気持ちよさ
君もこっちに来なよ
0830デフォルトの名無しさん
2013/05/05(日) 16:45:35.110831デフォルトの名無しさん
2013/05/05(日) 16:48:40.650832デフォルトの名無しさん
2013/05/05(日) 17:02:20.760833デフォルトの名無しさん
2013/05/05(日) 17:04:44.29そういうのを暴れてるとは言わない
0834デフォルトの名無しさん
2013/05/05(日) 17:05:44.46アンチ荒らし
アンチ妄想垂れ流し
そういう奴の意見は通らない。ここは2chだから
0835デフォルトの名無しさん
2013/05/05(日) 17:07:21.720836デフォルトの名無しさん
2013/05/05(日) 17:10:20.650837デフォルトの名無しさん
2013/05/05(日) 17:44:49.82実際に開発してる人はどうやって対応してるんだろう
適当なシンタックスチェックのツールがあるのかな?
0838デフォルトの名無しさん
2013/05/05(日) 17:48:39.46それよりも何かと緩いことのメリットが大きい
確かにヤバそうに見えるけど実際は全くやばくない。それがJSの特に優れているところ
0839デフォルトの名無しさん
2013/05/05(日) 17:49:28.90あ、実際に開発してない人の意見はいいです
0840デフォルトの名無しさん
2013/05/05(日) 17:51:43.32いずれにしてもJSがそういう優れた言語であることに代わりはない
Googleマップがその証拠だ
0841デフォルトの名無しさん
2013/05/05(日) 18:09:26.710842デフォルトの名無しさん
2013/05/05(日) 18:13:55.91それは言語じゃなくてブラウザのAPIと実装のおかげ
0843デフォルトの名無しさん
2013/05/05(日) 20:14:54.90JS自体は型チェックもザルのゴミ言語だけど、ブラウザで動く唯一の言語だから仕方なく使ってるんだね
0844デフォルトの名無しさん
2013/05/05(日) 20:20:57.54シンタックスのチェックなら実際に動かしてみれば検出される
ある程度の規模になるならモジュールテスト書いて動かす
Lintツールも使いたい奴は使う
0845デフォルトの名無しさん
2013/05/05(日) 21:41:58.32JavaとJavascriptはダメだなぁ
特にJavaは静的型言語特有の冗長さ全開なのに
肝心なところで穴が開いてて酷いわ
0846デフォルトの名無しさん
2013/05/05(日) 21:47:07.18Noneを出力するためにわざわざtostr()みたいな関数かますのかな
いちいちめんどくさいなあ
0847デフォルトの名無しさん
2013/05/05(日) 21:51:41.28頭がおかしくなっちゃったの?
0848デフォルトの名無しさん
2013/05/05(日) 21:54:17.73obj = null;
'foo' + obj
これがfoonullだったらよくないけど
0849デフォルトの名無しさん
2013/05/05(日) 21:58:46.89write 'debug value = ' + value
ここでいちいち動作が中断するし、出力も出来ないんだろ
>>848
それもfoonullになって欲しいわ
0850デフォルトの名無しさん
2013/05/05(日) 22:03:32.94どんな設計だよ
0851デフォルトの名無しさん
2013/05/05(日) 22:07:18.70>>> print 'debug value =', value
debug value = None
0852デフォルトの名無しさん
2013/05/05(日) 22:07:47.86'foo' + obj が 'foonull' になるなんてのは論外だろう
デバッグ用の出力ならそれ用の関数を用意して
write('debug value = ', value) とかすればいい
0853デフォルトの名無しさん
2013/05/05(日) 22:08:27.560854デフォルトの名無しさん
2013/05/05(日) 22:16:23.72ほら、結局そういうのかまさないと駄目なんだろ
めんどくさ
0855デフォルトの名無しさん
2013/05/05(日) 22:21:03.18>>851
0856デフォルトの名無しさん
2013/05/05(日) 22:21:12.99テストで検出できない
0857デフォルトの名無しさん
2013/05/05(日) 23:04:10.94全然冗長じゃなかったねw
ていうか、そんなとこで冗長さを気にするくらいなら
JavascriptはfunctionをSMLやOCamlに習ってfnやfunにすべきだし、
Javaは冗長すぎるから死滅すべき
0858デフォルトの名無しさん
2013/05/05(日) 23:09:15.87犠牲にしちゃってるけどね
pythonだけだし
0859デフォルトの名無しさん
2013/05/05(日) 23:20:09.04JavaScriptは細かい点でミスが多いし、エラーで止まることより動くこと
を重視してる面はある
昔のCの発想に似てる
0860デフォルトの名無しさん
2013/05/05(日) 23:25:03.47printはただの可変長引数の関数で、カンマに特殊な意味はない(引数を区切るだけ)
当然 print('debug value =', value) で>>851と同じ出力が得られる
0861デフォルトの名無しさん
2013/05/05(日) 23:28:29.01可変長引数は危険だな
引数間違えてもエラーで止まらない
0862デフォルトの名無しさん
2013/05/05(日) 23:29:58.47引数間違えたら困る関数に
可変長引数を使わなきゃ良い
0863デフォルトの名無しさん
2013/05/05(日) 23:30:06.91内容を表示してくれないと困るからねえ
0864デフォルトの名無しさん
2013/05/05(日) 23:30:11.91あいつが来てないと流れがまともだな
0865デフォルトの名無しさん
2013/05/05(日) 23:31:59.60それは分かる
でもデバッグ用にもっとstrictなモードがあっても良いような
0866デフォルトの名無しさん
2013/05/05(日) 23:35:06.42まぁes5の機能ですらまだ使いにくいんだけど
0867デフォルトの名無しさん
2013/05/05(日) 23:36:10.24ずっと書き込んでますが?ソースも晒してますが?
今日はいつものように妄想垂れ流さないですか?
0868デフォルトの名無しさん
2013/05/05(日) 23:38:13.61言いがかりが苦しすぎ
0869デフォルトの名無しさん
2013/05/05(日) 23:45:45.84GoやHaskellには可変長引数は基本は無い
0870デフォルトの名無しさん
2013/05/05(日) 23:49:11.89でもHaskellなら Text.Printf.printf は可変長引数
0871デフォルトの名無しさん
2013/05/05(日) 23:50:10.48で、printが可変長で何が問題?
GoやHaskellはwrite 'debug value = ' + valueが出力できるのか?
0872デフォルトの名無しさん
2013/05/05(日) 23:51:34.37まるで厳密なチェックをたくさんしてエラーをたくさん出した方が
いいかのような口ぶりだな
動的型付けな時点でどうなのよ
もしくは静的信者?
0873デフォルトの名無しさん
2013/05/05(日) 23:53:01.840874デフォルトの名無しさん
2013/05/05(日) 23:53:16.98動的だからこそ実行時エラーを捕まえる必要がある
0875デフォルトの名無しさん
2013/05/05(日) 23:53:19.89haskellのは特殊
でもpythonは基本的な普通の言語機能として可変長が定義できる
0876デフォルトの名無しさん
2013/05/05(日) 23:54:01.09お前が言ってるのはwhileループが止まらないかもしれないと言ってるのと同じ
0877デフォルトの名無しさん
2013/05/05(日) 23:54:36.87実行時のエラーなんて解釈によって変わるじゃん
0878デフォルトの名無しさん
2013/05/05(日) 23:54:49.65いかんのか?
0879デフォルトの名無しさん
2013/05/05(日) 23:55:22.20危険なものを簡単に定義できちゃうのは危険
0880デフォルトの名無しさん
2013/05/05(日) 23:56:30.14まあ、解釈によるのは事実なので>>801みたいな抜け道はあっても良いと思うよ
でもデフォルトはstrictな方が良いでしょう
0881デフォルトの名無しさん
2013/05/05(日) 23:58:21.91可変長はデフォでもなければ推奨されてるわけでもない
0882デフォルトの名無しさん
2013/05/05(日) 23:58:49.58デフォで型についてもstrictな方がいいとは思わんの?
0883デフォルトの名無しさん
2013/05/05(日) 23:58:54.42うっかりミスで気付かないうちに
可変長引数を定義したことなんてねーよ
0884デフォルトの名無しさん
2013/05/05(日) 23:59:54.69型についてstrictな方が良いって話をしてるんだろ
0885デフォルトの名無しさん
2013/05/06(月) 00:00:45.60うっかり引数書き忘れたりすることはあるだろ
それがエラーにならない
そして簡単にできちゃったら、便利だから乱発するもんだろ
それが良くない
0886デフォルトの名無しさん
2013/05/06(月) 00:01:19.36つまり、静的型付けが優れていると
0887デフォルトの名無しさん
2013/05/06(月) 00:02:48.86引数を何に使うのか知ってれば可変長の方が便利で乱発するとか言えないと思うのだが
何が来るのか分からない方が便利なのか?
0888デフォルトの名無しさん
2013/05/06(月) 00:03:47.24> そして簡単にできちゃったら、便利だから乱発するもんだろ
お前と一緒にすんな
別に可変長引数は常に便利ってワケじゃねーよ
むしろ関数を定義する側は面倒臭いわ
0889デフォルトの名無しさん
2013/05/06(月) 00:05:22.07型付けを静的に行うか動的に行うかと、
型付けの強い弱いを混同するな
Cは静的に型付けを行うが型付けは弱いし、Javaだって文字列連結に関しては弱い
0890デフォルトの名無しさん
2013/05/06(月) 00:06:56.55誰も常に便利だとか言ってないし、全く面倒ではないとまでは
言ってないのだが
0891デフォルトの名無しさん
2013/05/06(月) 00:07:49.78言いがかりが苦しすぎるつってんだよ
プログラミングしたことないだろ?
0892デフォルトの名無しさん
2013/05/06(月) 00:08:02.89あんまり無茶な難癖付けてもツマランよ
0893デフォルトの名無しさん
2013/05/06(月) 00:09:16.62でも、静的に行うことによって、動的に型を変更できなくなるのだから
その点ではstrictだろ?
0894デフォルトの名無しさん
2013/05/06(月) 00:10:29.09言語の思想として制限する言語があるくらいだし、
的外れでもないんだけどな
0895デフォルトの名無しさん
2013/05/06(月) 00:10:33.010896デフォルトの名無しさん
2013/05/06(月) 00:13:11.890897デフォルトの名無しさん
2013/05/06(月) 00:14:46.48Argumentsで便利にアクセスできますが?
0898デフォルトの名無しさん
2013/05/06(月) 00:16:57.10ワロタ
0900デフォルトの名無しさん
2013/05/06(月) 00:20:29.19そりゃ可変長は危険と言いたくもなるわ…
0901デフォルトの名無しさん
2013/05/06(月) 00:22:27.98コマンドを選択して下さい
構ってやる
措置入院
> ハブる
通報する
0902デフォルトの名無しさん
2013/05/06(月) 00:24:34.31if (n < 2) {
return n;
} else {
return fib(n - 1) + fib(n - 2);
}
}
これ引数一個と思うやんかあ?可変長なんよぉ〜www
引数の数間違えても動くんよぉwww
0903デフォルトの名無しさん
2013/05/06(月) 00:25:18.45だからこそ何でもできる
やり方が発見されて行く言語なんだよ
0904デフォルトの名無しさん
2013/05/06(月) 00:25:27.71C, Javascript: ユーザを全面的に信頼する。ユーザがミスすること等ありえない
Python: ユーザの意思を尊重する。自覚的にやるなら何でも許すが、デフォルトは安全寄り
Haskell: ユーザの知能を信頼する。実用的なプログラムを書けない?貴方が馬鹿だからですよ(ニッコリ)
0905デフォルトの名無しさん
2013/05/06(月) 00:27:58.40余計なincludeしなくても始めから使えるところはいいね。
0906デフォルトの名無しさん
2013/05/06(月) 00:35:34.03やっぱりそれがただのプロパティだってこと
argumentsに大して代入してもエラー投げない
use strictすると流石に投げるけど
まぁ便利だとは思うけどねarguments
0907デフォルトの名無しさん
2013/05/06(月) 00:36:05.92案外問題になってないのが不思議だ
0908デフォルトの名無しさん
2013/05/06(月) 00:39:11.90雨後のタケノコのように出来てるんじゃないかなぁ
0909デフォルトの名無しさん
2013/05/06(月) 00:46:07.18糞仕様をトリッキーに利用しそれが横行している
0910デフォルトの名無しさん
2013/05/06(月) 00:48:20.920911デフォルトの名無しさん
2013/05/06(月) 00:53:35.790912デフォルトの名無しさん
2013/05/06(月) 00:57:12.550913デフォルトの名無しさん
2013/05/06(月) 01:12:27.370914デフォルトの名無しさん
2013/05/06(月) 01:18:38.43argumentsとか関係ない
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.220917デフォルトの名無しさん
2013/05/06(月) 01:45:33.17これはちょっと不可解だ
そんなにブラウザで動かしたかったんかいな
0918デフォルトの名無しさん
2013/05/06(月) 01:46:40.540919デフォルトの名無しさん
2013/05/06(月) 01:46:45.95でも問題視している発言は確かにあまり聞かない
0920デフォルトの名無しさん
2013/05/06(月) 01:47:31.62前スレから荒らしてたJS厨がスレタイとテンプレを改変した
ついでのJS以外スレというのも立てた
0921デフォルトの名無しさん
2013/05/06(月) 01:48:20.59型がユルユルなことは常に問題視されまくってるじゃん
0922デフォルトの名無しさん
2013/05/06(月) 01:52:41.41俺が言ってるのはデフォルトで可変長引数になる問題な
というか、気づいてないやつが大半な気すらする
0923デフォルトの名無しさん
2013/05/06(月) 01:55:08.62確かに。ありえないから自分の言語と比較しようとちょっと触ったくらいじゃ試さないしねw
ちょっと衝撃だった。引数を間違えても動いてしまうというデメリットしかない
0924デフォルトの名無しさん
2013/05/06(月) 01:56:10.47またアンチJSが立てたか
おまえpythonに泥塗ってる罠
0925デフォルトの名無しさん
2013/05/06(月) 01:56:55.30俺は立ててないけど誰かが立ててくれました
【PHP,Python】スクリプト,バトルロワイヤル34【Perl,Ruby】
http://toro.2ch.net/test/read.cgi/tech/1367772345/
0926デフォルトの名無しさん
2013/05/06(月) 01:57:27.86可変長引数じゃなくするにはどうするの?
もしかしてargumentsをチェックしたりの面倒な作業が必要なの?
0927デフォルトの名無しさん
2013/05/06(月) 02:02:29.97普通はundefinedをチェックして足りないことは検出するね
と言ってもエラーにすることは普通はしない
デフォルトの値を割り当てて継続するのが普通
あと、多すぎる場合は、普通は無視する
どうしてもエラーにしたかったら、arguments.lengthのチェックだな
0928デフォルトの名無しさん
2013/05/06(月) 02:07:48.730929デフォルトの名無しさん
2013/05/06(月) 02:16:17.31意外と誰も困ってない
そんなことより、クロージャとかプロトタイプベースのオブジェクト指向
とかの方が影響が大きい
0930デフォルトの名無しさん
2013/05/06(月) 02:19:37.260931デフォルトの名無しさん
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.030936デフォルトの名無しさん
2013/05/06(月) 02:32:38.52並以下とは思わんね
最近までメジャーな言語ではクロージャない言語の方が多かったわけだし
問題があるとしたらfunctionが長ったらしいのと
外部の変数がどうのとかってのくらいで、基本は素晴らしい機能だと思う
0937デフォルトの名無しさん
2013/05/06(月) 02:36:33.34他にない素晴らしいコード、安全なコードを見せてくれよ
>>936
最近までとか予防線張ってるところが虚しいな
問題はあるし、他の言語では当たり前だし
JSの価値はHTMLにさないって事実になぜ気づかない?
言語としては本当にゴミだよ
0938デフォルトの名無しさん
2013/05/06(月) 02:37:13.09でもそれは何年後なのか知らない
0939デフォルトの名無しさん
2013/05/06(月) 02:37:28.550940デフォルトの名無しさん
2013/05/06(月) 02:37:36.56柔軟になんでもできるし、この場合は人間じゃないので、エラーチェックの
欠如が問題にならないかがないから
って理由もあるだろ
0941デフォルトの名無しさん
2013/05/06(月) 02:38:45.82実際、最近のメジャーな言語はクロージャを備え出したんで、
予防線でも何でもなく事実
javaも備える予定だし
0942デフォルトの名無しさん
2013/05/06(月) 02:40:33.11柔軟にできるといっても所詮はそんなもん。糞仕様に我慢してもなんでもできるわけじゃない
早く誰かPythonを完コピしてくれればJSを使う理由なんて完全になくなる
0943デフォルトの名無しさん
2013/05/06(月) 02:42:20.96function newCounter() {
var i = 0;
return function() { // 無名関数
i = i + 1;
return i;
}
}
とか、クロージャがない言語には無理
最近の言語は同等の事が出来るけど
0944デフォルトの名無しさん
2013/05/06(月) 02:43:08.04だから今はJSは並以下じゃん
0945デフォルトの名無しさん
2013/05/06(月) 02:44:01.27ってのも、普通の言語の
import module
とかと違って変数に代入した後クローンをいくらでも作れる
点で普通の言語には無理
0946デフォルトの名無しさん
2013/05/06(月) 02:44:02.84pythonでも大昔からできるなあ
0947デフォルトの名無しさん
2013/05/06(月) 02:44:27.58具体的にどの言語が無理?
0948デフォルトの名無しさん
2013/05/06(月) 02:45:05.79pythonは良い言語だからね
たいていはpython持ち出しとけばできるし
0949デフォルトの名無しさん
2013/05/06(月) 02:45:36.52無理なのは同じ書き方であって、
そのコードで実現していることは
どの言語でも実現できるよね?
0950デフォルトの名無しさん
2013/05/06(月) 02:49:05.51作れるから?
それによってできる、他の言語では実現が難しい操作って何?
クラスのインスタンスと同じように見えるが
0951デフォルトの名無しさん
2013/05/06(月) 02:50:40.33Cは関数ポインタが出てきてわかりにくいし、Javaは無名クラスになって無駄に長くなっちゃうけど
0952デフォルトの名無しさん
2013/05/06(月) 02:53:39.62関数ポインタでも無名クラスでもダメ
クロージャーがない言語は
クロージャーで作れない。
0953デフォルトの名無しさん
2013/05/06(月) 02:53:53.67基本的にJSに強力な武器はないんじゃね。そう、HTML以外はね
0954デフォルトの名無しさん
2013/05/06(月) 02:54:17.25Cも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はあ?じゃあクロージャでクラスはできないんだな
聞いてた話と違うわ。そんな言葉遊びしかできのか
結局いつもの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それでいいよ
まあ、正確な事言えば無理な事なんて基本はないからw
0959デフォルトの名無しさん
2013/05/06(月) 02:59:14.970960デフォルトの名無しさん
2013/05/06(月) 03:00:22.19a = 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逆にjsでjavaみたいなクラス気軽に書けたらよかったのにね
0962デフォルトの名無しさん
2013/05/06(月) 03:02:49.02気軽にかけるよ
functionは実はクラス相当
0963デフォルトの名無しさん
2013/05/06(月) 03:04:19.940964デフォルトの名無しさん
2013/05/06(月) 03:09:19.83なんで一般的なC++風ができないんだ?
0965デフォルトの名無しさん
2013/05/06(月) 03:10:22.19こんなんのでいいんじゃねーの?
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.07Python -> JSなら、最近はここが活発に開発してる。構文だけならPython3を結構再現できてる
http://brython.info/index_en.html
少し遊んでみたんだけど、ちゃんとジェネレータが使えたり、JSのライブラリを呼ぶ事もできた
http://codepad.org/WYYBLIqa
0967デフォルトの名無しさん
2013/05/06(月) 03:11:35.56そういうのがあるのと、統一的な理解のしやすさの理由から
var a= function()やa:function()の書き方の方をfunction a()の書き方よりも推奨する人が多い
多分有名なライブラリは後者の書き方はしてないんじゃないかな
0968デフォルトの名無しさん
2013/05/06(月) 03:13:50.50こんな感じか? こっちも書き方忘れたが。
class Counter {
private int i = 0;
public int get() {
i++;
return i;
}
}
行数おんなじ。
0969デフォルトの名無しさん
2013/05/06(月) 03:16:37.82何もキモくないな。
宣言はコンパイルフェーズに行われて
代入は実行フェーズに行われるだけ。
0970デフォルトの名無しさん
2013/05/06(月) 03:18:26.66だからそれのことを言ってるんだが。pyjsはないので試してない
それはせっかく3に対応してるのにnonlocal使えない(JSのせいか?)し
>>801みたいな組込型の継承もできなかった
完コピは無理だろうが洗練していけばcoffeeとかより100倍マシだろうな
そもそもPythonを使ってる俺はブラウザでやる意味がないので使わないけど
0971デフォルトの名無しさん
2013/05/06(月) 03:19:39.89それだとnew Counterとかやらなくちゃいけなくなるよ
期せずして、クロージャがクラス相当ってのがわかりやすいコードだね
クロージャはクラスの機能を潜在的に持っていると言われる所以
0972デフォルトの名無しさん
2013/05/06(月) 03:22:09.90原理的には何でも出来るだろ
ただ、追いついていないだけで
0973デフォルトの名無しさん
2013/05/06(月) 03:26:09.26pythonで作られた有名ソフトで対決したらどうだ?
公平にデスクトップアプリ限定にしよう
0974デフォルトの名無しさん
2013/05/06(月) 03:27:04.27> それだと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それだと、メソッドがまた一つ増える上に
Counter.newCounter().get()になる上に
毎回インスタンス作ってるなw
>>975
俺はJavaでクラスとか気軽に作れないけど
0978デフォルトの名無しさん
2013/05/06(月) 03:34:04.50いやさ、使う方も大差ないよねって言ってるんだけど、わかる?
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> 俺はJavaでクラスとか気軽に作れないけど
知らんがな。お前の知識不足なんか。
俺は普通に一つのファイル内に
複数のクラスを気軽に作ってる。
0980デフォルトの名無しさん
2013/05/06(月) 03:36:40.48キリッとしてるところ申し訳ないんだけど、
Firefoxで実行すると a, b, c, d になるんですよ
0981デフォルトの名無しさん
2013/05/06(月) 03:36:54.91もしかしてお前、
JavaScriptのコードで、newCounter()を呼び出すごとに
カウントアップするとか思ってね?
newCounter()を呼び出すごとにJavaScript風インスタンス作ってるんだけど。
カウントアップするときは、newCounterで生成したインスタンスの
メソッド(と同等のクロージャ)呼び出すんだけど?
0982デフォルトの名無しさん
2013/05/06(月) 03:37:04.24どこが公平なんだよ
JSでデスクトップアプリ作るのなんてXUL以降くらいからだろw
>>976
「別に」とは思わんねえ
javaのインターフェースやクラスでdomイベント扱うコードとか書きたくない
>>978
それだと(newCounter())();でいいんじゃないの?
javaの方はインスタンス作っちゃうから一旦変数に入れるけどw
0983デフォルトの名無しさん
2013/05/06(月) 03:39:13.61クラスがある言語はJavaだけじゃないよ
0984デフォルトの名無しさん
2013/05/06(月) 03:39:25.44俺も作ってるけど、クロージャほど気軽じゃないな
やっぱり、名前付けなくちゃいけないし、インスタンス作るからか
0985デフォルトの名無しさん
2013/05/06(月) 03:44:20.00だからさ、他の言語と全然話題を共有できないでしょ
これがブラウザでは相性が良いとか意味不明な言い訳するばかりで
それって他の言語には関係のない都合じゃん
単純に気持ちの悪いだけの設計ミスを挙げたら切りがない
最終的にはHTML5だから使うって結論に落ち着く
じゃあJSファミリーのスレを立てればいいじゃんとだいぶ前にも進言したはずだが
0986デフォルトの名無しさん
2013/05/06(月) 03:46:57.77> それだと(newCounter())();でいいんじゃないの?
> javaの方はインスタンス作っちゃうから一旦変数に入れるけどw
JavaScriptでも一旦変数に入れてるだろ。
> var counter1 = newCounter();
> print counter1();
それともお前、カウンタなのに一回使って終わりか?
二回目どうするんだ?言ってみろ。
0987デフォルトの名無しさん
2013/05/06(月) 03:48:26.37> やっぱり、名前付けなくちゃいけないし、インスタンス作るからか
newCounterがnew Counterになっただけじゃん。
どっちも名前つけてる。
0988デフォルトの名無しさん
2013/05/06(月) 03:50:15.51> それだと(newCounter())();でいいんじゃないの?
Javaだと同じコードは
(new Counter()).get();
別に一旦変数に入れる必要はない。
0989デフォルトの名無しさん
2013/05/06(月) 03:52:17.36スマンそこは俺が間違ってた
>>987
いや、それはその例が付けてるだけで
クロージャは定義して即引数に渡したり呼び出したりする場合に
付けなくて良い
>>988
そうだな
まあgetが冗長だけど
0990デフォルトの名無しさん
2013/05/06(月) 03:53:49.15だいぶ下がりましたねぇ…
0991デフォルトの名無しさん
2013/05/06(月) 03:55:00.19getが冗長だし、名前もつけなくちゃいけない
結果として気軽に出来ない
0992デフォルトの名無しさん
2013/05/06(月) 03:56:40.780993デフォルトの名無しさん
2013/05/06(月) 03:57:42.250994デフォルトの名無しさん
2013/05/06(月) 04:06:14.41の代わりなら全部getでよい。
0995デフォルトの名無しさん
2013/05/06(月) 04:08:42.05有名なデスクトップアプリ挙げれば良いんだろ?
C++が明らかに有利だけど意味あるの?
ちょっと検索して見つけたのは
Mozilla Thunderbird
Komodo Editor
0996デフォルトの名無しさん
2013/05/06(月) 04:15:33.90ライブラリによってcallだったりapplyだったりfだったりしそう
で、同じクロージャなのに、あっちのライブラリでは使えるけど
こっちには使えないとか発生しそう
0997デフォルトの名無しさん
2013/05/06(月) 04:18:10.50超些細な問題。
どうせドット押せばわかること。
0998デフォルトの名無しさん
2013/05/06(月) 04:22:29.730999デフォルトの名無しさん
2013/05/06(月) 04:32:22.73誰得の展開なんだよ
1000結論
2013/05/06(月) 04:34:03.6610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。