トップページ⇒tech
1002コメント464KB

+ JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2016/08/29(月) 01:23:24.09ID:MUTWRWKo
プログラマ板の趣旨にあわせてブラウザ限定ではなくサーバーサイドJavaScriptや
トランスパイラなどの関連技術の話題も取り扱うように変わりました。

ECMAScriptの言語仕様の話題。最新ECMAScriptによるモダンな書き方、Promiseやasync/awaitを
使った非同期プログラミング。ES2015、2016、2017等の最新ECMAScriptをブラウザで今すぐ使う方法、
ビルド環境やbowerやnodeのパッケージを使う方法等、モダンなJavaScript環境についての幅広い話をしましょう。

ECMAScript対応実行環境一覧(ブラウザやbabelを含む)
http://kangax.github.io/compat-table/es5/
http://kangax.github.io/compat-table/es6/ (= es2015)
http://kangax.github.io/compat-table/es2016plus/
http://kangax.github.io/compat-table/esnext/

JavaScriptとは?
もともとMozillaの前身のNetscapeが作った言語であり本来のJavaScriptはFirefoxの実装のみです。
JavaScriptの正式な仕様名はECMAScriptです。ですが一般に使われているとおり
ChromeやEdgeで使う言語もJavaScriptとしてこのスレでは扱います。
Firefox等のJavaScript実装は最新のECMAScriptに準拠しています。

※DOMはブラウザが提供しているものでありJavaScript(ECMAScript)の範囲外です。
なのでDOMを使ったプログラミングは原則としてこのスレの対象外です。
DOMはwindowオブジェクト(ブラウザのホストオブジェクト)経由で
参照するもので、window自体、window.document、window.Workerなどです。
これに関する話題はWeb制作板の下記のスレに移動してください。

+ JavaScript & jQuery 質問用スレッド vol.7 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1467906819/
+ JavaScript の質問用スレッド vol.130 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1463395557/

前スレ + JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1468158373/
0255デフォルトの名無しさん2016/09/03(土) 15:18:04.76ID:EZVA2rF2
>>252
> やっぱり古いブラウザで動かしたい、は多分断るな。
> 余程言われても、babelは使わずに直すと思うよ。

そのコスト誰がだすん?w

babel使ったら簡単に対応できる。
テストコードがあるからそのテストを通せば良い。
babelはブラックボックスではないがブラックボックスと考え
中身がどうなっても、テストが動けば良い。そうだろう?
いざとなったら中身を確認することもできる。

どうせ古いIEへの対応でIEはブラックボックス
IEとFirefoxとChromeで動きも違う。バージョンごとで動きも違う。
ホワイトボックスとして扱うことはコストの点から実質不可能。

問題はコストだよ。最新のES6を使ってコストを減らせ
babelを使えば古いブラウザに対応するコストも減らせる。
0256デフォルトの名無しさん2016/09/03(土) 15:18:46.25ID:EZVA2rF2
>>254
> 何を言うてるかわからん。

他の人に聞きたい。

> ソリューション売りしてんだよ。

↑これ何を言うてるか分かる人おる?w
0257デフォルトの名無しさん2016/09/03(土) 15:19:58.56ID:EZVA2rF2
>>253
> 金がかかるから、ブラックボックスを使わんのだよ。

じゃあ、ブラックボックスがあったら、
それに相当するものを自分で作るわけですよね?

その金誰が出すの?w



はぁ、ブラックボックスがあるという
絶対変えられない世界に生きてるって分かってないのかな?
IEやWindowsのソースコードは保守契約結んでも見れません(笑)
0258デフォルトの名無しさん2016/09/03(土) 15:20:23.76ID:EZVA2rF2
> やっぱり古いブラウザで動かしたい、は多分断るな。
能力がないから
0259デフォルトの名無しさん2016/09/03(土) 15:23:04.80ID:aPmwwe34
>>252
なるほど何となく状況は想像がついた。回答ありがとう。
0260デフォルトの名無しさん2016/09/03(土) 15:23:16.22ID:EZVA2rF2
古いブラウザ古いブラウザっていうけど、
最新のSafari 9でもArrow functionsに対応していない。
http://caniuse.com/#feat=arrow-functions
書いてあるSafari 10はまだリリースされてません
0261デフォルトの名無しさん2016/09/03(土) 15:25:34.19ID:EZVA2rF2
最新のブラウザだけを相手にする場合でも
このブラウザはこのES6の機能に対応している?していない?
って考えて特定のブラウザのために使うのをやめるよりも

babel使ってES6の機能はどのブラウザでも使える。
ただし一部完璧じゃないものがある。

って考える方がはるかにコストが低いんだわ。


Android 4.0以上という要件だと、それらの
ブラウザを全部集めないとテストできないからね。
0262 ◆SEdFBOkLSw 2016/09/03(土) 15:50:53.07ID:YIu9WVDu
「簡単に対応が出来る」
ようわからんな。
対応はできてもテストの金がかかる事は否定しないとか。

メンツの勝負になってない?
そういうメンツの勝負であれば、お前の勝ちで良いけど。

ホワイトボックスとして扱う事はコスト上不可能、ってそれくらいのコストしかかけない製品作んないから良いんだよ。
変な言い方で、敢えて語弊のある言い方すると、
高いほう、全て内製が良いとすら言われる製品だからお前がいってる製品とは多分だいぶ違うので、その辺の予算とは乖離あると思うわ。
ただその金の根拠は必要だけど。

内製良いよ。ライブラリに左右されんから。
コンパイラと処理系自体すら昔は作ってたしな。
そろそろまた元号でテキトーにやってる会社は死に目見るだろうし。
0263デフォルトの名無しさん2016/09/03(土) 15:53:21.77ID:EZVA2rF2
>>262
> 対応はできてもテストの金がかかる事は否定しないとか。

そこはbabelと関係ないからだよ。
babelを使っても使わなくてもテストはしないといけないだろ。
テスト内容自体は同じ。
0264デフォルトの名無しさん2016/09/03(土) 15:53:47.63ID:EZVA2rF2
>>262
> 内製良いよ。ライブラリに左右されんから。
そのコストは誰が出すと思ってるんだ?w
0265 ◆SEdFBOkLSw 2016/09/03(土) 15:57:26.09ID:YIu9WVDu
>>263
え?うん。
なら、最初から使わずに書けばいいんでは?って話だけど。
>>264
客。

