X



JavaScriptは消滅すべきだったよな

0001デフォルトの名無しさん
垢版 |
2011/11/08(火) 23:14:49.42
あの盛り下がってた時期に。

Ajaxとかいう技術のせいで再評価されちゃって、
結局使いにくいままjQueryとかcoffee scriptなるものを生み出してしまう。
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+
イテレータでコールバック間数呼んで
っていうのはもう慣れたけど
ループの中断をしたいときにいつも?ってなる
0711デフォルトの名無しさん
垢版 |
2015/05/25(月) 18:02:07.74ID:QDiyjGxR
ループの中断をしたい時点で
使う関数を間違ってるんじゃないかって思うが。

最近使いこなせるようになったからかな?
ループを中断したいと思ったことが
ここ最近全くないんだよね。
0716デフォルトの名無しさん
垢版 |
2015/11/22(日) 18:06:05.03ID:K/ZfNkUS
要素を列挙するのにプロトタイプたどるかどうかとかメソッドを含めるかどうかとかがまずめんどい
0717デフォルトの名無しさん
垢版 |
2015/11/23(月) 05:59:12.66ID:55nmBY/v
イテレート中thisがバインドされる対象が変わるのがね
内容物だったり呼び出し側のオブジェクトだったり
コールバックの書式によっても変わるしJSってほんとバカ
0720デフォルトの名無しさん
垢版 |
2016/02/17(水) 15:10:34.25ID:xSnGBxLA
つい最近marionette.js他複数のFW使ってるプロジェクトを触る機会があったけど相変わらずソース追い掛けづらい
どこで何を設定してるのかとか各項目がどのFWに関連付いててどういう風にいじればいいのかがサッパリ
RESTとかいってjavascriptで全部の処理をやらせる!なんて息巻いてる急進派見てると本気かよと思うね

やるんならORマッパー張りにクライアント側はもらったデータそのまま表示すれば全部解決みたいな形式にしてくれ
データもらってからクライアント側で加工するとか効率悪いってレベルじゃない
0721デフォルトの名無しさん
垢版 |
2016/02/18(木) 09:46:04.24ID:IWN3hz7k
>>720
本気どころか、REST API叩くに留まらず、node.jsでサーバサイドやOAuth認証、
更にはハードウェア制御までとその触手はどんどん伸びてるからね。

1言語で出来るのは強みだけれど。Google Apps Scriptも特別なメソッドを少し
覚えればすぐ使えるようにもなるし。
0722デフォルトの名無しさん
垢版 |
2016/02/18(木) 22:35:59.78ID:tR0iPhMZ
マジで戦慄するわ……
クライアントサイドで計算処理その他まで全部やるとかMVCモデルとかで今まで積み重ねた読みやすさのノウハウ全部投げ捨てるようなもんじゃん
一つの機能に必要な処理をあちこちに分散して書かないなんてのは基本中の基本だろうに
0725デフォルトの名無しさん
垢版 |
2016/02/24(水) 06:45:08.46ID:QpGHGjXi
安価つけてたくせに前振りなく話題変えるとかよく分からんな
この業界だとそういうことする奴珍しくないけど
0726デフォルトの名無しさん
垢版 |
2016/05/01(日) 16:31:41.04ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
10
0727デフォルトの名無しさん
垢版 |
2016/05/18(水) 18:31:11.64ID:P0OfSdrr
>>1
まったくだ。厄介者としか見られていなかったjavascriptが
復権するなんて、
武蔵野市で好きにやっていた韓直人が
総理大臣になったようなものだ。
0730デフォルトの名無しさん
垢版 |
2018/01/29(月) 10:51:18.13ID:dqsF0NY+
今までWPF Desktopで
・XAMLで画面作る
・データバインディングとEntify FrameworkでRDBと繋ぐ
・足りない部分をコーディング
という感じで業務アプリ作ってたんだけど

