トップページ⇒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/
0207 ◆SEdFBOkLSw 2016/09/03(土) 13:44:41.92ID:WfmCkwdk
一回、このアホがどれくらいの規模の物を商品として作ったのか聞いてみたいわ。
0208 ◆SEdFBOkLSw 2016/09/03(土) 13:48:52.73ID:WfmCkwdk
まぁいいや。
こいつの言うのが何であれ、なんの意味も成さんな。
実務ゼロっぽいし。
0209デフォルトの名無しさん2016/09/03(土) 13:57:18.18ID:EZVA2rF2
>>26
へ? IEのソースコード公開されてないよ?
保守契約結んでもIEのソースは公開されない。

つーかソースコード開示する契約があるとしたら
それは保守契約じゃないしwww


> iOSのバージョンやAndroidごとに動き違うね。だから、社用には決まった機種を使うんだよ。
それはお前が決められることじゃない。
客が決めること。

客が世の中で使われているスマホの9割に対応するって言ったら
それに対応しないといけないんだよ。

で、どうするの? お前は出来ないの?w
0210デフォルトの名無しさん2016/09/03(土) 13:57:46.31ID:EZVA2rF2
わかると思うけど、>>26じゃなくて>>206あてね。
0211デフォルトの名無しさん2016/09/03(土) 13:59:56.35ID:EZVA2rF2
それから、babelで変換したとしても変換したコードは見れるし、
babel自体もオープンソースなので、全然ブラックボックスではありませんね
ブラックボックスってどこから出てきたのでしょうか?w
0212 ◆SEdFBOkLSw 2016/09/03(土) 14:02:05.07ID:WfmCkwdk
>>209
結んでから言ってねw

後半。
違うよ。要件定義ってそうじゃない。
対応してほしいなら、どの機種のどれに対応して欲しいか明確じゃないと。
保証できない事を約束できないっしょ。
お前、マとしての実務以前に、要件定義すらしたことないの?
9割って、一体何だ?w
0213 ◆SEdFBOkLSw 2016/09/03(土) 14:03:10.48ID:WfmCkwdk
>>211
お前は本当に馬鹿だな。
それはブラックボックスとは関係なく、中間層の話だろ。
議題が変わると混乱するタイプの話かな。
0214デフォルトの名無しさん2016/09/03(土) 14:13:08.29ID:EZVA2rF2
>>212
> 対応してほしいなら、どの機種のどれに対応して欲しいか明確じゃないと。
普通は、IE9以上、Edge、Chrome、Firefoxとかだな。
Edge、Chrome、Firefoxに関しては短期間でバージョンアップするので
固定するようなことはしないし、できない。

一例をあげるとこれぐらいの頻度で更新されてる。1ヶ月に1回だな。
https://ja.wikipedia.org/wiki/Google_Chrome
48.0.2564 2016-01-20
49.0.2623 2016-03-02
50.0.2661 2016-04-13
51.0.2704 2016-05-25
52.0.2743 2016-06-02
53.0 2016-06-02

> 保証できない事を約束できないっしょ。
> お前、マとしての実務以前に、要件定義すらしたことないの?

保証できないことは約束しない。当たり前のことなんだが?
お前開発したときよりも1ヶ月あとにリリースされるバージョンで動作するかどうやって保証するんだ?
なんでもかんでも保証するなよ。保証しませんの一言でおしまいだろ。


> 9割って、一体何だ?w
は? 世の中に存在するスマホの機種の9割に対応するってことだけど?
OSで言えば、iOS8以上 + Android 4.0以上とか。
これ実際に仕事で大手企業から言われた条件な。
お前、スマホ対応とかの仕事できないだろw
0215デフォルトの名無しさん2016/09/03(土) 14:14:40.62ID:EZVA2rF2
>>213
> それはブラックボックスとは関係なく、中間層の話だろ。

ブラックボックスって言い出したのはお前だろ?w
お前の言うブラックボックスはどこなんだって話。

babelはブラックボックスではないと確定しました。

