X



JavaScriptは消滅すべきだったよな
0001デフォルトの名無しさん
垢版 |
2011/11/08(火) 23:14:49.42
あの盛り下がってた時期に。

Ajaxとかいう技術のせいで再評価されちゃって、
結局使いにくいままjQueryとかcoffee scriptなるものを生み出してしまう。
0614デフォルトの名無しさん
垢版 |
2014/07/21(月) 01:35:38.56ID:d0rV4B9h
scriptあると滅茶苦茶遅くなったり誤作動や固まる率がものすごく上がる
その一方でメリットはあるとは思えない、あっても虚飾程度
0617デフォルトの名無しさん
垢版 |
2014/08/02(土) 21:40:31.68ID:/0C/55ah
>>609
Javascript+WebGLで作られたサンプルの方がそれより凄いんだけど
http://oos.moxiecode.com/js_webgl/water_noise/
http://jeremybouny.fr/ocean/demo/

Javascriptでシェーダーが使えるようになったから結構リアルなCGも描写できるようになったんだよな
EmscriptenっていうC言語からJavascriptに変換するプログラムもあるし低級化していってるなと思う
0618デフォルトの名無しさん
垢版 |
2014/08/08(金) 12:29:14.03ID:U1h/L2RD
>>610
分野によるでしょ。
数行スクリプトが頻発する分野では生き残るためには必須と言える。
>>609
コアなライブラリだけネイティブであればよくて、
後はJITのあるスクリプトで十分ってことがまだ分かってない人がいるとは。
https://www.youtube.com/watch?v=Sfx4OA4eF-A
0620デフォルトの名無しさん
垢版 |
2014/08/11(月) 13:54:05.48ID:jBOl1mhX
JavaScriptって今までJavaみたいなオブジェクト至高言語しかやったことないやつが
関数が配列に入ったりするのに感動して過大評価してるだけなんだよね
そんなの関数型言語じゃ当たり前だったし、オブジェクト指向ではあえて入れなかった機能なんだが
それがJavaScript特有の高機能性だと思ってる
0623デフォルトの名無しさん
垢版 |
2014/08/11(月) 14:18:20.31ID:jBOl1mhX
C#とかC++果てはDまでもdelegateとか言って特別扱いじゃん
最初は排除してたくせに、新機能アピールのために後付してるのが見え見え。
0624デフォルトの名無しさん
垢版 |
2014/08/11(月) 14:28:56.70ID:msdQqOI/
個人的には第一級関数よりプロトタイプが書いてて面白いと感じたな
あとNodeが用途によってはPHP、Railsあたりと比較して圧倒的にパフォーマンスに優れてる面とかかなぁ
0627デフォルトの名無しさん
垢版 |
2014/08/12(火) 22:14:17.64ID:tbFo1OkT
webアプリに必要なヘルパーがてんこもりなところ
あとNode.jsはエラーハンドリング面倒くさすぎだわ
ただそれらを差し引いても魅力的なパフォーマンス
0629デフォルトの名無しさん
垢版 |
2014/08/17(日) 02:55:19.91ID:OLSnBPjV
nodeはエラーハンドリングが貧弱なくせに
エラー起こすと全機能停止するからな
そこだけが不満
0630デフォルトの名無しさん
垢版 |
2014/08/17(日) 10:17:55.63ID:eJHa/C15
@ebi
なるほど。この発想はすごいなぁ。

ソースコードに隠された謎を説きながら冒険を進めろ!ゲームでプログラミングを学べる
hackforplay/shi3z:電脳ヒッチハイクガイド:電脳空間カウボーイズZZ
http://ch.nicovideo.jp/akiba-cyberspacecowboys/blomaga/ar599071
0635デフォルトの名無しさん
垢版 |
2014/12/10(水) 08:07:16.72ID:v5e5mm45
>>634
なら、君は使わなければ良いよ。

全てオフにして生きていけば良い。殆どのページで使い物に
ならなくなるがな。
0639デフォルトの名無しさん
垢版 |
2015/01/25(日) 10:27:17.63ID:JhgO84F7
Snap.svg 使ったら
ゲーム作るのアホみたい簡単になった
うけるω
0640Office & Gamers ◆G144Hzgh2.0e
垢版 |
2015/02/07(土) 06:59:39.38ID:fNjYutkO
JavaScriptの統合開発環境みたいなの拾ってきたw

DX Studio
http://www.dxstudio.com/

Freeバージョンはそのまま使えて、開発ライセンスは登録が必要。
マルチプラットフォーム、EXEファイル生成可(ライセンス版のみ)w