あのさあ、何が言いたいの?
babelは完璧なES6で、AltJSとは一線を画す物だ、とエヴァンジェリスト気取りたいなら、それでいいよ。
もうその話題には触れん。
何が自分の苛立ちの原点なの?否定されたところ?正しいと思ってるところが理解されないところ?
0266デフォルトの名無しさん2016/09/03(土) 15:58:34.24ID:EZVA2rF2
>>265
> なら、最初から使わずに書けばいいんでは?って話だけど。
図式化しないと理解できんのかな?w


[ 開発 ] + [ テスト ]

テストは同じ。開発はbabelを使ったほうが簡単になる。
0267デフォルトの名無しさん2016/09/03(土) 15:59:48.40ID:EZVA2rF2
>>265
> babelは完璧なES6で、AltJSとは一線を画す物だ、とエヴァンジェリスト気取りたいなら、それでいいよ。

だからbabelはトランスパイラ。言語はES6(JavaScript)
AltJSとはJavaScriptではない言語のことなんだから
その言葉自体が間違ってんの。
0268デフォルトの名無しさん2016/09/03(土) 16:00:56.87ID:EZVA2rF2
>>265
なに? コストは客が払うだって!
ならbabel使ってもコストは客に払わせばいいじゃないかw

もっともbable使ったほうがコストは下がるけどな。
0269デフォルトの名無しさん2016/09/03(土) 16:04:48.79ID:EZVA2rF2
どうせbabelはES6に完全対応してないと言ってくるだろうから
先に反論しておくと、最新版Safariも完全対応してないw

ブラウザごとにコードを変えるっていうのはコストがかかる。
どうせ客がコストを払うから知ったことじゃないっていうんだろうけどさw

ブラウザがバージョンも含めればたくさんあって
ウェブの世界では特定のブラウザとバージョンを指定できないのだから
使用されているほぼ全てに対応しないといけない。

それごとにコードを変えるなんてやってられないので、
babelを使う。babelを使うとそれぞれのブラウザの差が減る。
そのため単一のコードで多くのブラウザに対応できるのでコストも減る。

どうせコストは客が払うから、いくらかかっても
知ったことじゃないって考えの人にはわからないかw
0270デフォルトの名無しさん2016/09/03(土) 16:16:36.11ID:EZVA2rF2
◆SE に言っておくけど、
お前、頭の固いおっさんに育ってしまったな

リアルで誰も言ってくれないだろうから俺が言ってあげるよ。
お前は子供の頃誰もが、ああはなりたくないと思ってる
頭の固いただのおっさん。

変化することをやめ、挑戦することをやめ、
現状維持。これ以上何もしたくない。

そういう、頭の固いおっさん。
0271 ◆SEdFBOkLSw 2016/09/03(土) 16:30:32.32ID:P8EZ6WkE
研究開発は、研究開発費でしてるけどね。
変化させない事と、変化させる事、ひいては、運用する事、改善する事は全部ひとつながりだけど、全部それぞれが違うよ。

何かを変化させない事が別の何かを変化させることだったり、何かを変化させて何かを変化させない事もあるし、
そんな革新、革新!と騒いでも、何が革新か自体よくわからなくなるよ、そのうち。

今まであった物に、新しい名前をつけると割としっくりくるようなもんと同じ。今俺が何ヤジってるかはわかると思うけど。
0272デフォルトの名無しさん2016/09/03(土) 16:35:14.63ID:EZVA2rF2
◆SE が今度は研究開発とか
また関係ない話をしだしたぞw

お前と話をしてると話がまとまらないって
よく言われるだろwww
0273デフォルトの名無しさん2016/09/03(土) 16:36:40.92ID:EZVA2rF2
俺が言ってるのは、◆SE 自身に
変える能力がないってこと。

個人の能力だよ。

あ、だから変えるのは研究所とかがやってくれることで
俺には関係ないって発想につながってるのかwww
0274 ◆SEdFBOkLSw 2016/09/03(土) 16:40:21.73ID:P8EZ6WkE
そもそも、立ち位置の問題であって、
それは処理系作ってた人間が一番わかってんだけどなぁ。
同じ正しいCのソースでも何でコンパイルするかで割と意味が違ったり、そのチューニング、このコンパイラだと無意味だからオプティマイザにまかせましょ、みたいな話に近い。
そのうち、C++が出来て、でもまだCへのトランスパイラで、そのうち、STLだ、いや、これは標準になったんだ、って無駄なやりとりがあった時代を知らんのだろうな。俺もリアルタイムじゃないけど。
0275 ◆SEdFBOkLSw 2016/09/03(土) 16:41:21.34ID:P8EZ6WkE
>>273
知らんがな。。どんな仕事をしてるんだ、と言うから仕事の話をできる範囲で話したんじゃん。

個人的には色々しとるよ。
0276 ◆SEdFBOkLSw 2016/09/03(土) 16:43:51.70ID:P8EZ6WkE
その上で、最初の方のレスに戻るけど、
そういう先端()の人間が殲滅すべきものはbabelであって、babel無けりゃ古いブラウザも死んでいくんじゃねえの?本来死んでる物を活かすからそうなるんじゃねえの?みたいな話してたんじゃん。
だからネイティブで書くことには何の問題も無いって言ってるんだけど。
0277 ◆SEdFBOkLSw 2016/09/03(土) 16:44:46.76ID:P8EZ6WkE
なんかプライド傷つけたんならすまんな。
そんじゃ。
0278デフォルトの名無しさん2016/09/03(土) 16:46:08.31ID:EZVA2rF2
>>274
> 同じ正しいCのソースでも何でコンパイルするかで割と意味が違ったり、

やっぱり、同じソースでC言語の仕様の範囲なのに、
コンパイルされた結果が違うから動作まで違うんですよね?w

でもbabelはES6で書いたコードをES5に変換するだけです。
だから動作は同じです。
0279デフォルトの名無しさん2016/09/03(土) 16:46:40.99ID:EZVA2rF2
>>277
プライド? 傷ついたのはお前じゃね?

お前、俺が傷つくようなこと言ってないじゃんw
0280デフォルトの名無しさん2016/09/03(土) 16:52:59.71ID:EZVA2rF2
>>276
お前はネイティブで書きたいから、古いブラウザに対応するために
ES5でコードを書くって言ったばかりじゃんw

