- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
189 :デフォルトの名無しさん[sage]:2016/09/03(土) 05:16:03.21 ID:N47o0j5/ - >>186
Proxyが非対応でSymbolやWM周りが非常に気をつける必要がある時点で1%じゃ済まないね。 >>それはbabelを使わなくても、やってることだろ? やらないし。もうモダンブラウザはほぼ100%対応してるのだから。 実質8割のbabelとは全然全然違う。 おまえ、普段ES6のコード書いてないだろ?
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
283 :デフォルトの名無しさん[sage]:2016/09/03(土) 17:48:47.28 ID:N47o0j5/ - >>191
使わなければいいという返しが来るとは思わなかった。 君はアレだね。できればES6で書きたいな、でも古いブラウザのしがらみから抜けられないな、 全く使えないよりも使える方がマシ、だから悪くなりようがないという考えなのだろう。 もちろんそれもあるよ。でもね、状況は動いてるのよ。 2016年になるまでなら、対応途中のモダンブラウザも含めて、できるだけ対応させるという 1つのより良くするための解でしか無かったけれど、 今ES6対応ブラウザが出揃ってきた状態でその中で対応を広げる役目としてのbabelを考えると、 億劫な点が出てくるというのは分かるだろう? 勘違いしてほしくないけれど、babalが悪いと言ってるんじゃないよ。 babelで生成されるコードのレベルが、ES6の時代なので書きま〜すっていう意気込みとは合わないってこと。 それでここからが大事な点になるのだけど、 babelのES6からの乖離は部分部分で見ると確かに小さい。SymbolやProxyを除いたとして、 それらを寄せ集めるともしかしたら1%と言えるくらいしかないのかもしれない。 でもね、各ブラウザstable版に機能が実装されていく時は、基本的には安定した機能が丸ごと有効になるわけで、 機能があるかないか程度にしか気にしなくていいのよ。 でもね、babelのように細かな非互換が多いと、 それは開発版ブラウザに機能が実装されてる最中で、フラグで有効化してES6の振る舞いを実験していた 1年前の状態さながらなのよ。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
284 :デフォルトの名無しさん[sage]:2016/09/03(土) 17:49:36.57 ID:N47o0j5/ - >>191
1年前でもフラグを全て有効にすれば、世にあるES6対応度テストでは9割以上取れていた。 でもね、じゃあ今年に入ってから俺がES5以前気にしないで書いたコードが1年前のそのブラウザで動くかというと、 精々8割くらいしか動かないと思う。そういう意味で、babelのコードは8割といったのよ。 babalを使っていれば常に最新を追えるような感覚もするかもしれない。 それは、確かに今ES2017以上の機能をES2016対応実装向けのコードとして書きだした場合は正しい。 でもね、今ES2015のしっかりした実装がある中、ES5向けにコードを書き出す場合と言うのは、 何時までたってもハッカーが時期早々と揶揄されながら開発版ブラウザでフラグを有効にして、 不安定で未完成なES6で遊んでいた2016年より前のもやもやしていた状況のままだということ。 つまり時代遅れなのに時期早々感を負わないといけないという欠点があるわけ。 もちろんbabelが悪いわけではないし、対応を広げたいという前提のもとでなら、babelを使うという結論しかない。ES6はオマケなわけだ。 でも、モダンで良いコードを書きたいという気持ちが強いなら、古く取り残された環境を切り捨てる勇気も必要だと思う。 切り捨てるのはまだ早いと思うかも知れないが、意外とそうでもない。 IE8以前をJS OFFと同じとみなして、もう2段階くらい設定してプログレッシブ・エンハンスメントをするということがあるが、 ES5対応環境もピンからキリまで広くなりすぎたし、ここらで思い切ってJS OFF側にまとめて、 ES6対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
289 :デフォルトの名無しさん[sage]:2016/09/03(土) 19:21:50.91 ID:N47o0j5/ - >>288
Safariはモダンブラウザに含めていない。 ウチではずっとChrome第一Firefox第二、近頃はEdge第三。 他は眼中にない。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
292 :デフォルトの名無しさん[sage]:2016/09/03(土) 19:35:23.00 ID:N47o0j5/ - >>290
いや、逆だよ。超逆。 Androidの古いブラウザを切り捨てられる時期というのが強い。 Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、 ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。 一番問題あるのはSafariくらいで、それももうすぐだろう。 誤解無いように書くが、 上でも言ったようにプログレッシブ・エンハンスメントだし、 当然全てのコードを書き換えたわけではない。 今年度から新しく初めて長くメンテしていくサービスでのコードは原則そういうポリシーになっただけ。 なので問題は無い。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
297 :デフォルトの名無しさん[sage]:2016/09/03(土) 20:22:54.41 ID:N47o0j5/ - >>293
>>babelを使うと古いブラウザを切り捨てるタイミングを >>自由にコントロールできる。 いやー一年前まではそう思ってましたよ。 上でも書いたけれど、君の発言を見てると一年前二年前の若い自分を思い出す。 でもそうじゃなかったから使ってないの。まだ分からない? 理由は大体書いたよ。 babelただ使うだけで使わないよりも『より良くなる』時代ってのはもう終わったの。 あんまり踏み込んで欲しくないので書かなかったことを少しだけ言うと、 ウチではES6基本というのは実は嘘。今はもうES2016基本にしかけてる。 で、そのために、『より良くする』ためにbabelではないがトランスパイラ+ポリフィル使ってる。 が、これもES2016の重箱の角はつつけていないので、本当は使わないで済むなら使いたくないのよ。 モダンなコードを書くメリットと、重箱の角を心の隅で気にしないといけないコストと、若干の好奇心のつり合いを見て今はこういう形になっている。 だから本当に100%ES2016で開放された気分で書けてるのかというとそうではない。 あれだけ変更の少ない2016->2015でもそうなんだよ? babelのES5変換なんて満足できていたのは最初だけ、ブラウザの対応が未熟だった頃だけだよ。 当初君と同じ夢を見ていたウチのメンバーは一年くらいかけて 実は古いブラウザというしがらみから逃れるために、babelというしがらみに縋ってただけだって気がついたの。 今はbabel使って後から外すなんて夢物語だよ。黒歴史。 実はそういった試みで始めたものいくつかあったんだが、まともに活用しきれない。 多くは実らず捨てることになって、一部は泣きながらリファクタリングしてる最中。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
298 :デフォルトの名無しさん[sage]:2016/09/03(土) 20:24:00.35 ID:N47o0j5/ - >>293
でもまあ、ふと思ったけど、俺も今のbabelは触ってないからな。精々半年前の感覚のままだ。 今はもしかしたら殆ど完璧になってて、憂いが減ってんのかな? そこはちょっと反省。 どうしてbabelで旧ブラウザの対応するのを見限ったかって言うとね、 そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。 だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。 でも今babelの対応状況改めて見てみたらやっぱり無理だ。 マイナーかもしれないけれど、毎度一箇所は使うだろう点が残ってる。 やっぱり痛いのはプロトタイプの設定や、サブクラス化かなぁ。 めっちゃ使うということは無いが、ここらを我慢するのはやっぱりES6使ってるとは俺は思えないわ。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
319 :デフォルトの名無しさん[sage]:2016/09/03(土) 20:45:14.45 ID:N47o0j5/ - >>299
何が言いたいのか、いやもう建設的な話し合いをする気は無いんだろうけど、 一応会話してみるか。 対応するときはES5で書く。それだけでしょ? そして、その話は本題と関係ないでしょ? 古いブラウザを見限っていいから、Babelを使うなと言ってるんじゃないから。 古いブラウザを見限らないとしても、ウチではBabalは使わない。ただES5で書くだけ。 まさかウチではもう今年度からピュアES6しか書きませんと言ってるのだと思ってた? 誤解させてごめんね。 で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。 ES6を使いたいから、後々外せばいいだけだから便利、な感覚でBabelを使うと怪我するよと言ってるの。 Babalを使うのなら、あくまでES_Babelというalt JSを使うんだという認識・覚悟で居たほうが正しい。 そして副題として、俺はそれは嫌ということ。ここは個人的な部分だし、環境なので異論は認めるし、批判は受け付けていない。 二極化提案については、まだ実験中で良し悪し分からず、オススメする気もなくポロッと言ってしまっただけだし、 あまり深入りしてほしくないのでこれ以上話したくない。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
321 :デフォルトの名無しさん[sage]:2016/09/03(土) 20:46:33.45 ID:N47o0j5/ - おいおい……俺がちょっと推敲してる間に20も進むとか……
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
330 :デフォルトの名無しさん[sage]:2016/09/03(土) 20:58:33.36 ID:N47o0j5/ - もういい。
俺はともかく、ES6ってそんなレベルじゃねーぞって変なこだわり言ってるだけだから。 とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。 相手が建設的な話し合いする気がないどころか、現実逃避始めちゃったので、今となってはそれすらどうでもいい。 >>320 >>babelを使うと、多くのブラウザの最低レベルが揃うんだよ。 そう。いいこと言った。 最初からこのくらいに収めてくれてれば俺が駄スレで駄レス重ねる必要もなかったのに。 結局会話にならなかったし、ほんと、無駄な時間過ごしちゃったな〜
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
333 :デフォルトの名無しさん[sage]:2016/09/03(土) 21:09:12.58 ID:N47o0j5/ - >>332
だからね。君が言ってるそれは、BabalがES6のコードを完璧にES5に変換できるということ前提なの。 実際はね、ES6ではなく、ES_Babalで書かないといけないの。 ES_BabalというのはES6から機能と安定性を取り去った言語なわけ。 で、それを将来ES6か何かに書き換えるわけ。 それがES5のしがらみとどっちが強いかは人次第なのかもしれない。 君はそれに十分満足していて、俺は不満。ただそれだけなのかもしれない。 でも、ES6を使いこなしていったらすぐに俺の考えに近くなるんじゃないかなという想像。 無駄なおせっかいだったのよ。それだけ。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
343 :デフォルトの名無しさん[sage]:2016/09/03(土) 21:28:59.57 ID:N47o0j5/ - >>334
うん。だから君は、ES6を、モダンで良い言語で書きたいから使ってるわけではなく、 「Babelが対応してる機能」を「Babelが対応してるから」使ってるだけでしょ? 普通はES6で書いて動かすためにトランスパイラを試す筈だが、 君はおそらくBabelをES6入門用的に使っているのだろう。 Babelはもう成長しないが、君はどうするの? うーん。もしかして、ES2017や18の時代になっても、 Arrayのサブクラスすら作れないなんちゃってES2017で書くの? ES6-サブクラス+デコレータ-hogehoge+fugafuga みたいなおかしな言語で書き続けるの?? そこに無理があると言ってるのよ。 君ももし本当にES_BabelをES6と信じてるのなら成長したほうが良いよ。 で、Babelは使うのは良いが憂いができるだけ少なくなるようにした方がいい。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
350 :デフォルトの名無しさん[sage]:2016/09/03(土) 21:54:03.20 ID:N47o0j5/ - >>347
うーん。君のポリシーがよくわからないね。 今のブラウザがES6の全てに対応していない? そりゃそうだ。ES5すら全てに対応してるわけではないからね。 ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの? さっきも言ったが俺はそここそが一番気になるんだから。 いや違うか、君は不完全でも気にしないと言ってるわけだ。 ES6とES_Babelの見分けなんてつかないよと、 いや、Babelで変換できないES6の機能なんてES6と認めないよと言ってるわけだ。 やっぱり君はBabel志向なんだよ。 それは違う、とにかく対応を広げるために機能の劣るBabelを仕方なく使ってるんだっていうなら やっぱりES6ではなくES_Babelを書いてるってことを認めないといけない。 それか、実はES6なんて理解してなくてBabel志向なだけですというのも理屈が通る。 そのどちらか。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
358 :デフォルトの名無しさん[sage]:2016/09/03(土) 22:19:06.56 ID:N47o0j5/ - >>353
うん。それならいい。 あくまでES6を意識したBabelScriptという下駄を古いブラウザに履かせるという認識ならいい。 裏切りを知らないサンタクロースを信じる子供か、黒歴史を未経験な魔法に憧れる中二病患者かと思ったから忠告したけど、 そうでないのなら尽く良い。 その他いろんな話をしたが、もうそれに関しての共通理解は諦める。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
366 :デフォルトの名無しさん[sage]:2016/09/03(土) 22:32:33.75 ID:N47o0j5/ - >>360
そこに関しては納得してる。 俺が違和感があるのは、よくそれで問題にならず我慢できるなってこと。 よくArrayのサブクラスとか作らないで済むね? Proxy使ったこと無い?@@系は? 当然独自クラスシステムフレームワーク構築するのに プロトタイプ書き換えるとか当然やったこと無いんだろうな〜 って感じ。 そういう驚きと、同じ世界に居ない悲しみ。そんなとこ。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
372 :デフォルトの名無しさん[sage]:2016/09/03(土) 22:56:19.81 ID:N47o0j5/ - >>370
当然俺もいきなり活用できたわけじゃない。 折角の機能活用できるようになろうとここ1,2年実験・研究を人一倍積み重ねてきたのよ。 いや、違うか。それより前から、特にES4の頃からかなぁ JSなんてと言われる声が大きかった時でも、 これからはJSの時代だ。JSを深く知ろう、そしてJSの良さをもっと知ってもらおう。 JSを良くしていこう。とずっとずーっと思ってたのよ。 だからES6の盛り上がりには喜んだし、 MLも当初から参加して全て読んで、細部だが提案にも参加した。 そして実装される前から、トランスパイラではなく、エンジン毎実装されているエミュレータでテストしたりしてきたのよ。 ブラウザに機能がコミットされたら、いやされる直前に自分でローカルでコミットして即ビルド。 とにかく誰よりもよくES6を知り、よく使えるようになろうと努力した。 というのは多少大袈裟だが、そのくらいの熱はあるよ。
|
- + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
373 :デフォルトの名無しさん[sage]:2016/09/03(土) 22:59:14.75 ID:N47o0j5/ - つかArrayのサブクラスもできるんだけどね。
__proto__がサポートされていれば。
|