DirectX9ベースで、インストールされていない場合は自動インストール。

JavaScriptの実験用に使えるw

# ただし、全部英語で、ある程度の英語スキルが要求されるw
0642デフォルトの名無しさん
垢版 |
2015/02/07(土) 22:01:55.03ID:YaOp7Nt7
>>610
ニーズのほとんどは、duck typingで説明できるんじゃねーかな。
なんとなく動いてほしいわけだ。
Pascalとかでコンパイル成功するとほぼ動作するってのを知ってると、気持ちわるいわけだが。
0644デフォルトの名無しさん
垢版 |
2015/02/08(日) 08:03:34.85ID:tUjKNEQ0
ぐろ
0647デフォルトの名無しさん
垢版 |
2015/02/28(土) 11:03:04.46ID:1nuig21R
OOPLなのに+で文字列結合とか無いわー。
集合型と互換性なくなるじゃん。

"集合型と文字列型が互換性を持っているSmalltalkの例"
| value |

"加算"
value := #( 1 2 ) + 1. "-> #( 2 3 )"
value := 'AB' + ( $a - $A ). "-> ab"

"結合"
value := #( 1 2 ) , #( 3 ). "-> #( 1
2 3 )"
value := 'example', 10 printString. "-> example10"

"備考:書式付き文字列結合"
value := 'example%1' % { 10 }. "-> example10"
0648デフォルトの名無しさん
垢版 |
2015/02/28(土) 11:15:30.14ID:0J8+8Slx
>>290
スモールマウス。ちがったトーク。うざいよ?
ここにも書き込んでたか。もう明らかに荒らしが目的ってはっきりしたな。
0649デフォルトの名無しさん
垢版 |
2015/02/28(土) 11:31:59.98ID:u2d/ZWEO
プロトタイプベースとか言う謎ワードに踊らされてクラスを意識させたのが間違いだった
構造体とfunc.callを中心に考えたらまだ有り
0650デフォルトの名無しさん
垢版 |
2015/02/28(土) 23:55:30.84ID:8Ce/GkAM
>>647
だっさ。
0651デフォルトの名無しさん
垢版 |
2015/03/01(日) 09:13:51.38ID:N+dovjey
間違いの10や20くらいどの言語にもある。
JSはまだその柔軟性により間違いを緩和しやすい方だ。

ただJSの何もかもが間違いに見える人にとっては
間違いを間違いで塗りつぶしているように見えるのかもな。
0653デフォルトの名無しさん
垢版 |
2015/03/01(日) 10:25:43.19ID:wgjs6b8L
その柔軟さが問題ありすぎて、厳密モードとかで必死に間違いを直してるだろ
影響が広い破壊的な変更を加えないといけないのは間違いが多すぎる証

他のスレでもいったけど、undefinedが予約語でなくて書き換え可能とか、変数の巻き上げとか、他にそんな間違いしてる言語ある?
0655デフォルトの名無しさん
垢版 |
2015/03/01(日) 10:46:34.16ID:yqpW0lF8
柔軟なものを厳密に変えるのは簡単だ
エディターやlint、シンタックスチェッカーの助けを借りればいいし、
後付けで仕様を足すこともできる
逆は難しい
それがjavascriptが他より人気のある理由
0657デフォルトの名無しさん
垢版 |
2015/03/01(日) 11:38:00.21ID:OvSDcOqa
hoisting
おれなら吊り上げと訳す
0658デフォルトの名無しさん
垢版 |
2015/03/01(日) 11:42:29.98ID:yqpW0lF8
>>656
少なくとも柔軟さが原因で動作が異なるというのはほぼ無いな
新仕様の未対応とかはあるけども
0659デフォルトの名無しさん
垢版 |
2015/03/01(日) 11:49:08.73ID:yqpW0lF8
変数の巻き上げは有名なところだとpythonもだな
これもlinterでvarが最初にあることをチェックしとけば防げるし、
Es6にはletという新しい構文ができた

このように、柔軟さは防げる
0660デフォルトの名無しさん
垢版 |
2015/03/01(日) 13:17:02.50ID:wgjs6b8L
そうじゃなくて、巻き上げた変数に宣言前にアクセスをすると例外も出さないでundefinedにするなといいたい
存在する意味のない謎仕様をlintでごまかすとか意味不明

>後付けで仕様を足すこともできる
破壊的な変更をしないといけないのは足すとは言えない
処理系で足並みを揃えるのが難しいから、altJSに逃げざるを得ない