じゃあ今まさにそのES5のコードは増えていってるわけで、ES6へ変化できないってことになる。
えとさ、コードをES6用に書き換えるのにもコストは掛かるんだよ。
どうせ金は客が出すからって考えなんだろうけど。

babelを使っていれば、今すぐES6ネイティブでコードを書ける。
ES5の対応を切るのはbabelでES6からES5への変換プリセットをOFFにするだけでいい。

babelを使っていれば、ES6をブラウザでネイティブに動かす対応は一瞬で終わる。(当然だがテストは常に行われている)
それがAltJSとは全然立場が違うって話に繋がる。
AltJSで書けば、AltJSの設定をOFFにしても動かずコード書き換えが必要だからね。

重要なのは今ES5のコードを減らすこと。
対応ブラウザをどうするかは顧客の要求できまることだから
こっちがあれこれ言えることではない。
0281デフォルトの名無しさん2016/09/03(土) 17:16:40.84ID:AuZUWRpv
少なくともブラウザのソースを見ないと!っていうのは愚の骨頂だな
0282デフォルトの名無しさん2016/09/03(土) 17:32:29.46ID:EZVA2rF2
その言い方だとまたトンチンカンなレスしてきそうだがw
0283デフォルトの名無しさん2016/09/03(土) 17:48:47.28ID:N47o0j5/
>>191
使わなければいいという返しが来るとは思わなかった。
君はアレだね。できればES6で書きたいな、でも古いブラウザのしがらみから抜けられないな、
全く使えないよりも使える方がマシ、だから悪くなりようがないという考えなのだろう。

もちろんそれもあるよ。でもね、状況は動いてるのよ。
2016年になるまでなら、対応途中のモダンブラウザも含めて、できるだけ対応させるという
1つのより良くするための解でしか無かったけれど、
今ES6対応ブラウザが出揃ってきた状態でその中で対応を広げる役目としてのbabelを考えると、
億劫な点が出てくるというのは分かるだろう?

勘違いしてほしくないけれど、babalが悪いと言ってるんじゃないよ。
babelで生成されるコードのレベルが、ES6の時代なので書きま〜すっていう意気込みとは合わないってこと。

それでここからが大事な点になるのだけど、
babelのES6からの乖離は部分部分で見ると確かに小さい。SymbolやProxyを除いたとして、
それらを寄せ集めるともしかしたら1%と言えるくらいしかないのかもしれない。
でもね、各ブラウザstable版に機能が実装されていく時は、基本的には安定した機能が丸ごと有効になるわけで、
機能があるかないか程度にしか気にしなくていいのよ。

でもね、babelのように細かな非互換が多いと、
それは開発版ブラウザに機能が実装されてる最中で、フラグで有効化してES6の振る舞いを実験していた
1年前の状態さながらなのよ。
0284デフォルトの名無しさん2016/09/03(土) 17:49:36.57ID: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対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。
0285デフォルトの名無しさん2016/09/03(土) 18:08:14.44ID:EZVA2rF2
>>283
あんたは重要な点を見落としているね。

あんたが言っているのはすべてbabelを使わなうても当てはまることなんだよ。

ブラウザ間の互換性は完璧ではない。
あるブラウザには搭載されていて、あるブラウザには搭載されていない。
そういう機能がある。

babelはその機能の差を減らすものでしか無い。


話は単純。
1. ブラウザの間での違いはあるしなくならない。(もちろんbabelを使わない場合の話)
2. babelを使わないならばブラウザ間での違いが大きい。
3. babelを使うとブラウザ間の違いが減る。

これを前提の話をしよう。
0286デフォルトの名無しさん2016/09/03(土) 18:13:17.33ID:EZVA2rF2
babelを使うとブラウザ間の違いが減る。
という前提で話をすると、

ES6を完全に搭載していないブラウザが多く使われている今は
babelによって、その機能の差が大きく減る。

そしてその次はES2016、ES2017と話は進んでいく。
当然今のブラウザはES2016、ES2017の対応は少ないだろう。
ある時それらに対応したブラウザが一つだけでた。

となるとやっぱりブラウザの間の違いがでてくる。
そしてまた新しい仕様がでてきて、それに対応しているのはどれ?
という状況がずっと続く。

ブラウザの数は多い。バージョンアップの頻度も高い。
だからブラウザ任せでは機能の差を埋めることは難しい。
そこでbabelがでてくる。babelを使うことで機能の差は減る。
0287デフォルトの名無しさん2016/09/03(土) 18:16:26.40ID:EZVA2rF2
>>284
> でも、モダンで良いコードを書きたいという気持ちが強いなら、古く取り残された環境を切り捨てる勇気も必要だと思う。

モダンで書くよりも重要なのは、今あるブラウザで動かすこと。
そしてその次が開発コストを下げること。

多種多様なブラウザを相手にしていたら開発コストは下がらない。
だからbabelを使ってブラウザ間の違いを減らして
コストを下げることが重要になる。

その次だよモダンで書くことでコストを下げるという理由がくるのは。
優先順位は低い。だからbabelで対応していないものは使わないと言う
選択肢が当然成り立つ。

そして「babelで対応していない機能」は「babelを使わなくてもブラウザが対応した時」に使えばよかろう?
ES6の機能をすべて使うことが目的じゃないんだからさ。
0288デフォルトの名無しさん2016/09/03(土) 18:18:01.40ID:EZVA2rF2
>>284
> ES6対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。

Safari最新版はアロー関数に対応していないんだが?
0289デフォルトの名無しさん2016/09/03(土) 19:21:50.91ID:N47o0j5/
>>288
Safariはモダンブラウザに含めていない。
ウチではずっとChrome第一Firefox第二、近頃はEdge第三。
他は眼中にない。
0290デフォルトの名無しさん2016/09/03(土) 19:27:20.93ID:EZVA2rF2
>>289
じゃあスマホは?
例えばAndroid 4系はアロー関数に対応していない。
http://caniuse.com/#feat=arrow-functions
0291デフォルトの名無しさん2016/09/03(土) 19:32:55.57ID:EZVA2rF2
Chrome、Firefox、Edgeということは
https://www.netmarketshare.com/browser-market-share.aspx?qprid=0&;qpcustomd=0
ブラウザの66.82%にしか対応していません。