はい、で?お前は何がブラックボックスだって?
0216デフォルトの名無しさん2016/09/03(土) 14:24:14.31ID:EZVA2rF2
そういやソースコード見るために、MSと保守契約(笑)の話もあったな。
こっちは恥ずかしくてスルーするんだろうなw
0217 ◆SEdFBOkLSw 2016/09/03(土) 14:26:12.90ID:WfmCkwdk
>>214
普通とか別に要らないよw

Edgeに関しては撒くKBでコントロールできる、
FireFoxはLTS
ChromeはChronium
で固定できるし、してるよ。

その後の保証が要るなら保守契約結んでもらうだけじゃん?
こっちが保証するのは、要件定義どおりに決めた結果でしかないし、検収印もらったらそれで良い話。

世の中に存在するスマホを全部列挙してもらわないと、その9割なんか定義できんだろ。
iOS8以上、なら俺も発注出すな。

>>215
うん、得体のしれないポリフィル、に対して言ってた。
読めば良いだけ、なら、そんな工数無駄なので、作れば良いだけ。
お前はなんのソースも読まずに、これで大丈夫だ!なぜならこれが最新のもので、オープンソースのグループによって更新されてるから、って態度なんだけど。
0218デフォルトの名無しさん2016/09/03(土) 14:26:14.91ID:bZbzbaoD
面白いのが居るね。
制御系をやらせてみたいなwww
0219 ◆SEdFBOkLSw 2016/09/03(土) 14:28:46.36ID:WfmCkwdk
>>216
ソースコード見ると言うよりも、
動かん、スペックシート送れって言ってみ?
無駄の多いMSDNみたいなクソみたいなの送ってくるから。
それでもおかしいとなると、人間よこせ、確認しろって言って、
確認後KB作ってくれるよ。
.net 2.0になりたての頃よく呼んだ。
いずれにせよ、ソースを見ずに、中身は理解できるし、おかしければ治る。

まぁ、そんなことした事ないんだろうけど(笑)
0220デフォルトの名無しさん2016/09/03(土) 14:36:29.05ID:EZVA2rF2
> Edgeに関しては撒くKBでコントロールできる、
俺をどうやってKBでコントロールする気だ?w
ウェブの世界っていうのは世界中の人間を相手にしてる。

コントールするのは不可能という大前提がある。
この大前提は、お前の一存で決めることは不可能な絶対条件。

お前にはこの世界の仕事は無理だよw

> その後の保証が要るなら保守契約結んでもらうだけじゃん?
> こっちが保証するのは、要件定義どおりに決めた結果でしかないし、検収印もらったらそれで良い話。

だからbabel使って変換したソースコードが、こっちが保証しているブラウザで
動けばそれでおしまいってだけなんだが?お前が言っていることの範囲内だろ。

当たり前だがbabelはソースコードを変換するだけで納品物は変換されたソースコードだ。
だからbabelが勝手にバージョンアップすることはない。babelが原因で動かなくなることはない。


> 世の中に存在するスマホを全部列挙してもらわないと、その9割なんか定義できんだろ。
Andorid 4.0以上のスマホという条件があれば、全部列挙することはできるだろw
その作業をどちらがやるかは客と相談して決めること。

> うん、得体のしれないポリフィル、に対して言ってた。
ポリフィルはすべてソースコード公開されてるから
ブラックボックスじゃないなwwww

で、ブラックボックスって何の話?w
0221デフォルトの名無しさん2016/09/03(土) 14:37:53.45ID:EZVA2rF2
>>218
> 面白いのが居るね。
> 制御系をやらせてみたいなwww

制御系は特許の塊だから、ブラックボックスのまま
使う必要があるだろうね。


ブラックボックスだから保証できません!
だからブラックボックスの環境では仕事できません!
じゃだめなんだよね。

ブラックボックスがあるという前提で
どこまで保証できるか?できないかを
はっきりさせるのが仕事。
0222 ◆SEdFBOkLSw 2016/09/03(土) 14:38:54.38ID:WfmCkwdk
>>218
死屍累々だぞこの調子だと。
でも未だに業界的に変なの動いてるからな。
俺もCバスはそろそろ捨ててほしいと思うが、思うだけであって実際問題は金かかるからな。リプレイス待ち案件。
そういうのを見た上で、それでも、彼は最新のコードを使えば大丈夫だと思っているに違いないよ。