柔軟性で言っても、中間言語のほうが圧倒的に上。javascriptは制限が強い。
いっそ、APIと共通言語仕様だけ決めて、言語は自由に選択可能というのが利点ありそう
0661デフォルトの名無しさん
垢版 |
2015/03/01(日) 15:44:27.88ID: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は柔軟であり、堅牢であり、全ての要求に答えられる言語に進化していくと願っている。
0662デフォルトの名無しさん
垢版 |
2015/03/01(日) 17:09:09.18ID:wgjs6b8L
>>661
結局、javascriptである必要性がない
柔軟性、堅牢性、すべての要求に応えるなら中間言語を使うほうが楽じゃん
構文解析によるロスも、文法の制限もなく、あらゆる言語からコンパイル可能。互換性や速度の足かせもない。
この話は全く腐ってないし、LLVMとかRoslynが成果を上げ始めてきている2015年だからこそある選択肢
PNaClに期待したい

javascriptはひとつの選択肢として残せばよい
わざわざ柔軟性の低いjavascriptにコンパイルする理由は互換性を除けばない
0663デフォルトの名無しさん
垢版 |
2015/03/01(日) 17:28:56.75ID:FcH6YvCw
LLVMは確かに互換性が売りだ。しかしそれは理想であって現実は違う。
PNaClがなぜ普及しないのか?それは最初は問題無いとされた互換性問題が避けられないと分かったからだ。
0664デフォルトの名無しさん
垢版 |
2015/03/01(日) 19:11:25.27ID:rdPv98Ov
Javascriptが中間言語なんですけど?
よくある話で、わざわざ別のものを作る必要はない。
0665デフォルトの名無しさん
垢版 |
2015/03/01(日) 19:27:23.08ID:wgjs6b8L
>>663
まだこれからでしょ
サーバー側でasm.jsにも変換して、非対応ブラウザはそっちを使うとかすればいい

>>664
それしか手段がないからそうしてるけど、遅いし柔軟性低いし、限界はある
型やポインタが扱える、高速な中間言語が採用されてもいい時代
0667デフォルトの名無しさん
垢版 |
2015/03/01(日) 20:19:05.79ID:wgjs6b8L
>>666
javascriptと同じでコードマップつかう
コードマップが無ければemscriptenみたいので逆コンパイルするしかないけど、javascriptの圧縮コードも十分読みにくいし
0669デフォルトの名無しさん
垢版 |
2015/03/01(日) 22:12:22.53ID:rdPv98Ov
中間コードをバイナリで読む人もいるだろうし、
圧縮コードのままデバッグする人もいるだろうな。
0670デフォルトの名無しさん
垢版 |
2015/03/03(火) 16:32:39.87ID:IExRGO3p
JavaScript自体がES6,ES7と発展する中で、状況は改善されていくだろう。
それに加えて、上位互換のTypeScript、下位互換のasm.jsがある

DartやPNaCl等の別言語によるJSの置き換えは最早受け入れられにくい。
Googleもそれを察してか、AtScript(TypeScript互換),Sane/SoundScript,
asm.js対応と、相次いで軌道修正を図っている様に見える
0671デフォルトの名無しさん
垢版 |
2015/03/03(火) 23:17:29.70ID:StzQ6W23
JavaScriptクッソ記述しやすくて読みやすいんだけど
JSがカスに思えるくらい読みやすい言語って何かな
0673デフォルトの名無しさん
垢版 |
2015/03/04(水) 07:52:41.29ID:UWB+qgaN
coffeescriptって流行ってる?
0674デフォルトの名無しさん
垢版 |
2015/03/04(水) 07:59:42.20ID:mArZsUPF
>>672
そうかー
Cはいちいち変数をスコープの頭で宣言しないとダメだったし
C++は結局業務でvector以外のテンプレートが必須になるレベルのものがなかった上に
調子のれば乗るほど当時の本人しかわからないコードが生成されてだるかった
さらに結局なんやかんやでメモリ管理もそれなりに意識しないといけないのも面倒だった

c#とjavaは楽だったけどクラス定義を往復するだけでも面倒になるくらいJavaScriptが楽に思える
結局>>620の言ってる感覚に陥ってるわけか
0676デフォルトの名無しさん
垢版 |
2015/03/04(水) 09:07:10.97ID:g/arT6Ck
>>673
流行っていない。TypeScriptも同じ。