モバイルの場合は
https://www.netmarketshare.com/browser-market-share.aspx?qprid=0&;qpcustomd=1
Chrome、Firefox、Edgeの53.65%にしか対応していませんってことだよね。
(Android Browserを入れても62.22%)
0292デフォルトの名無しさん2016/09/03(土) 19:35:23.00ID:N47o0j5/
>>290
いや、逆だよ。超逆。
Androidの古いブラウザを切り捨てられる時期というのが強い。
Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、
ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。
一番問題あるのはSafariくらいで、それももうすぐだろう。

誤解無いように書くが、
上でも言ったようにプログレッシブ・エンハンスメントだし、
当然全てのコードを書き換えたわけではない。
今年度から新しく初めて長くメンテしていくサービスでのコードは原則そういうポリシーになっただけ。
なので問題は無い。
0293デフォルトの名無しさん2016/09/03(土) 19:40:30.57ID:EZVA2rF2
>>292
意味がわからん。

重要なのは切り捨てるタイミングと
コードを新しくするタイミングの問題。

babelを使うと古いブラウザを切り捨てるタイミングを
自由にコントロールできる。

そして古いブラウザを切り捨てるよりも前にコードを新しくできる。
つまり古いブラウザを切り捨てたときにはすでにコードは新しくなってる。

あんた、今、古いブラウザを切り捨てたのに、
古いコードを抱えてるじゃん。

> Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、
> ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。
だからシェアのリストだしただろ? ChromeとAndroid Browserを
入れたとしても62.22%にしかならない。
0294 ◆SEdFBOkLSw 2016/09/03(土) 20:12:11.53ID:YIu9WVDu
俺以外とも噛み合ってねえじゃんw
>>284は説明上手いな。
0295デフォルトの名無しさん2016/09/03(土) 20:15:24.73ID:EZVA2rF2
おい、馬鹿(◆SE)がまた来たぞw
0296デフォルトの名無しさん2016/09/03(土) 20:18:55.72ID:EZVA2rF2
重要なのは、ES6対応度テストで合格する割合じゃないんだよね。
どれだけ多くの世間で使われているブラウザに対応できるか。

俺が一番重要視してるのは、より実用的なのはどれかだよ。

ES6対応度テストで9割合格していても、
それが今使われてるブラウザの6割じゃ役に立たない。

ES6対応度テストで8割でもそれを使うことで
ブラウザの9割で動かせるほうが重要。
0297デフォルトの名無しさん2016/09/03(土) 20:22:54.41ID:N47o0j5/
>>293
>>babelを使うと古いブラウザを切り捨てるタイミングを
>>自由にコントロールできる。

いやー一年前まではそう思ってましたよ。
上でも書いたけれど、君の発言を見てると一年前二年前の若い自分を思い出す。
でもそうじゃなかったから使ってないの。まだ分からない?
理由は大体書いたよ。
babelただ使うだけで使わないよりも『より良くなる』時代ってのはもう終わったの。

あんまり踏み込んで欲しくないので書かなかったことを少しだけ言うと、
ウチではES6基本というのは実は嘘。今はもうES2016基本にしかけてる。
で、そのために、『より良くする』ためにbabelではないがトランスパイラ+ポリフィル使ってる。

が、これもES2016の重箱の角はつつけていないので、本当は使わないで済むなら使いたくないのよ。
モダンなコードを書くメリットと、重箱の角を心の隅で気にしないといけないコストと、若干の好奇心のつり合いを見て今はこういう形になっている。

だから本当に100%ES2016で開放された気分で書けてるのかというとそうではない。
あれだけ変更の少ない2016->2015でもそうなんだよ?
babelのES5変換なんて満足できていたのは最初だけ、ブラウザの対応が未熟だった頃だけだよ。

当初君と同じ夢を見ていたウチのメンバーは一年くらいかけて
実は古いブラウザというしがらみから逃れるために、babelというしがらみに縋ってただけだって気がついたの。
今はbabel使って後から外すなんて夢物語だよ。黒歴史。
実はそういった試みで始めたものいくつかあったんだが、まともに活用しきれない。
多くは実らず捨てることになって、一部は泣きながらリファクタリングしてる最中。
0298デフォルトの名無しさん2016/09/03(土) 20:24:00.35ID:N47o0j5/
>>293
でもまあ、ふと思ったけど、俺も今のbabelは触ってないからな。精々半年前の感覚のままだ。
今はもしかしたら殆ど完璧になってて、憂いが減ってんのかな?
そこはちょっと反省。

どうしてbabelで旧ブラウザの対応するのを見限ったかって言うとね、
そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。
だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。

でも今babelの対応状況改めて見てみたらやっぱり無理だ。
マイナーかもしれないけれど、毎度一箇所は使うだろう点が残ってる。
やっぱり痛いのはプロトタイプの設定や、サブクラス化かなぁ。
めっちゃ使うということは無いが、ここらを我慢するのはやっぱりES6使ってるとは俺は思えないわ。
0299デフォルトの名無しさん2016/09/03(土) 20:26:29.35ID:EZVA2rF2
>>297

あんた自分で言ったセリフ思い出してね。

> Safariはモダンブラウザに含めていない。
> ウチではずっとChrome第一Firefox第二、近頃はEdge第三。

Safariに対応できてない、IEに対応できてない。
対応できるブラウザは6割。

それがお前が今できることの限界だよ。
0300 ◆SEdFBOkLSw 2016/09/03(土) 20:27:46.15ID:YIu9WVDu
>>295
無意味な中傷せんと、皆の意見を真摯に聞いとけ。
だいたい同じ事言ってる。

あとな、動作が同じって、それは違うからな。
いくら時間がかかっても良いから同じ結果を出します、ってのは、結果同じでも動作違うからな。
万回以上呼ばれだしたら体感で速度変わるし。
>>278に対してだけど。
0301デフォルトの名無しさん2016/09/03(土) 20:28:02.67ID:EZVA2rF2
>>298
> そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。
> だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。

だったらbabelで通るように書き換えないで、
その機能を使わなければいいだけでは?

だってそもそもbabelを使わないならば
その機能は使えないんだからさ。

その機能を使わないと言う選択肢をとることはできるはずだ。
0302デフォルトの名無しさん2016/09/03(土) 20:28:44.55ID:EZVA2rF2
>>300
今はお前と話はしてない。
お前のみんなの扱いはすでに決まってるんだよ。
おバカさんw
0303 ◆SEdFBOkLSw 2016/09/03(土) 20:30:06.63ID:YIu9WVDu
>>298
そう。だから、結局同じ構文で書いた、ただのbabelって処理系用の言語なんよね。