来月から仕事でjsやることになりますた。頑張ります!(このスレ読んで震えながら)
0731デフォルトの名無しさん
垢版 |
2018/05/23(水) 20:34:51.69ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

GC0L2
0732デフォルトの名無しさん
垢版 |
2018/07/05(木) 01:17:37.21ID:RfoszcD2
RW2
0733デフォルトの名無しさん
垢版 |
2018/08/21(火) 16:53:05.74ID:WjvHjE7F
仕様が膨れ上がってくわりに便利になってる感じがしない
便利機能の実装はいつも後回しー
0734デフォルトの名無しさん
垢版 |
2019/03/02(土) 01:50:39.51ID:AjPA8Eq0
消滅すべきだったけど
消滅したら何が変わりに浸透したかね?
0735デフォルトの名無しさん
垢版 |
2019/03/04(月) 07:44:57.62ID:w3lbiLZy
Webの世界に閉じ籠っているなら、消滅しようがしまいがどっちでもいいな。
0736デフォルトの名無しさん
垢版 |
2019/03/05(火) 09:12:03.23ID:nQRfISUM
Objective-CでES6相当のPromise作ったけどJavaScriptのそれはかなり良くできてるよな・・
iPhoneもJavaScriptで書きたいわ〜Swift嫌いだし
0738デフォルトの名無しさん
垢版 |
2019/03/05(火) 20:11:12.86ID:nQRfISUM
Swiftはダメだと思う、言語構造的にもう古いし
0740デフォルトの名無しさん
垢版 |
2019/03/10(日) 19:04:36.97ID:9Z3HOdWo
VBランタイムみたいにJSランタイムと
バージョン固定されたブラウザが天下取ってくれれば
安泰なんだけどな
0741デフォルトの名無しさん
垢版 |
2019/05/08(水) 19:14:31.89ID:5CYBbcnj
昔はJavaScript駆使したページ作ったらウザがられたけど時代を先取りしてたんだな
0742デフォルトの名無しさん
垢版 |
2019/05/21(火) 19:46:03.23ID:UaU1Ruc+
html5javascript勢みたいな
無理やりflashを止めさせるみたいなのは嫌い
0743デフォルトの名無しさん
垢版 |
2019/05/22(水) 00:13:40.10ID:k8ga4lQM
webは信用で成り立ってるから、クローズドソースのflashは排他されるのは当然の流れ
0749デフォルトの名無しさん
垢版 |
2022/05/07(土) 09:20:12.82ID:4fS8ezpy
ところが残っちゃった。

情報を抜くには都合いいし、

google がゴリ押しし始めてるし。
0751デフォルトの名無しさん
垢版 |
2022/05/18(水) 01:27:16.04ID:xRuixhUU
なんなのこの可読性が低い言語
0753デフォルトの名無しさん
垢版 |
2022/07/12(火) 08:26:40.27ID:SAS7KhFV
>>751
君が無能なだけだと思いますよww
0754デフォルトの名無しさん
垢版 |
2022/11/25(金) 17:48:33.16ID:E6SB5kMh
最近はtensorflowがjavascriptで動くんだよな、webgl使ってちゃんとGPUで計算できるし、環境もしっかり吸収してCPUでも動かせる
これがwebサイトに埋め込めるんだから、ほんとに便利になったと思うよ
0758デフォルトの名無しさん
垢版 |
2023/10/11(水) 16:44:53.70ID:O2g9sRAR
今からでも消滅させた方がいいなコリャ…
0760デフォルトの名無しさん
垢版 |
2023/10/13(金) 22:39:30.39ID:HEQod4fb
JSが嫌ならオールCでCGI叩いたらいいんだよ
ただそんな変態的なことをする奴は稀なんだよなぁ
0761デフォルトの名無しさん
垢版 |
2023/11/19(日) 00:04:08.27ID:bCxrA+r5
アンチが多いのはそれだけ浸透してるってこと
フロントエンドのデファクトスタンダードになってる以上上手く付き合っていくしかない
レスを投稿する


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