結局は亜流でしかない。わざわざcoffee scriptでやらなければならない
絶対的理由がないのなら、当然ドキュメント量の多いJavascriptで普通は
やる。
0677デフォルトの名無しさん
垢版 |
2015/03/04(水) 10:23:56.27ID:GzjMUXXo
>>674
だいぶ前からCはどこでも宣言できる処理系が多い
むしろ、JavaScriptは変数の巻き上げでミスらないように先頭で宣言すべき派の人もいる

あとはC#やJavaのほうが静的な支援は受けやすい
IDEでクラス定義をその場で見たり、精度の高い入力補完は慣れると便利で、大規模な時はありがたい
0678デフォルトの名無しさん
垢版 |
2015/03/04(水) 13:48:40.09ID:mRCMaolX
まあ確かにC系は冗長な記述が多いかもな。
とはいえJSもスクリプト言語としてはスマートでもない。ES6でやっと標準レベルになったが。

まあSaneScriptやSoundScriptはすごく折り合いがとれたいい構想なんじゃない?
まあプロトタイプベースでガンガンやるのも面白いんだけどね。
あとは、bignumとかそういったのがES7で入ってくれれば不満はないね。
0679デフォルトの名無しさん
垢版 |
2015/03/04(水) 16:01:30.75ID:mArZsUPF
>>677
移植性がなくなってC使う意味がなくなるから宣言は絶対頭でしろって怒られたことあるな
昔の話だから今は知らない。エディタ側でもどうにでもなりそうな問題な気もするし。
0680デフォルトの名無しさん
垢版 |
2015/03/04(水) 16:18:06.85ID:mArZsUPF
ええ……巻き上げとか知らなかったわ
先頭宣言して状況次第で初期化時にダミーデータ放り込まないといけないとか
そこら辺の記事で褒め称えてるけどそれこそ大昔からのバグの温床じゃないですかね…
0681デフォルトの名無しさん
垢版 |
2015/03/04(水) 18:20:35.89ID:3cqSAZZu
巻き上げ自体はいろんな言語にあるし、普通だろ。
巻き上げっていうのは、スコープ内で宣言された変数はそのスコープのどこでも有効ということだから。
問題は巻き上げられてる変数が予めundefinedで初期化されていて、使用してもエラーにならないってこと。
まあでもその問題はJS入門者が数度引っかかる程度でそんなに大きなものでもないけどね。

varがゆるゆるなのは関数スコープだからってのもあって、理には適ってる。
例えば多重宣言ができる点も、普通に考えればバグの可能性を生むだけだが、
関数スコープだと例えば2つのfor文でiを使う際に、両方で宣言する書き方を許すのは必要。
まあそれらを全て否定して、わざわざループ変数まで関数の最初で宣言するのも自由だけどね。
0682デフォルトの名無しさん
垢版 |
2015/03/04(水) 23:14:34.28ID:/uWWye7B
ES6は進化した部分もあるけど、正直枝葉末節
むしろ、大きく退化したと俺は見る
今更古臭いクラス思想を持ち込んでどうするんだ?
es6は害悪だ
0683デフォルトの名無しさん
垢版 |
2015/03/05(木) 02:10:35.88ID:ZxoYMS6l
>>671
>読みやすいんだけど
パクられ易いのが問題だな。
重要なプログラムはソース丸見えで組みたくない。
HTML5版のグラディウスとかソース参考にしようと思って
コード探したけど消されてたし
0684デフォルトの名無しさん
垢版 |
2015/03/05(木) 02:37:16.29ID:PYCfZI4i
ES6にクラス思想なんて入っていないが
0686デフォルトの名無しさん
垢版 |
2015/03/05(木) 05:30:29.72ID:Gz4f4nXr
クラス思想を持ち込んだことによって、それらの機能が入ったんだろ
Javaの真似をしたようなスパゲッティなコードが量産されるんだろうな
シンプルにIf文やfor文で書けばいいのにわざわざ継承使いましたみたいな
0687デフォルトの名無しさん
垢版 |
2015/03/05(木) 05:36:06.10ID:n3NecQLR
perl5とperl6みたいな
0688デフォルトの名無しさん
垢版 |
2015/03/05(木) 05:51:23.95ID:uVNQvAMd
そもそもプロトタイプベースってのは最初から用意されたクラスシステムに縛られないってだけで、
自分もしくは環境が用意してくれるクラスシステムを自由に選んで使える柔軟性が売りなんだが。
クラス指向ってのが縛られたものか、構造化プログラミングの自然な考えからくるものかの違いしか無い。
0689デフォルトの名無しさん
垢版 |
2015/03/09(月) 14:57:43.90ID:MIZIuI1f
>>686
スパゲッティ・コードの使い方間違ってる。
0693デフォルトの名無しさん
垢版 |
2015/03/10(火) 00:28:56.41ID:S70Q3a3F
>>690
手続き呼び出しするプログラムもスパゲッティ・コードかよw
ダイクストラさんもあの世でびっくりだぜ。
0694デフォルトの名無しさん
垢版 |
2015/03/10(火) 00:31:44.58ID:cMNbMZ7x
>>690
× クラスで継承使うと、あちこちに飛ばないと読めなくなる
○ 何を使おうと未熟者が作れば、あちこちに飛ぶコードか
長ったらしいコピペコードになって読めなくなる。
0695デフォルトの名無しさん
垢版 |
2015/03/10(火) 14:35:07.97ID:EoaEKENX
クラスや継承が云々と言うより、構造化が下手ってことだと思う。
それをスパゲッティと呼ぶかどうかなんてどうでもいいじゃない。
文系か!
0697デフォルトの名無しさん
垢版 |
2015/03/10(火) 17:05:37.11ID:Q0UX9V+j
javascriptのコード読む気まんまんだな。

