[JavaScript,PHP] スクリプト言語33 [Perl,Python]
JavaScript, Perl, PHP, Python, …
スクリプト言語をすべて扱うスレッドです。
最強のスクリプト言語は、どれよ?
さあ、死ぬまで語りやがれ!!!
■ スクリプト言語の用途
簡易Webアプリ、シェルスクリプト
■ スクリプト言語の特徴
1レスで書ける程度の使い捨ての短いコードなら作成が容易だが
実行速度は劣っており、2人以上の開発、1000行を超えるソースコード、
10ファイル以上からなるソースコード、大規模になればなるほど
修正時の影響範囲の把握が困難で簡単なスペルミスが
発見しづらいバグを生み、IDEなどの静的解析ツールの適用が難しく
何から何まで人手でやらなければならずプログラマの負担が大きい。
・インタプリタ
・動的型
・正規表現
・クロージャ
などを利用できるものがある。
1レスには収まらないが100行程度の短いコードはここで
ttp://play.island.ac/codepaste/ http://toro.2ch.net/test/read.cgi/tech/1365250318/
さりげなくスレタイからRubyを抜くなw
残念入らなかった。
前スレ
>>999 > リスト内包は集合論とかの数式を見慣れた人には分かりやすいよね
短い場合はそうだと思うけど、
長くなった場合は見にくいよ。
多分その理由は思考の流れと逆に書くからだと思うな。
ディレクトリのように、前から絞り込んでいくやりかたと
後ろから絞り込んでいくやり方がある。
長い場合は、前から絞り込むほうが理にかなっている。
例えばドメインは、後ろから絞り込んでいくやり方だけど
パスの部分は前から絞り込んでいくやり方になってる。
住所を真似して後ろから絞り込んだのはいいが、
途中(パスの部分)で破綻したのではないかな。
GUIのメニューやCSSのセレクタも前から絞り込んでるね。
英語の文化のせいで後ろから絞り込むやり方が存在するけど、
論理的に考えたら前から絞り込むほうがいいのだろう。
日本語は基本的に前から絞り込む文化。
リスト内包表記 [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] 面白いことに、既存の文法に近い形になってしまう。
>>1 は勝手に内容を変えてんじゃねーよ
スクリプト言語に対する偏見が強すぎるわ
ていうか、前スレでコード書けなかったアホだろ
>>1 は?
「俺はコード書くほど暇人じゃない」とか言っといて
わざわざ文章改悪してスレ立てまでやってんのかよ
ビックリするほど暇人じゃねーか
少し修正 [for (x in A) if (x % 2 == 0) x * 2]
>>8 で思ったんだけど
[x * 2 for (x in A) if (x % 2 == 0)]
こう書いたほうが見やすくね?
こうじゃねーの? [x * 2 for (x in A if (x % 2 == 0) )]
>>5 数学の素養の無いドカタは
無理に内包表記を使う必要は無いよ
>>11 典型的だね。
何も言えないから、とりあえず馬鹿にして満足感を得る。
別にどれも変わらねーよ くだらねえなあ 次いでに普通のforでも変わらねーよ
リスト内包表記の方が効率が良い 入れ子は避けるべきだが、ここで挙がってるのは論外 リスト内包表記をディスるためにわざわざ一つの式を格好で括るとか 少なくともpythonではないな。前スレでC的な書き方が分かりやすくて良いとか言ってたC脳だろうが
効率が効率がって、公式実装がC言語の100倍遅い言語で言われましてもw
効率は変わらんよw
集合は {x| x は偶数 } って書くから x が左に来てないとすわりが悪いかな
うーん、そういう文脈でCを使われるのはなぁ C使う人間の全てがアホではないよ 前スレのアホは底なしの低能だが
haskellの内包表記こそが至高 forなどというキーワードを使うpythonは数学に慣れてると見にくい
リスト内包表記はリストを返すが、繰り返し文でリスト末尾に追加していくより効率が良い 条件分岐がある場合、最初に必要な長さを指定して確保しておくことはできない
>>20 >>11 典型的だね。
何も言えないから、とりあえず馬鹿にして満足感を得る。
どうだろう双方向リストなら末尾付加のコストは普通に定数だよね
{x| x は偶数 } なんでこんな単純なものが [x for x in A if x % 2 == 0] こんな風に複雑になるのかね? [x | isEven(x) ] ここまで単純化してやっと 数学っぽいといえると思うんだが?
ジェネレータ式の効率が良すぎてどうでもいい
ちょっと簡潔にかけるとか数学に似てるとか つまんないことで満足してればいいよ
上で言われてるようにジェネレータにもできるからメモリ効率も良い使い方ができる
>>24 関数呼び出しのコストがあるのでオーダーで考えてるんだろうけど実際は係数って無視できないくらい効いてくるので。
>>25 それなら見やすいと思うね。
でもごちゃごちゃしていたら見にくい。
そこが内包表記の限界なのだろう。
30 :
デフォルトの名無しさん :2013/05/03(金) 15:04:38.96
>>28 定数オーダーの末尾付加によるリストの作成が無視できないような状況で
pythonとかって、あんまり想像がつかないんだけど
内包表記は数学の式まで完結化できる pythonの場合はfor文を使えるようにしてる
>>25 え?式の外でdomainを明示してるんじゃなかったら
数学でもdomainを書く必要があるよ?
>>28 > 上で言われてるようにジェネレータにもできるからメモリ効率も良い使い方ができる
ループで回してもメモリ効率いいと思うけど?
本質的には値を入れた配列を作らずに
値を計算で求めるってだけだし。
>>30 リスト内包表記を使った方が効率が良いという話
実際に比べればわかるし、内包表記を使わない理由がないのだが
{x| x∈A ∧x≡0 (mod 2)} これが数学かな
>>34 その効率の良さも無視できるレベルって話
ジェネレータも呼び出しを遅延させてるだけで
実際はそんな便利な場面は少ない
お前が無視したいだけだろw無視する意味がわからん itertoolsと組み合わせて使いどころありまくりだわ
これも数学だよね? {x| x は A に含まれる かつ x は 2で割った時のあまりが0} 何が言いたいかというと、数学は記号を使っているから 見やすいのであって、それを言葉(日本語英語関係ない)に するととたんに見づらくなるということ
>>37 勉強しなおしたが答えは同じだった。
はい、君のターン
○○しろとかいって、自分のターンを飛ばすやつ多いよねw
ぼくのかんがえた究極数学猿真似言語 {x| x (- A /\ x _= 0 (mod 2)}
var x = []; for(i=0; i < A.length; i++) { if(i % 2) { x.push(i); } } まあこれでなんの問題もないし、読みやすいし パフォーマンスもpythonより速いよ
>>42 うん。だから
頭から絞り込む方法も
後ろから絞り込む方法も
所詮慣れでしかないんだよ。
で、何故か世の中の多くは
頭から絞り込んでいく方法。
多くの人が慣れているのは
頭から絞り込む方法だってことさ。
数学かどうかは、記号を使うかどうかだから
記号を使って頭から絞り込むのが一番見やすい。
>>35 情報量が違う式を比べて「数学と比べて複雑」とか言ってるアホ(
>>25 )が滑稽だなって
やっぱりドカタはそういう基本的な事が分からないんだね
>>44 これのほうが良い。だんだん内包表記に似てきたね。
for(i in A) if(isEven(i)) x.push(i);
>>48 正直、何 が 良 い の か 分 か ら な い
全く同じだろ?
ちょっと簡潔になってるだけだろ
そんなくだらない上っ面だけ見て満足なの?
>>49 V8エンジンなら最適化されてるから、CPythonより速い
forやifの一行でも必ず {} でくくること という変なコーディング規約をなくせば 内包表記とほとんど変わらなくなる。 もっとも必ず {} でくくること。の理由にも 賛同できるので、 {}でくくらない場合は一行で書くこと 改行を入れるときは必ず{}でくくること。 というコーディング規約を推奨する。
>>48 みたいな糞コードを量産するねがJS厨だなあ
>>50 え? 完結に書くことは重要だよ。
それだけ読む量が少ないってことだから。
>>53 やっとこのスレに気づいたか
いつものアンチJS厨さんよぉw
>>54 文字数・行数の少なさと、理解する量の多さは違う
読む量(理解量みたいなもの)と理解するスピードは、
少なくとも俺の場合はほぼ全く一緒なのだが
一行に複数のブロックがあるから気持ち悪いんだな その場合、結果が先行して書かれた方がわかりやすい
>>52 リスト内包表記に嫉妬しすぎ。お前の代替案は醜すぎ
>>56 100行コードを読むのと、それを関数にして読む場合の
理解のスピードが同じだって?
じゃあお前は関数使うなw
知識を使って読むべきコードを減らすのが関数の利点。
一連のコードを知識に置き換えることで読む量を減らす。
lengthまでiをインクリメントしていく。をinの一言で、
(i % 2)==0 を isEvenの一言にすることで、
読むべきコードを減らして、理解するスピードをアップさせている。
例えば if (x % 2 == 0) { hoge; } と if (x % 2 == 0) hoge; では後者がいいとかって話と一緒 どっちが早く理解できるか競争する大会があったとして、出場者の平均タイムは どっちも同じだわいみたいなw
>>59 意味のあるときは関数使うよ
でも、今回の場合、難解度に差はない
>>57 > その場合、結果が先行して書かれた方がわかりやすい
それは慣れの問題だってさ。
英語と日本語の問題と話が全く一緒になった。
結論を頭に持ってくるのが英語風
結論を最後に持ってくるのが日本語風
>>58 醜すぎの理由が書いてない時点で、お前の嫉妬にしか見えんな。
>>60 Perlだと両方かけるよね。
if (x % 2 == 0) hoge;
と
hoge if (x % 2 == 0);
どっちもコンパイルに通る。
この二つに違いはない。
内包表記はfor文を簡潔にするけど、複雑な処理まで簡略化はしてくれない 結果、上っ面が簡潔になっただけで、たいして理解力は向上していない
x % 2 == 0 は慣用句になってるけど 普通は関数にしたほうが読みやすいよ。 「フィボナッチ数列」と一言いうだけで どんな数列かわかるだろう? この数式なんだっけ? あぁ、フィボナッチ数列か。 みたいな考える時間が要らなくなる。
複雑な処理を簡潔にする魔法があるのかよ 上っ面とは物は言い様だな。それぞれのパーツを簡潔にするのが唯一の方法だし pythonは設計も習慣もそういうスタンス めちゃくちゃなJSが何か言ってることに非常に違和感がある
>>65 結局そこなんだよ
ぶっちゃけ、for文が長いと言っても慣用句なんだよ
長い慣用句を簡潔な単語で表したところで、
理解力は上がらないんだよ
タイプ量が少なくて済むけど、コピペとかsnippetとかもあるしねえ
>>67 なにいってんだばか?
処理を実行するのはコンピュータ
正確だから処理が複雑かどうかは関係ない。
人間にとって重要なのは、その処理を
どれだけ簡素に見せられるかどうかだろ。
お前はコンピュータか?人間か?言ってみろ。
>>65 関数化よいよね。しかしアホには限界が…
ちなみにipythonでallclose?と入力したらヘルプが表示されるから安心
986/1001:デフォルトの名無しさん[sage]
2013/05/03(金) 10:13:47.88
>>985 しかし現実は
「allclose?mean?axis?arrayで囲ってる?xsとys交換してから比較?linalg?norm?」
Pythonのコードは知的教養レベルが高い人が抽象的な言葉でわけのわからん議論をしてるのに
似てるw
ただ、その割には他の言語でもたいして大変じゃないんだよなあ
>>67 魔法なんてないよ
だから、大差はない
結局ライブラリの差
pythonは今のところ数値計算のライブラリは揃っているけど
内包表記やらが優れているわけではない
>>68 おいおい、お前の言ってる「長い」は
せいぜい20文字ぐらいで限界だろうがw
>>71 当たり前だろ。りすとこんぷりへんしょんなんて今日びまともな言語なら必ず備えてる
標準的な便利機能でしかない。それをできない言語が劣ってるだけ
for文のように書けるというのはよく考えられてるけどね
内包表記もインデックス演算子のオーバーロードもipythonの使い易さも それぞれは小さい、人によっては無視できる程度の違いにすぎない。 しかし、そういう物の積み重ねがアルゴリズムを記述したいユーザをPythonに引きつけ、 Pythonにはnumpy, scipyを作るようなユーザが集まる一方で、 Javascriptにはnumpyが産まれる兆しすら無いのに繋がっている。
>>73 1.それが出来ない言語とは?
2.それが出来ない言語で簡単にかけない例は?
(ライブラリを使って簡単にかけることなら却下)
この二つを説明できて
初めて説得力があるというもの。
>>73 お前、天才集団Googleさんに喧嘩売ってるの?
演算子のオーバーロードなんていらねえ!
リスト内包表記なんていらねえ!
Cのように書けば良い!
>>75 このスレに挙がってるリスト内包表記の代替案とかw
挙げ句にわざわざ醜くしてリスト内包表記に似せる始末
JavaScriptで生まれてるのは ゲームやウェブアプリやウェブシステムだからな。 そういう人たちを惹きつける言語というわけか。
二年後って、JSはずいぶん遅れてるんだねえ。まあそれもお得意の妄想だろうけど ともかく未来にすがるしかないなんて現在の現実ではどうしようもない糞言語なんだろうな
>>79 > このスレに挙がってるリスト内包表記の代替案とかw
> 挙げ句にわざわざ醜くしてリスト内包表記に似せる始末
へ? 普通の書き方じゃね?
うーん、何処にも変な所が見られない。
for(i in A) if(i % 2 == 0) x.push(i);
>>79 実際要らないんじゃないかねえ
天才集団が作った言語、GoやDartにはどちらもないしさ
Cやフォートランと仲良しの言語じゃないとダメだよ JSは低レベルな計算とは切り離されてるから無理
>>81 でもPythonで作られたものよりか
JavaScriptで作られたもののほうが
今は多いよ。
>>84 JavaScriptが低レベルな計算と切り離されてるってのがよくわからん。
高レベルな計算は出来るってことだよな?
低レベルな計算ってなんのことだ?
Javascriptは最近までブラウザの中の言語だったからね C言語なんかと連携できるようになったのも最近の話だし、 パフォーマンスが良くなったのも最近 だから、確かに今はクリティカルな数値計算をしようとする人が少ない ただ、V8の登場、node.jsで状況は一変した 兆しは確実にある
int型の計算のことだろ? まあそれもInt32ArrayなどのTyped Array(ブラウザに既に実装済み)で できるようになったけど。
やっぱり低レベルが通じない馬鹿がJSを擁護してた
確かに低レベル。前スレからJS厨のレベルの低さが目立つ
JavaScriptが登場したのは1995年だからね。 重要なのは開発スピード この数年は、衰えるどころかスピードアップしている
確かに新しい言語に内包表記も演算子オーバーロードも入れないGoogleは低レベルだよね
アンチJSが低レベルだと認められる理由。 何も内容がないレスをするから。
>>82 JS厨な俺としても、その記法で必須なxの初期化を省いてるのが気になる
>>94 というか、JS厨の俺から見るとvar省いてるのとin使ってるのが気になる
つか、こいつJS知らんだろ
>>92 それ、どこがpythonより優れてんの?天才集団とか権威主義のカスは死んでいいぞ
使ってから喋れ
pythonもJavascriptも使い倒した上で天才集団が新しく作った言語に 文句あるの? 権威主義ですが何か?
あ、アホな方のJS厨はJSすら知らないのかw
まあ本質とは全く関係のないくだらん揚げ足取りだからあえて指摘しなかったけど
>>97 開き直ったら正当化してんのかよ
goとdartを使ってから擁護しろと言ってんたよ
いつから
>>82 がJavaScriptだと思い込んでいた?wwww
自分がろくに書けない言語の厨になるとはレベル高いなw
敵は皆JS厨じゃあー! 見るもの全部、JavaScriptじゃあー!
訂正:正当化してんのかよ→正当化されるのかよ
ぶっちゃけ、アホの方のJS厨は LLスレだった頃から度々書き込んでたJavaドカタだと思う
>>100 俺が使おうが使うまいが真実は変わらんだろ?
>>105 説得力ありすぎてこまるw
邪魔すぎてスレタイ変更で追い出されたからな
>>105 ぶっちゃけ、アホな方のアンチJSは妄想癖があると思う
>>106 何が真実かも説明できないやつが何言ってんだ?お話にならない
>>109 真実は、PythonもJavascriptも知り尽くした天才集団が新しく作った言語に
演算子オーバーロードと内包表記が採用されなかったということ
つまり、こんな機能はいらないんだよ
こんなゴミ機能で喜んでる奴はバカ
>>107 皆で一斉にJavaをdisり始めたら、急にJavaを擁護し始めそうだねw
もしかして、内包表記を執拗にdisるのも、Javaに無い機能をdisってるのかも
>>110 で、どこがどう優れてるんだ?
前スレのお題をその2つで綺麗に書いてくれ
goはかなり特殊な言語でオブジェクト思考プログラミングすら、他の言語のようにはしない
コードは冗長になりがち。Cの代替になれるかどうか
dartとかもうどうしようもない言語だと思うが
誰もJava Disに参加しないのであったw 一人でやってろアホ
Java8も延期になったし、言語自体も古くさくてゴミ いまさらdisるのも馬鹿馬鹿しい程ウンコ
最近思ってもみなかったところから白熱するねこのスレ
敵を見つけないといけないから可哀想だよね。 このスレではJSが敵か。 敵を叩くことで精一杯。 何もためになる話をしない。
>>112 俺がその二つで奇麗に書こうが書くまいが真実は全く変わらないのだが?
説得力が欲しいならお前がどうしても汚くなってしまうことをソースで書いてみせれば良いだろ
俺はやらないよ
天才集団が新しく作ったというだけで十分な説得力だし
>>117 > 俺はやらないよ
コード書けない低能だからねw
やりたくても無理だね
どうせ、112は長くなった行数を見て冗長だとか可読性が無いとか言い出す奴だろ
JS厨あらためgo厨 or Dart厨かw
goは何か少ない機能だな。必要最低限というか リスト内包表記的なことはmapでやるっぽいな その方法はpythonでもできるけどリスト内包表記を使った方が可読性面で良いとされてる
>>121 javascriptもそんな感じ
クロージャ使ってmap
表記はあくまで表記であり 機能ではないから その機能は別の表記できるんだよな。
>>122 その逃げ回りっぷりを批判されてるってわからんの
自分より先にってなんだよ。こっちに示すもんねーだろ馬鹿か
>>123 今回の流れでJS触ったがクロージャはマジで当たり前のように外部変数壊しててやばいと思った
リスト内包表記はそんなことできない
JSも嫌いじゃないから、こんなアホが使ってると思いたく無かったわ あーよかった そうかー、JS厨じゃなくて偽プログラマだったのか
>>126 むしろそれが出来るからこそ、クラスの代替になるんだけどね
クロージャはJSの中でもみんなが絶賛してる機能
メリットの方が大きい
そりゃJSプログラマがみんなこんなんだったら世界が崩壊してる
>>128 それは制約上の妥協点でしかなくで
関数でクラスの代替?とかやってるのが端から見たら終わってて
普通のクラスじゃダメな理由がわからない
>>125 お前も逃げてるじゃん
示すものがない?
天才集団に楯突くからには、ソース示した方が説得力あるだろw
Pythonのソースだってお前が書いたソースじゃないだろ
アンチJSはまさに虎の威を借る狐
>>130 まあ分かりにくいだろうね
これのおかげで、ブラウザのイベント処理とか、非同期処理とかが
うまく扱えて、インターネットと非常に相性が良かったわけで
今また盛り上がってきてるのにつながるわけだけど
実際に書かないとこれは実感できない
> 天才集団に楯突くからには、 > まさに虎の威を借る狐 ブーメランすぎるwww
>>131 JS厨ってお前みたいな馬鹿しかいないんだな
何がどう優れてるのか示せない限りただの幻想じゃん
JSでは勝てないから自分も知らない言語に逃げるクズ
JSというかHTML5の熱烈指支持者、アルファブロガーっていうのキュレーターだっけ?アーリーアダプターか?スタバでMac使ってる連中の言うことを真に受けちゃったんだろう。
ちょっと俺がJS厨のフリして煽ったら 見ないうちに荒れやがってw ほんと仲間はすぐに寄ってくるな。
numpy.jsがあったらこんな雰囲気になるんだろうな var numpy = require(numpy); function kmeans(data, K) { var xs = random.randint(0, K, data.length), ys = zeros(data.length) while (!allclose(xs, ys)) { for (var k = 0, ms = []; k < K; k++) { ms.push(mean(at(data, xs, function(x) {return x==k;})), {axis: 0}); } ys = xs; for (var i = 0, xs = []; i < data.length; i++) { for (var j = 0, ts = []; j < ms.length; j++) { ts.push(linalg.norm(data[i].sub(ms[j]))); } xs.push(nanargmin(ts)); } } return xs; } やっぱりたいして変わらない ライブラリの違い
JS厨は毎日これ 妄想を垂れ流す、今勝てないから未来(妄想)にすがる、見知らぬ権威に頼る 自分の知識は関係ないと言う、無知だからデタラメしか言えない 筋金入りのペテン師、といっても始めから誰も信用してないけど ライブラリの違いが致命的であることを理解できない馬鹿 railsかなんで流行ったと思ってるんだ。まあCと相性悪い点も汎用言語としては論外だし 妄想が実現することは一生ないけど
>>133 少なくとも、内包表記と演算子オーバーロードがないことくらいは知ってたから
お前よりはマシじゃね?w
>>138 なんで劣ってる点を挙げて優れてると主張するんだ?キチガイか?
>>137 お前は毎日それを言って過ごしてるってことだなw
>>139 劣ってる?
採用されていないんだから、必要ない機能ってことだろ
つまり、劣ってないということ
むしろある方が劣ってるってこと
>>136 そのライブラリの有無が重要なんだと思う
ライブラリを除いた狭義の言語だけ扱っていても
その言語で「実際に」何ができるのかはわからないし
>>142 まあもちろんそうなんだけど、これは歴史的に見てしょうがない気がする
数値計算はまだはっきりと苦手分野
状況が一変し始めてる段階
>>142 ライブラリを比較って意味では、scipy使えばコード書く必要すら無いんだよねkmeans...
>>141 それは反証できない、お前お得意の詐欺だか
現にそれらの機能は広く使われて恩恵がある
リスト内包表記やC#のLINQがないほうが良いとか言ってる天才はいない
だからお前がないほうが良い理由を説明できないならそれはただの欠点でしかない
>>144 kmeans関数さえあればね
それってライブラリさえあればJSでもなんでも変わらんということだけど
>>145 採用されなかった
その事実だけで十分説得力を持つから俺はそれ以上何か言う気はないね
詐欺だと勝手に思いたければ思ってれば?
>>146 説得力のある説明ができないなら、リスト内包表記や演算子がない点については欠陥があるということだから
それ以外で何がなぜ優れてるのか説明しないとお前の論は何も通らない
天才が失敗した、それだけ。
ライブラリさえあればー、誰か膨大なライブラリを用意してくれー、誰かー、JSをまともな言語にしてくれー
かつてSunに居た天才達は、Javaをデザインするときに 「ブルーカラーでも使えるように」様々な機能を削ってJavaを作った 何が言いたいか分かるな?
>>147 説得力ある説明してるしw
何を言っても無駄とはまさにこのことw
まさか、Pythonを使いこなしているGoogleがそれらの機能を知らないはずがないしな
Googleコーディング規約でも実はネストした内包表記禁止してるくらいだし、
少なくともまともに検討した結果、無い方が良いと判断したのは確実
仮にお前の言うように失敗だったとしても、それなりに根拠があるってこと
本当はそんなに喜ぶほどの価値はないんだよ
>>149 ポインタは危険だったね。メモリ管理は大変だったね
つまりデメリットを説明しないかきりお前とGoogleは完全に間違ってるということ
>>151 Googleが完全に間違ってるかどうかは
俺が説明できるかどうかにかかってるのか
すげえな俺
神かw
内包表記は数学の素養がない馬鹿にとって可読性が低い (自分が使わなくても、他人が書いたコードは読む必要がある) だから馬鹿対策で機能を削った 自分達はPythonやC++を使うから、馬鹿は低能向けの言語使っとけってことだ
>>153 C++には内包表記はないぞ
Pythonにしても、自分たちが使うコーディング規約で内包表記は単純なものだけにしましょう
と言ってるし
>>150 なんでGoogle事情に詳しいお前が採用しなかった理由を説明できないんだ
あと演算子オーバーロードの恩恵を理解できないとかバカすぎ
いろんな自作クラスに対して直感的な記述は不可能になる
これは科学技術分野では特にありがたい機能だ。だから、Googleの言語はJS同様に劣った言語なんだな
>>149 > 何が言いたいか分かるな?
嘘を言いたいんでしょう?
>>155 そう思いたければ思えば良い
科学技術に長けたGoogleがC/C++の代替を目指した言語で採用しなかった
お前より頭がいい奴はそう思ってるってだけ
>>156 そして、スタイルガイドにこう記述することになる
「特殊な状況を除き、演算子をオーバーロードしてはいけません。」
理由も載ってるからググってこいよw
Google Python Style Guide より List Comprehensions の項を引用 > Pros: > Simple list comprehensions can be clearer and simpler than other list creation techniques. > Generator expressions can be very efficient, since they avoid the creation of a list entirely. > Cons: > Complicated list comprehensions or generator expressions can be hard to read. 複雑な場合に読み難いってだけじゃなく、 シンプルな場合は他の方法よりシンプルで明快だと書いてるね さらにジェネレータ式は効率的だとも
PHPer(何を議論しているのかさっぱり分からん・・・^p^)
>>160 次のターゲットかい?
お前も懲りないね。
>>159 can beって書いてあるように
あくまで良い場合もあるってだけ
言語に組み込むほどの良さでもないんだろう
悪い面の方がむしろあるってことなんだろうね
内包表記のネストを避けるのはgoogleだけじゃなくpythonコミュニティ全体の話だ
そんな暗黙のルールはどの言語にもある
>>158 Pythonはお前より頭の良い奴が作ったんだから
お前はPythonに一切の文句を言えないはずだが?
python開発者より馬鹿な奴がpython批判っておかしくないですか お前が何を言ってもpythonの設計は正しいということですよね 誰よりも頭が悪いお前は何しにここに来てんだ
>>162 その通り。can beって書いてあるように
あくまで複雑な内包表記でも読み難くなる場合もあるってだけ
>>158 え?goは科学技術分野の言語ではないと思うが
googleに詳しいお前の公式見解を聞きたい
まあ、python作った当時の作者なら俺の方が 新しい言語を知ってる分、この分野に関しての知恵はあるだろうな pythonの人とやらも今新しく言語を作るなら内包表記採用しないかもなw googleの場合は歴史的な試行錯誤の末、今採用してないわけでw
リスト内包表記やLINQを批判してるまともなプログラマなんて見たことないよ
俺達はいつまでこの既知外の相手をしなければいけないの?
ちゃっかりLINQを混ぜて何がしたいんだ LINQなんて採用されてなさすぎだろw
>>167 googleが間違った。正解だというのなら証拠見せろ
また未来に頼るのか?お前そればっかだな
事実ベースで語るならそんなのを正解として出すほうが馬鹿。天才だからーって阿呆か
goやdartの設計思想も説明できないしさあ、お前ゴミすぎるだろ。反論できる?
>>171 いや、だから、俺は証拠を見せる必要がないと思うから
しないだけ
今の時代にGoogleが間違ったってかw
へー説得力ありますなあ
実際Google言語はまだ主流じゃないし、馬鹿みたいに正しい言語と言われても嘘っぱちにしかならない
JSでは勝てなくて逃げ惑う、説明を求められ逃げ回る。これだけ
http://golang.jp/go_faq#overloading > メソッドと演算子のオーバロードをサポートしていない理由は?
>
> メソッドを呼び出す際に、メソッドの型をいちいち調べしなくてよい方がシンプルです。
> 他の言語に接した経験から言えることは、同じ名前で、かつシグネチャが異なるメソッドの寄せ集めを持つことは、
> ときに役に立ちますが、混乱を招くだけで充分に機能しません。
> 型の中で、メソッドが名前だけで検索できるよう制約を課すことは、Go言語の型システムを単純な仕組みにする上での大きな決断でした。
Javaを含む殆どの静的型付けOOPLを全否定だな
これがGoogleの天才が出した結論か
それが吉と出るか凶と出るかわからないのだが、お前が正しいと思う根拠は何?
googleがこう言ってるからって自己の無いただのgoogleの代弁者のくせにこの底抜けバカっぷりがすごい 何も理解せずに行き当たりばったりで喋るからこうなる
主流になることには失敗するかもな 仕様の善し悪しより人気や宣伝の面もあるし ただ、自分たちが使うことも念頭において開発してる言語だし、 真剣に検討した結果であることは間違いない 仮にそう決断したことが悪い判断だったとしても、 お前が言うように手放しで喜べるような単純なもんでもなく 議論が裏にあるってことだ 少なくとも、浅い考えで「内包表記がないー、オーバーロードがないー 話にならないー、全然違うー」 なんて話ではない むしろ、そんなものあってもなくても実は生産性に大差はないんだよというのが 説得力を持つ
> 演算子のオーバーロードに関しては、絶対に必要というより、あれば便利という程度であり、 > 採用しないことでシンプルさを保ちました。 そしてメソッドのオーバーロードは結構批判的なのに、 演算子オーバーロードはそうでもないという
失敗したら説得力ねーよw
>>179 C++スタイルガイド見てこいよ
かなり批判的
>>181 見て来た
> 演算子をオーバーロードするとコードは直感的にわかりやすくなりますが、次のような欠点もあります。
>
> ・コストの高い操作なのに、コストの安い組み込み操作だと思わせてしまう。
> ・オーバーロードした演算子を呼び出している場所を見つけるのが非常に困難になる。== の呼び出しを探すよりも Equals() を探す方がはるかに簡単です。
> ・ポインタにも機能する演算子があるが、これらはバグを生みやすい。Foo + 4 がやることと、&Foo + 4 がやることは全く違います。コンパイラはどちらにも警告を出さないため、デバッグは非常に難しくなります。
> ・オーバーロードには想定外の悪影響もあります。たとえばクラスが単項 operator& をオーバーロードしていると、クラスは安全に前方宣言できません。
基本的に2番目以外はC++固有の問題だと思う
>>178 が必死に話を有耶無耶にしようとしてるところ悪いけどさあ
一長一短あるならリスト内包表記がなければ優れてるとかいう馬鹿な主張をしてる
お前は本当に救いようがない馬鹿だということを自白してることになるし
リスト内包表記やオーバーロードの有用性は未だに否定されてないのだが
ぶっちゃけ、内包表記と演算子オーバーロードがなくても
>>136 レベルの簡潔さにはなるんだろ
十分許容範囲だわw
理解に大きな差が出るとは思えない
>>182 そうかね、一番目は明らかに固有じゃない気がするし、3番や4番も
同類の問題が出てきそうだけど
>>183 有用性とデメリットがあってそのバランスを取った結果採用されなかったってことだろw
C++の演算子オーバーロードはややこしい Pythonはシンプルだし。むしろ無いと困る というかどうせ代替のメソッドを定義することになるが こうすると式に一貫性がなくなる
まあ、人気が言語の良し悪しだと言いたいなら、 お前の嫌いなJavaがPythonより良い言語ってことになるけどいいの?w
>>184 Googleの天才は採用しなかった、他の天才は採用した
なんでGoogleが一方的に正しいんだ?馬鹿?
>>186 メソッドのオーバーロードがあるJavaなんて
Googleの天才達によって否定済みですけど?
>>186 実際Javaの汎用性やそれに伴うライブラリの豊富さは強いだろ
それに対してPythonはPythonの良さがあると言えるわけ
一ミリも知らない言語をgoogleが作ったから良いと言っちゃう馬鹿と一緒くたにしないでほしいわけ
>>187 一方的に正しいとか、まあそこまでは言ってない
他が天才かどうかは知らんが、仮にそうだとしても、意見が割れてるのは確かだ
その時点で、内包表記の有用性はかなり怪しいものになるんだよ
>>188 そうだね
人気がある方が正しいと考える君の考えは
ここでもGoogleに否定されたわけだ
DartやGoは今のところ人気はない
ただ、だからといって正しくないとは言えない
>>189 結局仕様の良し悪しじゃないじゃんw
>>184 一番目も、C++の場合、オーバーロード無しで演算子が出来る事は
Cと同じだから低コストと思うワケで、
高コストな操作(文字列やリストの連結等)が演算子で書ける言語の場合
演算子だから低コストなんて思わないよ
だから前提からしてC++固有とまでいかなくても、最近の言語には当てはまらない話
>>190 Javaの仕様の悪いところやPythonの仕様の良いところも馬鹿なお前と違って言えるし
それは議論されつくされてる。リスト内包表記が無い方がいいとか言ってる馬鹿はいないけど
実際正解してないgoogleを正解例としてpython批判してる馬鹿が
問題となるコードを例によって一回も出してくれないしこれからも一生出さないと思うと呆れるしか無い
JavaとJavascriptがウンコって結論になれば 別にGoが最高の言語という結論になっても構わない俺がいるw
言語を一ミリも知らないのはどっちだw
本当は、「まともなプログラマーなら、内包表記や演算子オーバーロードを採用して当たり前!
主要な新しい言語は全部そう!」って思ってたんだろw
正直になれよw
>>191 一番有名な例であるiostreamからして高コストなioだからなあ
JS絶賛から逃げ出して苦し紛れにGoogle擁護してるゴミがどこまで頑張るか観察したい 頑張ってると言っても正しさは一切ないけど
>>195 まあ別に逃げ出してないし、
俺がどこまで頑張ろうとJSの時代が来ることは変わらんわけでw
指をくわえてみてると良いよw
>>193 そこなんだよな
逆に言えばJS厨はJSが糞だという結論に落ち着きかけたから
Googleをスケープゴートとして使ってるだけ
Googleの言語はまだまだだし、JSが科学で使い物にならないという事実は明らかなのに
>>197 いつ結論が出たんだよw
お前が勝手に勝利宣言してるけど、
真実はライブラリがないだけで、JS自体はちっとも糞ではなく、
これからどんどんライブラリが出ることも確定してるってことだ
>>196 ほら、今がショボいことを認めたくないから現実逃避を続けてるじゃん
はい、今はライブラリがなくて完敗宣言っと
え?確定してんの?
>>199 いや、今はしょぼいよ
数値計算のライブラリがないという点でな
ただ、ウェブ関連は充実してるし、これから
数値計算もこれからしょぼくなくなるけど
>>200 今だけなw
良かったなw
>>201 まあ分かる奴には分かる
ヤバいよ
マジで来る
確定してるわけないだろ。大規模なライブラリはブラッシュアップに時間がかかるし 万が一、数年後にまともなライブラリができるとして今JSを使う必要性はまったくない 完成してから吠えてくれw
数値計算で今JS使わなくても良いのは確か というかまず、充実したC++ライブラリのラッパーがくるんじゃないかね
だからー、演算子オーバーロードがないと式の記述が不自然になるんだってw JSは一生ねーよ
C++のラッパー作るだけで良ければ今頃どの言語にもscipy相当があるよ Railsクローンが色んな言語にあるようにな なのに、scipy相当がPythonにしか無い時点で察しろって話
>>205 まあそういう奴も安心
なんせ別言語が定義できるくらいだから、別の言語が使えるようになるよ
俺は直接JS使うけどw
>>207 君は科学技術計算に縁のない底辺ドカタなんだから
最初から関係ないよ
いつまでもJSを使っててくれて構わない
>>208 確かにあんまり縁がなかったわw
万一今科学計算が必要でも別にC++やpython使うから良いけどw
使うなよ気持ち悪い
Scipyっての知らなかったけど、面白いな 遺伝的アルゴリズムとかもあるのか ちょっと遊ぶのにいいかもしれん このスレでJavascriptの良さを力説するのも無駄じゃなかったw
馬鹿の上にこの気持ち悪さ これは凄い
伸びてるから何かと思ったら 数値計算向けの言語pythonで数値計算のお題出して しかもライブラリ借りて解いて喜んでいるのか dom操作のお題出したあとjQuery使って解いて Javascriptスゲーと言ってるようなもんだわ
しかも、Javascriptに一時間程度で簡単に解かれちゃってたw
Linuxのシステムの一部でも使われてるのにそれは無理があるわなあ 実際JSってあらゆる普段使いに向かないんだからさ
まあ、pythonが数値計算向けってのはちょっと違うな もともとは汎用スクリプト言語 JSはブラウザ用言語だったが、今となっては広範囲に使える汎用言語 ただ、数値計算は凄いライブラリがある関係上、pythonが今のところ有利
>>213 御題出したのはJS厨
で、解いたんだからお前も解けという流れ
いやJS厨もライブラリ絶賛しまくりだったのに 返り討ちに合った途端にライブラリがある問題はダメってなんなん 自演下手過ぎだし
その何でもかんでもJS厨に見える癖、何とかならんのか しかも一人か二人だと思ってるようだし
じゃあ論破された馬鹿な主張を繰り返すのやめろよ馬鹿
JS厨っていうか、壮絶なアホが一匹いる
論破された主張って何のことだよw
JSが科学技術分野で追い付くことはないし 不確定な遠い未来しか武器がないなら黙ってろ
>>221 中身のない中傷を繰り返すアンチJSのことか
>>223 そう思うなら反論する必要がない
余裕こいてれば良いだろ
ライブラリがあれば、どの言語も同じようにかけることが 証明されてしまったからな。 これからどう反論する?
JSがnumpyに追い付く証拠も出さずに妄想を毎日垂れ流す限り一生中傷され続ける 自分がデタラメを並べてると気付いてないわけじゃないだろ 悪ふざけはやめろキチガイ
お題だしたのがJS厨って怪しいな scipyやnumpy知ってたっぽいし、むしろpython厨っぽい
ライブラリの差が 言語の差になってるうちは 言語の優位性なんて語れないぞ。 言語だけの範囲で語ろうぜ。
不確定な未来について好き勝手に論じるなら、 科学技術計算でJavascriptがPythonに追いつく未来より、 asm.jsで中間言語に落ちぶれる未来の方が 遥かに実現する可能性が高そう 少なくとも、asm.jsは既に存在するわけだし、Googleも興味を持ってる
言語の差はライブラリで埋まる 証拠は数々上がっている。
JSは外部の変数を暗示的に変更しまくらないと何もできないヤバい言語と結論でただろ JS厨がpythonに対してスコープは絞るべきとか言ってたのは今考えたら悪うしかない かなり危険な糞仕様
>>232 Javascriptは全然マシだけど、Javaはウンコすぎて無理
関数オブジェクトすらないゴミでは話にならない
やっぱり言語による差はあるよ
>>231 numpyみたいにコアの処理をCに任せればいいだけ
>>235 それがならないんだなぁ。
証拠は数々上がっている。
>>236 うん、簡単だね
今すぐ実装してきて良いぞ
>>234 ちょっと抽象的すぎて良く分からんな
Lintで検出できないようなもんかね?
>>237 おいおい、JavascriptとJavaを一緒にするなよ
ぶっちぎりでゴミだよJavaは
関数オブジェクトが無いんだよ?信じられんわ
>>234 > JSは外部の変数を暗示的に変更しまくらないと何もできないヤバい言語
それ、お前が変更しまくらないと
出来ない無能なんですーって
言ってるだけじゃないかw
>>241 はいはい、必死だね。
世の中にはクラスすらない言語もあるんだよ。
俺頭悪いので分からんから、具体例で説明してくれ
>>234 それがないとクラスも作れないカス言語
pythonでは明示するしコミュニティでは極力避けてるのに
JSは文化的に積極的にやってる。というかそれがないと無理なんだろうな
だとしたら、意味もなく大量のvar宣言せずにクロージャの宣言をしたほうが良い
Java使いでもEgor Kulikovみたいな奴いるしな Egorの1/10もプログラム書けない奴が大半だろ 言語というよりやっぱ個人差の方が大きい
>>245 自分の無知をさらけ出して恥ずかしくないの?w
JavaScriptにはグローバル変数すら無いしね。
>>245 ちょっと具体例で説明して欲しいんだが、
こんな感じのこと?
a = 1;
function() {
a=2; //ああ、変更できちゃったよ!
}
>>244 Cでグローバル変数を使い回すようなもの
それを便利とか言って多様するのは
プログラミング初心者と競技プログラミングだけ
それ以外でもやむを得ず使う場合はあるが
普通は危険な割にメリットが少ないから避ける
>>247 実際に関数を呼び出せば関数外の変数を書き換えるのが当然の言語だろ
違うなら反論よろ
>>249 ちょっと良く分からん
pythonのコード例とjavascriptのコード例を対比させて説明してくれないか?
>>248 そうそうそれのこと。
グローバルな変数を書き換えることができて
それを防ぐ方法がない。
これがJSというカス言語
>>252 防ぐ方法はあるだろ
あんまり変な事書くなよPython使いが皆アホだと思われるだろ
strictモードで防げるじゃん。 やっぱり無知だったか。 アハハハハ
Python使いが皆アホということで結論が出ました はい、撤収ーw
なんだ Perl のパクリか(棒)
あれれ~、var宣言があるからクロージャが楽なんじゃなかったの? その代わり「普通の」関数には宣言がいるのか、トホホ… 危険を承知で糞仕様にしたから、あとから継ぎ接ぎ対策したのか そしたら一層、大量のvar宣言がつくづく無駄でしかないのだが?
>>257 いいから比較して書けよ
話はそれからだ。
無知なPython厨をいたぶるのは楽しいね~w
安全モードがデフォじゃないのは危険な操作が普通に必須だからだろうな
>>259 意味不明。安全モードは英語にしたらsafe modeだ。無知すぎ
JSのデフォである危険モードを対比して言っただけだから
どこから危険モードなんてでてきたんだ? 危険モードが有るんだったら 安全モードがあるのかよ? 無いよ。安全モードなんてねw
え?use strictで防げるのか? JS厨だがそれは知らなかった 通常var忘れるのは防げるが、外の変数とかぶっても防げたのか
strictって日本語に翻訳したら 安全って単語だが? ってどや顔していってほしいwwww
内側の関数に責任を持つのは通常自分なので、ミスさえしなければ 通常問題は起きないのが救い メリットとデメリットを考えるとメリットの方が大きいけど クラスだけではjavascriptはとっくに廃れてた
use strictを使えば通常はvarを強制できる いきなりスペルミスで変数を宣言してしまうpythonの方がよっぽど危険
>>262 デフォは危険だろ。そこは反論できないはずだ
だってそれを防ぐ方法を作ってるんだからw
糞言語すぎ
>>267 頭悪いの?
静的型付け言語が安全って言いたいの?
>>248 そもそもpython以外でこれができない有名言語ってあるの?
静的言語は動的言語より安全だと思うけど 静的言語でもスペルミスによる意図しない変数の変更は防げないだろうねw で、デフォで危険な事実は否定できてないなあ
少なくとも、C/C++、Java、Schemeは出来る
そういえば、Haskellは代入自体が出来ないな
>>266 > いきなりスペルミスで変数を宣言してしまう
どんなコード?
>>273 test = 2
teest = 3 #ああ、testを変えたつもりが新しい変数に!
>>274 もっとちゃんとしたコードにしてくれよ
うちのvim + pyflakes だと、宣言だけして未使用の変数は
警告で色付けされるから一目で分かるんだよ
>>277 よくわからんが、こうすればいいのか?
test = 2
use(test)
teest = 3
use(teest) #変数名の間違いに気づかず補完してしまった!
>>278 補完するときに候補が複数でる(testとteest)から気付くよ
もっと真面目に考えてくれよ
アンチJSの人は結構有用なレスしてくれるようになったな 人格批判ばかりするのとは別人か
JS厨は何人もいるだろうが、アホなJS厨は一人しかいないと思ってる そこでここのアホなJS厨(中傷されてるお前だよ)に聞きたいのだが お前は以外にもアホなJS厨(毎日一日中妄想垂れ流し野郎)はいるのか? お前みたいなのが複数人いるとかさぶいぼ立つけどアホなJS厨は何人いる?
>>284 多分、お前は俺も中傷してるけど、他の奴も中傷してると思う
現実とはそんなもん
なめJS厨はスペルミスによって外部変数が変更されうるという事実に気づかないのだろうか
JS厨は優しさが垣間見える あまり他人の中傷はしない
>>285 つまり、今はライブラリないけど将来は必ずあるとか、
google様が考えた言語と違うから糞言語とか言ってるJS厨が複数人いるのか。うわあ
JS厨やべーな・・・
JS厨は最初は句読点で平静を装って妄想を垂れ流すが 痛いところを疲れると草を生やして開き直って煽りまくる
>>288 お前が中傷してるのはもっと前からだろう?w
>>282 補完って言い出したの
>>278 だが……
それはともかく、エディタやツール類のサポートは一切考慮しないってこと?
ライブラリの件と同じく、そういうのが大事だと思うが……
>>289 それが一人だと思ってるのか
良く規制に引っかからないな
IP使い分けてるのか
スペルミスは言語の責任じゃないけど これだけ使われてる言語にしてはまともな開発環境がないのが問題だよな いっそブラウザに載せればいいのに 今でもChromeのコンソール使うと一応保管や保存できるが 前使った時はどうも挙動があやしいのでやめた 新しいファイルは作れないから 一旦別のエディッタで作ってからみたいになるし
>>291 ちなみに278は283のレスをしてるだろ
>>290 JSは奇跡の言語とかJSで凄い時代になるとか気持ち悪い煽動を始めた辺りから
叩いてるけど懲りずに毎日同じ妄想を垂れ流してる奴が
お前以外にいるのか?おそろしい
あ、あとスペルミスはuse strictして JSエンジンの設定弄ればV8でもFFのやつでも警告でたはず(実行前に) JSでも静的解析はできるがevalとかがある都合上OFFになってる
高機能化して欲しいのになんでブラウザ? 一番高機能なIDEであるVSがブラウザで動いてるところを想像できない
>>293 右クリックの保存の挙動が怪しいの?
今は多分大丈夫と思う
Chrome Canary使ってるけど
>>294 補完が使えるのにコピペなんてしないから、
もっと現実味のある理由を考えて
>>295 俺の前は知らんが、今は俺一人だ
ちなみに俺はソース書いてるJS厨
vimプラグインの補完は凄いと聞く。俺は数行の編集でしか使わないけど あと最近はsublimeのステマをやたら聞く
JSでvarつけ忘れて外部変数とぶつかったらどうなるの?教えて!警告でるの?
>>299 実はダブルクリックの方が補完より速い場合あるから
マウス毛嫌いしてないで試してみ?
vimだから嫌いそうだけど
sublimeは実際凄いよ vimよりいいかも
>>300 ソース書くって、今日も例を示せと数十回言ったけど返ってきた記憶がない
>>305 まあほとんどJSのソースしか書いてないからな
たまに議論のついでにちょろっと小さいコード片をいれるくらい
デタラメを重ねすぎて狼少年にしか見えない
>>297 デバッガとセットになってて欲しいし
HTML上で使う場合はブラウザ使うし
HTMLの画像とか他のファイルも一元管理できた方がよくない?
>>298 今度試してみるかな
とは言え最近はNode.jsばっかり書いてるんだけどね
Node.jsでもブラウザをデバッガとして使うんだけど
ココら辺ももう少し連携しやすくして欲しいなあ
>>302 出ないよ
それで出たら親スコープの変数触れないじゃん
そうじゃなくて明らかに出てきてない変数から代入しようとしてたりするケースみたいなのは
JSエンジンのオプションで出せるようにできる
あとはvarを必至にすることでスペルミス軽減
クラスターのプログラム書くときにベクトルのライブラリをググったら sylvesterとかいうのしか引っかからなかったから 数値計算は相当苦手なのはわかった まあ低機能だから適当に説明読んで即使えたけどw
だからさ、親と子で宣言子付けるのが逆なんだよね それで意味もなくvarだらけのコードになる
「normって何?」と言ってるJS厨がいて数値計算は相当苦手なんだなあと思った
俺みたいに理系の院行ってるならノルムは当然知ってるけど、それ以外の一般人は 普通に分からんだろうね
>>310 何言ってるのかさっぱりわからない。
クロージャーは、関数外部の変数を見れたらいけないと言いたいのか?
それはもはやクロージャーではない。
なぜならクロージャーの要件の一つが外部の変数を見れること。
>>311 知ってるか知ってないかの違い
ググればわかるようなことを
自慢げに言われてもなw
>>313 pythonが真のクロージャを備えていないことが
よっぽどコンプレックスなんじゃないの
Pythonに真のクロージャがないとか JSのクロージャは危険じゃないとか 言ってる奴はアホだろ
なんか1周回って戻ってきたな Pythonのレキシカルスコープがちょっと変わってるんで、それを調べてから書き込んだほうがいい JS厨の俺としてもうんざりですよ
Javaで内部クラスをクロージャとして使うと 外部スコープはfinal変数しか参照できないけど、 そんな感じで、読むのは良いけど書くのはダメってのは わりとありがち
>>314 自慢じゃなくてかなり基本的なことだから、共通基盤が違うんだなあと
ノルムと言って伝わらない人は確かに科学的な計算しないと思う
pythonでも一応外部の変数を「見る」ことはできたはず 代入が出来ないだけ
>>318 F#とかもそうなんだっけ
そういう安全装置は意味あるし、pythonのスコープがおかしいって指摘が微妙だよな
>>319 そいつは本当に自分が知らないことを聞いているのか
一般的な事柄としてそういう疑問があると言ってるのか、
そしてついでにいえば、そいつがどのレスと同一人物なのか
もう少し注意深く見た方が良い
外部変数に代入したくないときに明示するか(var)、 代入したいときに明示するか(nonlocal)の違いじゃないの? 激しくどうでもいい
>>318 それってfinalじゃなくても良くなるって話を随分前に聞いた覚えがあるけど、
Java7でもまだだっけ?
Pythonってどうしてそういう仕様にしたんだろう 当然良いことも悪いこともあると思うが 自分には他の言事の差別化が大きいのかなと思ってしまう
もしかして、pythonが簡潔を売りにしてる割にはself地獄なのも似たような思想なのかね 危険だとか
>>323 JSのが明らかに危険なのにどうでもいいってw
>>322 それこそ本当にどうでもいいです。
科学的なコードに対して一般的に聞くことにどんな意味が?
JSで書いたほうが良いと言ってた奴だったと思うよ
Python節、まあいいと思うよ でも外側のスコープ変数変更出来ない方が普通だとは思わないな 変更されない、方を特殊に扱った方が自然だと思う JSだってそれはできるし
>>328 それは超初心者レベルのプログラミングも分かってないってこと
意図しない副作用に注意するなら、変更する場合に明示するほうが自然だろ
>>327 レス見てきたけど、趣旨としては一般的なことだね
normは確かに数学の用語だけど、norm以外にもいろいろ挙げてる
から意味はあるね
normを揶揄するのは揚げ足取りの類い
>>329 確かに
これはnonlocalの方が優れてるわ
まあselfは気に食わないけど
>>324 final変数しか参照できないって不便だよな。
for(final int i : list) {
//クロージャー呼び出し
}
for(int i : list) {
final int i_ = i;
//クロージャー呼び出し
}
いちいちfinal付けるかfinalつけた変数に代入しないといけないんだよな。
>>329 自分で書いておいてその程度の事が意図しないとかいう感覚がわからない
内側のスコープにその変数を使ってるもんだと思って、
実際には無くて、外側のいじっちゃいけない同名の変数を
意図せず弄って問題が起きることがあるってこと?
簡単な具体例を説明して欲しい
>>334 滅多に起きないけど、varを忘れてしまった場合にありうる
>>335 マジか
これは良い情報
まあ仕事じゃレビューでfinalとってくれって言われるのが落ちだろうけど
>>324 Java8で、final値だと自明な場合はfinalを書かなくても
final変数として参照できるようになる、らしい
クロージャが呼ばれるときその中身は見えないし、その変数はそのクロージャ以外でも使われるのなら 変数の中身は当然追いにくくなるし、クロージャは基本的にメリットない気がする なんで引数で渡したりしないの?
>>336 あー、言いたいことはわかった気がするけど
ちょっといろいろと仮定が都合良すぎるな
確かに一昔前なら実際起きてそうなことだと思うけど
今は皆慣れてコーディングスタイルとかも良くなってきてるし
そのためにstrictmodeもあるしね
strict modeの存在自体が危険性を示唆してるし なんで普通の関数にそんなものを付けなきゃいけないのか謎 クロージャにだけ付ければ良いし、そしたらvar宣言自体が無駄 という結論ではダメですか
クロージャを普通に使うJSではそれが逆に大変になるということだろうな
>>339 それはさ、クロージャをクラスに置き換えても同じことが言えるんじゃない?
var付け忘れというより、varつけて宣言した変数を使うつもりで変数名タイプミスして
グローバル変数になるとかのパターンが、かなり危険だね
なので"use strict"が導入された
>>341 "use strict"は関数毎につける必要はないよ
実質モジュール単位で有効にすればいい
>>341 どういうこと?
今話してた意図せずスコープリークしてしまうのを防ぐ役目があるじゃん?
クロージャにだけ固いスコープが必要?
よくそのメリットがわかんないな
>>344 だからさ、それ本当にuse strictで防げるのか?
俺の手元のテストコードがおかしいのか?
>>343 クラスは変更される変数と独立してないだろ
>>345 クロージャはコードが長くなりがち。
長いコードはスコープが広いのと同じことになる。
つまり何処で変数を変更しているかわかりにくい。
影響範囲を狭くするために
外のスコープに一切アクセス出来ない
クロージャ(?)が必要。
これをクロージャと呼ばないとかどうでもいい
違う名前でいいから、そういうものが必要。
use strict で防げる派と防げない派がいるけど
>>347 メソッドはフィールド変数と独立してるじゃん
同じじゃないの?
外側のクラスに囲まれてるから独立してないというのなら、
クロージャだってさらに外側のクロージャに囲まれているの
だから独立してない
だからさ、varつけて宣言した変数を使うつもりで変数名タイプミスして それが偶然グローバル変数とバッティングした場合は use strict付けてても無力ってことだろ そんなレアケースどうでもいいわ
>>346 varで宣言してない変数を触ろうとするとエラーになるんだから
意図しない外側の変数やグローバル変数を弄ることがないってことでしょ?
それでも何か不満があるの?
>>348 クロージャは即時関数とも重なるから
むしろだいたい短いと思うんだけど
>>351 varを付け忘れた変数が外側とバッティングする場合はそこまでレアではない
ただ、これもレアっちゃレアだと思うが
>>349 タイプミスして
グローバル変数の宣言になるパターンは防げる
宣言済みの外部変数へのアクセスになるのは防げない
宣言済の変数もゲッター、セッター使えば一応防げる
お前らと話していると、静的型付け言語のほうが 優れていると言ってるとしか思えなくなって来るな。 人間ミスをする生き物だ。ミスしても謝ればいいだけ。 誰もそれを責める権利は持っていない。 ミスが怖いならコンピュータにでもなれよ。
クラス内のメソッドはクロージャで、だからselfを付けるってこと?なるほど
オブジェクトなら簡単に代入参照制限できるし外部関数化もできるけど プリミティブ型はちょっと面倒だな まあPython-JSコンバータつくるときはいいかも
>>308 使ったことないけど、Cloud 9とかintelliJ IDEAってのが良いらしい。
ただ、sublimeもlintやdev toolと連携すればそこそこいけるし、
セットってのがそんなに利点かなあ
まあスコープ浸透しない変数が本当にあった方がよくてそれで速度向上するんなら ES.strawmanくらいには挙がってないとおかしいんだが
速度向上?
>>359 最近段々とChromeがOS化してきちゃってさ
というか9割の時間Chromeを全画面表示してるし
>>361 初期のconstみたいに実装に思わぬ負担となる場合がある
浸透しないとその分内側は軽くなると普通思うが
前例があるからどうなるのか心配
普通の変数と変わらない程度なら実装のコンパクト化を考えるといらない
>>364 いや、誰も速度の話なんてしてなかったように思えるのに
急に速度向上の話になったからビックリしただけ
>>356 どうだろうねえ
静的型付けの方がより安全ではあるけど、動的でも
だいぶ頑張れるしねえ
むしろ柔軟性を考えるとデメリットかもしれない
静的型付け言語だったとしたら、jQueryだのが生まれるイメージがあまり湧かない
> 静的型付け言語だったとしたら、jQueryだのが生まれるイメージがあまり湧かない そうか? jQueryのキモは、セレクタ文字列から、jQueryオブジェクト型を返すだけだろ? 普通に型つきオブジェクト指向のやり方だと思うけど。
静的言語でjQueryの$関数を実装するとかマジキチ 業界を破門レベル
>>356 このスレではスコープ関係の議論をしてて、スコープについては
ダイナミックスコープより安全なレキシカルスコープが主流になってるから
あんまり違和感が無かった
>>365 誰もしてなくてもJSにとって速度向上はものすごく大事なことなの
>>367 例えばプラグインがメソッドを追加しまくってるけど、
単純な継承では継承の順番を指定しないと駄目だろ
なぜならJSはリアルタイム性が重視される用途によく使われるから。 GUIとか、その動作速度でさくさく感が大きく変わる。
>>371 プラグインがメソッド追加するのは
jQueryの失敗点の一つだと思ってるけど。
だって、名前かぶったらどうするのさ?
VS+C#は戦車、スクリプト言語は拳銃くらいのイメージ
>>368 いいじゃない
jQuery-C++とかjQuery-Javaとか
JQuery $ = new JQuery();
$(”ul li .hoge”).css("color", "red");
がJavaのコードでも別に良いじゃない
>>373 noconflictとかでなんとかならんかね
実際そんなに問題出てる?
>>375 全然よくない
本当は型によって振る舞いを変えるのは
JIT妨害の代表格みたいなものだからJSでも最悪なんだよ
でもjQueryはブラウザとHTMLの柔らかさや非互換性があるからこそ便利なもの
静的言語でやると悪いことしか産まない
>>375 だよな。作れない理由が思いつかない。
>>376 noconflictは単にjQueryのエイリアスである$を使わない(jQueryだけを使う)
ってだけの意味でしか無いので、何も効果はない。
>>374 C, C#, Java あたりは PC で
スクリプト言語はスマホやタブレットなのかもしれない
Javaで$(”ul li .hoge”)という書き方は内部で$メソッドを定義しない限り 残念ながら出来ない どうしても、$.$()になる Cなら出来るだろうけどそれこそ破門レベルw あと当然extends JQueryはそれぞれ別のクラスになってしまう
>>378 名前かぶったら別の変数にして使えるじゃん
jQueryはイベントハンドラとかthisの上書きとかいろいろJSならではのことやってるから 静的言語で移植するのは100%無理 ブラウザのDOM関数叩ける、V8のライブラリとして作るのならなんとかというところ
>>381 $が関数名として使えないとかいう話?
使えるけど?
> $.$()になる
あぁ、staticインポート機能を知らないのか。
>>382 えとね、今はプラグインのメソッド名の話してるの
$オブジェクトを別の変数で使う話してないの
>>385 だから、プラグインのメソッド名がかぶるなら、$オブジェクトを別の変数に入れて
それぞれ使い分ければ良いだろ
staticだと、それこそnoconflictができないよね まあ何か考えれば方法があるのかもしれないが
無理だって言われてるのに意地張るなよ それともチューリング完全だからとかいうのか?
>>387 お前馬鹿か?
$をhogeって変数に入れても
プラグインのメソッドは、
$にもhogeにも作られるんだよ。
$はオブジェクト、つまり参照型なんだから
コピーは作られない。
>>388 noconflictもstaticもお前勘違いしてるだろ。
無理に参加しなくていいよw
>>383 > jQueryはイベントハンドラとかthisの上書きとかいろいろJSならではのことやってるから
> 静的言語で移植するのは100%無理
JavaとJavaScriptでthisの扱いが違うのだからそれは当然
100%同じインターフェースで実装できるわけじゃないが
実用上困らないレベルでは実装可能。
例えばthisは、クロージャー(Javaでは匿名クラス)の第一引数にすれば良い。
>>390 何がどう出来ないんだ?
単なるオブジェクトだよ?
クローンも作れるし、それぞれに独自の拡張が出来る
プロトタイプベースの言語に慣れてないのか?
jQueryはJavaでは無理って言われて ついにJavaドカタが本性を現した、の巻
>>392 プラグインはjQueryにメソッドを生やす。
jQueryをコピーして作られたjQuery2にメソッドは生やさない。
jQueryに生えたメソッドをjQuery2に移し替えても
プラグインはjQuery2ではなくjQueryを参照する。
まあ実際にjQueryを真似たjsoupというJavaライブラリが存在するしな。 実証されてることをうだうだ言っても意味が無い。
>>393 >100%同じインターフェースで実装できるわけじゃない
>例えばthisは、クロージャー(Javaでは匿名クラス)の第一引数にすれば良い。
別に昨日が実装できるのは当たり前なんですけど?
あの簡素で柔軟なインターフェースは静的言語では困難って話をしてるんだけど
http://gihyo.jp/dev/clip/01/orangenews/vol67/0001 2012年1月27日,XMLをjQuery風に操作できるJavaライブラリ「jOOX 1.0.0」が
リリースされました。jOOXはLukas Eder氏が開発したもので,流れるような
インタフェース(Fluent Interface)(注1)で記述していくことでXMLの走査や
編集が行えます。Java 5から導入されたStatic Importをうまく使っており,
非常に簡潔な記述を実現しています(リスト)。
リスト jOOXを使ったコード
Document doc = $(new File("foo.xml")).document();
Match m = $(doc).find("book").filter(ids("book1", "book2"));
>>398 > あの簡素で柔軟なインターフェースは静的言語では困難って話をしてるんだけど
具体的には?
>>396 プラグインAでjQueryにメソッドをはやしてから
別名変数にクローンを保存
ブラグインBでjQueryのメソッドを上書き
余裕
https://code.google.com/p/joox/ // Parse the document from a file
Document document = $(xmlFile).document();
// Wrap the document with the jOOX API
Match x1 = $(document);
// This will get all books (wrapped <book/> DOM Elements)
Match x2 = $(document).find("book");
// This will get all even or odd books
Match x3 = $(document).find("book").filter(even());
Match x4 = $(document).find("book").filter(odd());
// This will get all book ID's
List<String> ids = $(document).find("book").ids();
// This will get all books with ID = 1 or ID = 2
Match x5 = $(document).find("book").filter(ids(1, 2));
// Or, use css-selector syntax:
Match x6 = $(document).find("book#1, book#2");
// This will use XPath to find books with ID = 1 or ID = 2
Match x7 = $(document).xpath("//book[@id = 1 or @id = 2]");
そのjOOXとやらのプラグインはどうなってるの? イベント操作は?
// This will add a new book $(document).find("books").append("<book id=\"5\"><name>Harry Potter</name></book>"); // But so does this $(document).find("book").filter(ids(5)).after("<book id=\"6\"/>"); // This will remove book ID = 1 $(document).find("book").filter(ids(1)).remove(); // Or this $(document).find("book").remove(ids(1));
>>403 落ち着け
これはXMLをjQuery風に操作できるライブラリ
>>396 jQueryを読み込んでから各プラグインを読み込む間
いつでも変数弄ったり自由にできるんだけど
JQ=DC(jQuery)
プラグイン1を読み込む
[jQuery1,jQuery]=[jQuery,DC(JQ)]
プラグイン2を読み込む
[jQuery2,jQuery]=[jQuery,DC(JQ)]
プラグイン3を読み込む
[jQuery3,jQuery]=[jQuery,DC(JQ)]
でぜんぶ別々のプラグインが使える
>>403 イベント? Javaはブラウザじゃないんだが
一体誰がイベントを送信するんだ?
イベントとブラウザかどうかは関係ないんだが タイマー、ソケット、エラーとかいろいろ発生源はある
409 :
デフォルトの名無しさん :2013/05/04(土) 01:17:55.92
>>380 それは汎用性という観点だろうけど、C/C++は別格
汎用性:
C/C++ >>>>>> C#, Java, JVM言語 >>>>>>>>>>>>>>>>>>>> スクリプト言語
プログラミング能力:
Lv6 => C/C++使い
Lv3-5 => C#, Java, JVM言語使い
無能力者~Lv1 => スクリプト言語使い
>>408 > タイマー、ソケット、エラーとかいろいろ発生源はある
だからなんでそれをjQuery風ライブラリで扱わないといかんの?
お前が言ってるのはsetTimeoutでできることを
jQueryでやりましょうって言ってるようなもんだよ。
jQueryが扱う対象はDOMのイベント
DOMのイベントはブラウザが発生させる。
Javaだとメソッドの引数に無名関数渡すようなのはできるのかね jQueryのメソッドにはそういうのけっこうあるんだが
イベントループはユーザーの操作とかと関係ない シングルスレッド、IOフリーのJSと相性がいいだけ
クラス相当のものも全部単なるオブジェクト うひょおおおかっこいい さすがJavascriptすげーw クラスをコピーしたりできない他の言語とはひと味違うぜw
>>414 無理
真のクロージャじゃない
あと、Javaの場合jsonで渡すのが難しいだろうね
それこそ全部文字列にしないと
イベントとか言ってる人はXMLとかHTMLとかDOMの区別がつかんのだろう
>>408 お前が言ってる云々は意味がわからないな
自分は誰がイベントを送信するんだとか
イベントループをまったく理解してない頓珍漢な言葉に反応しただけですが?
いや最近の静的言語はより安全だしIDEのサポートもあるから難易度は低いよ スクリプト言語でちゃんとプログラミングするのはC++並みに難しい まあ、不等号を間抜けに並べる奴に正論は通じないけど
420 :
デフォルトの名無しさん :2013/05/04(土) 01:23:39.70
まあJavaScriptはスクリプト言語の王様だかな 妬み、文句を付けたがる落ち目な言語開発者の気持ちはわかるw
>>415 サンプルコードを見たいならテストコードを見るのが一番手っ取り早いぞ。一つ賢くなったね。
https://github.com/jOOQ/jOOX/blob/master/jOOX/src/test/java/org/joox/test/JOOXTest.java 830行
@Test
public void testMap() throws Exception {
assertEquals(
Arrays.asList("1", "2", "3", "4", "1", "3", "1", "2"),
$.find("book").map(JOOX.ids()));
assertEquals(
Arrays.asList("Amazon", "Roesslitor", "Orell Fuessli"),
$.find("library").map(JOOX.attrs("name")));
assertEquals(Arrays.asList(0, 1, 2, 3), $.children().first().find("book").map(new Mapper<Integer>() {
@Override
public Integer map(Context context) {
assertEquals(context.element(), context.match());
assertEquals(context.elementIndex(), context.matchIndex());
assertEquals(context.elementSize(), context.matchSize());
assertEquals(4, context.matchSize());
return context.matchIndex();
}
}));
}
なにこの 糞 みたいな言語
>>419 「ちゃんとしたプログラミング」が必要な場面で
スクリプト言語を選ぶのは無能
わざわざ遅い言語で書く必要性がない
JavaScriptの速度とかJAVA並なんですけど?
結局プラグインは何一つなしと
>>416 > あと、Javaの場合jsonで渡すのが難しいだろうね
> それこそ全部文字列にしないと
ぷっ。当たり前じゃね?
jsonはJavaScriptの文法から生まれたもので、
JavaScript以外じゃ文字列として渡すしかねーよ。
>>423 なんのためにスレタイを変更したと思う?
今すぐに死んだほうが良い知的障害を寄せ付けないため
JS厨まだ居座ってるんだな スレタイからRuby消して最初にJavaScript持って来てるし
>>426 プラグインはjQueryの設計ミスなんでどうでもいい。
>>423 JSはasm.jsとかParallels.jsで今年末にはC#並の速度の言語になってるよ
今でもJAVAに勝ったり負けたりするレベルにはきてるし
>>430 まあ荒らしが続くようならJAVAドカタと同じ道を辿るだけ
JsonはJavaでも、リフレクションを使って生成すれば何とかなる気がする プラグイン側がクラスを用意する必要があるがな ただ、静的言語でこれやるのは破門レベルとされてるから それをやる奴は出てこないだろうw
>>428 静的言語でjQueryの代わりを作るのが大変だという話だろ
当たり前でも大変なのは変わりねえよ
>>431 プラグイン無しのJQueryとか考えられないんだが
>>434 > JsonはJavaでも、リフレクションを使って生成すれば何とかなる気がする
てんさいがいる気がする。
天災がw
何を考えてるのかさっぱりだね。
>>432 馬鹿かw
C#並になるわけないわw
JITコンパイルはコードによっては逆に遅くなることもしらない低能JS厨
>>434 素直にC使えよ
JAVAとか文字列の扱いが一番糞なんだから
jQueryの代わりなんぞできた所で激重で使えるわけない
対抗できるのはCくらいのもんだ
>437 普通にクラスを作ればいいだけだよ。 普通にjQueryオブジェクトを引数にして jQueryオブジェクトを返すメソッドを作れば それがプラグインになる。 メソッドチェーンができないだけ。
ご存知の通り、JS厨が語る未来は現実を完全に無視したSFだから
>>439 asm.jsはJITじゃないんですけど?
それにasm.jsはマイクロベンチや物理演算ベンチではすでにC#並になってるの知らないの?
>>439 JITに限界があるからAOTにするのがasmだろ
知ったか乙
>>443 JITじゃないならなんなんだよ
AOTコンパイラあるのかよ
ぶっちゃけメソッドチェーンは糞だと思うが、
Javaでプラグインをメソッドチェーンで使いたいなら
(
>>421 のJavaライブラリを参考に)
$.children().first().find("book").plugin(MyPlugin.class).map( ~略~
ってやれば出来るだろうね。
これだとクラス名は名前空間があるから
かぶることはないし。
>>438 つ
org.apache.commons.lang3.builder.ReflectionToStringBuilder
>>446 よくわからんが、毎回pluginなんちゃら.classとか書かないと駄目なのか?
>>444 AOTでも型が確定してなければ遅いし
>>443 特定のベンチだけ速くてもいみない
C#並ならソースだしてみろよ
あと「ベンチマークはXより速い」ってのは
実績のない言語のお決まりの宣伝パターンなんだよな
node.js推してる奴もそればっかり言ってたわ
補完って、見た目変わらんのかw ワロスw
451 :
デフォルトの名無しさん :2013/05/04(土) 01:42:39.53
JS厨よお、ちゃんと使い物になってる言語の話はできないのかい? Googleの天才言語とか普及してないベンチとか大好きだな。頭大丈夫か
JSが速くなるわけじゃねーじゃん 型を指示する魔改造なんてほかにもある ただの糞言語
>>450 ん? pluginってメソッドがそんなに気になる?
これはjQuery UIでも用いられてる方法なんだけど
あっちは.pluginではなく.dialogだけどね。
jQuery UIは機能が多すぎ&似ているため、
jQueryプラグインとしてjQueryオブジェクトにメソッドを生やすと
確実にメソッド名がかぶるだろう。
だから、$( ".selector" ).dialog( "option", { disabled: true } );
のように、.dialogメソッドを介して、.optionメソッドを呼び出している。
自分でjQuery UIのwidgetを作ればわかるよ。
自分で作ったwidgetクラスのメソッドは、このように
dialogメソッドを介して呼び出すことになる。
C#の型推定の方が万倍マシな件について
457 :
デフォルトの名無しさん :2013/05/04(土) 01:50:31.14
注目を集めるために実績のない言語が宣伝するのは決まってベンチマーク
そのベンチマークもねつ造でした
http://d.hatena.ne.jp/skymouse/20130323/1363979203 boaoa 2013/03/23 12:52
asm.js、大変興味あるのですが
現在asm.js用のサンプルコードをChromeで動かすと
普通のコードよりなんと60倍も遅くなりました
+等の演算子がJITに悪影響を与えるみたいです
そして、そのasmコードをnightlyビルドで動かしてみても、
普通に書いた時コードのChromeと全然変わりませんでした
普通のコードよりなんと60倍も遅くなりました
普通のコードよりなんと60倍も遅くなりました
普通のコードよりなんと60倍も遅くなりました
asm.jsは型を確定させ、GCを止め、仮想メモリを弄らせるという 鬼畜サブセットだから当然速度はC系に追いつく 当然これを全部で使う野郎はいないだろうが ライブラリ、特に物理演算やゲームエンジンがサポートしたり 関数単位で使えるから「要所」で使うことで劇的にパフォーマンスがよくなる
JITは面白いが型指定は周回遅れ
半日でここまで来るとかお前ら暇だな
JavaScript使いと それに嫉妬するその他のスレになってるね。
>>455 とりあえずそれ別にoptionメソッドじゃないだろ
optionセットしてるだけ
Javaでやるならこうか
$( ".selector" ).plugin(Dialog.class).option(new Option().disable("true"))
まあちょっと冗長だが目をつぶれないこともないか
>>457 それ、ガチで俺が書いた
興奮気味に書いたからやや大げさだった
FF22じゃなくて23で試してみたらちゃんと早くなったからそこは大丈夫
V8が対応するまで使う気が起きないのは言うまでもないが
それはどんな新機能でも同じ
まずはFFが実験台となって
Parallels.jsとともに精査してほしい
そしてES.nextとぶつかるようなことにならなければ
比較的V8での実装は早いんじゃないかな?
流石に5倍とか早くなるのは大きい
それを書く前に既にV8グループで挙がってたし
早ければ1年後にはってとこかな?
ES7に入る可能性もなくもないかも
そうなったら逆に遅くなるかな
JS厨が散々すごいと吹聴してた未来ってこれかよ 互換性のための無理やり感がダサすぎw もうJS厨のこと何も信じられない(胡散臭すぎてはじめから何も真に受けてないけど
>>463 5倍速くなると言ってもベンチマーク用に用意した
特殊なシチュエーションでそれだけ速くなるだけだと思う
正直、平均的に見たらもう素のJavascriptが5倍程度で収まる気がする
なぜJS厨は息をするように嘘をつくのか
じゃあ他の言語に立派な未来があるのかというと「?」 これはもう嫉妬にしか見えない
型の指定みたいな言語の根幹にかかわるところは 言語の仕様としてきっちり定義しないとダメにきまってる。 asm.jsのようにライブラリで魔改造して別言語にするアプローチは腐ってる 互換性のないコードが一時的に氾濫するだけ。 その後はだれも使わなくなる。
>>465 特殊なシチュエーションでいいのよ?
だってJSの速度が気になるのって特殊なシチュエーションだけだし
とくに3D周り
WebGLはなんと行列変換をJSでやらないといけないのよ
気持ち悪いでしょ、なんでネイティブで実装してくれないのって
でもasm.jsは特に型付配列を使った演算が高速になるからまさにぴったし
あと個人的にはJSでボードゲーム作ってるんだけど
ほんと、1%でも早くなって欲しいから期待してる
>>467 なんでキチガイJS厨の「?」な希望的観測に嫉妬しなきゃならんの?頭大丈夫?
>>462 少し例が悪かったね。自分も少し間違ったし。
optionはメソッド。これは変わらない。
http://nbnote.jp/blog/2011/12/jquery-widget-1/ 一部抜粋
// ウィジェット定義
$.widget('test.myWidget', {
// パブリックメソッド
setContent: function(str) {
this.options.content = str;
this._update();
}
}
この独自作成ウィジットのsetContentメソッドを呼び出す方法はこれ。
$('#myWidget').myWidget('setContent', 'piyo');
× $('#myWidget').setContent('piyo');
こうではない。
$( ".selector" ).dialog( "option", { disabled: true } );
これも同じで、dialogウィジットのoptionメソッドを呼び出す書式。
JSアンチは自分の言語を誇らしげに語ろうとはしない なぜ?
asm.jsのベンチマークのグラフは、素のFFが軒並み素のChromeに大幅に勝ってる時点で 都合のいい状況選んだんだろうな感が満載なんだがw
単にCと相性が悪い糞仕様を自作の糞言語で尻拭いしてるだけじゃねーか 糞JS固有の問題とかどうでもいいし特に優位性もない
>>472 叩くのが好きで、叩かれるのは嫌いだからに決まってるだろw
ほら俺の言語を叩いてみろ。何の言語かは教えないけどな!
>>468 asm.jsはライブラリなんかじゃないよ?
asm.jsという名前がちょっとまぎらわしいかね
言語仕様をきっちり決めた新しい言語で、JSとも互換性があるっていうだけ
Cソースをemscriptenでasm.js変換したものならかなり有意な効果がある V8のasm.js対応はわりと簡単そう これが普及してしまいそうだとAppleとMSはけっこう焦るだろうなあ
asm.jsはマジキチだが 逆にそれがいいw ただし現状では、100行を超えるコードのasm化は人間には無理 今はIDEもデバッガも皆無 早急に整備すべし
>>472 誇らしげに嘘八百を並べる方が理解不能
>>475 さっさとpython叩けよ
あ、関数内関数のスコープがおかしい、でしたっけ?
JSがおかしいだけだったwww
>>477 > これが普及してしまいそうだとAppleとMSはけっこう焦るだろうなあ
Appleはハード売れなくなるから焦るってのはわかるが、
MSはなんで焦るの?
asm.jsはできるだけ機械変換するものと思っていたほうがいい asm.jsを手で書くのはCでasmを書くのと近い
>>477 簡単そうって何?また希望的妄想ですかw
それしかないな、本当にそれだけ。自分でもそう思うでしょ?
自分の馬鹿さ加減が嫌にならない?
出たよ。トランスレータがあるからOK デジャブ感が半端ない
>>483 トランスレータがあるからOKなんじゃなくて、
そもそも最初からトランスレーターで変換することを想定してるの
それがasmという名前がついてる理由
>>484 すごいな
http://d.hatena.ne.jp/satosystems/20121228/1356655565 さて、ぶっちぎりで速いのが Scheme48 のコンパイルバージョン。
なんと 0.004sec。ただこれはタネがあって、コンパイル時に関数を評価して
フィボナッチ数を算出しているためです。したがって、コンパイルがインタプリタで
実行するのと同程度の時間がかかります。ただ、コンパイル時に評価できる
関数は評価してしまうというアプローチは関数型言語の特性をうまく生かした良い方法だと思います。
Scheme48 を除いたら、Java がトップでした(追記:[2012/12/30] Haskell の
型宣言を指定したら、Jhc に抜かれてしまいました)。JIT が効いているのは当然として、
Java VM の動作や実装を熟知している身としては、よくこんな短時間で
ブートストラップクラスを初期化できるものだと感心してしまいま
Oracle の最新の Java VM を使えば、速くなるんじゃないでしょうか。いやはや。
メンヘラの妄想に付き合うの疲れるなあ 脱洗脳のカウンセラーとかの辛さがわかる 現実に生きてない。都合の悪い話が聞こえてない さっさとCのコードをこの場で変換してみせろ!
C (gcc -O2) 1.18 JavaScript (node.js) 2.62 速いwww もう下手な静的言語並みになってるw
たしかV8のグループでは Node.jsとかが挙がってた ブラウザの中だけで考えると押しが弱いけど これからJSは広がっていくし 例えば昨今ではモバイルOSの「ネイティブ」として使われ始めたところを見ると V8も気にはなると思う あと、asm.js部分は基本的に特定のエンジンに依存しない形になってるらしい というか既存のコンパイラの上にasm.jsコンパイラが乗る形 だから多分V8での実装は困難ではないはず
もう希望的観測はいいから… お願いだから確認した事実を喋ってくれ、お願いだから…
確認した事実・・・。 JavaScriptはここまで広く使われている。
>>489 単純な四則演算はもう十分に早いよ
でも実物になるとまだCの10倍遅い
JITの限界とか、GCとか、メモリアクセスとかがネックになってるらしい
もうここいらで限界みたい
そこを改善して実物でもCの2倍の実行時間で済ませようとするのが
asm.jsサブセット
長文で妄想垂れ流したいだけならブログでいいと思うよ デタラメで本人すら確認のしようもない、再現性もないことで議論とか無理だし だからこそいくらでも大きなことが言える。ログが誇大妄想で埋まってる
嘘をついているという自覚がないっぽいのが本当に怖い
確認した事実 ↓ Python (CPython) 53.651
C言語というJavaScriptとは全く違った文法から asm.jsの力を借りてブラウザで実行するコードを生成できる ということは、JavaScriptを改良した言語から asm.jsの力を借りてブラウザで実行するコードを生成できるということでもある。 JavaScriptを進化させるのにブラウザのバージョンアップを またなくて良くなる世界ができつつある。
でもこれだけJSの高速化が盛んになってくると気軽に書けなくなる if(i % 2) と if(i % 2 == 1) ってどのくらい違うのか でも将来の賢いコンパイラにとってはどちらも同じ意味にとられるかもと考えてしまう これは大げさな例だけど本当に難しい
昔はVBが一世を風靡していたとき、 GUIは作るのが簡単なVBで 速度が必要な場合はC++でDLLを作る。 という手法が使われていた。 それと同じ構図がブラウザの世界にもできつつある。 JavaScriptはブラウザで動くGUIを作るのが簡単である。 だからJavaScriptでの開発というのはこれからもメインになるだろう。 そして速度が必要な場合のみ、他の言語で開発することもある。
>>493 単純な四則演算ではない実物ってのがよくわからない
再帰のフィボナッチはスタック使いまくりだよね
スタック領域のアクセスは良いけどヒープが駄目ってこと?
V8の登場以降からブラックボックス度は高まりつつあるよね 今では内部的にintを使うとか当たり前だし それを考えると for(i=2^31-1; i>=0; ++i) //iはfloat型と推論される と for(i=2^31; i>=0; ++i) //iはint型と推論される の違いとかきになる あとなんかfor文は結構書き方によって最適化されてるらしい iが0からじゃなくて10からとかだと特別な意味があるのではと思われるという「噂」もあるくらい
まーた始まった。無知が自分に酔いしれて一人妄想を語る テキトー言うだけならブログでやれよキチガイ
もうスレ半分使っちまったのかw
>>500 には言葉が通じず対話が不可能で一切の意味のあるレスをしないから害悪でしかない
もう嘘しか言わないキチガイJS厨の相手をするのはよそう。時間の無駄だ 中身は空っぽの荒らしスクリプトなんだから。もちろんJSで記述されててバグがてんこ盛り
@A = 1..10; @x = map {$_ * 2} grep{$_ % 2 == 0} @A;
確かに
>>500 はちょっと間違ってるな
VBは遅かったが、Javascriptは十分に速い
速度が必要な場合にもJavascriptを使うことが多くなる
他の言語で書くようになるとか妄想はブログでやって欲しい
JSの話をやめた所で他の言語の話をする奴がいなさそうなんだが……
>>507 > もう嘘しか言わないキチガイJS厨の相手をするのはよそう。時間の無駄だ
消える宣言した以上、ちゃんと消えろよな。
レスなんかしたら見苦しいぞ。
よし、キチガイが消えたw
JavaScriptはあとはメモリアクセスだよなあ せめてピットボードを用意して欲しい その辺が自由になれば巨大数の問題とか解決できるのに あとは演算子オーバーロードだな
>>510 別に無理に伸ばす必要ない
JS厨が荒らすだけのスレならJSスレに行ってくれ。邪魔
特にブラウザの話しかできないやつ見ると明らかに他のスクリプト言語から浮いてる
というかWebは板違いじゃね。日常で使うスクリプトという話は皆無
もういいよJSの話は。次スレから外して問題ない
イキイキと荒らす馬鹿が目障り
ピットボード? さっきのボードゲーム作ってる奴でビットボードと間違えたとか?
スクリプト言語からWebやWebサーバーを取ったら……
>>508 @A=1..10;
@x=map{$_ %2 ? () : $_*2} @A;
再帰や遅延評価を使うまでもないリスト処理は面白くないんだよね…
Webはちゃんと板があるし ブラウザは共通の話題ないし比較もできない
>>513 > JS厨が荒らすだけのスレならJSスレに行ってくれ。邪魔
毎回思うんだけど、そんなこと言っても
いうこと聞くわけ無いだろう?
>>513 を苦しませるには
JSの話題をどんどんやったほうがよさそうだw
自分からやられて嫌なことを語るなんて
馬鹿だなぁ。
>>518 そうだよ。JS厨は死ぬまで己の馬鹿を晒し続ける
すまんww ビットボードと入力してもピットボードになってしまう GoogleIME
>>513 普通に言語の速度とか、node.jsとか、科学計算とか、クロージャとか
内包表記とか、Javaの話とかPythonの話とか
ブラウザ以外の話も豊富じゃん
>>522 奴には見えてないのですよ。
標的意外なにもね。
>>519 論破されたから悪意を持って荒らすだけのゴミになったんだよね
ゴミすぎる自分をどう評価してる?いきる価値ないと思うよね。死んで良いよ
というか他の言語って何が原因で遅くなってるの? ただ高速化の需要が少ないだけ? JSでエンジン作った方が早そうな勢いなんだけど
>>524 死んでいいよと言われても死ぬわけないしw
お前の願い、死んでほしい?
残念、お前の願いは棄却されましたぁぁぁw
>>523 本当に妄想以外で議論が出来るなら、JS厨はなんで嘘で荒らし続けるわけ?
どうせJSのことも何も知らないんだろ。幻想を語るだけなら黙ってろ
>>524 端から見てるとお前も悪意持ってて怖いわw
今までJS厨は人の中傷はあまりしてなかったが、519の人が
やり始めたな
お前が嘘だというのが 間違いなだけだろ。 冷静になれよ。
>>530 だって開発者がPerl6なんてやってて
Perl5は放置状態だもの。
>>529 そうだな、嘘でも本当でもない、不確定のゴミ情報
というかお前の存在自体がゴミ。1つもまともな情報を出さずにオナニーしてるだけ
醜すぎるわ。反論できる?
>>530 何かどうでもいい話
性能なら別の手段つかうさ
>>532 面倒くさいやつだなw
お前はキチガイ。反論できる?
>>525 他の言語も頑張ってる
V8作ったGoogleが天才すぎるだけ
>>534 できないね。お前みたいなゴミカス荒らしに唯一構ってるんだからな
普通の人間はヤバいキチガイを見たら邪魔だなあ、早くどっか行けと思いつつ関わらない
お前はそう思われてるんだよ。分かるか?なんで荒らすんだ。妄想なら他所でやればいいじゃないか
Googleが頑張ってほかの言語エンジンも改良すれば世界が良くなるな
>>536 残念、またしても
お前の願いは叶えられなかったw
V8の開発してるのは以前はSunでJavaのJITのVMの開発で活躍してた人だと思った JIT関連のノウハウで圧倒的に先行してるんだろう
>>536 ならスルーしろよ
というか、Google天才とか言ってるのはそいつじゃねーからw
お前が誰彼構わずアタックするからこうなっちゃんたんだぞ
>>536 北風と太陽
よそにいけといえば言うほど
このスレにいることになる。
逆にここにいろと言ったほうがいいよ。
そう言ったとしてもここにいるわけだけどなwww
>>538 俺の願いじゃなくて、みんなの願いね
心配しなくても、お前の願いであるみんなの迷惑になる行為を続けることは毎日叶えられる
良かったな。もう誰もお前がまともなんて思わない
JS厨の詐欺にはかからない
アンチJS厨が一番うざい。 だからみんな誰もお前にレスしてないんだぞ?
Goの開発もベル研にいた有名な人たちが参加してるね
まとも面したJS厨がいかにキチガイか周知できれば十分
さて、またJavaScriptの話でもしますか。
最近どんなプラットフォームでも HTML+CSS+JavaScriptを使うことが標準的になっている。 これらは一例。 Google Chrome add-ons Mozilla XUL apps and Firefox extensions Firefox OS apps Chrome OS apps Windows 8 Store (“Modern/Metro UI”) apps BlackBerry 10 WebWorks apps PhoneGap/Cordova apps Apple UIWebView class Microsoft WebBrowser control node.js (combined with jsdom or similar)
>>544 各会社から、有名な天才達がGoogleに集まってきているってことだな
Pythonの作者もちょっと前までGoogleだったらしい
今は脱退したようだが
現在広く普及している、スマホ、タブレットはもちろんのこと テレビでもJavaScriptが動く時代だからな。
例のアンチが消えた途端静かになったなw
なんか寂しいな 俺も寝るか
どんな言語を使おうと避けられないウェブ化によってHTMLが ユーザーインターフェースになるのは避けられなかったわけで。 jQueryが一番うまくHTMLを扱えたことが JavaScriptの大ヒットに繋がったんだろうな。
多分Googleのお陰が50%だと思う やっぱり再注目のきっかけになったのは 検索とかマップのAjaxだし
>>539 そんな奴があんな中二っぽいコード書くのか?
>>554 どんなコード?って聞かれて
答えられないなら、そんなこと言い出すなよ
>>530 PythonでCython使って書いたら相当速くなった(53.98 -> 2.63)
こんな感じに、Perlにも高速化の手段があるんだろう
ソースコードはこれ
cimport cython
cdef fib(int n):
if n < 2: return n
return fib(n - 2) + fib(n - 1)
print(fib(38))
実行結果はこれ(CPython版との比較)
$ time python fib.py
39088169
python fib.py 53.82s user 0.04s system 99% cpu 53.983 total
$ time python fibc.py
39088169
python fibc.py 2.61s user 0.02s system 99% cpu 2.635 total
さすがに悔しいからってPythonじゃない言語を持ち出されても 「int n」でバレるぞw
せめてCythonでググれよ……
wikipediaより >Cython は、C言語によるPythonの拡張モジュールの作成の労力を軽減することを >目的として開発されたプログラミング言語である。 >その言語仕様はほとんど Python のものと同じ (上位互換) だが、Cの関数を直接呼び出したり、 >C言語の変数の型やクラスを宣言できるなどの拡張が行われている。 Pythonじゃない別言語じゃん TypeScriptを持ち出してJavaScriptはええって言ってるようなもん
CythonはPythonに型注釈を追加したような言語で、 コンパイルしてPythonのC言語拡張を作る事が出来る Cythonで書かれた関数やクラスはPythonから呼び出す事ができるし Pythonで書かれた関数やクラスをCythonから呼び出す事もできるよ
>>559 Pythonの上位互換って書いてあるだろ
ここ遅いから速くしたいなーってなったら型を書けば良い感じ
で、C言語拡張にコンパイルするから、普通のCPython処理系で動く
>>556 で関数の戻り値の型を書くのを忘れてたので、
cdef int fib(int n):
に変えて実行してみたら、もっと速くなった
$ time python fibc2.py
39088169
python fibc2.py 0.08s user 0.01s system 95% cpu 0.098 total
C のコードはどこまで減らせるんだろうね
Python 界隈はそこらへんの問題に極めて意識的だけど
>>559 自分も別言語だと思う。Python のサブセットである RPython ならともかく
>>560-561 つまりCに変換できるようにしたTypeScriptみたいなもんじゃん
TypeScriptをCやasm.jsに変換したらそりゃ速いよ
>>562 これ最適化でコンパイル時に値を計算したっぽいな
>>564 > これ最適化でコンパイル時に値を計算したっぽい
print(fib(38))をコンパイルに含めずに
実行時にPython側からfib(38)を呼び出しても同じ
>>565 良く分からないんだけど、コンパイル時に計算していないのに、
Cの数十倍速いってこと?
ちょっと良く分からない現象だね
何かタネがあるんだろうけど
>>566 こちらの環境でC(gcc47 -O2)を実行した場合
$ time ./a.out
39088169
./a.out 0.25s user 0.00s system 99% cpu 0.257 total
>>566 こちらの環境でC(gcc47 -O2)を実行した場合
$ time ./a.out
39088169
./a.out 0.25s user 0.00s system 99% cpu 0.257 total
569 :
567 :2013/05/04(土) 10:34:54.74
連投すまん
実行環境が違うのか、Cの速度も
>>530 と全然違うね
同じソースコードを使ったんだが
つまり、CPythonの速度がむちゃくちゃ遅い……?Python3.2なんだけど
最後に、比較用にnode.js(v0.10.4) $ time node fib.js 39088169 node fib.js 1.06s user 0.03s system 100% cpu 1.080 total
なんだろう Cの計算自体がすぐ終わりすぎて計測誤差が大きいのかな 何度もループさせないと駄目か
node.jsはCの4倍程度か たいしてPythonは200倍か 遅すぎワロス
うちでもやってみた。Cython の使い方間違ってたら指摘してくれると助かる % cat fib_c.c #include <stdio.h> int fib(int n) { if (n < 2) return n; return fib(n - 1) + fib(n - 2); } int main(void) { printf("%d\n", fib(38)); return 0; } % gcc -o fib_c fib_c.c % time ./fib_c 39088169 ./fib_c 1.12s user 0.00s system 99% cpu 1.125 total つづく
つづき % 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
>>562 みたいに、戻り値の型を書くともっと速くなる?
pythonが200倍遅いからって、他の言語に頼るとは、、、 python厨には失望した
>>575 うっかりしてた。戻り値記述して再トライ
% cat fib2_py.pyx
cimport cython
cdef int fib(int n):
if n < 2: return n
return fib(n - 2) + fib(n - 1)
print(fib(38))
% cat setup2.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup(
cmdclass = {'build_ext': build_ext},
ext_modules = [Extension("fib2_py", ["fib2_py.pyx"])]
)
% python setup2.py build_ext --inplace
cythoning fib2_py.pyx to fib2_py.c
[...]
% time python -c 'import fib2_py'
39088169
python -c 'import fib2_py' 0.56s user 0.02s system 99% cpu 0.577 total
% cat fib2_py.c
[...]
__pyx_r = (__pyx_f_7fib2_py_fib((__pyx_v_n - 2)) + __pyx_f_7fib2_py_fib((__pyx_v_n - 1)));
常識レベルの話として長いコードをここに貼るな それがある外部リンクだけで良いから
node.jsより速いという結果は貼るな 遅かった場合だけ貼れ
cythonってpythonの拡張モジュール書いたりできるんだろ? あれ、これってasm.jsという糞言語で高速化したいところを局所的に書けばいい と言ってたのと同じじゃね。遅れてね?ただの後追いじゃね で、asm.jsのコードと実行時間は? なんかこのスレ見ても「できるらしい」とか「できるはず」とかいう胡散臭いレスが目立つけど 実際どうなの?
>>580 Pyrex が 2002 年でそこからフォークした Cython が 2007 年
後追いではないと思われ
「今JSが熱い!みんなが熱狂している!薔薇色の未来!」 って、他の言語が数年前に通った道なんだね… Cに変換するか、Cから変換されるかって違いか。さて、どっちが速いかね
>>582 JSが熱いってそんなCに変換するだのなんだののくだらない狭い世界の話じゃないんだが
asm.jsを熱弁してる奴がいただけで、JS熱は別次元だよ
node.jsやweb用ライブラリ界隈で起こってる熱狂
>>582 > 「今JSが熱い!みんなが熱狂している!薔薇色の未来!」
> って、他の言語が数年前に通った道なんだね…
いや、その道は他の言語は通っていない(苦笑)
今の話の流れからは「型つけて速くしましょう」という
道しか通ってないだろう?
デスクトップアプリがWEB用アプリに置き換わりはじめてるから、 この流れは相当続くね 下手したらスマフォのネイティブアプリの領域も浸食しそうだし(ここはまだ不確定)
ああ、asm.jsの奴はJS的にもアレなので あそこまで言うのならコードと実行時間くらい示してほしいが
ん?ちょっとまて この流れはひょっとしてCythonが最強という事でよろしいか?
Cythonって静的型付け言語ってことでいいの?
ハイブリッド
node.jsって実行速度を自慢する割には、 静的に型付けした場合と比較するとゴミだな…… 所詮は、他言語がepollやkqueueを使わない場合という ハンデをつけた状況に限れば非同期処理が速いってだけのウンコか……
> node.jsって実行速度を自慢する割には、 またいつもの勘違いさんかw
静的型付け言語の下位と同じくらいだな 動的型付け言語としては十分自慢できるぐらい速い
それが一般的なんだけど、nodeは動的言語でも静的言語並に速いから どうでもいいや
>>594 Java (OpenJDK) 0.732
C (gcc -O2) 1.18
JavaScript (node.js) 2.62
3倍以上さがついているものは 静的型付け言語なみとはいえない。
Scala (case) 1.896 静的 Fortran (gfortran) 1.92 静的 Go (run) 1.956 静的 Haskell (ghci) 1.992 静的 Scheme (ikarus) 2.068 動的 JavaScript (node.js) 2.62 動的 Boo (compile) 2.674 静的 Java (gcj) 2.88 静的 Lisp (sbcl) 3.292 動的 Boo (interpret) 3.56 静的 Scheme (Gambit: gcs -O2) 4.524 動的
>>597 3倍どころか、普通に静的型付言語がJavascriptに負けてますが
やっぱりこれからはJavaScriptの時代なんだろうな。 どこでも動く、そして速い
GUIはWebアプリで作るのがお手軽だから、 かつてお手軽GUIアプリを作る定番だった旧VBのような位置にJavascriptはなるよ サーバサイド?サーバをVBで書くアホがいるか?
諦めるしかないんだね
>>601 JavascriptはVBとは違うんだよVBとは
IEではJScriptもVBScriptも書けた
しかし今や誰もVBで書いてない
JavaScriptが優れていたのだよ
でも、nodeが出てきたときの世間の反応こんな感じだったよな サーバサイド?サーバをJavaScriptで書くアホがいるか? みたいな 革命的な事をやる人は大体最初こんな感じの評価
革命と自称する大半はただの糞に終わるんだから当然だろ 糞に集る五月蝿いハエがいるのも世の常だが、騒ぐ以外は何もしないから非常に鬱陶しい
まあ革命的なものを糞だと言って認めない奴がいるのも世の常だしね オブジェクト指向が出てきたときも、ブログが出てきたときも、iPhoneが出てきたときも 全部そうだった
まあ、俺はJavaScriptが ここまで普及するってことは かなり初期に見抜いていたけどな。 HTML、CSS、JavaScriptは将来普及する。 足りないものはJavaScriptライブラリ。 そして他の何かから変換して 生成したりするだろうってね。
>>608 物事を客観的に見つめて、現実を正しく認識するのって
とても大切な事じゃない?
なんでもかんでもマンセーしてたら一つは当たるだろ 実はあの技術は僕のアイデアなんですーってか?じゃあ、今回はお前がさっさと妄想を実現しろよ 失敗したら知らん、成功したら俺すごい! はいはい、あきれた常勝無敗だわ。無能をさらす前に何か見せて見ろよカス スレを荒らす以外には何もできない社会のゴミがよお
>>611 まずお前は自分の嫌いなものにも長所があるっていう現実を受け入れるところから始めよ
>>612 え、お前の長所ってなに?
妄想垂れ流しとか何もやらなかった武勇伝とかを聞かされても
長所なんて一つもわからないよ
長所がないわけないだろ。信者レスの無意味性、無批判性、無論理性、無情報性を叩かれてるってわからんの?
>>613 お前、そこでなぜJavaScriptを連想せずに人を連想してしまった・・・
そもそも無批判性ってなんだよw ブーメランにならないようにかw
挑戦的な試みっていうのはだいたい失敗する可能性が高いから なんでもかんでも叩いておけば自分大勝利だよね まれに成功した例は無視すればいい
少なくともこのスレは結構良い情報あるけどな
>>615-616 クリティカルシンキングだよ
もちろん信者のゴミレスが叩かれてるのはそんな高尚なものじゃない
明らかにゴミだからゴミと言ってるだけ
言われたくなければまともなレスをしろ
>>617 JS厨の妄想レスで有益な情報ってどれ?
アンチJS様がお目覚めになられたようだ
>>618 良いものは良いと認めることも時には大事だよ
JS信者もCythonやSciPyを認めて使い始めただろう
得をしたのはどっちだろうね?
奴が目覚めたな
>>619 JSが盛り上がってるってことを知っただけでも有益だった
>>621 お前の妄想垂れ流しレスは一切良くないのだが?
何を問題としてるか理解できてないだろ。どんだけ馬鹿なの
>>610 少なくともオブジェクト指向は違うみたい。
>>618 クリティカルシンキングと言うならPythonについてしてみたらどうかね?
Pythonがお気に入りみたいだから、
Pythonについて批判したほうが世の中のためになるだろう
>>625 もっと考えてしゃべれよ。デタラメばかりじゃなくてさ
お前がオブジェクト指向の何を知ってるというんだ。何も知らないだろ
>>624 お前がそういう姿勢だからだよ
JavaScriptが盛り上がってるなんて認めたくない!
俺の嫌いなJavaScriptが絶賛されるのは認めたくない!
こんな姿勢ではね
Webアプリを開発してみるなり、アイディアを学ぶなり、
状況を注視してみるなり、他のスレにいくなり、
もっと良いやりようがいろいろあるだろうに
レスの有用性は受け取る側の姿勢によって変わるものだ
>>630 もう言い訳はいいよ。なんで言い訳しか言わないんだ?
お前は妄想垂れ流しで毎日フルボッコされるだけの悲しい人生を送れよ
>>625 妄想垂れ流し野郎じゃないならちゃんと説明してね
>>631 まあ、お前にかかれば、説明=言い訳だろうからね
そうなるのは当たり前
このスレはなかなか満足している
>>633 まともなJSの説明なら、説明自体は叩かれてないって気づいてる?
そこで初めてJSディスができる
お前が何かを説明してると認識しているものは、説明とは呼べないほど欠陥だらけなんだよ
無条件に馬鹿にされてると思ってるならただの被害妄想、自分の無能を他人のせいにするな
>>625 根拠なく言ったんだな
テキトーに言えば誰かが代弁してくれるとでも思ったか
デタラメ言ったのならさっさと謝れクズ
>>635 2ch歴短い?
多分、2chというものを誤解してるんじゃないかな
ネタにくだらんレスにウケ狙い、推測に主観
そんなもんに腹立ててたらキリがないぞ
レスする方も高度なレスをする気なんかこれっぽっちもないよ
お前こそ、人に要求する前にスルースキル学べよ
自分で妥当性を考えろ
人格攻撃はスルーして 内容でバトルロワイヤルしなさい。
まあ、JS厨の俺から見て、レスの質はともかくアンチJSの人は かなり能力はあると思うよ 特に科学計算がどうとかPythonのコードを投入してる人
優秀な人は直感とか推測とか主観が大抵当たるから 普通に自分の主観で決めつけて言う傾向にある
>>637 ,640,641
最悪の自己弁護だな。つまりまた言い訳。それしかできない
どんなレスをしようが勝手だが
ただ気持ち悪いだけのレスが叩かれるのは当然のこと
穴を指摘されたらちゃんと根拠を説明しろよ。それが出来ないのは中身が空っぽだから
はぐらかすな、逃げ回るな
>>639 仕様や科学計算ライブラリについては知ってるし確認した上でかなりレスしてるが
コードを投下してるのは優れていて優しい別の人な場合が多い
>>642 ああ、コード投下してる奴は別の奴だったのか
なるほど
ドンマイw
>>637 本当にそんなつもりでレスしてるなら
指摘されて妄想じゃない!と反発し続ける意味がわからない
それでいて当然ながら証明はできない
>>643 > ああ、コード投下してる奴は別の奴だったのか
そりゃそうだろw
アンチJSの人はただのキチガイだもんなw
>>644 具体的にはどのレスの事?
別に「妄想じゃない!」って反発してるわけではないと思うんだが
「妄想」を「客観的に根拠の不十分な推測」と捉えてるなら
反論の余地はない
確かにその通り
ただ、少なくとも「実際には間違っている主観」ではないと思ってるから
その部分について反発があるのは当たり前
ネタでなければ言ってる本人は自分の意見が間違いではないと思ってるはずだ
証明ができるかどうかは状況、気分次第
まあネタと言うか、ちょっと大げさに言う傾向はあるけどね
>>646 証明も反証もできないよ。だから詐欺だと言ってるわけ
もちろん、そんな正論を受け付けないだろうがね
>>648 お前が要求してるのは、「〇〇が熱い!」「将来はこうなる!」ってことの
証明でしょ?
まあ特に後者は無理だろw
前者はURLとかちらほら出てたけど、それを「証明」と認めるかどうかは
お前次第だし、まあ無理だろw
結局、間違ってるという結論先にありきなんだよ
だから詐欺だといって満足したいんだろう
正しいという結論ありきだからおかしいとしてるだけだが
説得力の問題だろう 突拍子のないほど説得は難しくなる 少なくとも胡散臭い妄想を並べるのは気持ち悪いだけで論外 凄さを伝えたいなら実際に使って見せればいいのに 本人の手元にすらそれがないみたいな言い回しだから、なんで?と思わざるをえない
> 正しいという結論ありきだからおかしいとしてるだけだが 間違ってるという結論ありきだからおかしいとしてるだけだが これも成り立つよな。 なんでこう言わない? そこにお前が満足したいって気持ちが現れてるのさ。
>>652 証明も反証もできない宣伝だから詐欺なんだよ。分かるか?
>>653 > 証明も反証もできない宣伝だから詐欺なんだよ。分かるか?
そもそもそれが間違っとる。
>>650 「おかしい」ってのは「客観的に見て納得できるだけの証拠がない」ことを指してるんでしょ
ならその通りだよ
ただの主観だし
別に反論しようとも思わん
現実にどちらが正しいかは、誰彼の意見とは
一切関係ないがねw
JS厨は主観的な操作感などを評価してるわけじゃない 世界の人々はこう動くべき、という個人的希望が反感を買いやすいのは当然 そこには必ず理由が必要だ
「連続体仮説は証明も反証もできない命題である」 では、連続体仮説は詐欺か? 詐欺ではない。れっきとした仮説だ。
>>654 ,657
どうとでも言える主張は詐欺でしかないんだよ
>>656 反感を買いやすいとか、一般的な意見のように言ってるけど、
要するに、
>>656 個人が
個人的希望はきらいだって言ってるにすぎない。
>>656 個人が、みんな俺と同じ気持なんだと
みんな俺の考えに賛同していると
思い込んで書き込んでる。
それだけ。
>>656 はキチガイにすぎない。
>>658 あー、はいはい。
どうとでも言える主張は詐欺なんだよ。
俺が言ったから詐欺なんだよ。
みんな詐欺と思ってるんだよ。
俺の考えは正しいんだよ。
ですね。わかりますw
「どうとでも言える主張=詐欺」という前提ならその通り 「嘘をついて騙す事=詐欺」なら、仮に間違った事を言っていても本人がそう思ってないなら そういうのを嘘とは言わないだろし、詐欺ではないだろ
「詐欺」には明確な定義があるけどな
ま、そんなの
>>658 には関係なく
俺が詐欺と言ったら詐欺なんだ。
なんだろうな。
JavaScriptは今後モバイル系から始まりディスプレイがついてる大抵の電化製品の 「ネイティブ」言語としての位置づけになっていくことは確定してる 2020年にはCかJSかとなってると思われる
>>659 良いこと言うね。みんながJSに熱狂しているとか言ってるキチガイはそろそろ自分の間違いに気づいただろうか
>>664 それも「みんな」の定義によるな
率で言えば少ない、数で言えば多い
俺も一瞬で見ぬいたw
>>661 いやむしろ無自覚な方がヤバイし
さんざん指摘しても
>>663 のように悪意を持って印象操作してるだけだから
キチガイ=個性 別に悪い事じゃない
>>668 > さんざん指摘しても
>>663 のように悪意を持って印象操作してるだけだから
お前が書き込んだんだろ
タイミング良すぎるわw
>>671 俺はこんな気持ち悪い文章を思いつけないし
何を言ってるかも理解できないがJS厨には
ごく自然なことなんだろいな
>>668 まあ、一人じゃないしねw
少なくとも俺は663ではないし、悪意を持ってる自覚はないな
ヤバいかもw
>>663 > JavaScriptは今後モバイル系から始まりディスプレイがついてる大抵の電化製品の
> 「ネイティブ」言語としての位置づけになっていくことは確定してる
検証してみよう。
スマホ・・・JavaScript対応
テレビ・・・一部JavaScript対応
JavaScript以外の言語は?=対応していない。
>>673 良心の呵責を受けないなら犯罪者に向いてるよ
というか論理的思考ができてないから他のまともな仕事は無理
実際にJavaScriptがモバイル系や家電で使えるのは事実なわけで それは否定できんよ。詐欺でもなく現実ね。
>>674 いや、ちょっとまて
ネイティブ言語が何をさすのか知らんが、
俺の知る限り、Objective-C、Java、C/C++はお前の言うネイティブ対応されてるっぽい気がするぞw
スクリプト言語という意味か?
それもLuaとかあるしな
>>675 まともな定職に就いてしまってる可能性を考えて保険をかけてるところが
可愛いなw
TizenOS,FireFoxOS,ChromeOSのアプリ、一部のTVのアプリがHTML5になってきていることは現実 あとデジタルサイネージやカーナビアプリもそうなりつつある
>>679 スマフォで言えば、一旦HTML5が浸透していきかけたけど、
今は少し足踏みしてる状態に見える
やっぱりまだパフォーマンスや互換性など様々な問題がある
ただ、今後はわからんけどね
家電って何を指してるんだ?一般的な家電はほとんど組み込みだろw
未来のことは言わずに、現在どうなっているかを言えば それは詐欺でもなんでもないなw
>>680 足踏みも何もTizenOSやFirefoxOSでは基本HTML5でしかアプリが作れないんだけど?
そして今年度中から日本でそれ搭載のスマホが売られるの知らないの?
互換性なんて既存のスマホアプリのJAVAやobjectiv-Cに比べたら些細なもんだよ
アレだって複数のプラットフォーム向けに作るの大変だし
だから最近ハイブリットアプリが流行ってるんでしょ
C/C++とかはメーカーの人しか使えない言語。 ハードを作る人のための言語だね。 その作られたハードでアプリを動かすには Objective-C(Apple系のみ)、Java この二つはインストール系 そしてウェブアプリではHTML5+JavaScriptになる。 これが現在の状態。 その他の言語は出てこない。
>>683 それは知らんかったが、現状ではまだ浸透してないだろ?
今のスマフォはiOSとAndroidで、後は誤差だから無視して構わない
そして、iOSとAndroidでJavascriptを使ったアプローチは
今はそれほど伸びてない
有名な企業がとりやめて、普通にネイティブに戻したりとか
> 有名な企業がとりやめて、普通にネイティブに戻したりとか そんな事例はFacebookしかしりません。
>>686 後俺が知ってるのはLinkedIn
まあ二つしか知らんけどw
>>684 他の言語の話ができないのはわかった
それは別のスレを立てて、このスレはその他マイナー言語専用スレでいいかな?
やっぱり明らかに用途が違うから
>>685 既存のスマホはそもそもWebアプリを作れる環境が整ってないでしょ
それを整えたのが去年から出始めた各種モダンOS
>>668 まあ、そういうのもあるんだけど、アプリの大半を占める
ゲーム分野とかは普通にパフォーマンス重視のネイティブ多いままだし
どんどん浸透って感じではないと思う
たんなる実感だけど
692 :
デフォルトの名無しさん :2013/05/04(土) 23:08:21.69
JS+HTMLスレ立ったら誘導してね 他の言語は関係ないから
>>691 ソフトウェア業界の歴史を見てみろよ。
昔はアセンブラだった
開発効率向上のためCになった。
遅いと言われたが時間が解決した。
開発効率向上のためC++になった。
遅いと言われたが時間が解決した。
UI向上のためWindowsになった。
DOSに比べて遅いと言われたが時間が解決した。
ウェブアプリ化のためHTML+JavaScriptになった。
遅いと言われたがデスクトップ機では時間が解決した。
モバイル端末が出た。当時のガラケーはスペックが低くかったが
時間が解決し、ガラケーでもゲームが出来るようになった。
ずっとな、何かしらの理由で「遅い環境」に変わるが
時間が解決し続ける。これこそがソフトウェア業界の本質といえるんだよ。
そうかな ハイブリットアプリとかまさに浸透してるけど? 現状WebアプリにかけているのはAPIとそれぞれにプラットフォームにあった外側の見た目をつくること 速度はそんなに大したことない フェイスブックだってやっぱりちゃんと作ればWebアプリの方が良かったって証明されたじゃん いつの話をしてんのよ?
デスクップもネイティブアプリだらけじゃん 単純に開発効率の問題もあるわ Web化する必要性がなかったりサーバーサイドで問題なかったり すべてがJSになる必然性がまるでない
>>693 まあ確かに時間が経てばいずれはそうなるかも
ただ、現状、一時期と違って増加スピードは鈍ってるってのがマジな実感
>>694 そうかね
まあ、単に俺の実感がずれてるだけかもしれん
データとかも検索すれば出てくるかもしれんが、まあいいや
この議論はこの辺で打ち止めだな
ゲームとか既存のスマホでは当然向かないというか、 そもそもあんまり考慮されてない それでも情報社会と情報端末、Webは相性がいいし Webと相性がいいのはJSとなってる そういえばWiiUでもHTML5でゲーム作れるみたいだし 本質的に向いてないということはない
>>695 現状はな
今はまだ「気づけばちらほらと出てきてる」程度だね
特に開発者好みのエディタとか
Komodoとか、Cluod 9、Markdownのエディタ
ただ、デスクトップに関しては今後加速すると思う
理由は、インターネットが重要性を増してる事と、クロスプラットフォームな事、
ビジュアルの表現力がある事など
ハイブリッドアプリは審査なくても ウェブサイトと同じでハージョンアップできる というメリットが有る。 だから問題がなければ出来るだけ ハイブリッド化したいと思っている。
>>696 HTML5が悪いんじゃない
wayohoo.com/facebook/news/fastbook.html
荒らし(=例のアンチJS)がいなくなると ほんと静かになるなw
Sublime Text 2も設定ファイルがJSONだし、UIがChromeっぽい 何で開発されてるんだろう
>>706 いきなり何なのか知らんが、
スクリプト言語じゃないだろうな
>>704 普通に議論に参加してますが?
いきいきと妄想がはかどってるね
HTMLの時代だからJS!と言われたら何も言えないわ
そろそろ他の言語の議論させてくれないかな
それとも、このスレは永久にJSの夢物語を並べる場所になるのか
キチガイ地獄もいいところだな。JS厨に侵略され、JS以外スレとかいう暴挙も許し
全てがJSの不確定な将来をあれこれと語り合うJS厨の楽園スレ…終わったよ、全てが
>>704 アイツ一人で荒らしてるんだよ。
自覚無さそうだけどな。真性ってやつ。
>>708 まあ仕方がない
現実、そういう時代だし
ただ、PythonでHTML5とかも開発できるようになると思うけど
711 :
デフォルトの名無しさん :2013/05/04(土) 23:34:03.62
ただのデファクトスタンダードが勘違いした結果、糞スレ化が確定した JS厨に喋らすとHTMLだから!としか言わないからもう駄目だ 次スレでは確実に追放だが
>>706 設定ファイルはJSのJSON形式、プラグインはPythonで、カラースキームとかはXMLで書かれてるな
かなりごった煮だわ
>>711 いや、クロージャ、プロトタイプベース、DOM連携とかかなり良い言語だと思う
Pythonと比べるとそうでもないかもしれんが
俺はJS厨だが他の言語が嫌いなわけじゃないぜ JS主体で悪いが 他の言語プログラマは自分の言語のいいところアピールして欲しいな 実際JAVAやPerlの機能の導入がJS,nextでは沢山議論されてるし 昨日のスコープの違いとまでなると不可能だが JSを自分の好きな言語に仕立てる余地は十分ある 構文レベルが難しくてもAPIレベルなら本当に1個人の意見が大きいし
このスレにおいてJSに対する一切の批判は受け入れられてないからな 不確定、未解決の問題も謎の「確定事実」において一蹴される 議論は許されない。ただ未来のJSってよいよねと言うだけのスレ
>>714 どんなに良いことがあっても無駄だろ
この世界はHTML5で、それに関われないカス言語はまず議論のステージに立てないのだから
JS以外はお断りだよ。JS以外スレを立てたんだからそっちに行ってもらうしかない
不満を愚痴るんならまだわかるけど批判なんかしてどうするの? JSに限らず何も批判すべきじゃないと思うけど まあ例えばサーバーサイドでこの言語のこういうところが問題とかはあると思う でもJSは主にクライアントサイドだと比べるものがないから批判は意味ない
>>714 スコープの違いって
外部の変数を書き換えるのに宣言必要になればいいんだろ?
互換性を切り捨ててやろうと思えば余裕だと思うが、
切り捨てるだけのメリットがないってだけだと思う
だからJSにおいてはここで何の議論も発生しない。全く無関係の言語だから 不満を愚痴ること=批判することだが、JSに対して不満を愚痴ることは許されていない
>>603 VBScriptが普及しなかったのは、IE以外のブラウザの台頭と、Ajaxがなかったから
とはいえループの中で変数宣言できないVBScriptはJSより糞なのは間違いない
>>718 子に浸透にないスコープを持つ変数はできると思うよ
そうじゃなくて他にもクロージャはデフォでそうすべきとかいろいろ
言語の根幹の問題があったからさ、そういうのは無理
>>716 普通にCoffeeとか別言語出てきてるし、Python等の既存の言語が関わる事も余裕でしょ
つうか、今既に出来るわけで
HTMLの世界でJavascriptがどこまで王者として勝ち残るかどうかはかなり不透明
ただ、長い間勝ち残ったとしても俺はあまり不満はないけどね
ここはバトルロワイヤルスレに端を発していたし 用途が競合する場合、言語ディスやそれに対する反論は意味を持ったけど もはやその問題は消え去った。HTML+JSが世界のすべてで なんと将来はすべてのプログラムがCとJSだけで書かれる 現に今もJS以外で書かれてるまともなwebコンテンツはひとつもない
>>720 VBScriptって悪名高いけど他に何か大きな問題があったの?
そして何故こんなに廃れた今になって尚質問サイトでちょくちょく見かけるのか不思議
>>722 いいか?coffeeはJSだ。JSから逃げることはできない
不満がある奴は生きる価値なし。それを口に出すなんてもってのほか
>>725 んー、ちょっと賛同できないかなあ
CoffeeはCoffeeでしょ?
君の言う、JSってどういう定義なの?
PythonをJSにコンパイルするやつはやっぱりPythonと言うべきだと思うけど
>>726 JSの糞コードを読まなければならないものはJSと言う他ない
>>724 単にIE以外ではサポートされてなかったのが問題
あとJSが爆発的に流行ることになったのは、FireFoxでもサポートされていたのと
GoogleがMapで使い始めたから。
もしGoogle MapがVBSで作られていたら、歴史は変わったと思う
ただ、継承すらできないのに、クラスベースのオブジェクト指向型言語だったから
普及していたらJSと同じく、変換言語が複数出ていたのは間違いない
Googleが素晴らしいMap作れたのはJSが良い言語だったからだよ
というか時代が追いついた感じだな やっぱりスクリプト言語は環境によって価値が大きく変わるし
>>727 読まなくてはいけないってほどでもないと思う
昔はC使ってる時にデバッグモードでアセンブラ見てたらしいけど
今はそんな事もあまりないのと同じで時間が解決するよ
まあ、最初は読んだ方が良いかもな
732 :
デフォルトの名無しさん :2013/05/05(日) 00:27:46.88
歴代の素晴らしいアプリは無数にあって、その多くは糞言語で作られてる事実 ブラウザ以外のスクリプトについて何も語れないJS専用糞スレだからどうでもいいけど
パフォーマンスと仕様のバランスを考えれば、C言語は当時としては良言語の部類だったと思うけどね
すべてがブラウザなんて少なくとも数年はありえんぞ。クロームOSも受けてないし その間ソフトウェア開発以外やファイル処理やバッチ処理やプラグインにJS以外のスクリプトを使う しかも、JSが使われるのは良言語だからではなくJavaと同じ理由だし
>>734 そりゃまあ
「全てが」なんて言い出したらな
ただ、それが主流になるのは数年後にはひょっとしたらあるかもな
それも、もの凄い勢いで普及した場合だな
node.jsが作られた理由・・・JSに非同期IOのライブラリがあったから クロージャが採用された理由が非同期処理と相性が良かったから 巡り巡って、JSが良言語な事が影響してる もともとクラスもモジュールもなかったけど、今同等の機能を実現しているのは クロージャ等の言語機能が強力な潜在能力を持っていて時代が追いついたおかげ
>>721 クロージャはデフォでそうすべきって意味がわからない
JSはすべての関数がクロージャだよね?
なんか動きがあるとワーって騒いで、ああこれで世界がいきなり変わるんじゃないかとか妄想するんだけど 今まで使われてきたものの良さが否定されるわけではなく また、古いシステムを変えるにしても移行コストがかかるので 実際には受け入れられたとしても徐々に変わるものだ 今もガラケーやWindowsXPを使ってて、それで問題ないと言う人が数多くいる で、もし変わるならJSの糞仕様はどうしようもないけど、Javaが選ばれてたように、他の言語の選択肢はない だからこのスレで他の言語を語ることは許されない でも普通に他の言語は生き残り続けるし使うことができる ただHTML5がすべての社会では存在自体が許されない
選択肢は普通にあるよ 選択肢が出ても「それもJSだ!」と言ってるだけだしw
この世界がHTMLだけでできてるのは確定事項だから JSは糞言語だけどJSの呪いからは逃げられない
別にクソじゃないだろ。 JavaScriptはよく出来た言語だよ。
>>740 この世界はJSによってのみ作られる。それを理解しろ
ちなみに、Javaも普通に競合する言語たくさんあるんだが C#とか 最近だとScalaが少し出てきたか
JS以外の選択肢を口にだそうものなら途端に総攻撃に合うことは覚悟すべき 神言語JSが神であることに理由はいらない。欠陥すべてがメリット、それがJS
>>744 最近の話ね。Javaは割とオワコン化してる
一応使われ続けるだろうが盛り上がりはしないだろうなあ
糞言語でもJavaは革命だった。それこそJS以上にね
天上天下唯我独尊、C並みの高速JSがネイティブ言語である確定事項を覆せないのなら 何を言っても無駄無駄無駄
PHPとかPerlとかC(CGI)、VB(ASP)も昔のJavaの競合だよ Javaが選ばれたのは主にパフォーマンスのせいではあるけど やはりCっぽい外見とオブジェクト指向が良かったってのもあるとは思う
>>744 いや、C#は静的型づけでVMで動作する以外にJavaとの共通点がないだろ
普通はOSをWindowsにするかどうか、それでほぼ決まるし。
もちろんWindowsでもJavaは動くがC#やVBと比べたら論外だから
むしろJavaが競合するのは、PHPとかだろ
既存のすべてのCコードはJSの資産なので Cで書かれたプログラムのソースをここに持ってきてきてください すぐにブラウザアプリにして差し上げますよ
>>749 ASP.NETとサーバーサイドJavaは競合しとりますがな
まあどっちかというとOS合戦の面は否めないが
JavaはWEBのサーバサイド以外でもけっこう使われてるしね
>>751 言うように、それは言語以前にOS選びの時点で決まっているから言語の競合じゃない。
もちろんWindowsでWebアプリを作る場合もASP.NETじゃなくてStrutsやSpringを使う馬鹿が0じゃない訳じゃないけど、
ただの馬鹿だからな、それ。
MSが宗教的な理由で嫌いとか、.NET土方が集まらずJava土方しかいなかったからとか、
そういう理由がなければ劣化C#2.0のJavaを選ぶ必要性などない。
世界のすべてのアプリは今すぐにでもJSになる。まあ見てろ(ニヤッ
JSが世界の中心であることは疑いようのない歴然とした事実は 出来損ないでも頂点に立てるという勇気を与えてくれる ただし、HTMLのような巨大な後ろ楯が必要。無理ぽ。 他のカス言語はどんなに素晴らしい設計でライブラリが豊富でも諦めるしかない 話題に上げるまでもないカス言語は例のゴミ箱スレに行こう
>>753 それは全くその通りだな
でも、本当にJavaが優れていたら、WindowsでもSpring使われていたはずだ
結局、言語の優劣で決まってると思うぞ
そもそもJSに関わってこなかった人間はブラウザで何かしようなんて初めから考えてなかったはずが、もうそれは許されない すべての仕事をブラウザでやってる人間からしたらそんな遅れてる化石人間は論外なんだよ ブラウザ以外でアプリを使う?笑わせるな 今すぐブラウザ以外のアプリをアンインストールしろ。世界が変わるぞ。現に俺は変われた 今ブラウザ以外で起動してるアプリを見てみろ。本当にそんなもの必要か? それはブラウザでやるべき、ブラウザでやらなければ問題が生じる仕事なはずだろ すべての仕事はそうだ。現実を受け入れろ
インターネット時代がやっと追い付いてきた 数年後には全ての家電はネットに接続する つまり洗濯機やアイロン、こたつなどをJSで作られたインターフェースで操作するようになる これは確定した未来で、そこに他の言語は存在しない。単なる事実だからしかたない
他の確定事項としては、ubuntuの次のバージョンはブラウザベースになり、pythonやperlなどははじめからインストールされない。必要ないからだ 既存のアプリは全て革命の名のもとにブラウザアプリに置き換わる その未来がギラギラと眼前に迫って来ているのをみんなが感じてる
>>759 一つは間違いで一つは正しい。
間違いというのは、すべての家電がネットに接続するということ。
これは間違い。
正しいというのは、ネットに繋がった家電を操作できるならば
それはJavaScriptであるということ。
さすがのJS厨の俺でもどっちも間違いだって分かるわw 760はどう見てもネタだしw
Node.jsが受けたのはV8の設計が神だったことが大きい C++ともの凄く相性いいからな
JS厨とアンチJS厨がもともと同一人物説
革命に対するはじめの反応は往々にしてこんなものか 確定した未来つまり数年後のHTML5が全てにおいて使われる新しい世界に 一部の人間は気づき始めてる。その熱狂してるコミュニティの瞳に映る未来は JSでできないことはないし、現に彼らはJS以外をつかっていない
JSは他の言語とは比較にならないほどの神言語である HTML5と言えば神であるJS以外は考えられないので 何かを比較するということ自体が不敬だと言える 実際、JS以外の言語は確定した未来において存在しない
うーん、これは…
シンパシーを感じた真性JS厨である
>>761 だけが崩壊してる論理に真面目に取り合っててワロタ
HTMLのscriptタグはJavaScript以外にも 対応できるようになっている。 実際にVBScriptに対応していた。 ならばscriptタグを使って、PHP、Perl、Pythonなどを 動せるようにすればいいではないか? 残念ながらこの単純な考えは実現が難しい。 なぜなら他のスクリプト言語では 言語の基本機能としてファイルの読み書きが可能だから。 単純に実装してしまうと言語そのものがセキュリティホールとなってしまう。 ファイルの読み書きができることを前提に構築された言語とライブラリは すでに巨大なものとなってしまっており、今更制限できない。 もしJavaScriptを置き換える言語が将来出来るとすれば それは最初からセキュリティを考慮しファイルアクセス機能が オプションである新しい言語だろう。
つまりJS以外の言語は何も考慮する必要がないただのノイズだし 実際、GoogleはJSだけを使い素晴らしいプロダクトを次々に産み出してる 全ての言語を熟知した天才集団が選んだ言語それがJS つまりJS厨のIQは他の言語ユーザーより高い
アンチJSの奴がついに俺のマネをし出したw
考えて見れば恐ろしいもので、 何処の誰が作ったかもわからないプログラムを 無許可で実行するのがブラウザ。 本来ならすごく危険な行為 JavaScriptのメリットはこれが可能という セキュリティの高さだろう。
pythonで科学技術計算?プラグイン?perlでワンライナ?RoR? C#でポトペタ?C/C++で高速化? 笑わせるな!JSを知らないからそんな愚かな方法を続けてしまうのだ 情弱どもがそんなものでドヤ顔するとはほとほと呆れ果てる 数年後のHTML5+JSで作られた世界を全く理解してない もう既にpythonやC#の牙城が崩れ去った音が聞こえなかったのか? JS指向世界こそが唯一の答え。googleが選んだ答えだ。誰も逆らえまい
JSはこの世界を支配しているが安心しろ JSは究極のセキュリティを備えている お前が普段見ているそのサイト、それがその証拠だ 他の言語でこれほどのセキュリティを実現する方法はこれまで、そしておそらくこれからも存在しない
asm.jsが脅威だわ。 あれを使うと、既存のライブラリが JavaScriptライブラリに変えられちまう。
君たちのHDDにある大量のCのソースコード それは今この場でJSのライブラリになる 一丁前のJSプログラマに仲間入りだ。何故試さない? あの日作った力作Cプログラムもそっくりそのままブラウザで動く 何故試さない?
わかってる人間は既に変換し終えたころか Cで書かれた大規模システム、ライブラリは無数にあり、公開されているものも多い それが全部JSのものだ。来週か、来月か、近いうちに大規模な「革命」が起こる JS以外の言語がこの世から消え去る審判の日だ
ほとんどの言語はCで書かれている それらの言語はもはやJSの一部として当然に機能する まさに今、まさにここで。 JSを使う、世界を手中に納めるということはそういことだ
>>765 それで。オブジェクト指向は革命ではなかった。
>>779 この手の議論はまず、意図を明らかにしないと不毛
革命ではなかったとは?
君の考える革命とは何で、その定義のどこがオブジェクト指向に足りない?
2000年代はウェブの隆盛でPerlやPHPのようなスクリプト言語も隆盛になったんだけど、すでにピーク過ぎてる。 今までこの手のスクリプト言語が使われて来た分野はJSが代替する。 が、JSというかHTML5が凄く有望なアプリケーションプラットフォームかと言うとそうでもなくて、スマートデバイスの普及、ストアアプリって仕組みの導入でアプリケーションをHTML5みたいな不自由で低速な実行環境、収益力のない配布形態で作る必要なくなった。 スマートフォンではGmailだってアプリから使うのが普通。 Windows8からPCにもその流れは来てる。
node.js触ってみたけど、面白い言語だねぇ 下みたいな、明らかに間違ったコードでも 実行時例外すら出ないんだね var x = [0, 1, 2, 3] for(var i = 0; i <= x.length; i++) { console.log(x[i]) } var f = function(x, y){return 2 * (x + y)} console.log(f(1)) まともな実行時チェックを何もやらないから高速に動くの?
>>782 それってJavaScript的には間違ってるわけじゃない
undefinedという概念があるから
それのおかげで、様々なブラウザやバージョンに対応できた側面がある
まあ、様々な環境に対応させたり、探りを入れたりするには、 「手動で」チェックを入れるのが意外と妥当な解決策だったんだよな ブラウザという特殊な環境だけの話かもしれん
>>784 f(1)の方はundefinedじゃなくてNaNが返ってくるよ
NaNの概念がある言語は沢山あるけど、引数の数をチェックしない言語は少ないと思う
>>787 最初にundefinedになった後、その値を計算に使用したからNaNになる
引数チェックしないのは、今ではオーバーロードをエミュレートするのに
使われてるけど、そもそもオーバーロードにした方が良かったかもしれないね
バージョン違いで引数が増えてたりといった事が日常茶飯事だったと想像
>>788 なるほど、fの引数のyがundefinedになってるんだね
納得
>>789 そうだね
'undefined'を変数名として使えるという変態言語w
function (a, b, undefined)とすればちゃんとundefinedがundefinedになるという
バッドノウハウもあるw
でもこういう柔軟性結構好きなんだよねw
function(x, y){return x + y}('foo') ってやったら"fooundefined"が返ってきたw
文字列として結合したのか これは動的言語ではよくあるやつだな
動的型付けのRubyは "foo" + nil で例外投げるし、Pythonも 'foo' + None で例外投げる 静的型付けのJavaは "foo" + null が"foonull"を返す
>>755 とかネタ混じりで言ってるんだろうけど
似たような傾向の人がスレ乱立とかスレタイテンプレ勝手にいじるのはやめてほしいな
googleはpythonも使ってるとか、Javaも使ってるとか可愛い勘違いするなよ 天才が暇つぶしに触ってただけだ。本気で使いこなしているのはJSだけ
>>795 例外投げるのが正しいし、それ以外は危険以外のなにものでもないけど
例えば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
デフォルトが安全側に寄ってるのが大事なんだよ
ごめん間違えた><
pythonコード貼ってる人がやってるホイトスペースの置き換えがわからん
>>795 例外投げるのが正しいし、それ以外は危険以外のなにものでもないけど
Pythonではその挙動を自分の好きなように定義したいとき
たとえばこうするんだけど、他の言語ではどうやるのかな
特に妄想垂れ流しキチガイJS厨にはよく聞きたい
class myStr(str):
def __init__(self, s):
self.s = s
def __add__(self, s):
if s is None:
return self.s
elif isinstance(s, int):
return self.s + str(s)
else:
return self.s + s
foo_str = myStr('foo')
print foo_str + 'bar' # 'foobar'
print foo_str + 100 # 'foo100'
print foo_str + None # 'foo'
>>801 これで見れる?
>>801 今は 10 進数の数値参照でないといけないっぽい
& # 160; をスペース抜きで
>>343 ,350はやっぱり違うな。少なくともpythonはクラス内のメソッドに引数でselfを渡すし
外部変数にはselfを付けてるという意味で独立してない
JSは無条件でクロージャだから全部メソッド外の変数を間違って弄れる
>>804 ただの例だから。自作の型同士で定義するのが正しい使い方だろうね
>>804 myStrに次のメソッドを追加すると対称性を確保できる
def __radd__(self, s):
return self.__add__(s)
numpy 等で
1 + array([0, 1, 2])
って書いたら array([1, 2, 3]) が返ってくるのも同じ
808 :
デフォルトの名無しさん :2013/05/05(日) 13:53:44.40
>>808 いやselfの変数とそれ以外のローカル変数は明らかに性質が違う
コードを追うときもいちいち宣言の有無を確認しなくていいので可読性は上がる
ま、来たるHTML5+JSの時代にはどんなまともな設計でも意味ないんですけど
>>809 簡潔に書けるのが良いのに、最初のメソッドにいちいちselfを明示的に宣言するところとか
邪魔でしょうがない
それだと一貫性がなくなるから
第一引数と変数の前にselfを書くことで簡潔さが失われるのか甚だ疑問 それは文字数が一文字でも少ないほうが良いという価値観なのだろうが 基本的にpythonはそんな姿勢を取ってないと思うけど
エラー起こしたときに python やクラス書いた人の考える引数の個数(self 込み)と ユーザの考える引数の個数(self 抜き)が一致しないのはどうなんだろ 例えばこんなの >>> f = Foo("a") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: __init__() takes 1 positional argument but 2 were given
but 2 were given がなければ、pythonユーザーでも混乱するかもね でも実際には親切に書かれてるし、それでどん詰まりしたりするものかなあ というかREPLで help(Foo) と打てばわかるんじゃね。無理かな?
学習という面でPythonは論外だね。初心者に厳しすぎる その点JSは簡単明瞭な設計とブラウザで動くという最強の強みで学習には最適 というかブラウザで動かない言語を学習というのは事実上不可能な時代になってる 最近の若者はみんなJSからプログラミングに入門してるらしいしね 彼らは変な趣味でも持ってなければもう他の言語を学習する必要がないし 最低の学習コストで最大のパフォーマンスが得られるわけだ
selfが無い場合、デコレータがselfを参照できるようにするのは 相当に面倒くさそうだ 普通の関数用とメンバ関数用で別々のデコレータ(と実現する仕組み)が必要になると思う Pythonはレキシカルスコープだから
windowsにプリインストールされていない点は関門ではあるが pythonは公式でインストーラーやチュートリアル等のドキュメントが用意されているし 対話型環境が充実している(helpやdir)から学習面で論外と言い切るのは不適切
この世界はHTML5+JSの時代であるという大前提を忘れてないか?
無視してたけどさ、
>>819 みたいな書き込みって絶対アンチJSだろw
JSの時代になって得するのは誰か 陰謀論のように富を独り占めする黒幕がいるのか。答えはNOだ JSを使う全員が幸せになれる 彼女ができるとか宝くじにあたるという個人的なことだけじゃなく 世界の貧困層や難病に苦しむ人々だって救われている このように現にNode.jsで人々の生活は一変したわけだが asm.jsの衝撃はこんなもんじゃない その衝撃的な効率によって世界のエネルギー問題が解決しこの世から戦争がなくなる
文才はあるなw
自分の主張がとおらないと暴れだすとか最悪だよ
>>823 2ch歴短い?
多分、2chというものを誤解してるんじゃないかな
ネタにくだらんレスにウケ狙い、推測に主観
そんなもんに腹立ててたらキリがないぞ
レスする方も高度なレスをする気なんかこれっぽっちもないよ
お前こそ、人に要求する前にスルースキル学べよ
自分で妥当性を考えろ
2ch歴が短いと、むかついた時に 相手にあっちにいけとか書き込むなとか 言ったりする。 そんなこと言っても無駄なんだよな。 防ぐ方法ないし、逆に無視され書き込み続けた時 自分がむかつくだけ、それを相手に教えているわけで まぬけだよなーってなる。
真摯に誠実に真実しか語ってないのにあっちいけとか言われる意味がわからないしね
自分の文章に酔って気持ちよくなってるっぽいのが 壮絶にキモい さらに、2chというものは~とか語っちゃってるのがキモい
こっちは正しいことを言ってるだけだから やめろと言われてもやめる必要がない 間違ってるのは確実にそっちなのだから
>>827 JSの素晴らしさを布教することより気持ちがいいことはないからね
時代のビッグウェーブに乗ることの気持ちよさ
君もこっちに来なよ
スルースキル学べよwwwwww
スルーしても無意味、反応しても無意味。残酷なJSが支配する
アンチjsが自作自演で暴れ出したぞw
仮に暴れていても本人がそう思ってないなら そういうのを暴れてるとは言わない
アンチ自作自演 アンチ荒らし アンチ妄想垂れ流し そういう奴の意見は通らない。ここは2chだから
JSがいかに素晴らしいか主観によって語ることが批判されるとかおかしくね?
例えば未来のJSでは
>>801 ,806はもっと簡潔に、もっとセキュアに記述できる
JSの型がユルユルなのは結構やばそうなんだけど 実際に開発してる人はどうやって対応してるんだろう 適当なシンタックスチェックのツールがあるのかな?
JSは自由な言語だから。ちゃんとわかってコーディングすれば何の問題もない それよりも何かと緩いことのメリットが大きい 確かにヤバそうに見えるけど実際は全くやばくない。それがJSの特に優れているところ
>>838 あ、実際に開発してない人の意見はいいです
俺が開発してるかどうかは問題じゃない いずれにしてもJSがそういう優れた言語であることに代わりはない Googleマップがその証拠だ
sublime linter いいよ
>>840 それは言語じゃなくてブラウザのAPIと実装のおかげ
結局JS厨はブラウザで動くという意外のメリットを提示できないんだね JS自体は型チェックもザルのゴミ言語だけど、ブラウザで動く唯一の言語だから仕方なく使ってるんだね
>>837 シンタックスのチェックなら実際に動かしてみれば検出される
ある程度の規模になるならモジュールテスト書いて動かす
Lintツールも使いたい奴は使う
>>792 >>795 JavaとJavascriptはダメだなぁ
特にJavaは静的型言語特有の冗長さ全開なのに
肝心なところで穴が開いてて酷いわ
RubyとPythonは文字列の足し算も出来ないのか Noneを出力するためにわざわざtostr()みたいな関数かますのかな いちいちめんどくさいなあ
文字列連結と出力に何の関係が……? 頭がおかしくなっちゃったの?
'foo' + nullでfoonullになったら何かまずいことあるのか? obj = null; 'foo' + obj これがfoonullだったらよくないけど
>>847 write 'debug value = ' + value
ここでいちいち動作が中断するし、出力も出来ないんだろ
>>848 それもfoonullになって欲しいわ
まずnullの中身が文字列'null'なのがおかしいだろw どんな設計だよ
>>> value = None >>> print 'debug value =', value debug value = None
obj が null のまま加算することがあってはならないのに 'foo' + obj が 'foonull' になるなんてのは論外だろう デバッグ用の出力ならそれ用の関数を用意して write('debug value = ', value) とかすればいい
nullの中身?
>>852 ほら、結局そういうのかまさないと駄目なんだろ
めんどくさ
出力以外でそんな加算をしたらバグなのにエラーも吐かずにプログラム続行 テストで検出できない
nullやundefinedが文字列と連結出来なくても 全然冗長じゃなかったねw ていうか、そんなとこで冗長さを気にするくらいなら JavascriptはfunctionをSMLやOCamlに習ってfnやfunにすべきだし、 Javaは冗長すぎるから死滅すべき
そのためにコンマという演算子を定義して仕様のシンプルさを 犠牲にしちゃってるけどね pythonだけだし
この点に関してはPythonの方がいいだろ JavaScriptは細かい点でミスが多いし、エラーで止まることより動くこと を重視してる面はある 昔のCの発想に似てる
Python3 (または Python2 で from __future__ import print_function使用時) では
printはただの可変長引数の関数で、カンマに特殊な意味はない(引数を区切るだけ)
当然 print('debug value =', value) で
>>851 と同じ出力が得られる
>>860 可変長引数は危険だな
引数間違えてもエラーで止まらない
>>861 引数間違えたら困る関数に
可変長引数を使わなきゃ良い
まあブラウザでは多少エラーが出ても 内容を表示してくれないと困るからねえ
お、今日はJSアンチきてないのか。 あいつが来てないと流れがまともだな
>>863 それは分かる
でもデバッグ用にもっとstrictなモードがあっても良いような
use strictがそのうちもっと厳しくなるんじゃね まぁes5の機能ですらまだ使いにくいんだけど
>>864 ずっと書き込んでますが?ソースも晒してますが?
今日はいつものように妄想垂れ流さないですか?
>>868 GoやHaskellには可変長引数は基本は無い
基本はね でもHaskellなら Text.Printf.printf は可変長引数
>>869 で、printが可変長で何が問題?
GoやHaskellはwrite 'debug value = ' + valueが出力できるのか?
本当にお前らの言い分聞いてると、 まるで厳密なチェックをたくさんしてエラーをたくさん出した方が いいかのような口ぶりだな 動的型付けな時点でどうなのよ もしくは静的信者?
メリットとデメリットを天秤にかけてるだけでしょ
>>872 動的だからこそ実行時エラーを捕まえる必要がある
>>870 haskellのは特殊
でもpythonは基本的な普通の言語機能として可変長が定義できる
>>875 お前が言ってるのはwhileループが止まらないかもしれないと言ってるのと同じ
>>874 実行時のエラーなんて解釈によって変わるじゃん
>>878 危険なものを簡単に定義できちゃうのは危険
>>877 まあ、解釈によるのは事実なので
>>801 みたいな抜け道はあっても良いと思うよ
でもデフォルトはstrictな方が良いでしょう
>>879 可変長はデフォでもなければ推奨されてるわけでもない
>>880 デフォで型についてもstrictな方がいいとは思わんの?
>>879 うっかりミスで気付かないうちに
可変長引数を定義したことなんてねーよ
>>882 型についてstrictな方が良いって話をしてるんだろ
>>883 うっかり引数書き忘れたりすることはあるだろ
それがエラーにならない
そして簡単にできちゃったら、便利だから乱発するもんだろ
それが良くない
>>885 引数を何に使うのか知ってれば可変長の方が便利で乱発するとか言えないと思うのだが
何が来るのか分からない方が便利なのか?
>>885 > そして簡単にできちゃったら、便利だから乱発するもんだろ
お前と一緒にすんな
別に可変長引数は常に便利ってワケじゃねーよ
むしろ関数を定義する側は面倒臭いわ
>>886 型付けを静的に行うか動的に行うかと、
型付けの強い弱いを混同するな
Cは静的に型付けを行うが型付けは弱いし、Javaだって文字列連結に関しては弱い
>>888 誰も常に便利だとか言ってないし、全く面倒ではないとまでは
言ってないのだが
>>890 言いがかりが苦しすぎるつってんだよ
プログラミングしたことないだろ?
まあ、心配せんでも乱発はしないよ、常識的に あんまり無茶な難癖付けてもツマランよ
>>889 でも、静的に行うことによって、動的に型を変更できなくなるのだから
その点ではstrictだろ?
>>892 言語の思想として制限する言語があるくらいだし、
的外れでもないんだけどな
よくわからないけどこれは名言かもしれない
strictがいいなら、値の変更代入自体出来ないhaskell最強だろう
JavaScriptはデフォで全てのfunctionが可変引数ですが何か? Argumentsで便利にアクセスできますが?
まんこ
JSのfunctionひどすぎるだろ… そりゃ可変長は危険と言いたくもなるわ…
72 ◆/6c/RpHY/o 「 #&%#)&'%#()'$&'#(&)#('&)#$('&~!!!!!(意味不明w 」 コマンドを選択して下さい 構ってやる 措置入院 > ハブる 通報する
function fib(n) { if (n < 2) { return n; } else { return fib(n - 1) + fib(n - 2); } } これ引数一個と思うやんかあ?可変長なんよぉ~www 引数の数間違えても動くんよぉwww
javascriptは柔軟性が高いんだよ だからこそ何でもできる やり方が発見されて行く言語なんだよ
個人的には、こんなイメージ C, Javascript: ユーザを全面的に信頼する。ユーザがミスすること等ありえない Python: ユーザの意思を尊重する。自覚的にやるなら何でも許すが、デフォルトは安全寄り Haskell: ユーザの知能を信頼する。実用的なプログラムを書けない?貴方が馬鹿だからですよ(ニッコリ)
>>903 余計なincludeしなくても始めから使えるところはいいね。
argumentsの最大の罠は やっぱりそれがただのプロパティだってこと argumentsに大して代入してもエラー投げない use strictすると流石に投げるけど まぁ便利だとは思うけどねarguments
まあ確かにこうして見るとJavaScriptは酷いな 案外問題になってないのが不思議だ
問題になってるからJavascriptへコンパイルする言語が 雨後のタケノコのように出来てるんじゃないかなぁ
ここでも「JSのバッドノウハウ」が顔を出す 糞仕様をトリッキーに利用しそれが横行している
CとJSはなんか雰囲気似てるよね
いくらCでもデフォルトで可変引数なんてことはないぞ
次のテンプレに可変長引数がデフォの言語はスレ違いですって入れとくか
arguments使わなければよい
問題は呼び出される側じゃなくて、呼び出す側が全く引数リストに縛られないことだろ argumentsとか関係ない
950あたりになったらちゃんとしたスレタイで立て直すから削除依頼出してこいよ
いや、しかしなんでデフォルトで可変引数なんだ? これはちょっと不可解だ そんなにブラウザで動かしたかったんかいな
rubyがフェイドアウトしている件w
>>908 でも問題視している発言は確かにあまり聞かない
>>918 前スレから荒らしてたJS厨がスレタイとテンプレを改変した
ついでのJS以外スレというのも立てた
>>919 型がユルユルなことは常に問題視されまくってるじゃん
>>921 俺が言ってるのはデフォルトで可変長引数になる問題な
というか、気づいてないやつが大半な気すらする
>>922 確かに。ありえないから自分の言語と比較しようとちょっと触ったくらいじゃ試さないしねw
ちょっと衝撃だった。引数を間違えても動いてしまうというデメリットしかない
>>915 またアンチJSが立てたか
おまえpythonに泥塗ってる罠
仮に100歩譲ってデフォルトが可変長引数なのは良しとしよう(良くないけど) 可変長引数じゃなくするにはどうするの? もしかしてargumentsをチェックしたりの面倒な作業が必要なの?
>>926 普通はundefinedをチェックして足りないことは検出するね
と言ってもエラーにすることは普通はしない
デフォルトの値を割り当てて継続するのが普通
あと、多すぎる場合は、普通は無視する
どうしてもエラーにしたかったら、arguments.lengthのチェックだな
全ての言語のに劣る糞仕様だな
実際はそういう言語設計ミスも揚げ足取りの類だよ 意外と誰も困ってない そんなことより、クロージャとかプロトタイプベースのオブジェクト指向 とかの方が影響が大きい
いやー、困ってるんじゃないかなぁ
どんなに困ってても使わなければいけないというだけ 他のまともな言語を使ったことがあるなら気持ち悪くてしかたないだろ 実際、なんのメリットもない罠がしかけられてる それでもHTML+JSの時代だから糞言語を強いられるんだよ
困ってるなら、これを指摘して文句をいうブログなりなんなりが 多数引っかかるはずだけど、あんまりそんな話は聞いたことがないし、 自分で困った記憶も確かにない
こんだけ糞仕様なのに素晴らしい言語だから使われてるとか いまだに思ってる奴は脳ミソ湧いてる。クロージャも並み以下 世のデフォで可変長引数については呆れ果ててるって感じだな 他の引数が明らかにまともだとみんな思ってる
糞なところもあるけれど、 やっぱりセキュリティ的に安全というのが 普及した原因ではないだろうか。
JSをどげんかせんといかんと思ってる人は本当に多いよ
>>933 並以下とは思わんね
最近までメジャーな言語ではクロージャない言語の方が多かったわけだし
問題があるとしたらfunctionが長ったらしいのと
外部の変数がどうのとかってのくらいで、基本は素晴らしい機能だと思う
普及した原因は言語の良し悪しとは一切関係ない
他にない素晴らしいコード、安全なコードを見せてくれよ
>>936 最近までとか予防線張ってるところが虚しいな
問題はあるし、他の言語では当たり前だし
JSの価値はHTMLにさないって事実になぜ気づかない?
言語としては本当にゴミだよ
個人的にはES5準拠で常にuse strict出来るならjsのままでもいいかな でもそれは何年後なのか知らない
HTMLにしかない
javascriptへコンパイルする言語が多いのは、不満が多いからというより、 柔軟になんでもできるし、この場合は人間じゃないので、エラーチェックの 欠如が問題にならないかがないから って理由もあるだろ
>>937 実際、最近のメジャーな言語はクロージャを備え出したんで、
予防線でも何でもなく事実
javaも備える予定だし
たとえばPythonをJSにコンパイルするとかってPython完コピは無理なんだなって感じ 柔軟にできるといっても所詮はそんなもん。糞仕様に我慢してもなんでもできるわけじゃない 早く誰かPythonを完コピしてくれればJSを使う理由なんて完全になくなる
普通にwikipediaの例 function newCounter() { var i = 0; return function() { // 無名関数 i = i + 1; return i; } } とか、クロージャがない言語には無理 最近の言語は同等の事が出来るけど
例えば、var mod = requrie('module'); ってのも、普通の言語の import module とかと違って変数に代入した後クローンをいくらでも作れる 点で普通の言語には無理
>>946 pythonは良い言語だからね
たいていはpython持ち出しとけばできるし
>>943 無理なのは同じ書き方であって、
そのコードで実現していることは
どの言語でも実現できるよね?
>>945 作れるから?
それによってできる、他の言語では実現が難しい操作って何?
クラスのインスタンスと同じように見えるが
CでもJavaでも出来ますね Cは関数ポインタが出てきてわかりにくいし、Javaは無名クラスになって無駄に長くなっちゃうけど
>>951 関数ポインタでも無名クラスでもダメ
クロージャーがない言語は
クロージャーで作れない。
糞仕様を利用したとんでもないショートカットはあるかもしれないが 基本的にJSに強力な武器はないんじゃね。そう、HTML以外はね
>>947 CもJavaも無理だね
>>949 書き方がかなり違っても良いのならそりゃ出来るけど
Cで出来る事はアセンブリ言語で出来るのと一緒で
>>950 ちょっと前に、jQueryのプラグインの議論であったじゃない
ああいう感じのこと
他の言語ではクラスのインスタンスにメソッドを追加するのが
出来なかったりする
rubyではできるし、pythonは知らないけど多分出来るだろうが
>>951 どちらも記述が違いすぎて気軽には使えないね
それに、Javaはfinalしか参照できないし、Cは外側の環境は基本参照できないし
無理 → 気軽にできない に変わりましたw
>>952 はあ?じゃあクロージャでクラスはできないんだな
聞いてた話と違うわ。そんな言葉遊びしかできのか
結局いつものJS厨だな
これも一例かな <script data-xxx="hoge" src="xxx.js"></script> まあ、javascriptじゃなくてhtml込みだけどw これで新しい言語を実行したり、マクロを付け加えたり、 プリプロセスを行ったりできる しかし、これは反則かw
>>955 それでいいよ
まあ、正確な事言えば無理な事なんて基本はないからw
はい草。いつものJS厨でしたとさ
Javascriptご自慢のfunctionの挙動がキモい(実行はnode.js) a = function() { return 'a'; } b = function() { return 'b'; } function c() { return 'c'; } function d() { return 'd'; } if (false) { a = function() { return 'A'; } function b() { return 'B'; } function c() { return 'C'; } d = function() { return 'D'; } } console.log(a()) // a console.log(b()) // b console.log(c()) // C console.log(d()) // d
そうだねjavaでクロージャの記述は大変だね 逆にjsでjavaみたいなクラス気軽に書けたらよかったのにね
>>961 気軽にかけるよ
functionは実はクラス相当
結局HTMLに逃げるしかないんだからこの板に向いてないよ
JSはデフォルト引数もだせえな なんで一般的なC++風ができないんだ?
C言語で
>>943 を実装するなら
こんなんのでいいんじゃねーの?
int newCounter(void) {
return 0;
}
int getCount(int *i) {
return i++; // ポインタってこんな書き方でよかったっけ?忘れた。
}
int counter1 = newCounter();
print("%d", getCount(&counter1));
>>960 そういうのがあるのと、統一的な理解のしやすさの理由から
var a= function()やa:function()の書き方の方をfunction a()の書き方よりも推奨する人が多い
多分有名なライブラリは後者の書き方はしてないんじゃないかな
んで、
>>943 をJavaで書くのなら
こんな感じか? こっちも書き方忘れたが。
class Counter {
private int i = 0;
public int get() {
i++;
return i;
}
}
行数おんなじ。
>>960 何もキモくないな。
宣言はコンパイルフェーズに行われて
代入は実行フェーズに行われるだけ。
>>966 だからそれのことを言ってるんだが。pyjsはないので試してない
それはせっかく3に対応してるのにnonlocal使えない(JSのせいか?)し
>>801 みたいな組込型の継承もできなかった
完コピは無理だろうが洗練していけばcoffeeとかより100倍マシだろうな
そもそもPythonを使ってる俺はブラウザでやる意味がないので使わないけど
>>968 それだとnew Counterとかやらなくちゃいけなくなるよ
期せずして、クロージャがクラス相当ってのがわかりやすいコードだね
クロージャはクラスの機能を潜在的に持っていると言われる所以
>>970 原理的には何でも出来るだろ
ただ、追いついていないだけで
よし、じゃあjavascriptで作られた有名ソフトと pythonで作られた有名ソフトで対決したらどうだ? 公平にデスクトップアプリ限定にしよう
>>971 > それだとnew Counterとかやらなくちゃいけなくなるよ
やればいいんじゃね?
クロージャー使ってもnewCounterってやるだろ?
まあ別にnewCounter() {return new Counter() }って
staticメソッド作ってもいいけど?
クロージャーが気軽っていうわりに クラス使った場合と大差ないってのが まあ、現実ってやつか。
クラスがないのにクラスっぽいのができて嬉しかっただけで もともとクラスがある言語からしたら別にって感じなのかな じゃあ糞仕様ばかりのJSってますますいいところなしじゃん
>>974 それだと、メソッドがまた一つ増える上に
Counter.newCounter().get()になる上に
毎回インスタンス作ってるなw
>>975 俺はJavaでクラスとか気軽に作れないけど
>>977 いやさ、使う方も大差ないよねって言ってるんだけど、わかる?
function newCounter() {
var i = 0;
return function() { // 無名関数
i = i + 1;
return i;
}
}
var counter1 = newCounter();
print counter1();
と
Counter counter1 = new Counter();
print counter1.get();
>>977 > 俺はJavaでクラスとか気軽に作れないけど
知らんがな。お前の知識不足なんか。
俺は普通に一つのファイル内に
複数のクラスを気軽に作ってる。
>>969 キリッとしてるところ申し訳ないんだけど、
Firefoxで実行すると a, b, c, d になるんですよ
>>977 もしかしてお前、
JavaScriptのコードで、newCounter()を呼び出すごとに
カウントアップするとか思ってね?
newCounter()を呼び出すごとにJavaScript風インスタンス作ってるんだけど。
カウントアップするときは、newCounterで生成したインスタンスの
メソッド(と同等のクロージャ)呼び出すんだけど?
>>973 どこが公平なんだよ
JSでデスクトップアプリ作るのなんてXUL以降くらいからだろw
>>976 「別に」とは思わんねえ
javaのインターフェースやクラスでdomイベント扱うコードとか書きたくない
>>978 それだと(newCounter())();でいいんじゃないの?
javaの方はインスタンス作っちゃうから一旦変数に入れるけどw
>>982 クラスがある言語はJavaだけじゃないよ
>>979 俺も作ってるけど、クロージャほど気軽じゃないな
やっぱり、名前付けなくちゃいけないし、インスタンス作るからか
>>982 だからさ、他の言語と全然話題を共有できないでしょ
これがブラウザでは相性が良いとか意味不明な言い訳するばかりで
それって他の言語には関係のない都合じゃん
単純に気持ちの悪いだけの設計ミスを挙げたら切りがない
最終的にはHTML5だから使うって結論に落ち着く
じゃあJSファミリーのスレを立てればいいじゃんとだいぶ前にも進言したはずだが
>>982 > それだと(newCounter())();でいいんじゃないの?
> javaの方はインスタンス作っちゃうから一旦変数に入れるけどw
JavaScriptでも一旦変数に入れてるだろ。
> var counter1 = newCounter();
> print counter1();
それともお前、カウンタなのに一回使って終わりか?
二回目どうするんだ?言ってみろ。
>984 > やっぱり、名前付けなくちゃいけないし、インスタンス作るからか newCounterがnew Counterになっただけじゃん。 どっちも名前つけてる。
>>982 > それだと(newCounter())();でいいんじゃないの?
Javaだと同じコードは
(new Counter()).get();
別に一旦変数に入れる必要はない。
>>986 スマンそこは俺が間違ってた
>>987 いや、それはその例が付けてるだけで
クロージャは定義して即引数に渡したり呼び出したりする場合に
付けなくて良い
>>988 そうだな
まあgetが冗長だけど
無理→気軽にできない→getが冗長 だいぶ下がりましたねぇ…
>>990 getが冗長だし、名前もつけなくちゃいけない
結果として気軽に出来ない
ほら見て、たった4文字の争いw
getはたいしたことはないが、名前考える負担は大きいよ
クロージャ(メソッド一つのインスタンス) の代わりなら全部getでよい。
>>985 有名なデスクトップアプリ挙げれば良いんだろ?
C++が明らかに有利だけど意味あるの?
ちょっと検索して見つけたのは
Mozilla Thunderbird
Komodo Editor
>>994 ライブラリによってcallだったりapplyだったりfだったりしそう
で、同じクロージャなのに、あっちのライブラリでは使えるけど
こっちには使えないとか発生しそう
>>996 超些細な問題。
どうせドット押せばわかること。
え?それはダサいよ
おい、最後 Javascript vs Java になってるじゃねーか 誰得の展開なんだよ
1000 :
結論 :2013/05/06(月) 04:34:03.66
Python >> 越えられない壁 >> Java >= Javascript
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。