>>220
うん、だから、イントラの話しであって、Webの話じゃないじゃん。
で、その上で、お前の開発への考え方聞いて、Webってそんなもんなんだな()って言ってんの。理解できる?

ブラックボックスじゃない、は読んだあとわかるんだよね。それまでは依然としてブラックボックスだよ。
読む工数は誰かくれんの?
0223デフォルトの名無しさん2016/09/03(土) 14:39:52.29ID:EZVA2rF2
>>219
> 確認後KB作ってくれるよ。

いや、KB作って終わりじゃないだろ・・・・

ウェブの世界では多くの人と環境を相手してる。
という変えられない絶対条件があるんだよ。

その条件で仕事しないといけないの。
KBあればばっちりだ!じゃない。それを世界中の人に使わせないことには
お前のやり方じゃ仕事できんだろ。つまりそのやり方は破綻してるんだよ。
0224デフォルトの名無しさん2016/09/03(土) 14:42:29.94ID:EZVA2rF2
>>222
> うん、だから、イントラの話しであって、Webの話じゃないじゃん。

だからお前は「ウェブ程度」のことができないって結論なの。
一度世界中の人と環境を相手に仕事してごらん?w

> ブラックボックスじゃない、は読んだあとわかるんだよね。それまでは依然としてブラックボックスだよ。
> 読む工数は誰かくれんの?
何を読む工数?

ChromeやFirefoxはブラックボックじゃなくて
お前はそれを読んでるんだろ?
その工数を誰かがくれたんだろ?

マッチポンプかw


ブラックボックスは駄目だ!ソースコード読まなきゃ!
→ ソースコード読む工数は誰がくれるんだ!

じゃあブラックボックスでやれよw
0225 ◆SEdFBOkLSw 2016/09/03(土) 14:42:49.83ID:WfmCkwdk
客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、
9割、が要件じゃないような。

納品はバベったコード、で、改修させてえらい工数見積もられたことあるな。
即切ったわ。

>>221
NDAさんはどこ行くんだよ。
0226 ◆SEdFBOkLSw 2016/09/03(土) 14:45:38.93ID:WfmCkwdk
>>224
Web程度、って言うほどの事でもないような。
Web屋には一目置いてるけど、結局こういう精神性なのか、と残念に思ってる所だけど。
世界中の人は相手にしてるよ。割と。

FireFoxとchromeは読んでるよ。いわば環境じゃん。
0227デフォルトの名無しさん2016/09/03(土) 14:46:43.87ID:EZVA2rF2
>>225
> 客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、

はぁ。いっつもこいつそうだよ。

俺が以下の文脈で「相談」って言ったら、

> Andorid 4.0以上のスマホという条件があれば、全部列挙することはできるだろw
> その作業をどちらがやるかは客と相談して決めること。

その「相談」だけを抜き出して、別の意味で使うんだよ。

卑怯だよねw



> 客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、
> 9割、が要件じゃないような。

9割は客が決めた要件。相談して決めていない。俺が言って「相談」とはAndoroid4.0以上のスマホの列挙作業を誰がやるかだ。
0228デフォルトの名無しさん2016/09/03(土) 14:48:21.76ID:EZVA2rF2
>>226
> FireFoxとchromeは読んでるよ
その工数は誰が出してると思ってるんだ?

じゃあ、FirefoxでPromiseを定義している
ソースコードはどれだい?みたいな質問に
答えられるはずだよな。

一応証拠として聞いておこうか?
0229デフォルトの名無しさん2016/09/03(土) 14:48:57.81ID:EZVA2rF2
言っとくが読むっていうのはファイルを探すことじゃないぞ
その中身まで理解していなければ読んだことにはならない。
0230 ◆SEdFBOkLSw 2016/09/03(土) 14:49:16.41ID:WfmCkwdk
知財かどうかなんて、APIが知財かどうかすら関係するんだから、弁理士弁護士案件だろ。
ブラックボックスのまま、ってどういう事かわからん。
エラッタかどうか挙動を確かめる行為すら、既に解析行為だろ。
0231デフォルトの名無しさん2016/09/03(土) 14:50:05.16ID:EZVA2rF2
>>225
> 納品はバベったコード、で、改修させてえらい工数見積もられたことあるな。