昔、ちょっと使い勝手のいいストップウォッチとタイマーを作って出したら、
こんな程度のものさえ、たちまち韓国人がパクって行ってiPhonに出してた
という経験があるからな
0698デフォルトの名無しさん
垢版 |
2015/03/11(水) 11:58:46.95ID:HLm25YvU
まあWebは皆で作っていくって通念があって
Webベースで出す以上貢献しろよという圧力は感じる
0701デフォルトの名無しさん
垢版 |
2015/03/12(木) 11:17:02.59ID:S2kvzV7/
wikipedia日本語版見たら、
スパゲッティ・コードにクラス継承がグダグダも入ってるw
英語版は入ってない。
0703デフォルトの名無しさん
垢版 |
2015/04/13(月) 10:19:19.52ID:zw+Ot82j
昔はともかく今のスパゲティコードって可読性がほぼ死んでるコードのことなんじゃないの
ややこしい事してる部分には一行コメント書くだけでも大分違うというのに・・・

特に深い理由も見当たらないデザインパターンの乱用はやめれ
そこのお前配列に入れた関数彼方で呼び出してるけど入れる順番とか意識させるなや
0704デフォルトの名無しさん
垢版 |
2015/04/13(月) 10:29:21.00ID:zw+Ot82j
今はアンチパターンっていうのか
スパゲティもその一つに含まれるんだな
0706デフォルトの名無しさん
垢版 |
2015/04/22(水) 08:24:42.87ID:iwbaaLY9
>>705
普通に配列ならlength取れるが、iteratorはlengthが取れないので、
Googleの最近のサービスのようにイテレータにしてるものとは付き合いたく
ないなって思った。
0707デフォルトの名無しさん
垢版 |
2015/05/04(月) 14:55:57.83ID:SIApV9ej
牢獄民弾圧スクリプト

1. 牢獄回線を用意する(串、Tor、auなど)
2. 穴実のスレをブラウザで開く(投稿が反映されない924スレがおすすめ)
3. 本文を適当に入力する

4.以下のコードをURL欄に貼りつける
javascript:(function(){var interval=1000;var reloadWait=100;setInterval(function(){document.querySelectorAll('input[value="書き込む"]')[0].click();setTimeout(function(){window.stop()},reloadWait)},interval-reloadWait)})();

TorBrowserの場合はJavascriptを有効にした上で以下のコードをスクラッチパッドを開き (Shift+F4) 実行する
var interval=1000;var reloadWait=100;function start(){setInterval('main()',interval-reloadWait)}function main(){document.querySelectorAll('input[value="書き込む"]')[0].click();setTimeout(function(){window.stop()},reloadWait)}start();
0709デフォルトの名無しさん
垢版 |
2015/05/25(月) 02:54:49.53ID:Vc/SC45p
はぁ? length取れないで、
どうやってループすりゃいいんだよ!

ループというのはi=0から初めてlengthまで+1していくもんだろ。
俺にループさせろや。何がイテレータだ。
ループの文化をちゃんと守れ
0710デフォルトの名無しさん
垢版 |
2015/05/25(月) 17:34:45.99ID:2/V0nnt+
イテレータでコールバック間数呼んで
っていうのはもう慣れたけど
ループの中断をしたいときにいつも?ってなる
レスを投稿する


ニューススポーツなんでも実況