>>301
それは、babel用のコードを書くに、他ならなくないか?
babel無視したら、そんな回避コード書かんで良いんだから。
俺が仕事でES5書いてるのとレベル全く変わらんじゃないか。
0304デフォルトの名無しさん2016/09/03(土) 20:30:30.26ID:EZVA2rF2
>>297
言ってることが抽象的すぎて
具体例が一つもないよね。

問題があるという前提で話をしているが、
そもそも、お前が言う問題は本当にあるのか?って話。

まず、具体的な問題があることが前提だから
どういうときに問題があるのかを言ってくれないか?
0305デフォルトの名無しさん2016/09/03(土) 20:31:13.84ID:EZVA2rF2
>>303
> それは、babel用のコードを書くに、他ならなくないか?

ぜんぜん違う。その言語はES6でそのまま動く
ES6用とbabel用に違いはない。
0306 ◆SEdFBOkLSw 2016/09/03(土) 20:31:17.36ID:YIu9WVDu
>>302
お前の中だろ。
問題を極端に矮小化したり拡大解釈したり、一般化したり特殊化すんのは良くないぞ。
0307デフォルトの名無しさん2016/09/03(土) 20:32:03.05ID:EZVA2rF2
> 俺が仕事でES5書いてるのとレベル全く変わらんじゃないか。

わざわざES6のコードを避けるほうが大変だろwww

どちらがどれだけ大変かの話をしてる。
babelを使えば、避ける必要性が大きく減る。
0308デフォルトの名無しさん2016/09/03(土) 20:32:49.45ID:EZVA2rF2
>>306
あっちのスレでもお前、馬鹿にされてるじゃんwww
自覚しとけ。

お前は俺に反論できないことはたくさんあったが
それはお前にほとんどレスしてるだろw
0309 ◆SEdFBOkLSw 2016/09/03(土) 20:33:04.45ID:YIu9WVDu
>>305
ES5もES6でそのまま動くよw

babel用に使えないものがあるから使わないのは、ES6のサブセットじゃん。
babel用に使えないものを避けて書いたのと、気にせず書いたES6は違うコードなんじゃねえの?
0310 ◆SEdFBOkLSw 2016/09/03(土) 20:33:43.02ID:YIu9WVDu
>>308
明後日のレスだけして、それで答えた気になってたらしゃーないわ。
0311 ◆SEdFBOkLSw 2016/09/03(土) 20:36:11.49ID:YIu9WVDu
>>307
避ける方が大変?なんだそりゃ。
言語仕様把握せずに開発してる訳でもあるまい。
規約が無い訳でもあるまい。

子供のバイトみたいな話しないでくれ。
0312デフォルトの名無しさん2016/09/03(土) 20:37:02.13ID:EZVA2rF2
>>309
> ES6のサブセットじゃん。

ん? 各ブラウザのES6の実装度を知らないのかな?
どのブラウザでも使えるのはES6のサブセットでしか無いんだけど?
0313デフォルトの名無しさん2016/09/03(土) 20:38:01.48ID:EZVA2rF2
>>311
> 避ける方が大変?なんだそりゃ。

そりゃそうだろ。

どのブラウザで、どの機能が使えるかをいちいち把握しないといけない。
お前アロー関数がSafariで使えないことを把握していたか?

そういった細かい機能を把握する必要がなくなる。
0314デフォルトの名無しさん2016/09/03(土) 20:38:52.88ID:EZVA2rF2
言語仕様を把握していても、アロー関数がSafariで
動かないってことを知ることは出来ないんだよ。
0315 ◆SEdFBOkLSw 2016/09/03(土) 20:41:04.47ID:YIu9WVDu
>>312
そうだね。
だから、ブラウザごとに要件定義すんじゃんね。
そこに、これまたbabelって処理系が入る、と。

お前の理屈破綻してるのわかる?
どこが、一つのES6で良いの?w

最大公約数で書けば良い、なら、
ホントに最大公約数で書けばいいじゃん。ES5。
要件定義できるなら、その最大公約数で書けばいいだけ。

中途半端に先端気取って無駄な事なの。
0316デフォルトの名無しさん2016/09/03(土) 20:41:56.59ID:EZVA2rF2
ES6を完全サポートしているブラウザを100とすると、
babelを使わないと、

1〜100までのすべてのブラウザを考慮しなければいけなくなる。
babelを使えば80以下のブラウザがすべて80にまで底上げされるから
80〜100のブラウザだけを対応すれば良くなる。
0317 ◆SEdFBOkLSw 2016/09/03(土) 20:43:55.93ID:YIu9WVDu
>>313
してたよ。
ついでに言うとOperaも対応してない。
Android標準ブラウザは4系でも全滅。IEも11でも使えない。
0318 ◆SEdFBOkLSw 2016/09/03(土) 20:45:13.51ID:YIu9WVDu
>>316
ES5で書けば100のブラウザ相手に書けんじゃん。
底上げしたから、何もしなくて良いわけでもないし。
骨折り損。
0319デフォルトの名無しさん2016/09/03(土) 20:45:14.45ID:N47o0j5/
>>299
何が言いたいのか、いやもう建設的な話し合いをする気は無いんだろうけど、
一応会話してみるか。

対応するときはES5で書く。それだけでしょ?
そして、その話は本題と関係ないでしょ?

古いブラウザを見限っていいから、Babelを使うなと言ってるんじゃないから。
古いブラウザを見限らないとしても、ウチではBabalは使わない。ただES5で書くだけ。
まさかウチではもう今年度からピュアES6しか書きませんと言ってるのだと思ってた?
誤解させてごめんね。

で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。
ES6を使いたいから、後々外せばいいだけだから便利、な感覚でBabelを使うと怪我するよと言ってるの。
Babalを使うのなら、あくまでES_Babelというalt JSを使うんだという認識・覚悟で居たほうが正しい。

そして副題として、俺はそれは嫌ということ。ここは個人的な部分だし、環境なので異論は認めるし、批判は受け付けていない。
二極化提案については、まだ実験中で良し悪し分からず、オススメする気もなくポロッと言ってしまっただけだし、
あまり深入りしてほしくないのでこれ以上話したくない。
0320デフォルトの名無しさん2016/09/03(土) 20:45:47.57ID:EZVA2rF2
>>315
> だから、ブラウザごとに要件定義すんじゃんね。
> そこに、これまたbabelって処理系が入る、と。