なんでだ? babelは単なるES6なんだが?

そのES6のコードをbabelで変換せずに
納品すればいいだけじゃねーかw
0232 ◆SEdFBOkLSw 2016/09/03(土) 14:50:24.49ID:WfmCkwdk
>>228
何の噛みつき方かわからんよ。
そりゃ業務知識だからほいほい言うわけないじゃん。
0233デフォルトの名無しさん2016/09/03(土) 14:50:48.72ID:EZVA2rF2
>>230
> 知財かどうかなんて、APIが知財かどうかすら関係するんだから、弁理士弁護士案件だろ。
> ブラックボックスのまま、ってどういう事かわからん。

そもそもお前が、ブラックボックスって話を始めたよな?

マッチポンプかwwww
0234デフォルトの名無しさん2016/09/03(土) 14:51:38.25ID:EZVA2rF2
>>232
> そりゃ業務知識だからほいほい言うわけないじゃん。

Promiseのソースコードがどれかって質問しただけで、
業務知識(?)なんか聞いてませんよw
0235 ◆SEdFBOkLSw 2016/09/03(土) 14:51:58.07ID:WfmCkwdk
>>231
請け先に言えw
babel変換元を納品してないが故に、うち用にも使ってる社内ライブラリがうんぬん、その当時のうんぬん、で結果そうなったんだよ。
バイナリ書かせてる時代にはよくあった話だけど、またこれかと。
0236 ◆SEdFBOkLSw 2016/09/03(土) 14:52:14.35ID:WfmCkwdk
>>233
お前頭おかしいだろ。
0237 ◆SEdFBOkLSw 2016/09/03(土) 14:52:38.97ID:WfmCkwdk
>>234
仕事で調べたことは、会社の資産な。
0238デフォルトの名無しさん2016/09/03(土) 14:53:23.42ID:aPmwwe34
>>222
> Cバス
脱線するが、君はそっち系なのか?酷く懐かしすぎる名前だが。
新商品なんて出てるのか?母艦が手に入らないと思うが。
0239デフォルトの名無しさん2016/09/03(土) 14:53:30.60ID:EZVA2rF2
>>235
> babel変換元を納品してないが故に、うち用にも使ってる社内ライブラリがうんぬん、その当時のうんぬん、で結果そうなったんだよ。

はぁ? それって実行ファイルのバイナリ(exeファイル)だけを納品して
ソースコードを納品してないという、ちゃんとした仕事をしてない所に
ありがちな話ってだけじゃねーか。

それは明らかにbabelの問題じゃねーよw
0240デフォルトの名無しさん2016/09/03(土) 14:57:15.99ID:EZVA2rF2
>>237
> 仕事で調べたことは、会社の資産な。
それは違うぞw

データベースの著作権の話でもぐぐれ。

内容が非公開情報であるとか特殊な条件が揃わない限り、
それは会社の資産にはならない。

(当然オープンソースのChromeのソースコードは非公開ではない)
0241 ◆SEdFBOkLSw 2016/09/03(土) 14:57:18.23ID:YIu9WVDu
>>238
80年生まれのくせにそのへん触れるか故にオッサン扱いされてるけど、
機械から人体から得体のしれない設備まで手広く通信周りやってるよ。

手に入らんから困るんよ。もう共食いも良いところだよ。
捨てないで!ってアナウンスするレベル。
0242デフォルトの名無しさん2016/09/03(土) 14:59:04.36ID:EZVA2rF2
まあなんてていうか、

◆SE って変化させる能力が
極端に劣ってるみたいねw
0243 ◆SEdFBOkLSw 2016/09/03(土) 15:00:35.21ID:YIu9WVDu
>>239
babelのせいじゃない?うん、まぁ、その会社がbabelをつかったせい、であってbabelに罪はないのは確かだよ。
だから、ネイティブでES6で書くか、古いJavaScript書くかどっちかにして、って話なんだけど。

