JavaScriptは消滅すべきだったよな (767レス)
JavaScriptは消滅すべきだったよな http://mevius.5ch.net/test/read.cgi/tech/1320761689/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
656: デフォルトの名無しさん [sage] 2015/03/01(日) 11:17:57.32 ID:H0vTWA+P 柔軟すぎてランタイムごとに動作が不揃いな言語を作るのは簡単だ http://mevius.5ch.net/test/read.cgi/tech/1320761689/656
657: デフォルトの名無しさん [] 2015/03/01(日) 11:38:00.21 ID:OvSDcOqa hoisting おれなら吊り上げと訳す http://mevius.5ch.net/test/read.cgi/tech/1320761689/657
658: デフォルトの名無しさん [sage] 2015/03/01(日) 11:42:29.98 ID:yqpW0lF8 >>656 少なくとも柔軟さが原因で動作が異なるというのはほぼ無いな 新仕様の未対応とかはあるけども http://mevius.5ch.net/test/read.cgi/tech/1320761689/658
659: デフォルトの名無しさん [sage] 2015/03/01(日) 11:49:08.73 ID:yqpW0lF8 変数の巻き上げは有名なところだとpythonもだな これもlinterでvarが最初にあることをチェックしとけば防げるし、 Es6にはletという新しい構文ができた このように、柔軟さは防げる http://mevius.5ch.net/test/read.cgi/tech/1320761689/659
660: デフォルトの名無しさん [sage] 2015/03/01(日) 13:17:02.50 ID:wgjs6b8L そうじゃなくて、巻き上げた変数に宣言前にアクセスをすると例外も出さないでundefinedにするなといいたい 存在する意味のない謎仕様をlintでごまかすとか意味不明 >後付けで仕様を足すこともできる 破壊的な変更をしないといけないのは足すとは言えない 処理系で足並みを揃えるのが難しいから、altJSに逃げざるを得ない 柔軟性で言っても、中間言語のほうが圧倒的に上。javascriptは制限が強い。 いっそ、APIと共通言語仕様だけ決めて、言語は自由に選択可能というのが利点ありそう http://mevius.5ch.net/test/read.cgi/tech/1320761689/660
661: デフォルトの名無しさん [] 2015/03/01(日) 15:44:27.88 ID:N+dovjey >>660 お前の言いたいことは分かるが、それはもう世界中で何十億回と言われ腐ったことだろ。 2015年の今それを言ってどうする。 世間はaltJSやらES6で前向きにその問題を乗り越えてるし、 この問題は数ある中でも実際にこまる度合いは極めて低い部類だ。 これはもはや相互理解ができないのかもしれないが、 strictモードやaltJS、Lint等の存在があるからJSerはJSがダメとは思わないし、 むしろそういう存在があることを光栄に思っている。 実際ES6ではCoffeeScriptから取り入れたものもあるし、TypeScriptはES7を参考にしてる。 JSerはこれらを敵対勢力ではなく、運命共同体の仲間だと認識している。 そして最近GoogleがTC39Meetingでも発表したSane/SoundScript構想。 >>660のような人にとってはJSがダメなことの照明だと思うのだろう。 だがJSerはこれはJSの進化だと捉える。 JSは柔軟であり、堅牢であり、全ての要求に答えられる言語に進化していくと願っている。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/661
662: デフォルトの名無しさん [sage] 2015/03/01(日) 17:09:09.18 ID:wgjs6b8L >>661 結局、javascriptである必要性がない 柔軟性、堅牢性、すべての要求に応えるなら中間言語を使うほうが楽じゃん 構文解析によるロスも、文法の制限もなく、あらゆる言語からコンパイル可能。互換性や速度の足かせもない。 この話は全く腐ってないし、LLVMとかRoslynが成果を上げ始めてきている2015年だからこそある選択肢 PNaClに期待したい javascriptはひとつの選択肢として残せばよい わざわざ柔軟性の低いjavascriptにコンパイルする理由は互換性を除けばない http://mevius.5ch.net/test/read.cgi/tech/1320761689/662
663: デフォルトの名無しさん [] 2015/03/01(日) 17:28:56.75 ID:FcH6YvCw LLVMは確かに互換性が売りだ。しかしそれは理想であって現実は違う。 PNaClがなぜ普及しないのか?それは最初は問題無いとされた互換性問題が避けられないと分かったからだ。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/663
664: デフォルトの名無しさん [] 2015/03/01(日) 19:11:25.27 ID:rdPv98Ov Javascriptが中間言語なんですけど? よくある話で、わざわざ別のものを作る必要はない。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/664
665: デフォルトの名無しさん [sage] 2015/03/01(日) 19:27:23.08 ID:wgjs6b8L >>663 まだこれからでしょ サーバー側でasm.jsにも変換して、非対応ブラウザはそっちを使うとかすればいい >>664 それしか手段がないからそうしてるけど、遅いし柔軟性低いし、限界はある 型やポインタが扱える、高速な中間言語が採用されてもいい時代 http://mevius.5ch.net/test/read.cgi/tech/1320761689/665
666: デフォルトの名無しさん [sage] 2015/03/01(日) 20:05:24.15 ID:KsvF2WvU 中間コードなんて誰が読んでデバッグするの? http://mevius.5ch.net/test/read.cgi/tech/1320761689/666
667: デフォルトの名無しさん [sage] 2015/03/01(日) 20:19:05.79 ID:wgjs6b8L >>666 javascriptと同じでコードマップつかう コードマップが無ければemscriptenみたいので逆コンパイルするしかないけど、javascriptの圧縮コードも十分読みにくいし http://mevius.5ch.net/test/read.cgi/tech/1320761689/667
668: デフォルトの名無しさん [sage] 2015/03/01(日) 20:44:37.90 ID:KsvF2WvU え?圧縮コードって読むものだったの? http://mevius.5ch.net/test/read.cgi/tech/1320761689/668
669: デフォルトの名無しさん [] 2015/03/01(日) 22:12:22.53 ID:rdPv98Ov 中間コードをバイナリで読む人もいるだろうし、 圧縮コードのままデバッグする人もいるだろうな。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/669
670: デフォルトの名無しさん [sage] 2015/03/03(火) 16:32:39.87 ID:IExRGO3p JavaScript自体がES6,ES7と発展する中で、状況は改善されていくだろう。 それに加えて、上位互換のTypeScript、下位互換のasm.jsがある DartやPNaCl等の別言語によるJSの置き換えは最早受け入れられにくい。 Googleもそれを察してか、AtScript(TypeScript互換),Sane/SoundScript, asm.js対応と、相次いで軌道修正を図っている様に見える http://mevius.5ch.net/test/read.cgi/tech/1320761689/670
671: デフォルトの名無しさん [] 2015/03/03(火) 23:17:29.70 ID:StzQ6W23 JavaScriptクッソ記述しやすくて読みやすいんだけど JSがカスに思えるくらい読みやすい言語って何かな http://mevius.5ch.net/test/read.cgi/tech/1320761689/671
672: デフォルトの名無しさん [sage] 2015/03/04(水) 01:01:06.67 ID:GzjMUXXo >>671 単なる慣れだろ JavaScriptの読みやすさは平均ぐらいじゃね? http://mevius.5ch.net/test/read.cgi/tech/1320761689/672
673: デフォルトの名無しさん [] 2015/03/04(水) 07:52:41.29 ID:UWB+qgaN coffeescriptって流行ってる? http://mevius.5ch.net/test/read.cgi/tech/1320761689/673
674: デフォルトの名無しさん [] 2015/03/04(水) 07:59:42.20 ID:mArZsUPF >>672 そうかー Cはいちいち変数をスコープの頭で宣言しないとダメだったし C++は結局業務でvector以外のテンプレートが必須になるレベルのものがなかった上に 調子のれば乗るほど当時の本人しかわからないコードが生成されてだるかった さらに結局なんやかんやでメモリ管理もそれなりに意識しないといけないのも面倒だった c#とjavaは楽だったけどクラス定義を往復するだけでも面倒になるくらいJavaScriptが楽に思える 結局>>620の言ってる感覚に陥ってるわけか http://mevius.5ch.net/test/read.cgi/tech/1320761689/674
675: デフォルトの名無しさん [sage] 2015/03/04(水) 09:04:53.57 ID:UWB+qgaN 色々間違ってるな http://mevius.5ch.net/test/read.cgi/tech/1320761689/675
676: デフォルトの名無しさん [sage] 2015/03/04(水) 09:07:10.97 ID:g/arT6Ck >>673 流行っていない。TypeScriptも同じ。 結局は亜流でしかない。わざわざcoffee scriptでやらなければならない 絶対的理由がないのなら、当然ドキュメント量の多いJavascriptで普通は やる。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/676
677: デフォルトの名無しさん [sage] 2015/03/04(水) 10:23:56.27 ID:GzjMUXXo >>674 だいぶ前からCはどこでも宣言できる処理系が多い むしろ、JavaScriptは変数の巻き上げでミスらないように先頭で宣言すべき派の人もいる あとはC#やJavaのほうが静的な支援は受けやすい IDEでクラス定義をその場で見たり、精度の高い入力補完は慣れると便利で、大規模な時はありがたい http://mevius.5ch.net/test/read.cgi/tech/1320761689/677
678: デフォルトの名無しさん [sage] 2015/03/04(水) 13:48:40.09 ID:mRCMaolX まあ確かにC系は冗長な記述が多いかもな。 とはいえJSもスクリプト言語としてはスマートでもない。ES6でやっと標準レベルになったが。 まあSaneScriptやSoundScriptはすごく折り合いがとれたいい構想なんじゃない? まあプロトタイプベースでガンガンやるのも面白いんだけどね。 あとは、bignumとかそういったのがES7で入ってくれれば不満はないね。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/678
679: デフォルトの名無しさん [] 2015/03/04(水) 16:01:30.75 ID:mArZsUPF >>677 移植性がなくなってC使う意味がなくなるから宣言は絶対頭でしろって怒られたことあるな 昔の話だから今は知らない。エディタ側でもどうにでもなりそうな問題な気もするし。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/679
680: デフォルトの名無しさん [] 2015/03/04(水) 16:18:06.85 ID:mArZsUPF ええ……巻き上げとか知らなかったわ 先頭宣言して状況次第で初期化時にダミーデータ放り込まないといけないとか そこら辺の記事で褒め称えてるけどそれこそ大昔からのバグの温床じゃないですかね… http://mevius.5ch.net/test/read.cgi/tech/1320761689/680
681: デフォルトの名無しさん [sage] 2015/03/04(水) 18:20:35.89 ID:3cqSAZZu 巻き上げ自体はいろんな言語にあるし、普通だろ。 巻き上げっていうのは、スコープ内で宣言された変数はそのスコープのどこでも有効ということだから。 問題は巻き上げられてる変数が予めundefinedで初期化されていて、使用してもエラーにならないってこと。 まあでもその問題はJS入門者が数度引っかかる程度でそんなに大きなものでもないけどね。 varがゆるゆるなのは関数スコープだからってのもあって、理には適ってる。 例えば多重宣言ができる点も、普通に考えればバグの可能性を生むだけだが、 関数スコープだと例えば2つのfor文でiを使う際に、両方で宣言する書き方を許すのは必要。 まあそれらを全て否定して、わざわざループ変数まで関数の最初で宣言するのも自由だけどね。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/681
682: デフォルトの名無しさん [sage] 2015/03/04(水) 23:14:34.28 ID:/uWWye7B ES6は進化した部分もあるけど、正直枝葉末節 むしろ、大きく退化したと俺は見る 今更古臭いクラス思想を持ち込んでどうするんだ? es6は害悪だ http://mevius.5ch.net/test/read.cgi/tech/1320761689/682
683: デフォルトの名無しさん [] 2015/03/05(木) 02:10:35.88 ID:ZxoYMS6l >>671 >読みやすいんだけど パクられ易いのが問題だな。 重要なプログラムはソース丸見えで組みたくない。 HTML5版のグラディウスとかソース参考にしようと思って コード探したけど消されてたし http://mevius.5ch.net/test/read.cgi/tech/1320761689/683
684: デフォルトの名無しさん [] 2015/03/05(木) 02:37:16.29 ID:PYCfZI4i ES6にクラス思想なんて入っていないが http://mevius.5ch.net/test/read.cgi/tech/1320761689/684
685: デフォルトの名無しさん [sage] 2015/03/05(木) 05:10:36.14 ID:gzqC2V5Z クラス指向をより書きやすくするための機能が入っただけだな(笑) http://mevius.5ch.net/test/read.cgi/tech/1320761689/685
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 82 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s