ブラウザは実行環境、
babelはトランスパイラ。

違うものを混ぜるなって何度も言っただろ。

お前はES6に対応していないブラウザを一つずつ何個も
この機能は使える?使えない?って悩んでいるのだろうが
babelを使うと、多くのブラウザの最低レベルが揃うんだよ。

お前の言葉で言う最大公約数がES6に底上げされる。
最大公約数5よりも最大公約数10の方がいいだろw
0321デフォルトの名無しさん2016/09/03(土) 20:46:33.45ID:N47o0j5/
おいおい……俺がちょっと推敲してる間に20も進むとか……
0322デフォルトの名無しさん2016/09/03(土) 20:49:51.97ID:EZVA2rF2
>>319
なんか一人二役ご苦労さんって感じになってきたな。
わざとらしく大文字小文字を使い分けてるのかい?www

> 対応するときはES5で書く。それだけでしょ?
そのES5をES6に書き換えるコストは誰が払うんだ?ずっとES5のまま?
なんで可読性、メンテナンス性が低いコードを今のタイミングで量産するのさ?w
長期的なバージョンアップっていうのが考慮されてないぞ。

> で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。

なんでそこでbabelの吐くコードを気にしないといけないのかわからん。
そもそもbabelの吐くコードはES5だ。ES_Babelなんてものはない。
babelは言語ではなくて単なるトランスパイラ。言語はES6そのもの
0323デフォルトの名無しさん2016/09/03(土) 20:50:46.13ID:EZVA2rF2
>>318
> ES5で書けば100のブラウザ相手に書けんじゃん。

ただし可読性とメンテナンス性が低いコードになる。
0324デフォルトの名無しさん2016/09/03(土) 20:52:05.59ID:EZVA2rF2
>>317
> ついでに言うとOperaも対応してない。
> Android標準ブラウザは4系でも全滅。IEも11でも使えない。

そっかー、babel使ってテストにもちゃんと通って
手動でも確認したときも問題なく動いていたから知らんかったわーw


まあ嘘だけど、このようにいちいち把握する必要がなくなる。
0325デフォルトの名無しさん2016/09/03(土) 20:52:33.02ID:vfo9HhT2
この板ってどのスレでも定期的にこういう事起こるよね
C#のラムダ禁止おじさんとか
0326 ◆SEdFBOkLSw 2016/09/03(土) 20:52:38.94ID:YIu9WVDu
>>322
一人二役って、アホな発言にも程があるわ。
言うに困ったらそれか。

>>322
言語は、そのものじゃなくてサブセットなんじゃねえの?
0327 ◆SEdFBOkLSw 2016/09/03(土) 20:53:35.43ID:YIu9WVDu
>>323
お前が下手なだけ。

>>324
必要が無いのと、無責任なのは違うよ。
あと、letも、ずっとSafariだけ未対応だった。
0328 ◆SEdFBOkLSw 2016/09/03(土) 20:54:01.45ID:YIu9WVDu
>>325
ラムダは積極的に使えば良いのにな。
0329デフォルトの名無しさん2016/09/03(土) 20:56:57.70ID:EZVA2rF2
>>326
> 言語は、そのものじゃなくてサブセットなんじゃねえの?
そうだなES6の殆どが使えるがサブセットだなw

それよりもES6に完全対応してないブラウザの方が
より大きな問題だよ。
0330デフォルトの名無しさん2016/09/03(土) 20:58:33.36ID:N47o0j5/
もういい。
俺はともかく、ES6ってそんなレベルじゃねーぞって変なこだわり言ってるだけだから。
とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。
相手が建設的な話し合いする気がないどころか、現実逃避始めちゃったので、今となってはそれすらどうでもいい。

>>320
>>babelを使うと、多くのブラウザの最低レベルが揃うんだよ。

そう。いいこと言った。
最初からこのくらいに収めてくれてれば俺が駄スレで駄レス重ねる必要もなかったのに。
結局会話にならなかったし、ほんと、無駄な時間過ごしちゃったな〜
0331デフォルトの名無しさん2016/09/03(土) 20:59:03.26ID:EZVA2rF2
>>327
> 必要が無いのと、無責任なのは違うよ。

誰が無責任でいられるって言ったんだよ。
アホかw

ちゃんとテストコード書いて問題なく動くことを確認してる。
それが責任を果たすということだろ。

> あと、letも、ずっとSafariだけ未対応だった。

せっかくより良くなったES6を
全く使えない状況になるんだよねw
0332デフォルトの名無しさん2016/09/03(土) 21:01:48.79ID:EZVA2rF2
>>330
> とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。

もちろん将来的には外すだけじゃねーよw

しっかりテストコード書いて、テストする。
これは、babelとは関係なく、ブラウザのバージョンアップでも
急に動かなくなったりする可能性があるのだから当然するべきこと。

babelを外してもし動かなくなるのなら、その部分だけの修正で済むだろ。
今からbabelを外して動くかどうかもテストしてればいいんだよ。

それをやってるから、ES6で書いてbabelを使っても使わなくても
同じように動くコードになるって言ってるの。
0333デフォルトの名無しさん2016/09/03(土) 21:09:12.58ID:N47o0j5/
>>332
だからね。君が言ってるそれは、BabalがES6のコードを完璧にES5に変換できるということ前提なの。
実際はね、ES6ではなく、ES_Babalで書かないといけないの。
ES_BabalというのはES6から機能と安定性を取り去った言語なわけ。
で、それを将来ES6か何かに書き換えるわけ。

それがES5のしがらみとどっちが強いかは人次第なのかもしれない。
君はそれに十分満足していて、俺は不満。ただそれだけなのかもしれない。

でも、ES6を使いこなしていったらすぐに俺の考えに近くなるんじゃないかなという想像。
無駄なおせっかいだったのよ。それだけ。
0334デフォルトの名無しさん2016/09/03(土) 21:13:20.81ID:EZVA2rF2
> 実際はね、ES6ではなく、ES_Babalで書かないといけないの。
だから書かなくて良いんじゃないですかねぇw
ES6で完璧に書けないものは書かなくていい。

なんでES6を使うって言ったら、babelで使えない機能まで
ES6を使おうってするんだ?w