>>240
それは著作権というか、それこそ知財の問題であって、
そうじゃなくて俺なり社内のだれなりが工数使って調べたことは、資産なの。
お前働いた事無いの?
0244デフォルトの名無しさん2016/09/03(土) 15:01:00.03ID:EZVA2rF2
>>241
え? Cバスの中身、ブラックボックスじゃなくて
全部知り尽くしてるんでしょ?
自分で作れば良いんじゃないですかねぇw
0245 ◆SEdFBOkLSw 2016/09/03(土) 15:01:30.94ID:YIu9WVDu
>>242
そりゃ、敢えて変化させないからな。
それで良いと思ってるよ。
0246 ◆SEdFBOkLSw 2016/09/03(土) 15:01:54.37ID:YIu9WVDu
>>244
誰がどの金で?
お前バカなの?
0247デフォルトの名無しさん2016/09/03(土) 15:02:36.24ID:EZVA2rF2
>>243
> だから、ネイティブでES6で書くか、古いJavaScript書くかどっちかにして、って話なんだけど。

ネイティブでES6を書くという結論でいいだろw


そして納品してから1ヶ月後にな、やっぱり古いブラウザでも動かしたいって
客に言われたらな、そんときにbabel使って変換してやれば良いんやで?
0248デフォルトの名無しさん2016/09/03(土) 15:02:47.73ID:aPmwwe34
>>241
ちなみにCバスにこだわる理由は?
まあ色々便利だとは聞いているが、保守部品なら仕方ないとして、新規商品で使う必要はない。
今時ならarduinoなりラズパイみたいな奴にに仕込んでイーサで通信する方が楽なはずだが。
0249デフォルトの名無しさん2016/09/03(土) 15:03:41.91ID:EZVA2rF2
>>246
馬鹿はお前だ。

ブラックボックスが嫌なら金がかかる。
金がかからないならばブラックボックスのままでやる

ブラックボックスのままテストをしっかりやれば
それで十分だって話をしてるんだよ。
0250デフォルトの名無しさん2016/09/03(土) 15:05:42.57ID:EZVA2rF2
俺は、ブラックボックスを許さないと言ったお前の>>201の発言を
否定しているだけ。

つまりお前は金がかかるからブラックボックスのままでやるんだろ?
0251デフォルトの名無しさん2016/09/03(土) 15:07:52.79ID:EZVA2rF2
つーか組み込み系でもCバスを使った製品の中身が
変わることだってあるんだが。
同じ製品であっても、中身を変えることがある。

中身にこだわるな。中身が違っていたとしても、
テストに合格すればそれは問題ない。
0252 ◆SEdFBOkLSw 2016/09/03(土) 15:09:41.97ID:YIu9WVDu
>>247
え?うん、ネイティブで動くものに対してES6で書くことは全く否定してないけど、どしたの?

やっぱり古いブラウザで動かしたい、は多分断るな。
余程言われても、babelは使わずに直すと思うよ。

>>248
新商品で積極的には使わないよ。
リプレイスするなら新しい組込の仕様品あるからそっちで構築するんだけど、
2台壊れたから!とかそう言うの多い。
法改正で制度上この数値が残らないと困るからこれだけDBに残して!とか。
上的にはSIになったから単位だけ、で改修受けたのがマズったなって思ってるとのこと。
Cバスにこだわると言うより、何故か他社製旋盤に相乗りしてる、とか、いにしえの何かがあるらしいよ。自分が幼児の頃の歴史を紐解いて良いもの出てきた事無いから積極的には聞かん。
0253 ◆SEdFBOkLSw 2016/09/03(土) 15:12:09.68ID:YIu9WVDu
>>249
しっかりやれば、が定義できないじゃん。
見た目上、データ上正しければそれは正しいデータだ、って言う根拠。

>>250
逆。
金がかかるから、ブラックボックスを使わんのだよ。
0254 ◆SEdFBOkLSw 2016/09/03(土) 15:12:51.42ID:YIu9WVDu
>>251
何を言うてるかわからん。
ソリューション売りしてんだよ。
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を使えば、避ける必要性が大きく減る。
■ このスレッドは過去ログ倉庫に格納されています