【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
結局の所、ライブラリや実行環境という
言語以外の部分を理由に、言語を選ぶのであって
言語自体で選んでないのよ 必要もないのにpromiseを使ってる例を教えてね。多分必要があるからそう書いてると思うよ。
ライブラリや実行環境含めてpyは貧弱だってことだよ。
パッケージの管理やlintとか。型システムとかね。
pipenvとかメンテされてんの? > 必要もないのにpromiseを使ってる例を教えてね。多分必要があるからそう書いてると思うよ。
例えばデータベースのデータを取ってくる時に
データが返ってくるまで待ちたいのに
Promiseを強要される所 それは当たり前にpromise返すよね。
複数の非同期処理を直列で行いたい、並列で行いたいとか書き手のあらゆるユースケースに対応するためのものじゃん。 >>731
並列で処理したいとか思ってないんだが?
データがないとその先の処理はできないんだから非同期にする理由がない
ただデータを欲しいだけで、その処理を並列でやろうとか思ってない
なのにPromiseを強要されるって話をしてるんだが?
言っただろ?
そういうのは、非同期に処理したいときだけ、使えば良いんですよ。 今なんの話をしてるのかわかってないのか?
ブラウザのユースケースの話ではない
サーバーアプリのユースケースの話ではない
それらのユースケースでは非同期は必須だが、
非同期が必須じゃないユースケースもあって
そこには非同期ばっかり使う今のJavaScripの実行環境とライブラリは
適してないって話をしてるの気づいてる? 俺が例を聞いて、データベースの例出してきのは君だよね? async awaitの登場でそこら辺も意識しないで済むでしょ。
そのうちtop level awaitもサポートされるし >>734
データベースからデータを取得するプログラムが
いつ非同期が必要になったんだ?w
データベース自体が必要なのと、
データベースを使う「アプリ」が必要なのの
違いも区別できてないのか?
今話をしてるのはJavaScriptで作るアプリの方だろうが >>735
async awaitを使うか使わないかを
使い分けてる時点で意識してるw asyncawait全然難しくないのにそんな同期欲しいか?
中途半端に同期APIに門戸を開くと実質同期waitが可能になって
モラルハザードが起こるから要らないんだけど >>738
どちらかに統一されるならまだしも
同期と非同期の2つが頻繁に混ざることが問題
同期メインで必要なときだけ非同期を使うほうが楽だって言ってんの すまんけど混ざった経験がない
混ざるってなに?
非同期メインでどうでもいい時だけ同期を使う方が正直楽 >>740
日付操作ライブラリは非同期ではない
普段書いてるJavaScriptコードも非同期ではない >>723
基本的に ID:Y7rxETSL の言うとおりであって、空回りしてるのはお前が色々無知だからだ。
今言ってる「コンソール」ってのは、「『コンソール』アプリケーション」の「コンソール」であって、
つまりC/C++/Java/AWK/Perl/Ruby/Pythonのデフォの動作環境のことだ。
JSがPyhtonを滅ぼせないのはまずこれで、
動作環境が全く違うから、他スクリプト言語(AWK/Perl/Python/Ruby)の置き換えが単純には出来ない。
逆に、これらの言語間では容易に置き換えが出来、勝者はPythonになりつつある。
なおこの意味ではPHPも動作環境が全く異なるのでとりあえずは生き残る。
非同期が駄目な点は、単純に難しくなるからだ。
Python等で処理される事柄の大半は同期処理で全く問題ない。
JSの場合はC10K問題を非同期で解決するというのが宗教になってて、実際これは上手く機能しているが、
通常用途にはオーバースペック過ぎる。(データ待ちで待たされても何ら問題ない)
必要な時だけ非同期にさせろ、というのが正しくて、他言語はほぼ全てこうだが、JSは宗教だからこれを認めない。
asyncとpromiseでー、というのは、「一方ロシアは鉛筆を使った」を学んでこい。
個人的に勿体ないと思うのはIndexedDBの同期I/Oが廃止されたことだ。
書き込みだけでも同期I/Oが残っていればbeforeunloadで使えて、LocalStorageを廃止出来たはずだが、
現状そうでないからJS的に目の上のたんこぶな同期強制のLocalStorageを廃止出来ずにいる。
ここら辺は仕様を作る奴等が間抜けだと思う。
(ただし現行LocalStorageは設定値保存に使われており、
これが非同期読み出しだけになると大半の連中はまともに組めなくなるとは思う。《モーダル/モードレスよりも難易度が高くなる》
この意味ではLocalStorageを同期のままで残しているのは現実的な方策ではある)
>>738
> モラルハザードが起こるから要らないんだけど
これが典型的な宗教家だよ。
本来誰でも簡単に組めて、技量があればもっと素晴らしくも組める、というのが正しくて、
技量がないと組めない、というのは間違いなんだよ。
サーバーアプリも、DBつつくと無駄に非同期がいるから、JSよりもPHPの方が簡単に書けてしまう。
これがJSがPHPを滅ぼせない理由の一つだよ。 今言ってるコンソールって誰も言っていません。どこで出てきましたか?
コンソールアプリケーションのコンソール=動作環境という論理で話していますが、意味がわかりません。
難しいからダメというのは話になりません。
俺は幅広いユースケースに対応できるのはjsだよねって話しています。まともな反論はなかったです。
置き換えが容易、pythonが勝者だというソースを出してください。 indexedDBの同期apiがなくなったのは当たり前。localstrageも非同期になって欲しいくらい。
基本的にどんなioをjsでは非同期になってほしい。
そうすることで待ち時間に処理を実行できたりするから。 > 俺は幅広いユースケースに対応できるのはjsだよねって話しています。
どの言語でも幅広いユースケースに対応できてるだろ
C言語で作れないものはないとでも言えばわかるか?
> 基本的にどんなioをjsでは非同期になってほしい。
非同期が必要ないユースケースは?w
非同期が必要ないユースケースなのに非同期を強要され
だからといって非同期に統一されているわけでもない
自分の都合ではなくライブラリの都合で、同期と非同期を混在させなくてはいけなくなる
どうせ統一できないのであれば、必要なところだけ非同期にしたほうが楽だろ 非同期が必要ないユースケース=待ち時間にする処理がない場合
例えば取ってくるデータがなければその後の処理ができない場合、
データを取ってくる処理を非同期にしてもただ待つだけで
待ち時間にする処理が何もことがない >>743-744
お前が日本語もプログラミングも出来ないのは分かった。
相手する価値がないからもうやめにする。
> pythonが勝者だというソースを出してください。
と言う以上、お前はこれを否定出来るソースを出せるのだろ?まずそれを出せ。
このレベルの既知の事柄についていちいちソースソース言われても話が進まなくてウザイだけだし、
そもそもこの点に反論したいのなら743の時点で君が君側のソースを出す手もあった。
それが出来ないのは君が会話が出来ない馬鹿だからだよ。
> localstrageも非同期になって欲しいくらい。
これも既に言ってるだろ。
JS界では同期I/OのLocalStorageは以前から問題視されてて、非推奨とされているが、いまだに廃止出来てない。
それは廃止出来ない理由があるからであり、俺は既にそれを言ってる。
君は日本語が不自由だから話について来れず、何度も同じ事を説明されないと分からない馬鹿だ。
それだと話が全く噛み合わず、進まないんだよ。
実際、他の件もそうだろ。ここで会話出来る最低限の日本語レベルに達してないし、プログラミングの知識もない。
まあそれでも君みたいな馬鹿でも非同期ガーとイキれるのはJSの良いところで、
つまり馬鹿でも出来てそれなりに見栄えのする結果も得られ、出来ると勘違い出来る言語、ということでもある。
ただ、イキってる馬鹿はどの言語にもいるが、JSのイキリ馬鹿は他言語に比べてもだいぶ酷い。 よくよく考えてみると、JavaScriptでPromise(≒非同期)を使う場合って
「処理が終わるまで(何もしないで)待つ」時に使ってるよな?
非同期を使ってる本当の理由をわかってない気がする
非同期を使ってる人、ちゃんと使っている理由を正しく言えるのだろうか?
1. ブラウザで画面が反応しなくなるのを防ぐため
2. サーバーアプリで他のリクエストを処理するため
に非同期を使ってるんだぞ
並列処理とごっちゃになってそうな気がする
非同期は速くするためにやってるわけじゃない >>748
>よくよく考えてみると、JavaScriptでPromise(≒非同期)を使う場合って
>「処理が終わるまで(何もしないで)待つ」時に使ってるよな?
待つ時以外にも用途があるわ。
例えばファイルをreadする処理がある場合、非同期だとreadする時間を有効活用して何か処理を実行できたりするだろ >>750
> 非同期だとreadする時間を有効活用して何か処理を実行できたりするだろ
うん、可能性としてはそういうこと出来るよね。
でも、そんな考えで非同期使ってることってほとんどまずないよね
ただ待つためだけに使ってるよね。
ちゃんと画面を反応を止めなくするため or 他のリクエストを処理するために
非同期使ってますって意識してる? それを知ってるなら、コンソールアプリなどのユースケースは
画面の反応(更新やクリックとか)が不要で、他のリクエストもないってわかるよねw
ブラウザやサーバーアプリ以外、
それが必要もないのにpromiseを使ってる例だよ 勿論手元でワンライナー書く程度のどうでもいい用途には同期APIで十分
だからnodeのI/Oには一部同期APIも入ってる
ただしどこまで同期APIを用意するかは最早さじ加減の話
〇〇に同期APIがないからダメって言われても困る >>754
そしてそのどうでもいい用途向け言語がいわゆるスクリプト言語で、実際にそういった用途が大半なわけだ。
状況が変わってきてるんだよ。
昔と比べて(文系含め、コンピュータのことを全く知らない、いわゆる)馬鹿がプログラミングするようになった。
これ自体はスマホが一般化するのと同様に自然な流れなのだが、その分、簡単な言語が必要とされるようになった。
Pythonが伸びているのはこれ。他と比べて比較的簡単だから。
PHPに至っては、プログラミングの何たるかを知らなくても何とかなってしまうという、すさまじく簡単な点が受けている。
(なおC->Javaに移行したのも簡単だからだ。というか、ど素人含めて全員Cで書け、という90年代が今から考えたら無茶すぎた)
非同期が駄目ってわけではないが、非同期縛りは馬鹿にとってかなり高い参入障壁になってる。
JSやって最初に引っかかる点も大体ここだろ。
JSが覇権を取る為に何かを修正するのなら、俺はここだと思うね。
逆にPythonが覇権を取る為には実行速度で、連中があまりここに着手しないのが俺にはよく分からない。
(とはいえPythonにはそれ以前に色々駄目な点が多いが)
ついでに言うとRubyも実行速度だと思う。
Pythonが今程度に遅いうちにJSの速度に追いつけば、Pythonを食う可能性も十分あると思うのだけど、
連中も何故かあまりここには手を付けないんだよね。 >>754
なんでワンライナーが基準なの?
曖昧なこと言ってないでもう少し具体的に言おうか 少なくともJSにとっては大半じゃないよ
書き捨てこそスクリプトって話ならperlが覇権とってたハズでしょ 例えばgitの実装なんか、非同期処理は殆どいらないだろ? CLIコマンドのほとんどは非同期は必要ない
非同期なら空いた時間に他のことが出来る?
同期であってもI/O待ちなんかでCPUが解放されるんだから
空いた時間の他のこと(他のプロセスの処理)は出来るって
そういう基本的な所がわかってないんだよなw >>757
Perlが覇権取ってたのは事実だが、それも過去になりつつある。
Perl6に移行してる奴はほぼ居なかったはず。
そして今時は「インストールスクリプトでPython使ってます」という理由で
Pythonがインストールされてないとインストール出来ない物が当然のように出てきており、
俺のPCにも使いもしないPythonはインストールされてる。2も3もだ。
この意味ではPython汚染はPerlより酷いと思うよ。
なおRubyもインストールされてる。同様に何かRubyを必要とする物があって入れたと思った。
まあこれがいいかどうかはさておき、JSはこの分野に進出出来ないでいる。
これが覇権を取りきれない理由でもある。 JSサイコー、愛してるぜ・・・(*´Д`)ハァハァ 日本国内でjavascriptを使えるプログラマーはどの位いるのでしょうか?
10万人程度? ■ このスレッドは過去ログ倉庫に格納されています