どうせテスト書くだろ。完璧に動かなくてもテストで通る範囲が動けば問題ないんだよ。
そもそもブラウザですらES6に完全に対応していない。

どちらにしろES6に完全対応していない環境と言う前提のもとで、
正しく動くアプリを作るんだよ。作るのが仕事なの。

そしてより可読性、メンテナンス性に優れたコードを今すぐ書くということ。
0335 ◆SEdFBOkLSw 2016/09/03(土) 21:15:25.72ID:YIu9WVDu
>>331
テストコード書いて問題なく動く、そこが違うんだよなぁ。
こっちは仕様と実装からテスト仕様書いてて、
お前は仕様からしか書いてないんだもの。

>>332
お前は本当に何を問題とされているかわかんねえやつだな。
0336デフォルトの名無しさん2016/09/03(土) 21:17:26.35ID:EZVA2rF2
テストコード書いて問題なく動く、そこが違うんだよなぁ。
こっちは仕様と実装からテスト仕様書いてて、

え? だからそのテスト仕様書通り動けばいいだろ?

何言ってるのかさっぱりわからんwww
0337デフォルトの名無しさん2016/09/03(土) 21:18:06.86ID:EZVA2rF2
> こっちは仕様と実装からテスト仕様書いてて、

あ、実装を書かないとテスト仕様書が書けないタイプ?
0338デフォルトの名無しさん2016/09/03(土) 21:21:04.16ID:EZVA2rF2
実装からテストを書くっていうのは、
要するにprivateメソッドを書いてから
そのテストコードを書くって言ってるのかな?

まあまた意味不明なことを言い出したなって
思ってますよw
0339デフォルトの名無しさん2016/09/03(土) 21:23:23.04ID:EZVA2rF2
実装のテストっていうのは、その実装が変われば
同じ動作をしていてもアプリは問題なく動いていても
失敗するものってことでいいんですか?
0340 ◆SEdFBOkLSw 2016/09/03(土) 21:24:59.62ID:YIu9WVDu
>>337
当たり前だろ。。
>>338
違うよ。
コードを書く/書いてもらう前に、何もかも分かった状況にして、こうすれば書けるから、と実装に対する詳細設計を起こすよね。
その詳細設計から書くじゃん、テスト。
実装、がもしかして食い違ってる?
お前が書く内容、って意味じゃなくて、処理系の実装、な。

しかし、改めてbabel見てみたが、末尾再帰もできんままか。
0341 ◆SEdFBOkLSw 2016/09/03(土) 21:26:13.79ID:YIu9WVDu
>>339
何言ってるのかわからん。
その処理系でテストを完了していない限り、失敗も成功もないだろ。宙ぶらりん。
だからテストすんじゃん。
0342デフォルトの名無しさん2016/09/03(土) 21:28:37.51ID:EZVA2rF2
いつの話をしてるのやらw

http://teppeis.hatenablog.com/entry/2015/03/es6-tail-call-optimization

2015-03-29
BabelとTraceurでES6末尾再帰最適化を試す
ちょっと前にBabelに末尾再帰最適化が入って話題になったけど、同じくTraceurにもv0.0.85で最適化が入ったので試してみた。
0343デフォルトの名無しさん2016/09/03(土) 21:28:59.57ID:N47o0j5/
>>334
うん。だから君は、ES6を、モダンで良い言語で書きたいから使ってるわけではなく、
「Babelが対応してる機能」を「Babelが対応してるから」使ってるだけでしょ?
普通はES6で書いて動かすためにトランスパイラを試す筈だが、
君はおそらくBabelをES6入門用的に使っているのだろう。

Babelはもう成長しないが、君はどうするの?
うーん。もしかして、ES2017や18の時代になっても、
Arrayのサブクラスすら作れないなんちゃってES2017で書くの?

ES6-サブクラス+デコレータ-hogehoge+fugafuga
みたいなおかしな言語で書き続けるの??
そこに無理があると言ってるのよ。

君ももし本当にES_BabelをES6と信じてるのなら成長したほうが良いよ。
で、Babelは使うのは良いが憂いができるだけ少なくなるようにした方がいい。
0344デフォルトの名無しさん2016/09/03(土) 21:32:40.61ID:EZVA2rF2
>>340

337 自分:デフォルトの名無しさん[sage] 投稿日:2016/09/03(土) 21:18:06.86 ID:EZVA2rF2 [83/86]
> こっちは仕様と実装からテスト仕様書いてて、
あ、実装を書かないとテスト仕様書が書けないタイプ?

340 返信: ◆SEdFBOkLSw [sage] 投稿日:2016/09/03(土) 21:24:59.62 ID:YIu9WVDu [24/25]
>>337
当たり前だろ。。

この流れで、↓これとか

> コードを書く/書いてもらう前に、何もかも分かった状況にして、こうすれば書けるから、と実装に対する詳細設計を起こすよね。
> その詳細設計から書くじゃん、テスト。

・・・馬鹿なのか?


1. 実装に対する詳細設計を書く
2. つまり詳細設計は実装を書くよりも前に存在する。
3. (実装を書く前の)詳細設計からテストを書く。

実装を書かなくてもテスト仕様書は書ける。
0345 ◆SEdFBOkLSw 2016/09/03(土) 21:35:40.90ID:YIu9WVDu
>>342
おお、if文のあとの再帰で死ぬやつ治ってんだ。
ちなみに、その話のあと、一旦disabledになったのよ。
0346 ◆SEdFBOkLSw 2016/09/03(土) 21:38:38.17ID:YIu9WVDu
>>344
だから。もう。
お前がどう書くかは関係ねえの。
それからテスト書いたら意味ねえじゃん。
ホワイトボックスで、それが検証可能な事には意味があるけど、そうじゃねえよ。
処理系の実装だよ。
0347デフォルトの名無しさん2016/09/03(土) 21:41:34.55ID:EZVA2rF2
>>343
> 「Babelが対応してる機能」を「Babelが対応してるから」使ってるだけでしょ?
違う。ES6の機能のうち、babelで変換しても確実に動くものだけを使ってる。
だから「ES6が対応している機能」のうち「babelでも対応しているもの」を使っている。
が正解。

そしてそれは普段から書いている「実際のブラウザで問題なく動くか?」という
テストがあれば追加工数は必要なくテストできる。

> Babelはもう成長しないが、君はどうするの?
成長してないと判断したところはどれ?
見ての通りes2017に対応したプリセットもある。 http://babeljs.io/docs/plugins/preset-es2017/
仮にbabelが成長しなくても、今書いているコードはそのままES6対応ブラウザで動くし
ES5ブラウザでも動く。今のやり方はそのまま続けられるじゃん。

場合によっては古いブラウザを切り捨てることで、babelが無くても動く。
将来の心配をしなくて済む。そこがAltJSとの違い。

> ES6-サブクラス+デコレータ-hogehoge+fugafuga
> みたいなおかしな言語で書き続けるの??
と言われてもね。現実に存在するブラウザが、そんな感じでしょw
ES6の全てに対応していない。あんた今、そんなおかしな言語で書いてるんだよw

> うーん。もしかして、ES2017や18の時代になっても、
> Arrayのサブクラスすら作れないなんちゃってES2017で書くの?
Arrayのサブクラスを使わないでES2017で書くよ。

お前は古いブラウザを切り捨てるんだろ?
それが要件として認められるならば、俺古いブラウザを切り捨てるだけだよw
0348デフォルトの名無しさん2016/09/03(土) 21:46:47.80ID:EZVA2rF2
>>346
またマッチ・ポンプ?w
テストは実装前に書くって話でいいんだよね?w

俺が言いたいのは、>>335でお前が言った
> こっちは仕様と実装からテスト仕様書いてて、
実装からテスト仕様書くなやってことなんだけど?


で、俺は仕様と詳細設計からテスト仕様書書いて
それをテストコードにしてるから、
実装が変わっても問題ないって話をしてるんだけど。
0349 ◆SEdFBOkLSw 2016/09/03(土) 21:51:24.54ID:YIu9WVDu
>>348
だから、処理系の実装だってば。
お前話の流れが読めないやつだな。
前のレス見ればわかんじゃん。

>>347
だから、それがbabel用のコードなんじゃねえの?
ES6と同じ構文で書いたES6のサブセットな、babelにコンパイルさせる為の言語。
ただ、そのまま他の環境でも動くだけで。
それは、ES5を書いて、これはES6の仕様範囲内だから、ES6です、って強弁するのと変わらんではないか。
0350デフォルトの名無しさん2016/09/03(土) 21:54:03.20ID:N47o0j5/
>>347
うーん。君のポリシーがよくわからないね。
今のブラウザがES6の全てに対応していない?
そりゃそうだ。ES5すら全てに対応してるわけではないからね。

ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの?
さっきも言ったが俺はそここそが一番気になるんだから。

いや違うか、君は不完全でも気にしないと言ってるわけだ。
ES6とES_Babelの見分けなんてつかないよと、
いや、Babelで変換できないES6の機能なんてES6と認めないよと言ってるわけだ。

やっぱり君はBabel志向なんだよ。
それは違う、とにかく対応を広げるために機能の劣るBabelを仕方なく使ってるんだっていうなら
やっぱりES6ではなくES_Babelを書いてるってことを認めないといけない。

それか、実はES6なんて理解してなくてBabel志向なだけですというのも理屈が通る。
そのどちらか。
0351デフォルトの名無しさん2016/09/03(土) 21:57:03.42ID:EZVA2rF2
>>349
> だから、処理系の実装だってば。

処理系の実装ってなに?

お前は処理系の実装のテストを "書いている" といった。
そうわざわざ言うってことは、当然普段から書いているのだろう?

ブラウザの場合お前はbabel等を使わない。
ってことは当然処理系の実装のテストというのは、
ブラウザが持っているJavaScript実装。
ChakraやSpiderMonkeyやV8という処理系であるはずだ。


お前はこれらのJavaScriptエンジンを
わざわざ開発元がやってるはずのテストを
JavaScriptエンジンの開発や検証という段階でもないのに、
アプリの開発という仕事の中でやってるということか?

そういう話でいいのか?
0352デフォルトの名無しさん2016/09/03(土) 21:59:14.75ID:EZVA2rF2
>>349
> だから、それがbabel用のコードなんじゃねえの?
> ES6と同じ構文で書いたES6のサブセットな、babelにコンパイルさせる為の言語。

ES6のサブセットという言語はない。
俺がES6のサブセットを使っているだけ。

そもそもどのブラウザもES6に完全対応してないのだから
俺だけじゃなくてみんなES6のサブセットを使ってる。

お前、SafariでES6のサブセットを使ったら、
それをSafariで動かすための言語っていうのかよwwww

それぐらいわからんかなw
0353デフォルトの名無しさん2016/09/03(土) 22:05:42.45ID:EZVA2rF2
>>350
> 今のブラウザがES6の全てに対応していない?
> そりゃそうだ。ES5すら全てに対応してるわけではないからね。
>
> ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの?

そこが話がつながってない。

babelはES6に対応していないブラウザをES6対応に近づけるものであって、
ブラウザとES6対応度で競争しているわけじゃない。

ブラウザは他のブラウザとES6対応度で競争しているかもしれない
その競争でどこそこのメーカーのブラウザが劣っているか劣っていないかって
いう話をするのならわかる。

だがbabelの目的は、劣っているブラウザを救済する所にある。
babelと比較するのであれば同じ目的のTraceurやClosureだろう。

あんたはES6を使いたいとしか思ってないようだが、
俺が一番に考えているのは、より多くのユーザーが使ってるブラウザで動かすということだ。
その上で可読性やメンテナンス性を上げるという理由で出来る限りES6を使うって話をしてるんだよ。
0354 ◆SEdFBOkLSw 2016/09/03(土) 22:15:50.24ID:YIu9WVDu
>>351
文盲なの?

そのエンジンと自社製品の組み合わせのテストだよ。

>>352
最後。
その通り、Safariの為の言語だよ。その時点では。
SafariとFireFoxの為に書いたのであれば、SafariとFireFoxの為の言語。
0355デフォルトの名無しさん2016/09/03(土) 22:17:06.63ID:EZVA2rF2
ん? まさかと思うが、もしかして◆SEって
ブラウザごとにソースコード書き換えてるのか?

あるサイトを作ったとして、
Chromeはアロー関数を使ったコードで
Safariはアロー関数を使わないコード。

一つのコードで複数のブラウザに対応するのではなく
各ブラウザごとに書き換えたを変えてるのか?

まさかな。babelを使うと一つのコードで
複数のブラウザに対応できるぞwww
■ このスレッドは過去ログ倉庫に格納されています