+ JavaScript(ECMAScript)質問用スレッド vol.122 +at TECH
+ JavaScript(ECMAScript)質問用スレッド vol.122 + - 暇つぶし2ch262:デフォルトの名無しさん
16/09/03 15:23:16.22 EZVA2rF2.net
古いブラウザ古いブラウザっていうけど、
最新のSafari 9でもArrow functionsに対応していない。
URLリンク(caniuse.com)
書いてあるSafari 10はまだリリースされてません

263:デフォルトの名無しさん
16/09/03 15:25:34.19 EZVA2rF2.net
最新のブラウザだけを相手にする場合でも
このブラウザはこのES6の機能に対応している?していない?
って考えて特定のブラウザのために使うのをやめるよりも
babel使ってES6の機能はどのブラウザでも使える。
ただし一部完璧じゃないものがある。
って考える方がはるかにコストが低いんだわ。

Android 4.0以上という要件だと、それらの
ブラウザを全部集めないとテストできないからね。

264: ◆SEdFBOkLSw
16/09/03 15:50:53.07 YIu9WVDu.net
「簡単に対応が出来る」
ようわからんな。
対応はできてもテストの金がかかる事は否定しないとか。
メンツの勝負になってない?
そういうメンツの勝負であれば、お前の勝ちで良いけど。
ホワイトボックスとして扱う事はコスト上不可能、ってそれくらいのコストしかかけない製品作んないから良いんだよ。
変な言い方で、敢えて語弊のある言い方すると、
高いほう、全て内製が良いとすら言われる製品だからお前がいってる製品とは多分だいぶ違うので、その辺の予算とは乖離あると思うわ。
ただその金の根拠は必要だけど。
内製良いよ。ライブラリに左右されんから。
コンパイラと処理系自体すら昔は作ってたしな。
そろそろまた元号でテキトーにやってる会社は死に目見るだろうし。

265:デフォルトの名無しさん
16/09/03 15:53:21.77 EZVA2rF2.net
>>262
> 対応はできてもテストの金がかかる事は否定しないとか。
そこはbabelと関係ないからだよ。
babelを使っても使わなくてもテストはしないといけないだろ。
テスト内容自体は同じ。

266:デフォルトの名無しさん
16/09/03 15:53:47.63 EZVA2rF2.net
>>262
> 内製良いよ。ライブラリに左右されんから。
そのコストは誰が出すと思ってるんだ?w

267: ◆SEdFBOkLSw
16/09/03 15:57:26.09 YIu9WVDu.net
>>263
え?うん。
なら、最初から使わずに書けばいいんでは?って話だけど。
>>264
客。
あのさあ、何が言いたいの?
babelは完璧なES6で、AltJSとは一線を画す物だ、とエヴァンジェリスト気取りたいなら、それでいいよ。
もうその話題には触れん。
何が自分の苛立ちの原点なの?否定されたところ?正しいと思ってるところが理解されないところ?

268:デフォルトの名無しさん
16/09/03 15:58:34.24 EZVA2rF2.net
>>265
> なら、最初から使わずに書けばいいんでは?って話だけど。
図式化しないと理解できんのかな?w

[ 開発 ] + [ テスト ]
テストは同じ。開発はbabelを使ったほうが簡単になる。

269:デフォルトの名無しさん
16/09/03 15:59:48.40 EZVA2rF2.net
>>265
> babelは完璧なES6で、AltJSとは一線を画す物だ、とエヴァンジェリスト気取りたいなら、それでいいよ。
だからbabelはトランスパイラ。言語はES6(JavaScript)
AltJSとはJavaScriptではない言語のことなんだから
その言葉自体が間違ってんの。

270:デフォルトの名無しさん
16/09/03 16:00:56.87 EZVA2rF2.net
>>265
なに? コストは客が払うだって!
ならbabel使ってもコストは客に払わせばいいじゃないかw
もっともbable使ったほうがコストは下がるけどな。

271:デフォルトの名無しさん
16/09/03 16:04:48.79 EZVA2rF2.net
どうせbabelはES6に完全対応してないと言ってくるだろうから
先に反論しておくと、最新版Safariも完全対応してないw
ブラウザごとにコードを変えるっていうのはコストがかかる。
どうせ客がコストを払うから知ったことじゃないっていうんだろうけどさw
ブラウザがバージョンも含めればたくさんあって
ウェブの世界では特定のブラウザとバージョンを指定できないのだから
使用されているほぼ全てに対応しないといけない。
それごとにコードを変えるなんてやってられないので、
babelを使う。babelを使うとそれぞれのブラウザの差が減る。
そのため単一のコードで多くのブラウザに対応できるのでコストも減る。
どうせコストは客が払うから、いくらかかっても
知ったことじゃないって考えの人にはわからないかw

272:デフォルトの名無しさん
16/09/03 16:16:36.11 EZVA2rF2.net
◆SE に言っておくけど、
お前、頭の固いおっさんに育ってしまったな
リアルで誰も言ってくれないだろうから俺が言ってあげるよ。
お前は子供の頃誰もが、ああはなりたくないと思ってる
頭の固いただのおっさん。
変化することをやめ、挑戦することをやめ、
現状維持。これ以上何もしたくない。
そういう、頭の固いおっさん。

273: ◆SEdFBOkLSw
16/09/03 16:30:32.32 P8EZ6WkE.net
研究開発は、研究開発費でしてるけどね。
変化させない事と、変化させる事、ひいては、運用する事、改善する事は全部ひとつながりだけど、全部それぞれが違うよ。
何かを変化させない事が別の何かを変化させることだったり、何かを変化させて何かを変化させない事もあるし、
そんな革新、革新!と騒いでも、何が革新か自体よくわからなくなるよ、そのうち。
今まであった物に、新しい名前をつけると割としっくりくるようなもんと同じ。今俺が何ヤジってるかはわかると思うけど。

274:デフォルトの名無しさん
16/09/03 16:35:14.63 EZVA2rF2.net
◆SE が今度は研究開発とか
また関係ない話をしだしたぞw
お前と話をしてると話がまとまらないって
よく言われるだろwww

275:デフォルトの名無しさん
16/09/03 16:36:40.92 EZVA2rF2.net
俺が言ってるのは、◆SE 自身に
変える能力がないってこと。
個人の能力だよ。
あ、だから変えるのは研究所とかがやってくれることで
俺には関係ないって発想につながってるのかwww

276: ◆SEdFBOkLSw
16/09/03 16:40:21.73 P8EZ6WkE.net
そもそも、立ち位置の問題であって、
それは処理系作ってた人間が一番わかってんだけどなぁ。
同じ正しいCのソースでも何でコンパイルするかで割と意味が違ったり、そのチューニング、このコンパイラだと無意味だからオプティマイザにまかせましょ、みたいな話に近い。
そのうち、C++が出来て、でもまだCへのトランスパイラで、そのうち、STLだ、いや、これは標準になったんだ、って無駄なやりとりがあった時代を知らんのだろうな。俺もリアルタイムじゃないけど。

277: ◆SEdFBOkLSw
16/09/03 16:41:21.34 P8EZ6WkE.net
>>273
知らんがな。。どんな仕事をしてるんだ、と言うから仕事の話をできる範囲で話したんじゃん。
個人的には色々しとるよ。

278: ◆SEdFBOkLSw
16/09/03 16:43:51.70 P8EZ6WkE.net
その上で、最初の方のレスに戻るけど、
そういう先端()の人間が殲滅すべきものはbabelであって、babel無けりゃ古いブラウザも死んでいくんじゃねえの?本来死んでる物を活かすからそうなるんじゃねえの?みたいな話してたんじゃん。
だからネイティブで書くことには何の問題も無いって言ってるんだけど。

279: ◆SEdFBOkLSw
16/09/03 16:44:46.76 P8EZ6WkE.net
なんかプライド傷つけたんならすまんな。
そんじゃ。

280:デフォルトの名無しさん
16/09/03 16:46:08.31 EZVA2rF2.net
>>274
> 同じ正しいCのソースでも何でコンパイルするかで割と意味が違ったり、
やっぱり、同じソースでC言語の仕様の範囲なのに、
コンパイルされた結果が違うから動作まで違うんですよね?w
でもbabelはES6で書いたコードをES5に変換するだけです。
だから動作は同じです。

281:デフォルトの名無しさん
16/09/03 16:46:40.99 EZVA2rF2.net
>>277
プライド? 傷ついたのはお前じゃね?
お前、俺が傷つくようなこと言ってないじゃんw

282:デフォルトの名無しさん
16/09/03 16:52:59.71 EZVA2rF2.net
>>276
お前はネイティブで書きたいから、古いブラウザに対応するために
ES5でコードを書くって言ったばかりじゃんw
じゃあ今まさにそのES5のコードは増えていってるわけで、ES6へ変化できないってことになる。
えとさ、コードをES6用に書き換えるのにもコストは掛かるんだよ。
どうせ金は客が出すからって考えなんだろうけど。
babelを使っていれば、今すぐES6ネイティブでコードを書ける。
ES5の対応を切るのはbabelでES6からES5への変換プリセットをOFFにするだけでいい。
babelを使っていれば、ES6をブラウザでネイティブに動かす対応は一瞬で終わる。(当然だがテストは常に行われている)
それがAltJSとは全然立場が違うって話に繋がる。
AltJSで書けば、AltJSの設定をOFFにしても動かずコード書き換えが必要だからね。
重要なのは今ES5のコードを減らすこと。
対応ブラウザをどうするかは顧客の要求できまることだから
こっちがあれこれ言えることではない。

283:デフォルトの名無しさん
16/09/03 17:16:40.84 AuZUWRpv.net
少なくともブラウザのソースを見ないと!っていうのは愚の骨頂だな

284:デフォルトの名無しさん
16/09/03 17:32:29.46 EZVA2rF2.net
その言い方だとまたトンチンカンなレスしてきそうだがw

285:デフォルトの名無しさん
16/09/03 17:48:47.28 N47o0j5/.net
>>191
使わなければいいという返しが来るとは思わなかった。
君はアレだね。できればES6で書きたいな、でも古いブラウザのしがらみから抜けられないな、
全く使えないよりも使える方がマシ、だから悪くなりようがないという考えなのだろう。
もちろんそれもあるよ。でもね、状況は動いてるのよ。
2016年になるまでなら、対応途中のモダンブラウザも含めて、できるだけ対応させるという
1つのより良くするための解でしか無かったけれど、
今ES6対応ブラウザが出揃ってきた状態でその中で対応を広げる役目としてのbabelを考えると、
億劫な点が出てくるというのは分かるだろう?
勘違いしてほしくないけれど、babalが悪いと言ってるんじゃないよ。
babelで生成されるコードのレベルが、ES6の時代なので書きま~すっていう意気込みとは合わないってこと。
それでここからが大事な点になるのだけど、
babelのES6からの乖離は部分部分で見ると確かに小さい。SymbolやProxyを除いたとして、
それらを寄せ集めるともしかしたら1%と言えるくらいしかないのかもしれない。
でもね、各ブラウザstable版に機能が実装されていく時は、基本的には安定した機能が丸ごと有効になるわけで、
機能があるかないか程度にしか気にしなくていいのよ。
でもね、babelのように細かな非互換が多いと、
それは開発版ブラウザに機能が実装されてる最中で、フラグで有効化してES6の振る舞いを実験していた
1年前の状態さながらなのよ。

286:デフォルトの名無しさん
16/09/03 17:49:36.57 N47o0j5/.net
>>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対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。

287:デフォルトの名無しさん
16/09/03 18:08:14.44 EZVA2rF2.net
>>283
あんたは重要な点を見落としているね。
あんたが言っているのはすべてbabelを使わなうても当てはまることなんだよ。
ブラウザ間の互換性は完璧ではない。
あるブラウザには搭載されていて、あるブラウザには搭載されていない。
そういう機能がある。
babelはその機能の差を減らすものでしか無い。

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

288:デフォルトの名無しさん
16/09/03 18:13:17.33 EZVA2rF2.net
babelを使うとブラウザ間の違いが減る。
という前提で話をすると、
ES6を完全に搭載していないブラウザが多く使われている今は
babelによって、その機能の差が大きく減る。
そしてその次はES2016、ES2017と話は進んでいく。
当然今のブラウザはES2016、ES2017の対応は少ないだろう。
ある時それらに対応したブラウザが一つだけでた。
となるとやっぱりブラウザの間の違いがでてくる。
そしてまた新しい仕様がでてきて、それに対応しているのはどれ?
という状況がずっと続く。
ブラウザの数は多い。バージョンアップの頻度も高い。
だからブラウザ任せでは機能の差を埋めることは難しい。
そこでbabelがでてくる。babelを使うことで機能の差は減る。

289:デフォルトの名無しさん
16/09/03 18:16:26.40 EZVA2rF2.net
>>284
> でも、モダンで良いコードを書きたいという気持ちが強いなら、古く取り残された環境を切り捨てる勇気も必要だと思う。
モダンで書くよりも重要なのは、今あるブラウザで動かすこと。
そしてその次が開発コストを下げること。
多種多様なブラウザを相手にしていたら開発コストは下がらない。
だからbabelを使ってブラウザ間の違いを減らして
コストを下げることが重要になる。
その次だよモダンで書くことでコストを下げるという理由がくるのは。
優先順位は低い。だからbabelで対応していないものは使わないと言う
選択肢が当然成り立つ。
そして「babelで対応していない機能」は「babelを使わなくてもブラウザが対応した時」に使えばよかろう?
ES6の機能をすべて使うことが目的じゃないんだからさ。

290:デフォルトの名無しさん
16/09/03 18:18:01.40 EZVA2rF2.net
>>284
> ES6対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。
Safari最新版はアロー関数に対応していないんだが?

291:デフォルトの名無しさん
16/09/03 19:21:50.91 N47o0j5/.net
>>288
Safariはモダンブラウザに含めていない。
ウチでは�


292:クっとChrome第一Firefox第二、近頃はEdge第三。 他は眼中にない。



293:デフォルトの名無しさん
16/09/03 19:27:20.93 EZVA2rF2.net
>>289
じゃあスマホは?
例えばAndroid 4系はアロー関数に対応していない。
URLリンク(caniuse.com)

294:デフォルトの名無しさん
16/09/03 19:32:55.57 EZVA2rF2.net
Chrome、Firefox、Edgeということは
URLリンク(www.netmarketshare.com)
ブラウザの66.82%にしか対応していません。
モバイルの場合は
URLリンク(www.netmarketshare.com)
Chrome、Firefox、Edgeの53.65%にしか対応していませんってことだよね。
(Android Browserを入れても62.22%)

295:デフォルトの名無しさん
16/09/03 19:35:23.00 N47o0j5/.net
>>290
いや、逆だよ。超逆。
Androidの古いブラウザを切り捨てられる時期というのが強い。
Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、
ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。
一番問題あるのはSafariくらいで、それももうすぐだろう。
誤解無いように書くが、
上でも言ったようにプログレッシブ・エンハンスメントだし、
当然全てのコードを書き換えたわけではない。
今年度から新しく初めて長くメンテしていくサービスでのコードは原則そういうポリシーになっただけ。
なので問題は無い。

296:デフォルトの名無しさん
16/09/03 19:40:30.57 EZVA2rF2.net
>>292
意味がわからん。
重要なのは切り捨てるタイミングと
コードを新しくするタイミングの問題。
babelを使うと古いブラウザを切り捨てるタイミングを
自由にコントロールできる。
そして古いブラウザを切り捨てるよりも前にコードを新しくできる。
つまり古いブラウザを切り捨てたときにはすでにコードは新しくなってる。
あんた、今、古いブラウザを切り捨てたのに、
古いコードを抱えてるじゃん。
> Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、
> ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。
だからシェアのリストだしただろ? ChromeとAndroid Browserを
入れたとしても62.22%にしかならない。

297: ◆SEdFBOkLSw
16/09/03 20:12:11.53 YIu9WVDu.net
俺以外とも噛み合ってねえじゃんw
>>284は説明上手いな。

298:デフォルトの名無しさん
16/09/03 20:15:24.73 EZVA2rF2.net
おい、馬鹿(◆SE)がまた来たぞw

299:デフォルトの名無しさん
16/09/03 20:18:55.72 EZVA2rF2.net
重要なのは、ES6対応度テストで合格する割合じゃないんだよね。
どれだけ多くの世間で使われているブラウザに対応できるか。
俺が一番重要視してるのは、より実用的なのはどれかだよ。
ES6対応度テストで9割合格していても、
それが今使われてるブラウザの6割じゃ役に立たない。
ES6対応度テストで8割でもそれを使うことで
ブラウザの9割で動かせるほうが重要。

300:デフォルトの名無しさん
16/09/03 20:22:54.41 N47o0j5/.net
>>293
>>babelを使うと古いブラウザを切り捨てるタイミングを
>>自由にコントロールできる。
いやー一年前まではそう思ってましたよ。
上でも書いたけれど、君の発言を見てると一年前二年前の若い自分を思い出す。
でもそうじゃなかったから使ってないの。まだ分からない?
理由は大体書いたよ。
babelただ使うだけで使わないよりも『より良くなる』時代ってのはもう終わったの。
あんまり踏み込んで欲しくないので書かなかったことを少しだけ言うと、
ウチではES6基本というのは実は嘘。今はもうES2016基本にしかけてる。
で、そのために、『より良くする』ためにbabelではないがトランスパイラ+ポリフィル使ってる。
が、これもES2016の重箱の角はつつけていないので、本当は使わないで済むなら使いたくないのよ。
モダンなコードを書くメリットと、重箱の角を心の隅で気にしないといけないコストと、若干の好奇心のつり合いを見て今はこういう形になっている。
だから本当に100%ES2016で開放された気分で書けてるのかというとそうではない。
あれだけ変更の少ない2016->2015でもそうなんだよ?
babelのES5変換なんて満足できていたのは最初だけ、ブラウザの対応が未熟だった頃だけだよ。
当初君と同じ夢を見ていたウチのメンバーは一年くらいかけて
実は古いブラウザというしがらみから逃れるために、babelというしがらみに縋ってただけだって気がついたの。
今はbabel使って後から外�


301:キなんて夢物語だよ。黒歴史。 実はそういった試みで始めたものいくつかあったんだが、まともに活用しきれない。 多くは実らず捨てることになって、一部は泣きながらリファクタリングしてる最中。



302:デフォルトの名無しさん
16/09/03 20:24:00.35 N47o0j5/.net
>>293
でもまあ、ふと思ったけど、俺も今のbabelは触ってないからな。精々半年前の感覚のままだ。
今はもしかしたら殆ど完璧になってて、憂いが減ってんのかな?
そこはちょっと反省。
どうしてbabelで旧ブラウザの対応するのを見限ったかって言うとね、
そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。
だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。
でも今babelの対応状況改めて見てみたらやっぱり無理だ。
マイナーかもしれないけれど、毎度一箇所は使うだろう点が残ってる。
やっぱり痛いのはプロトタイプの設定や、サブクラス化かなぁ。
めっちゃ使うということは無いが、ここらを我慢するのはやっぱりES6使ってるとは俺は思えないわ。

303:デフォルトの名無しさん
16/09/03 20:26:29.35 EZVA2rF2.net
>>297
あんた自分で言ったセリフ思い出してね。
> Safariはモダンブラウザに含めていない。
> ウチではずっとChrome第一Firefox第二、近頃はEdge第三。
Safariに対応できてない、IEに対応できてない。
対応できるブラウザは6割。
それがお前が今できることの限界だよ。

304: ◆SEdFBOkLSw
16/09/03 20:27:46.15 YIu9WVDu.net
>>295
無意味な中傷せんと、皆の意見を真摯に聞いとけ。
だいたい同じ事言ってる。
あとな、動作が同じって、それは違うからな。
いくら時間がかかっても良いから同じ結果を出します、ってのは、結果同じでも動作違うからな。
万回以上呼ばれだしたら体感で速度変わるし。
>>278に対してだけど。

305:デフォルトの名無しさん
16/09/03 20:28:02.67 EZVA2rF2.net
>>298
> そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。
> だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。
だったらbabelで通るように書き換えないで、
その機能を使わなければいいだけでは?
だってそもそもbabelを使わないならば
その機能は使えないんだからさ。
その機能を使わないと言う選択肢をとることはできるはずだ。

306:デフォルトの名無しさん
16/09/03 20:28:44.55 EZVA2rF2.net
>>300
今はお前と話はしてない。
お前のみんなの扱いはすでに決まってるんだよ。
おバカさんw

307: ◆SEdFBOkLSw
16/09/03 20:30:06.63 YIu9WVDu.net
>>298
そう。だから、結局同じ構文で書いた、ただのbabelって処理系用の言語なんよね。
>>301
それは、babel用のコードを書くに、他ならなくないか?
babel無視したら、そんな回避コード書かんで良いんだから。
俺が仕事でES5書いてるのとレベル全く変わらんじゃないか。

308:デフォルトの名無しさん
16/09/03 20:30:30.26 EZVA2rF2.net
>>297
言ってることが抽象的すぎて
具体例が一つもないよね。
問題があるという前提で話をしているが、
そもそも、お前が言う問題は本当にあるのか?って話。
まず、具体的な問題があることが前提だから
どういうときに問題があるのかを言ってくれないか?

309:デフォルトの名無しさん
16/09/03 20:31:13.84 EZVA2rF2.net
>>303
> それは、babel用のコードを書くに、他ならなくないか?
ぜんぜん違う。その言語はES6でそのまま動く
ES6用とbabel用に違いはない。

310: ◆SEdFBOkLSw
16/09/03 20:31:17.36 YIu9WVDu.net
>>302
お前の中だろ。
問題を極端に矮小化したり拡大解釈したり、一般化したり特殊化すんのは良くないぞ。

311:デフォルトの名無しさん
16/09/03 20:32:03.05 EZVA2rF2.net
> 俺が仕事でES5書いてるのとレベル全く変わらんじゃないか。
わざわざES6のコードを避けるほうが大変だろwww
どちらがどれだけ大変かの話をしてる。
babelを使えば、避ける必要性が大きく減る。

312:デフォルトの名無しさん
16/09/03 20:32:49.45 EZVA2rF2.net
>>306
あっちのスレでもお前、馬鹿にされてるじゃんwww
自覚しとけ。
お前は俺に反論できないことはたくさんあったが
それはお前にほとんどレスしてるだろw

313: ◆SEdFBOkLSw
16/09/03 20:33:04.45 YIu9WVDu.net
>>305
ES5もES6でそのまま動くよw
babel用に使えないものがあるから使わないのは、ES6のサブセットじゃん。
babel用に使えないものを避けて書いたのと、気にせず書いたES6は違うコードなんじゃねえの?

314: ◆SEdFBOkLSw
16/09/03 20:33:43.02 YIu9WVDu.net
>>308
明後日のレスだけして、それで答えた気になってたらしゃーないわ。

315: ◆SEdFBOkLSw
16/09/03 20:36:11.49 YIu9WVDu.net
>>307
避ける方が大変?なんだそりゃ。
言語仕様把握せずに開発してる訳でもあるまい。
規約が無い訳でもあるまい。
子供のバイトみたいな話しないでくれ。

316:デフォルトの名無しさん
16/09/03 20:37:02.13 EZVA2rF2.net
>>309
> ES6のサブセットじゃん。
ん? 各ブラウザのES6の実装度を知らないのかな?
どのブラウザでも使えるのはES6のサブセットでしか無いんだけど?

317:デフォルトの名無しさん
16/09/03 20:38:01.48 EZVA2rF2.net
>>311
> 避ける方が大変?なんだそりゃ。
そりゃそうだろ。
どのブラウザで、どの機能が使えるかをいちいち把握しないといけない。
お前アロー関数がSafariで使えないことを把握していたか?
そういった細かい機能を把握する必要がなくなる。

318:デフォルトの名無しさん
16/09/03 20:38:52.88 EZVA2rF2.net
言語仕様を把握していても、アロー関数がSafariで
動かないってことを知ることは出来ないんだよ。

319: ◆SEdFBOkLSw
16/09/03 20:41:04.47 YIu9WVDu.net
>>312
そうだね。
だから、ブラウザごとに要件定義すんじゃんね。
そこに、これまたbabelって処理系が入る、と。
お前の理屈破綻してるのわかる?
どこが、一つのES6で良いの?w
最大公約数で書けば良い、なら、
ホントに最大公約数で書けばいいじゃん。ES5。
要件定義できるなら、その最大公約数で書けばいいだけ。
中途半端に先端気取って無駄な事なの。

320:デフォルトの名無しさん
16/09/03 20:41:56.59 EZVA2rF2.net
ES6を完全サポートしているブラウザを100とすると、
babelを使わないと、
1~100までのすべてのブラウザを考慮しなければいけなくなる。
babelを使えば80以下のブラウザがすべて80にまで底上げされるから
80~100のブラウザだけを対応すれば良くなる。

321: ◆SEdFBOkLSw
16/09/03 20:43:55.93 YIu9WVDu.net
>>313
してたよ。
ついでに言うとOperaも対応してない。
Android標準ブラウザは4系でも全滅。IEも11でも使えない。

322: ◆SEdFBOkLSw
16/09/03 20:45:13.51 YIu9WVDu.net
>>316
ES5で書けば100のブラウザ相手に書けんじゃん。
底上げしたから、何もしなくて良いわけでもないし。
骨折り損。

323:デフォルトの名無しさん
16/09/03 20:45:14.45 N47o0j5/.net
>>299
何が言いたいのか、いやもう建設的な話し合いをする気は無いんだろうけど、
一応会話してみるか。
対応するときはES5で書く。それだけでしょ?
そして、その話は本題と関係ないでしょ?
古いブラウザを見限っていいから、Babelを使うなと言ってるんじゃないから。
古いブラウザを見限らないとしても、ウチではBabalは使わない。ただES5で書くだけ。
まさかウチではもう今年度からピュアES6しか書きませんと言ってるのだと思ってた?
誤解させてごめんね。
で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。
ES6を使いたいから、後々外せばいいだけだから便利、な感覚でBabelを使うと怪我するよと言ってるの。
Babalを使うのなら、あくまでES_Babelというalt JSを使うんだという認識・覚悟で居たほうが正しい。
そして副題として、俺はそれは嫌ということ。ここは個人的な部分だし、環境なので異論は認めるし、批判は受け付けていない。
二極化提案については、まだ実験中で良し悪し分からず、オススメする気もなくポロッと言ってしまっただけだし、
あまり深入りしてほしくないのでこれ以上話したくない。

324:デフォルトの名無しさん
16/09/03 20:45:47.57 EZVA2rF2.net
>>315
> だから、ブラウザごとに要件定義すんじゃんね。
> そこに、これまたbabelって処理系が入る、と。
ブラウザは実行環境、
babelはトランスパイラ。
違うものを混ぜるなって何度も言っただろ。
お前はES6に対応していないブラウザを一つずつ何個も
この機能は使える?使えない?って悩んでいるのだろうが
babelを使うと、多くのブラウザの最低レベルが揃うんだよ。
お前の言葉で言う最大公約数がES6に底上げされる。
最大公約数5よりも最大公約数10の方がいいだろw

325:デフォルトの名無しさん
16/09/03 20:46:33.45 N47o0j5/.net
おいおい……俺がちょっと推敲してる間に20も進むとか……

326:デフォルトの名無しさん
16/09/03 20:49:51.97 EZVA2rF2.net
>>319
なんか一人二役ご苦労さんって感じになってきたな。
わざとらしく大文字小文字を使い分けてるのかい?www
> 対応するときはES5で書く。それだけでしょ?
そのES5をES6に書き換えるコストは誰が払うんだ?ずっとES5のまま?
なんで可読性、メンテナンス性が低いコードを今のタイミングで量産するのさ?w
長期的なバージョンアップっていうのが考慮されてないぞ。
> で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。
なんでそこでbabelの吐くコードを気にしないといけないのかわからん。
そもそもbabelの吐くコードはES5だ。ES_Babelなんてものはない。
babelは言語ではなくて単なるトランスパイラ。言語はES6そのもの

327:デフォルトの名無しさん
16/09/03 20:50:46.13 EZVA2rF2.net
>>318
> ES5で書けば100のブラウザ相手に書けんじゃん。
ただし可読性とメンテナンス性が低いコードになる。

328:デフォルトの名無しさん
16/09/03 20:52:05.59 EZVA2rF2.net
>>317
> ついでに言うとOperaも対応してない。
> Android標準ブラウザは4系でも全滅。IEも11でも使えない。
そっかー、babel使ってテストにもちゃんと通って
手動でも確認したときも問題なく動いていたから知らんかったわーw

まあ嘘だけど、このようにいちいち把握する必要がなくなる。

329:デフォルトの名無しさん
16/09/03 20:52:33.02 vfo9HhT2.net
この板ってどのスレでも定期的にこういう事起こるよね
C#のラムダ禁止おじさんとか

330: ◆SEdFBOkLSw
16/09/03 20:52:38.94 YIu9WVDu.net
>>322
一人二役って、アホな発言にも程があるわ。
言うに困ったらそれか。
>>322
言語は、そのものじゃなくてサブセットなんじゃねえの?

331: ◆SEdFBOkLSw
16/09/03 20:53:35.43 YIu9WVDu.net
>>323
お前が下手なだけ。
>>324
必要が無いのと、無責任なのは違うよ。
あと、letも、ずっとSafariだけ未対応だった。

332: ◆SEdFBOkLSw
16/09/03 20:54:01.45 YIu9WVDu.net
>>325
ラムダは積極的に使えば良いのにな。

333:デフォルトの名無しさん
16/09/03 20:56:57.70 EZVA2rF2.net
>>326
> 言語は、そのものじゃなくてサブセットなんじゃねえの?
そうだなES6の殆どが使えるがサブセットだなw
それよりもES6に完全対応してないブラウザの方が
より大きな問題だよ。

334:デフォルトの名無しさん
16/09/03 20:58:33.36 N47o0j5/.net
もういい。
俺はともかく、ES6ってそんなレベルじゃねーぞって変なこだわり言ってるだけだから。
とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。
相手が建設的な話し合いする気がないどころか、現実逃避始めちゃったので、今となってはそれすらどうでもいい。
>>320
>>babelを使うと、多くのブラウザの最低レベルが揃うんだよ。
そう。いいこと言った。
最初からこのくらいに収めてくれてれば俺が駄スレで駄レス重ねる必要もなかったのに。
結局会話にならなかったし、ほんと、無駄な時間過ごしちゃったな~

335:デフォルトの名無しさん
16/09/03 20:59:03.26 EZVA2rF2.net
>>327
> 必要が無いのと、無責任なのは違うよ。
誰が無責任でいられるって言ったんだよ。
アホかw
ちゃんとテストコード書いて問題なく動くことを確認してる。
それが責任を果たすということだろ。
> あと、letも、ずっとSafariだけ未対応だった。
せっかくより良くなったES6を
全く使えない状況になるんだよねw

336:デフォルトの名無しさん
16/09/03 21:01:48.79 EZVA2rF2.net
>>330
> とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。
もちろん将来的には外すだけじゃねーよw
しっかりテストコード書いて、テストする。
これは、babelとは関係なく、ブラウザのバージョンアップでも
急に動かなくなったりする可能性があるのだから当然するべきこと。
babelを外してもし動かなくなるのなら、その部分だけの修正で済むだろ。
今からbabelを外して動くかどうかもテストしてればいいんだよ。
それをやってるから、ES6で書いてbabelを使っても使わなくても
同じように動くコードになるって言ってるの。

337:デフォルトの名無しさん
16/09/03 21:09:12.58 N47o0j5/.net
>>332
だからね。君が言ってるそれは、BabalがES6のコードを完璧にES5に変換できるということ前提なの。
実際はね、ES6ではなく、ES_Babalで書かないといけないの。
ES_BabalというのはES6から機能と安定性を取り去った言語なわけ。
で、それを将来ES6か何かに書き換えるわけ。
それがES5のしがらみとどっちが強いかは人次第なのかもしれない。
君はそれに十分満足していて、俺は不満。ただそれだけなのかもしれない。
でも、ES6を使いこなしていったらすぐに俺の考えに近くなるんじゃないかなという想像。
無駄なおせっかいだったのよ。それだけ。

338:デフォルトの名無しさん
16/09/03 21:13:20.81 EZVA2rF2.net
> 実際はね、ES6ではなく、ES_Babalで書かないといけないの。
だから書かなくて良いんじゃないですかねぇw
ES6で完璧に書けないものは書かなくていい。
なんでES6を使うって言ったら、babelで使えない機能まで
ES6を使おうってするんだ?w

どうせテスト書くだろ。完璧に動かなくてもテストで通る範囲が動けば問題ないんだよ。
そもそもブラウザですらES6に完全に対応していない。
どちらにしろES6に完全対応していない環境と言う前提のもとで、
正しく動くアプリを作るんだよ。作るのが仕事なの。
そしてより可読性、メンテナンス性に優れたコードを今すぐ書くということ。

339: ◆SEdFBOkLSw
16/09/03 21:15:25.72 YIu9WVDu.net
>>331
テストコード書いて問題なく動く、そこが違うんだよなぁ。
こっちは仕様と実装からテスト仕様書いてて、
お前は仕様からしか書いてないんだもの。
>>332
お前は本当に何を問題とされているかわかんねえやつだな。

340:デフォルトの名無しさん
16/09/03 21:17:26.35 EZVA2rF2.net
テストコード書いて問題なく動く、そこが違うんだよなぁ。
こっちは仕様と実装からテスト仕様書いてて、
え? だからそのテスト仕様書通り動けばいいだろ?
何言ってるのかさっぱりわからんwww

341:デフォルトの名無しさん
16/09/03 21:18:06.86 EZVA2rF2.net
> こっちは仕様と実装からテスト仕様書いてて、
あ、実装を書かないとテスト仕様書が書けないタイプ?

342:デフォルトの名無しさん
16/09/03 21:21:04.16 EZVA2rF2.net
実装からテストを書くっていうのは、
要するにprivateメソッドを書いてから
そのテストコードを書くって言ってるのかな?
まあまた意味不明なことを言い出したなって
思ってますよw

343:デフォルトの名無しさん
16/09/03 21:23:23.04 EZVA2rF2.net
実装のテストっていうのは、その実装が変われば
同じ動作をしていてもアプリは問題なく動いていても
失敗するものってことでいいんですか?

344: ◆SEdFBOkLSw
16/09/03 21:24:59.62 YIu9WVDu.net
>>337
当たり前だろ。。
>>338
違うよ。
コードを書く/書いてもらう前に、何もかも分かった状況にして、こうすれば書けるから、と実装に対する詳細設計を起こすよね。
その詳細設計から書くじゃん、テスト。
実装、がもしかして食い違ってる?
お前が書く内容、って意味じゃなくて、処理系の実装、な。
しかし、改めてbabel見てみたが、末尾再帰もできんままか。

345: ◆SEdFBOkLSw
16/09/03 21:26:13.79 YIu9WVDu.net
>>339
何言ってるのかわからん。
その処理系でテストを完了していない限り、失敗も成功もないだろ。宙ぶらりん。
だからテストすんじゃん。

346:デフォルトの名無しさん
16/09/03 21:28:37.51 EZVA2rF2.net
いつの話をしてるのやらw
URLリンク(teppeis.hatenablog.com)
2015-03-29
BabelとTraceurでES6末尾再帰最適化を試す
ちょっと前にBabelに末尾再帰最適化が入って話題になったけど、同じくTraceurにもv0.0.85で最適化が入ったので試してみた。

347:デフォルトの名無しさん
16/09/03 21:28:59.57 N47o0j5/.net
>>334
うん。だから君は、ES6を、モダンで良い言語で書きたいから使ってるわけではなく、
「Babelが対応してる機能」を「Babelが対応してるから」使ってるだけでしょ?
普通はES6で書いて動かすためにトランスパイラを試す筈だが、
君はおそらくBabelをES6入門用的に使っているのだろう。
Babelはもう成長しないが、君はどうするの?
うーん。もしかして、ES2017や18の時代になっても、
Arrayのサブクラスすら作れないなんちゃってES2017で書くの?
ES6-サブクラス+デコレータ-hogehoge+fugafuga
みたいなおかしな言語で書き続けるの??
そこに無理があると言ってるのよ。
君ももし本当にES_BabelをES6と信じてるのなら成長したほうが良いよ。
で、Babelは使うのは良いが憂いができるだけ少なくなるようにした方がいい。

348:デフォルトの名無しさん
16/09/03 21:32:40.61 EZVA2rF2.net
>>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. (実装を書く前の)詳細設計からテストを書く。
実装を書かなくてもテスト仕様書は書ける。

349: ◆SEdFBOkLSw
16/09/03 21:35:40.90 YIu9WVDu.net
>>342
おお、if文のあとの再帰で死ぬやつ治ってんだ。
ちなみに、その話のあと、一旦disabledになったのよ。

350: ◆SEdFBOkLSw
16/09/03 21:38:38.17 YIu9WVDu.net
>>344
だから。もう。
お前がどう書くかは関係ねえの。
それからテスト書いたら意味ねえじゃん。
ホワイトボックスで、それが検証可能な事には意味があるけど、そうじゃねえよ。
処理系の実装だよ。

351:デフォルトの名無しさん
16/09/03 21:41:34.55 EZVA2rF2.net
>>343
> 「Babelが対応してる機能」を「Babelが対応してるから」使ってるだけでしょ?
違う。ES6の機能のうち、babelで変換しても確実に動くものだけを使ってる。
だから「ES6が対応している機能」のうち「babelでも対応しているもの」を使っている。
が正解。
そしてそれは普段から書いている「実際のブラウザで問題なく動くか?」という
テストがあれば追加工数は必要なくテストできる。
> Babelはもう成長しないが、君はどうするの?
成長してないと判断したところはどれ?
見ての通りes2017に対応したプリセットもある。 URLリンク(babeljs.io)
仮にbabelが成長しなくても、今書いているコードはそのままES6対応ブラウザで動くし
ES5ブラウザでも動く。今のやり方はそのまま続けられるじゃん。
場合によっては古いブラウザを切り捨てることで、babelが無くても動く。
将来の心配をしなくて済む。そこがAltJSとの違い。
> ES6-サブクラス+デコレータ-hogehoge+fugafuga
> みたいなおかしな言語で書き続けるの??
と言われてもね。現実に存在するブラウザが、そんな感じでしょw
ES6の全てに対応していない。あんた今、そんなおかしな言語で書いてるんだよw
> うーん。もしかして、ES2017や18の時代になっても、
> Arrayのサブクラスすら作れないなんちゃってES2017で書くの?
Arrayのサブクラスを使わないでES2017で書くよ。
お前は古いブラウザを切り捨てるんだろ?
それが要件として認められるならば、俺古いブラウザを切り捨てるだけだよw

352:デフォルトの名無しさん
16/09/03 21:46:47.80 EZVA2rF2.net
>>346
またマッチ・ポンプ?w
テストは実装前に書くって話でいいんだよね?w
俺が言いたいのは、>>335でお前が言った
> こっちは仕様と実装からテスト仕様書いてて、
実装からテスト仕様書くなやってことなんだけど?

で、俺は仕様と詳細設計からテスト仕様書書いて
それをテストコードにしてるから、
実装が変わっても問題ないって話をしてるんだけど。

353: ◆SEdFBOkLSw
16/09/03 21:51:24.54 YIu9WVDu.net
>>348
だから、処理系の実装だってば。
お前話の流れが読めないやつだな。
前のレス見ればわかんじゃん。
>>347
だから、それがbabel用のコードなんじゃねえの?
ES6と同じ構文で書いたES6のサブセットな、babelにコンパイルさせる為の言語。
ただ、そのまま他の環境でも動くだけで。
それは、ES5を書いて、これはES6の仕様範囲内だから、ES6です、って強弁するのと変わらんではないか。

354:デフォルトの名無しさん
16/09/03 21:54:03.20 N47o0j5/.net
>>347
うーん。君のポリシーがよくわからないね。
今のブラウザがES6の全てに対応していない?
そりゃそうだ。ES5すら全てに対応してるわけではないからね。
ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの?
さっきも言ったが俺はそここそが一番気になるんだから。
いや違うか、君は不完全でも気にしないと言ってるわけだ。
ES6とES_Babelの見分けなんてつかないよと、
いや、Babelで変換できないES6の機能なんてES6と認めないよと言ってるわけだ。
やっぱり君はBabel志向なんだよ。
それは違う、とにかく対応を広げるために機能の劣るBabelを仕方なく使ってるんだっていうなら
やっぱりES6ではなくES_Babelを書いてるってことを認めないといけない。
それか、実はES6なんて理解してなくてBabel志向なだけですというのも理屈が通る。
そのどちらか。

355:デフォルトの名無しさん
16/09/03 21:57:03.42 EZVA2rF2.net
>>349
> だから、処理系の実装だってば。
処理系の実装ってなに?
お前は処理系の実装のテストを "書いている" といった。
そうわざわざ言うってことは、当然普段から書いているのだろう?
ブラウザの場合お前はbabel等を使わない。
ってことは当然処理系の実装のテストというのは、
ブラウザが持っているJavaScript実装。
ChakraやSpiderMonkeyやV8という処理系であるはずだ。

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

356:デフォルトの名無しさん
16/09/03 21:59:14.75 EZVA2rF2.net
>>349
> だから、それがbabel用のコードなんじゃねえの?
> ES6と同じ構文で書いたES6のサブセットな、babelにコンパイルさせる為の言語。
ES6のサブセットという言語はない。
俺がES6のサブセットを使っているだけ。
そもそもどのブラウザもES6に完全対応してないのだから
俺だけじゃなくてみんなES6のサブセットを使ってる。
お前、SafariでES6のサブセットを使ったら、
それをSafariで動かすための言語っていうのかよwwww
それぐらいわからんかなw

357:デフォルトの名無しさん
16/09/03 22:05:42.45 EZVA2rF2.net
>>350
> 今のブラウザがES6の全てに対応していない?
> そりゃそうだ。ES5すら全てに対応してるわけではないからね。
>
> ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの?
そこが話がつながってない。
babelはES6に対応していないブラウザをES6対応に近づけるものであって、
ブラウザとES6対応度で競争しているわけじゃない。
ブラウザは他のブラウザとES6対応度で競争しているかもしれない
その競争でどこそこのメーカーのブラウザが劣っているか劣っていないかって
いう話をするのならわかる。
だがbabelの目的は、劣っているブラウザを救済する所にある。
babelと比較するのであれば同じ目的のTraceurやClosureだろう。
あんたはES6を使いたいとしか思ってないようだが、
俺が一番に考えているのは、より多くのユーザーが使ってるブラウザで動かすということだ。
その上で可読性やメンテナンス性を上げるという理由で出来る限りES6を使うって話をしてるんだよ。

358: ◆SEdFBOkLSw
16/09/03 22:15:50.24 YIu9WVDu.net
>>351
文盲なの?
そのエンジンと自社製品の組み合わせのテストだよ。
>>352
最後。
その通り、Safariの為の言語だよ。その時点では。
SafariとFireFoxの為に書いたのであれば、SafariとFireFoxの為の言語。

359:デフォルトの名無しさん
16/09/03 22:17:06.63 EZVA2rF2.net
ん? まさかと思うが、もしかして◆SEって
ブラウザごとにソースコード書き換えてるのか?
あるサイトを作ったとして、
Chromeはアロー関数を使ったコードで
Safariはアロー関数を使わないコード。
一つのコードで複数のブラウザに対応するのではなく
各ブラウザごとに書き換えたを変えてるのか?
まさかな。babelを使うと一つのコードで
複数のブラウザに対応できるぞwww

360:デフォルトの名無しさん
16/09/03 22:18:28.08 W9R0/4bk.net
バベル君面白いw
バベル君の事が理解出来る様に、オレも少しかじってみるわw

361:デフォルトの名無しさん
16/09/03 22:18:34.81 EZVA2rF2.net
>354
> そのエンジンと自社製品の組み合わせのテストだよ。
言い方がおかしいな。
普通は
そのエンジンと自社製品の組み合わせ「で」テストをするという。
確認するが
そのエンジンと自社製品の組み合わせ「の」テストを書いているという意味か?

362:デフォルトの名無しさん
16/09/03 22:19:06.56 N47o0j5/.net
>>353
うん。それならいい。
あくまでES6を意識したBabelScriptという下駄を古いブラウザに履かせるという認識ならいい。

裏切りを知らないサンタクロースを信じる子供か、黒歴史を未経験な魔法に憧れる中二病患者かと思ったから忠告したけど、
そうでないのなら尽く良い。
その他いろんな話をしたが、もうそれに関しての共通理解は諦める。

363:デフォルトの名無しさん
16/09/03 22:20:31.06 EZVA2rF2.net
>>354
◆SEくんおもしろいw
> その通り、Safariの為の言語だよ。その時点では。
じゃあブラウザとバージョンの数だけ別の言語があるってことかい?

364:デフォルトの名無しさん
16/09/03 22:21:58.64 EZVA2rF2.net
>>358
> 裏切りを知らないサンタクロースを信じる子供か、黒歴史を未経験な魔法に憧れる中二病患者かと思ったから忠告したけど、
だからテストコードを書いている。
このテストコードはbabelを使った場合と使わない場合の両方で動く。
裏切られる前提で、裏切られてもすぐに修正できるように
ちゃんと対策をしている。

365:デフォルトの名無しさん
16/09/03 22:24:51.69 EZVA2rF2.net
◆SEの理屈ではJavaScriptという言語は無いってことになるだろうね。
なぜならばどのJavaScriptでも同じブラウザでも
バージョンが違えば、わずかながらでも違いがあるから。
ECMAScriptという仕様を完全に見対している言語もない。
そういえばC++も仕様を完全に満たしている処理系はないっていわれてるな。
つまり、それぞれの処理系で別々の言語が実装されている。それはC++とは呼ばないw

366: ◆SEdFBOkLSw
16/09/03 22:29:30.55 zOLpCpsC.net
>>355
基本は両方同じ、かつネイティブに処理されるコードを書いて欲しいね。
依存部分はライブラリで吸収するから。
>>359
え?うん。
お前も認めてたじゃん。どのブラウザもサブセットだって。

367: ◆SEdFBOkLSw
16/09/03 22:30:37.47 zOLpCpsC.net
>>361
え?MSの2012でコンパイルできる、cppのソースコード、以外の、現実に則した表現あるの?

368:デフォルトの名無しさん
16/09/03 22:31:28.65 EZVA2rF2.net
>>362
> お前も認めてたじゃん。どのブラウザもサブセットだって。
お前、毎度毎度、重要な単語を抜き取るよなw
わざとやってるだろ。

どのブラウザも「JavaScript(ECMAScript)という言語の」サブセットだって
言ったんだよ。別の言語であればそれはサブセットとはいわない。

369: ◆SEdFBOkLSw
16/09/03 22:31:56.90 zOLpCpsC.net
>>357
そうよ。おかしかったらパッチ書いてプルリクするもの。

370:デフォルトの名無しさん
16/09/03 22:32:33.75 N47o0j5/.net
>>360
そこに関しては納得してる。
俺が違和感があるのは、よくそれで問題にならず我慢できるなってこと。
よくArrayのサブクラスとか作らないで済むね?
Proxy使ったこと無い?@@系は?
当然独自クラスシステムフレームワーク構築するのに
プロトタイプ書き換えるとか当然やったこと無いんだろうな~
って感じ。
そういう驚きと、同じ世界に居ない悲しみ。そんなとこ。

371: ◆SEdFBOkLSw
16/09/03 22:32:54.26 zOLpCpsC.net
>>364
重要な単語も何も、本家とサブセットは関係が定義できようが、
サブセット同士はただ違うものとしか。

372:デフォルトの名無しさん
16/09/03 22:33:53.31 EZVA2rF2.net
>>362
> 依存部分はライブラリで吸収するから。
アロー関数は文法なんだから、JavaScriptファイルを
分離しないと、構文エラーになるんだが?
そのライブラリはブラウザごとに読み込むファイルを分けるのか?
またパフォーマンスが落ちそうなことをwww

373:デフォルトの名無しさん
16/09/03 22:35:25.80 EZVA2rF2.net
>>367
だから、そうやって重要な単語を抜き取って焦点をぼかすのはやめろ。
とある言語の、サブセット同士が違うものであっても
それはとある言語のサブセットであって、言語としては同じだろうが。
BASICはどの実装でもBASICであり
COBOLはどの実装でもCOBOLだ。

374:デフォルトの名無しさん
16/09/03 22:37:05.23 EZVA2rF2.net
>>366
> よくArrayのサブクラスとか作らないで済むね?
といわれてもね。長年やってるからね。
長いES5の時代にArrayのサブクラスをつくらないで
やってきた人間に、そんなこといわれてもねw
その他も同じ。
お前のほうがやってきた経験少ないんじゃね?

375:デフォルトの名無しさん
16/09/03 22:41:45.37 EZVA2rF2.net
>>366
そうだな。君、何かのポリフィルを自分で考えたことある?
特定のブラウザでは簡単にできないことを、
別の方法を使って実現するってことをやったことある?
そういう経験がないんじゃないかな?
バッドノウハウといわれるけど、仕事ではそれをやらないといけない。
Arrayのサブクラスが作れないからできませんって
簡単に泣き言を言ったらだめだよ。
Arrayのサブクラスを作ることが目的になることはまずない。
別の方法で顧客の要求を実現するんだよ。
これって発想力の問題かなぁ、それとも問題解決能力?

376:デフォルトの名無しさん
16/09/03 22:56:19.81 N47o0j5/.net
>>370
当然俺もいきなり活用できたわけじゃない。
折角の機能活用できるようになろうとここ1,2年実験・研究を人一倍積み重ねてきたのよ。
いや、違うか。それより前から、特にES4の頃からかなぁ
JSなんてと言われる声が大きかった時でも、
これからはJSの時代だ。JSを深く知ろう、そしてJSの良さをもっと知ってもらおう。
JSを良くしていこう。とずっとずーっと思ってたのよ。
だからES6の盛り上がりには喜んだし、
MLも当初から参加して全て読んで、細部だが提案にも参加した。
そして実装される前から、トランスパイラではなく、エンジン毎実装されているエミュレータでテストしたりしてきたのよ。
ブラウザに機能がコミットされたら、いやされる直前に自分でローカルでコミットして即ビルド。
とにかく誰よりもよくES6を知り、よく使えるようになろうと努力した。
というのは多少大袈裟だが、そのくらいの熱はあるよ。

377:デフォルトの名無しさん
16/09/03 22:59:14.75 N47o0j5/.net
つかArrayのサブクラスもできるんだけどね。
__proto__がサポートされていれば。

378: ◆SEdFBOkLSw
16/09/03 23:12:05.52 YIu9WVDu.net
>>369
いや、それは言語名を拡大解釈しすぎだろ。

379: ◆SEdFBOkLSw
16/09/03 23:14:31.28 YIu9WVDu.net
>>371
お前どう聞いてもそのノウハウないんだけど。
なんか書いたことある?アーキとしてライブラリ。
>>368
うん、文法上無理なものは、無理に使わないよ。
ライブラリはブラウザごとに違うよ?
当たり前だけど、そのブラウザ用に書いてるからパフォーマンス高いよ(笑)

380:デフォルトの名無しさん
16/09/04 01:41:38.94 dQFc65WQ.net
そもそも、ブラウザのソースをむっちゃ細かく読み、ブラウザごとに誤差レベルのパフォーマンスのためにプログラムをかき分け、利用者にはKBのバージョンまで指定する
そんならネイティブで書いたほうがいっそ早くね?

381:デフォルトの名無しさん
16/09/04 01:42:25.34 dQFc65WQ.net
↑ネイティブっていうのはブラウザ上じゃなくてって意味ね
それだと今度はOSのソースを読み出すのかな?

382: ◆SEdFBOkLSw
16/09/04 02:09:57.16 OwMR9jkC.net
>>376
クラサバの話?
だいたい似たようなもんだよ。
社内端末は、何処の会社でもそうだろうけど、標準品のパターンしか無いから。
クラサバは基本的にはあんまり作らんけどね。
標準品があるがゆえにが、何かにもインストールするのは難しい。
毎月10日に数万人が同時使用するようなものもあるから、ウェブ向きのもあるんだけどね。

383: ◆SEdFBOkLSw
16/09/04 02:11:11.84 OwMR9jkC.net
>>377
案件次第だけど、RedHatと、MSは調査させることができる保守契約だから、
ソースは見なくて済むよ。

384:デフォルトの名無しさん
16/09/04 02:40:24.68 dQFc65WQ.net
よくよく考えると、ハードウェアにも依存するよね
テストだけじゃなくてソースまで読むとなると、CPUとかグラフィックカードの設計図まで見ながら実装や結果が異なるかもしれない!とか言いながら開発してるのかな?
これとかは面白かったな
URLリンク(www.sophos.com)

385: ◆SEdFBOkLSw
16/09/04 02:52:39.61 puAB8LUN.net
ハードウエア依存するね。
そのへんはウェブ屋がよくまとめてくれてるよ。
このCSSをONにしたら、アニメーションがGPU使ってる行われるので、適宜利用可能そうであれば取り込んでください、とかたまり来るな。

386:デフォルトの名無しさん
16/09/05 21:45:07.44 g6CwjeFO.net
こういうwebアプリってどうやってつくってるんですか
pdgを縮小とかって、どうやってやってるのでしょうか?
javascriptは関係ありますでしょうか?
URLリンク(smallpdf.com)

387:デフォルトの名無しさん
16/09/05 23:05:01.84 La2BdvKf.net
void func(int a)
{

388:デフォルトの名無しさん
16/09/05 23:10:26.66 La2BdvKf.net
未使用変数への対処ですが、C言語だと
void func(int /*a*/)
{
....
}
void func(int a)
{
(void)a;
....
}
こんな風にしますが、JavaScriptだと定石みたいなのはありますか?
$('#element').on('mousedown', function(/*event*/) {
});
でよさそうな気がしますが、アロー関数の時は
$('#element').on('mousedown', /*event*/() => {
});
こんな風にしないとだめでかっこ悪いきがします。

389:デフォルトの名無しさん
16/09/06 00:15:41.30 vTB9MQXO.net
>>384
未使用変数を必ず対処しないといけないということはない。
例えばイベントハンドラで引数にeventやeを取るのは「形」だ。
型宣言みたいなもんで、それを書いてあるからといって必ずしも
eventを利用しないことは皆知っている。
むしろその関数が別定義されていても、eventを受ける関数、
イベントハンドラの定義なんだと瞬時にわかるので意味がある。
つまりイベントハンドラとしてイベントを受け取るということだけで、
機能が満たされて意味的に「未使用」ではないとも見れる。
もしくは本当にイベントをトリガーとして関数を呼び出したいだけであれば、
引数を書かないでおくべき。
コメントアウトする文化はないのでけしてしてはいけない。
上で述べた引数をあえて書く、書かないは、関数の機能やニュアンスを表すための
弱い動的型付け言語における読み手に対する情報の追加だ。
しかしコメントアウトは書き手にとってのメタ的な情報でしか無い。
読み手に未使用変数の情報を伝えても何のプラスにもならないし、
何らかのニュアンスの提示かと思わせて混乱させるだけだ。

390:デフォルトの名無しさん
16/09/06 03:32:45.25 R2NwcGdU.net
キモい ◆SEは死んだ?w

391:デフォルトの名無しさん
16/09/06 03:37:28.46 s5Bd4cPT.net
>>384
使用してない変数なら書かなければいいだけ。
使わないのに引数を省略出来ないっていうのは
C言語特有の問題だ。C言語特有の問題を持ち込まないように

392: ◆SEdFBOkLSw
16/09/06 08:18:45.82 aJS2GtR8.net
>>386
そんなに否定されるか不安なのか?
>>384
その定石は要はコンパイラが未使用変数だよ、と警告上げてくるから、使ってるフリするやつじゃないの?
長々誰かが説明してるけど、結論どっちでも良いよ。
書いても書かなくても。

393:デフォルトの名無しさん
16/09/06 09:41:59.19 KC/iVCRe.net
>>385, >>387, >>388
ありがとうございます。
すみません、言葉足らずでしたが、>>388さんの通りC言語の
コンパイラの警告と同じような意味合いでの
eslintなどのunused-varsへの対処方法の相談でした。
引数消せばそれで良さそうとは思いましたが、それだと>>385さんの通り
eventとか意味を持った引数がわかりにくくなりそうなので、定石みたいなのはあるのかなと。
結論はどちらでも良いとのことで好きなようにやっておきます。

394:デフォルトの名無しさん
16/09/06 13:11:41.52 vTB9MQXO.net
>>389
一番いいのはそういう警告は殆どOFFにするか、無視すること。
正直言って本当に厄介なバグは見つけてくれない気休め程度のもの。
気休めに気を使うことくらい馬鹿らしいことはないと思わないか?
どちらでもいいと言われてるのは書く/書かないであって、
コメントアウトは3つの選択肢の中では最低と思った方がいい。

395:デフォルトの名無しさん
16/09/08 07:45:15.23 O7PwNYbW.net
プロミスって簡単に探したら、種類がいっぱい有るんですね。
現在対象にしているのが、WinJS。
timeoutなんてのが有って驚いた。
これだと非同期ロジックにシーケンス書ける。

396:デフォルトの名無しさん
16/09/08 14:31:46.31 OkMPKk85.net
標準Promiseは機能が少ないので、async/awaitを使って補うのがベストプラクティス。
もしくはextendsしても良いが、やや大変で難しいと思う。
一応キャンセルの案は入るのでtimeoutとかは簡単に実装できるようにはなる。
CancelToken型になりそうなのがまたちょっとアレだが、まあ拡張としては最適なのだろう。
URLリンク(github.com)

397:デフォルトの名無しさん
16/09/08 23:37:57.85 Vzj7Ghpg.net
ちなみにasync/awaitに対応しているブラウザは少ないので
必然的にbabelを使うということである。

398:デフォルトの名無しさん
16/09/08 23:41:49.64 Vzj7Ghpg.net
なお、俺はasync/awaitを使いたいならbabelと言っただけで
async/awaitを使うと機能が増えるとは言ってない。
その話は言ったやつに聞け

399:デフォルトの名無しさん
16/09/09 00:04:44.99 4wEFuM4p.net
>>393
ブラウザの話だけでいうのもどうかと思うよ。
WinJSが出てくるのならNW.jsとかNode系V8系の環境の話も十分考えられる。
V8系ならフラグオンで使えるわけだからね。
というかすぐ、互換性が~とか言い出したり、実務を必ず伴わせようとするのは悪い癖だと思う。
ここはESスレなんだし、仕様やAPIの宙に浮いた話だって良いじゃない。
web制作板だったら確かに互換性や実際に世のブラウザで動く話は無視できないかもしれないけれど、
ここはプログラム技術板なんだし、
JSはそれこそ自分用のブラウザ拡張機能を作るためだったりするのにも使えるわけだし、
別に実験や遊びとしてこういった技術を扱う前提であってもいいと思う。

400:デフォルトの名無しさん
16/09/09 16:45:04.06 dcApvFQ/.net
lengthって名前の関数を作るときなんですが、
var Sample = function() {
      this.length = function() {
          return 100;
      }
};
Sample.length = function() {
    return 100;
};
let sample = new Sample();
console.log(sample.length()); // これは OK
console.log(Sample.length()); // これは エラー
っていう動作になるのはこういう仕様でしょうか?

401:デフォルトの名無しさん
16/09/09 16:46:02.70 dcApvFQ/.net
すみません、 使えなかった
こちらです。
var Sample = function() {
  this.length = function() {
    return 100;
  }
};
Sample.length = function() {
  return 100;
};
let sample = new Sample();
console.log(sample.length());
console.log(Sample.length());

402:デフォルトの名無しさん
16/09/09 17:42:46.36 mXWYcTT5.net
何がしたいの?w

403:デフォルトの名無しさん
16/09/09 18:03:02.38 dcApvFQ/.net
>>398
具体的には
VectorUtil.length = function(x, y, z) {
  return Math.sqrt(x*x + y*y + z*z);
};
これがしたかったです

404:デフォルトの名無しさん
16/09/09 19:06:00.54 R/34hIbI.net
Function.lengthは引数の数で定義済なんで無いの

405:デフォルトの名無しさん
16/09/09 19:15:39.77 4wEFuM4p.net
>>399
class構文を使えばできる。
class Sample {
static length() { return 100 }
}
Sample.length()

406:デフォルトの名無しさん
16/09/09 21:42:09.18 mcpsSWXB.net
画像収集の際にGreasemonkeyを利用してa要素+download属性を生成し、
整理しやすいように画像掲載ページのタイトル等から名前をつけて保存しているのですが、どうにかしてクロスドメインの画像に対してもリネームさせられないものでしょうか?
iframeを利用するというのも試してみましたが、元ページ側のタイトル変数などを受け渡すことが出来ず挫折してしまいました

407:デフォルトの名無しさん
16/09/09 21:52:24.77 dcApvFQ/.net
>>400
そういう仕様っぽいような気がしました。
なぜ上書きできないのか、わかってないですが。
>>401
なるほど、ありがとうございます。
classって糖衣構文だと思ってるんですが
内部的にはどうやってるのでしょう(調べてみます)

408:デフォルトの名無しさん
16/09/09 22:11:57.62 4wEFuM4p.net
>>なぜ上書きできないのか
[[Writable]]: false だから
URLリンク(tc39.github.io)
ただし[[Configurable]]: true なのでディスクリプタセット系メソッドで上書きはできる
>>内部的にはどうやってるのでしょう
コンストラクタが定義され、その時点では上記のようにlengthプロパティを持っているが、
その後PropertyDefinitionEvaluation→ディスクリプタセット系によって上書きされる
URLリンク(tc39.github.io)

409:デフォルトの名無しさん
16/09/09 22:27:00.10 Ml2lLB3N.net
>>403
babelで変換したらこうなったよ。
Object.definePropertyが鍵のようだ。
"use strict";
var _createClass = function () {
 function defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
   var descriptor = props[i];
   descriptor.enumerable = descriptor.enumerable || false;
   descriptor.configurable = true;
   if ("value" in descriptor) descriptor.writable = true;
   Object.defineProperty(target, descriptor.key, descriptor);
  }
 }
 return function (Constructor, protoProps, staticProps) {
  if (protoProps) defineProperties(Constructor.prototype, protoProps);
  if (staticProps) defineProperties(Constructor, staticProps); return Constructor;
 };
}();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Sample = function () {
function Sample() {
_classCallCheck(this, Sample);
}
_createClass(Sample, null, [{
key: "length",
value: function length() {
return 100;
}
}]);
return Sample;
}();

410:デフォルトの名無しさん
16/09/09 22:47:46.14 dcApvFQ/.net
>>404 >>405
ありがとうございます。
勉強になりました。

411:デフォルトの名無しさん
16/09/10 11:41:02.99 bPnbAneW.net
わざわざインスタンス作るまでのことじゃない
という夢を見た

412:デフォルトの名無しさん
16/09/12 00:16:46.01 MSYFEfr8.net
>>407


413:デフォルトの名無しさん
16/09/14 11:42:56.90 7fc5lKN8.net
<body onLoad="document.getElementById(id).style.display = 'none'">
でページを読み込んだとき表示させたくない部分を隠せるのだけど
ブラウザで何回もリロードしていると隠れている部分が一瞬表示されることがあります
これを防ぐ方法あったら教えてください

414:デフォルトの名無しさん
16/09/14 11:55:36.48 T/00QwAr.net
>>409
どうしてonLoadにしているのかが分からない
最初からidの要素に対してやればいいのでは?

415:デフォルトの名無しさん
16/09/14 21:09:29.93 jzervOJ/.net
>>409
表示に関することはCSSでやれ

416:デフォルトの名無しさん
16/09/15 04:07:08.15 3ffkfw2U.net
>>409
そりゃonLoadで消す処理の前に描画処理が走ってしまうと表示されるだろうな
まずonLoad は画像等の外部リソースがすべて読み込まれるまで発火しないので、そういう場合どちらかと言えばDOMContentLoadedで呼ぶ方がいい
一瞬でも見せたくないならcssなど外部リソースへのリンクをすべて切った状態で表示されない状態であるべき
表示したい時にそのエレメントを作るまたは流し込む、あるいは非表示にしてあるものを必要に応じて表示にする方が好ましいと思う

417:デフォルトの名無しさん
16/09/15 05:14:15.52 ql+kvaik.net
先にCSSで、非表示に設定しておいて、JSで表示すればいい

418:デフォルトの名無しさん
16/09/15 05:20:33.69 ql+kvaik.net
正しいかどうかは知らないけど、
漏れは、<head>内で、CSSを読み込ませて、
<body>の終了直前で、JS, jQuery, jQueryUI を読み込ませている

419:デフォルトの名無しさん
16/09/15 08:25:11.28 snQtI1Af.net
>>409
JS有効/無効関わらず、適用させるべきなら静的に外部CSSを適用する
JS有効時のみ適用させるなら
1. JSで動的に外部CSSを挿入する
2. JSで動的にstyle要素を挿入する
3. JSで動的にdocument.styleSheetsを操作する

420:デフォルトの名無しさん
16/09/15 08:35:03.76 snQtI1Af.net
回答しておいてなんだが、これはES限定の質問ではないので下記スレで質問すべきだな
+ JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
スレリンク(tech板)
そもそも、このスレがvol.121の後継スレと銘打って立てるから、こういう勘違いした質問者が出てくるんだよな
「ECMAScript デス 6」として立てれば良かったものを…

421:デフォルトの名無しさん
16/09/15 16:12:55.70 3ffkfw2U.net
あっちは頭のおかしな子が常駐してるからなぁ
外部CSSでやった場合、その外部CSSを取得するためのhttpリクエストがコケたり読み込みが遅れた場合CSSが解釈される前に表示されてしまうよ
よって絶対に(一瞬たりとも)表示したくないならば外部CSSで隠すのではダメ
最低でもインラインCSSで静的に非表示にしておく事が最低条件で、可能ならそれを表示する必要が生じるまでDOM要素が存在しない状態にしておくべき

422:デフォルトの名無しさん
16/09/15 18:33:18.76 tL4oMhKi.net
>>417
> 外部CSSでやった場合、その外部CSSを取得するためのhttpリクエストがコケたり読み込みが遅れた場合CSSが解釈される前に表示されてしまうよ
link要素は基本同期読み込みだったと思うがな これ以上は該当スレでやってくれ
変な奴はどこにでもいるからスルーすればいいだけ

423:デフォルトの名無しさん
16/09/16 23:25:08.31 90O68WAb.net
JavaScript の Closure Compiler
URLリンク(googledevjp.blogspot.jp)
> Closure Compiler は、2009 年に元は Java でリリースされました。本日は、
> まったく同じ Closure Compiler がピュア JavaScript で Java を使わずに利用できる
> ことになったことをお知らせします。この仕組みは NodeJS 環境で実行するように設計されており、
> いくつかのよく使われているビルドツールをサポートしています。
> 初めて聞く方のために説明すると、Closure Compiler は JavaScript の最適化、トランスパイル、
> タイプチェックを行うツールです。これを使うと、コードを高パフォーマンスでサイズが縮小された
> コードにコンパイルすることができます。
> let、const、アロー関数などの ES2015 の新機能をサポートしており、まだすべてではサポートされていない
> ES2015 メソッドの polyfill も提供しています。メンテナンス性や拡張性の高い優れたコードを書けるよう、
> Closure Compiler は構文チェック、タイプの使用法の訂正、さまざまな JavaScript における注意点についての警告も行ってくれます。
これは素晴らしい。Closure CompilerはGoogle製でブランド力はあるのだが、
Javaが必要だったのがJavaScriptの世界に馴染めなかったんだ。
ただbabelはその先を行っていて、拡張可能な仕組みでES2015だけじゃなく
JSX対応とかコード変換にまつわることをサポートするツールになってるんだが、
対抗馬に鳴るだろうか?

424:デフォルトの名無しさん
16/09/17 08:30:02.95 0xe0k3r9.net
>>419
無駄な長文引用は止めてほしいものだな
BabelとClosure Compilerは用途が異なるので競合にはならない

425:デフォルトの名無しさん
16/09/17 13:55:23.53 YjgX2ujU.net
'use strict';
"use strict";
のどちらでも良いですか?
上級者の人はどちらを使いますか?

426: ◆SEdFBOkLSw
16/09/17 13:56:43.79 gYNx5cgj.net
その先を行ってる訳じゃないでしょ。
Javaが必要だった、と言うが、そんな事なんの問題でも無いと思う。
結局、どっちも、誰かの言う「良くないJavaScript」を「良いJavaScript」に変換するだけの存在。

427:デフォルトの名無しさん
16/09/17 15:18:00.80 530UZtkB.net
>>421
シングルの方がシンプルなので好まれる
ただJSONを書くときとの整合性を考えるとダブルになる

428:デフォルトの名無しさん
16/09/17 17:33:41.59 YjgX2ujU.net
>>423
JSONでシングルは使えないのですか?

429:デフォルトの名無しさん
16/09/17 17:43:37.89 5r5hyKhZ.net
> ただJSONを書くときとの整合性を考えるとダブルになる
そんなどうでもいいところの整合性なんて考えなくていい。
JSONとの整合性を保つ意味がない。

430:デフォルトの名無しさん
16/09/18 05:27:32.37 /bzuSpCV.net
俺はそういうとこを突き詰める人間のほうが好きだけどね。
プログラミングには少なからず美的要素が含まれるから。
少なくともそういうところを考えず放って来た者は上級者ではない。

431:デフォルトの名無しさん
16/09/18 11:44:00.08 8zKQ5/pX.net
>>426
意味がわからん。
JavaScriptとJSONは似ているが別の言語と考えるべき。
言語に応じた最適な書き方を求めるべきであって、
別の言語の習慣を持ち込むなって話なんだけど?

432:デフォルトの名無しさん
16/09/18 12:18:29.13 JCfSaSaV.net
>>426
Cobolみたいな表記が良いの?

433:デフォルトの名無しさん
16/09/18 12:26:41.43 Wkbj4nCn.net
JSONはCSVやXMLと同じ一つのフォーマットに過ぎない

434:デフォルトの名無しさん
16/09/18 15:20:31.34 0+yFEvXA.net
JSONがJavaScript Object Notationであることを勘案すると>>423は以下の様に翻訳できる
>ただJSONを書くときとの整合性を考えるとダブルになる
ただオブジェクト宣言時の表記との整合性を考えるとダブルになる
正直どうでもいいな

435:デフォルトの名無しさん
16/09/18 15:36:58.44 7fymcmTA.net
整合性ではなく、統一性なんだがw

436:デフォルトの名無しさん
16/09/18 15:45:54.06 8zKQ5/pX.net
統一する理由がない

437:デフォルトの名無しさん
16/09/18 16:59:06.74 /bzuSpCV.net
統一する理由がない。
つまりそれはどっちでもいいと言うことだろう?
逆にどっちが良いかの理由を探すのならそういうことも理由になり得るということだ。
君がそういうことを理由としないというのは結構だが、
理由とする人がいることは認めないといけない

438:デフォルトの名無しさん
16/09/18 17:17:43.50 8zKQ5/pX.net
>>433
統一する理由がないと言ったのは、JavaScriptと
JSONのクォートの使い方を統一する必要が無いという意味ね。
JavaScriptはJSONじゃないんだから。
だからJSONを持ち出してきた事自体をなかったことにしろということ。
どちらにするかは採用するコーディング規約に従えばいいだけ。

439:デフォルトの名無しさん
16/09/18 17:27:13.31 xD5NzQXy.net
>>433
それは理由になっている場合の理屈
君のそれが「正当な理由になってない」という事では?

440:デフォルトの名無しさん
16/09/18 17:41:30.85 xD5NzQXy.net
JSONとJavaScriptでは言語体系が違うからなあ
JSONはJavaScriptの文法を真似ているだけのファイルフォーマットだからね
JSONとJavaScriptのクォートを統一するのはPHPとJavaScriptのクォートを統一するようなもの

441:デフォルトの名無しさん
16/09/18 17:45:59.39 xD5NzQXy.net
現実的な理由としてHTMLタグをJavaScriptコードに埋め込む場合、文字列リテラルでダブルクォートを使っているとHTML要素の属性を括る文字にシングルクォートを使わないとエスケープが面倒くさいというのがある
HTML文書でシングルクォートを使っているなら統一性が生まれるけど、ダブルクォートを使っているならJSでは逆にシングルクォートを使った方が統一感があっていい
あまりないけど、サーバサイドスクリプトを介在してJSONをJavaScriptコードに埋め込む場合もシングルクォートを使っていた方が都合がよい

442:デフォルトの名無しさん
16/09/18 18:18:08.32 7fymcmTA.net
a = "123';
b = '456";
 前後のクォートが異なる ※整合性
a = "123";
b = '456';
 a b のクォートが異なる※統一性
JavaScriptに対しての統一性だと言ったんだよ
整合性が保たれていないと動作しないだろw

443:デフォルトの名無しさん
16/09/18 18:58:00.12 /bzuSpCV.net
>>435
まず、どっちで書いても機能的には変わらないということが大前提にあるよね
そうしたらもう気分とかそういう人間側の都合になってくるわけよ
例えばHTMLではダブルが使われる事が多いので、
実際に埋め込むことは滅多にないだろうし、今はテンプレートリテラルもあるけれど、
気分的にJSではシングルを使うとかね
逆にそういう事が理由でないという人が今どちらかを使っている理由を聞きたい
その日のサイコロで決めてるというのでなければ理由があるはずだ
例えば本に書いてあったとか、最初に習ったのがこっちだったとかね
自分はそういう理由も理由だと思うけれど、
まだ大前提のうちでは理屈として一般的で、まだマシに意味がある想像を述べることを推してるのよ

444:デフォルトの名無しさん
16/09/18 22:55:44.47 8zKQ5/pX.net
>>437
> あまりないけど、サーバサイドスクリプトを介在してJSONをJavaScriptコードに埋め込む場合もシングルクォートを使っていた方が都合がよ
そんなことしてるならコードを見直したほうが良いよ。
普通はJavaScriptオブジェクトをJSONに変換する。

445:デフォルトの名無しさん
16/09/18 23:18:12.13 8mgjQq3k.net
>>439
あなたのいう「認める」とは何?
端から見ればあなたがJSONとの統一性を気にしない人を「認めていない」のだが

446:デフォルトの名無しさん
16/09/19 05:07:37.39 io387Cln.net
すみません、よそ者ですが、
そもそもなぜ '' や "" で囲う必要があるのですか?
use strict;
ではダメな理由を教えていただけますでしょうか?

447:デフォルトの名無しさん
16/09/19 05:42:42.21 Rfn/Judi.net
>>442
use strictに対応してないブラウザでエラーが出るからだよ。
文字列にしておけば、古いブラウザでも単なる文字列があるだけ。

448:デフォルトの名無しさん
16/09/19 11:33:59.10 io387Cln.net
>>443
ありがとうございました。
長年の疑問が解消しました。

449:デフォルトの名無しさん
16/09/20 00:04:22.78 DlF8DRLC.net
Angular2で出来て、Vue.jsで出来ないことはどのような事がありますか?
また逆はありますか?

450:デフォルトの名無しさん
16/09/20 15:54:14.06 GpfqQSu0.net
頭が相当悪いみたいだね?
一行目そのまま検索しろよw

451:デフォルトの名無しさん
16/09/21 14:44:20.17 wW2qFR9f.net
すまん、言い過ぎた
反省してる

452:デフォルトの名無しさん
16/09/22 17:06:35.53 zXBENXMk.net
誰かflow使ってる人いる?

453:デフォルトの名無しさん
16/09/23 12:16:27.04 QcEXcfJB.net
統一する必要は無いけど、覚える量を減らしたいので統一しているよ。

454:デフォルトの名無しさん
16/09/23 13:55:08.58 AF/DJJLc.net
>>449
何の話?

455:デフォルトの名無しさん
16/09/23 22:25:12.59 MCHe7LJO.net
>>449
RubyとJSONで "" と '' のどっちを使うかという話だろう?

456:デフォルトの名無しさん
16/09/23 23:00:49.95 MCHe7LJO.net
正直JSONを手書きするのはやめたほうが良いよ。
ライブラリを使って(各言語の)オブジェクトとJSONの
相互変換をした方がいい。だからJSONが""でくくられてる
なんか忘れるべき。
ただテキストエディタのatomとかの設定ファイルや
package.jsonとかがJSONだったりするんだよな。
手書きは全部YAMLにすればいいのに。

457:デフォルトの名無しさん
16/09/23 23:18:21.05 oC1wKf1S.net
>>451
JSONは"しか使えないから選択肢はないだろうに
>>452
> 正直JSONを手書きするのはやめたほうが良いよ。
同意、JSならJSON.stringifyで十分だな

458:デフォルトの名無しさん
16/09/23 23:27:17.39 Da0YgZYz.net
元々はjavascriptをシリアライズする為の物だったんだよね?
手書きする事はあまり考えられてなかったんじゃねーの

459:デフォルトの名無しさん
16/09/23 23:30:53.64 laz5P8lZ.net
設定ファイルをjsonで書くの多いだろ
jsonに変換するツール書くかのか? w

460:デフォルトの名無しさん
16/09/23 23:35:07.87 aAYGOufH.net
ツールなんか使わなくともシリアライズする機能が各言語で用意されてるからな

461:デフォルトの名無しさん
16/09/23 23:46:44.92 laz5P8lZ.net
はあ?
じゃ【設定】はどこに書くんだよ w

462:デフォルトの名無しさん
16/09/23 23:51:52.39 2jAc0sAD.net
JSON.stringify({a:1, b:2}); とか、普通にやるだろ
JSONを全部手書きしたらプロパティ名をクォートで括らなければならんし、面倒くさい
簡単なJSONの書き換えなら手入力するかもしれんが

463:デフォルトの名無しさん
16/09/24 00:04:59.40 y4/Y2YH6.net
お前、設定項目が数個のプログラムしか作った事ないのか? w
そんでもってa:1をa:2に書き換えたら、その都度そのプログラム実行するのか? 大爆笑

464:デフォルトの名無しさん
16/09/24 00:11:43.60 8/0tEXHb.net
>>459
おまえは読解力が足りないアホなのか
数個だろうが何個あろうが、複数あるからシリアライズする価値がある
簡単な書き換えなら手入力するといってるだろ

465:デフォルトの名無しさん
16/09/24 00:18:30.72 y4/Y2YH6.net
お前はアホなのか?情報は一元管理が鉄則
これに反すると
"a":1を"a":2に書き換えてa:1をa:2に書き換えるハメになる
バカしかやらんわ

466:デフォルトの名無しさん
16/09/24 02:14:00.16 bcRI8Hfy.net
>>459
プログラムを実行も何も、ワンライナーじゃえの
var j=JSON.parse(fs.readFileSync(...));j.hoge=aaa;fs.writeFileSync(JSON.stringify..

467:デフォルトの名無しさん
16/09/24 06:05:18.86 54HKSWWZ.net
promptでダイアログボックスを表示して、キャンセルを押すとNaNが返ってきます。
ダイアログボックスのキャンセルはNullが返ってくるとあったのですが、何がいけないのでしょうか?
見入力でOKを押した場合と、キャンセルを押した場合とで違う処理をしたいと思っています。

468:デフォルトの名無しさん
16/09/24 08:35:07.11 8/0tEXHb.net
>>461
>>462藻指摘してるが、JSON.parseしてからJSON.stringifyするだけだろ
2箇所を同時に書き換えなければならない、なんて思ってるのはお前だけ

469:デフォルトの名無しさん
16/09/24 09:16:15.32 y4/Y2YH6.net
>>464
後出し大将現る
> JSON.stringify({a:1, b:2}); とか

470:デフォルトの名無しさん
16/09/24 10:00:58.09 T2jfomp1.net
>>463
知らんけどブラウザ依存じゃない?
URLリンク(jsbin.com)
Chromeだと false だった

471:デフォルトの名無しさん
16/09/24 12:47:39.74 NUokNM1t.net
>>465
元々はJSONを入力する時の話だったからJSON.stringifyを紹介した
お前さんが「JSONとオブジェクト初期化子の2箇所を同時に書き換えるのか」とアホな事をいってJSON読み込みの必要が出てきたからJSON.parseを紹介した
お前さんが何の設定する事を想定していてどのように編集しているのか、俺は知らん
俺から見れば情報を曖昧に出して後出ししたのはお前の方

472:デフォルトの名無しさん
16/09/24 12:51:25.63 NUokNM1t.net
後な
JSONの設定編集は当初の>>421の質問からは大きく話題がずれてる
JSONの設定に合わせてJavaScriptコードの入力スタイルを決める必然性はまるでない
君はそうなんだろうが、別の言語同士でクォートの記述を合わせる必要はないからな
GoogleのJavaScript Style Guideに合わせてシングルクォートを使う人もいるだろう
見た目を気にしてシングルクォートを使う人もいるだろう
HTMLで見慣れているダブルクォートを使う人がいるかもしれない
最終的には自分なりの好みや優先順位で決まるもので他人の考えを否定出来るほどの論理は基本的にない

473:デフォルトの名無しさん
16/09/24 12:58:58.18 YdAnVmLb.net
勝手に整合性を自己定義している時点で間違い

474:デフォルトの名無しさん
16/09/24 13:04:04.59 y4/Y2YH6.net
後出し大将あらため言い訳番長
【設定ファイル】って知らないらしい

475:デフォルトの名無しさん
16/09/24 13:56:12.12 e4J3FKju.net
>>470
何の設定ファイル?
JavaScriptには設定ファイルなんてないぞ。

476:デフォルトの名無しさん
16/09/24 14:33:05.17 y4/Y2YH6.net
おバカですねえ、揚げ足取りにすらなってない

477:デフォルトの名無しさん
16/09/24 15:28:20.96 e4J3FKju.net
揚げ足取りではなくて、質問なんだが?
質問なのに揚げ足取りに鳴るわけ無いだろw
それで、何の設定ファイル?

478:デフォルトの名無しさん
16/09/24 17:56:14.37 y4/Y2YH6.net
そんじゃ、質問で返してやるよ
キミが知ってる【設定ファイル】を読み込むプログラムを記述してる言語を答えよ。そしてその記述言語の設定ファイルの有無も答えよ。
これに回答できたら教えてあげる

479:デフォルトの名無しさん
16/09/24 18:01:32.86 fVgLvkCD.net
こっちにも貼っとくか…
URLリンク(i.imgur.com)
自分がレスを返してる相手がレスを返す価値のある相手かよく考えろよ

480:デフォルトの名無しさん
16/09/24 18:32:49.67 fP/MPmfi.net
AutopagerizeのSITEINFOはJSONだな
URLリンク(wedata.net)

481:デフォルトの名無しさん
16/09/24 20:38:30.75 6IMs83+U.net
>>474
C言語。そしてC言語に設定ファイルなんてものはない。

482:デフォルトの名無しさん
16/09/24 20:43:52.34 y4/Y2YH6.net
>>477
じゃ、教えてあげよう
atom

483:デフォルトの名無しさん
16/09/24 21:27:12.07 6IMs83+U.net
>>478
atomはテキストエディタ

484:デフォルトの名無しさん
16/09/24 21:37:31.21 y4/Y2YH6.net
>>479
そうだよ。javascriptの設定ファイルなんて誰も言ってないのに
どっかのバカがこんな(>>471)マヌケな事言い出したから。ハア? だよ
>>471
>>>470
>何の設定ファイル?
>JavaScriptには設定ファイルなんてないぞ。

485:デフォルトの名無しさん
16/09/24 22:28:02.67 /TWDHHcN.net
xjsonとか云うの出すらしいから
手書きも増えるし、要求されるかもしれない。

486:デフォルトの名無しさん
16/09/24 23:10:20.02 6IMs83+U.net
>>480
意味がわからん。
atomの設定ファイルをJSONで書くからって
C言語などでJSONに合わせてコード書く必要ないだろ。

487:デフォルトの名無しさん
16/09/24 23:39:01.41 y4/Y2YH6.net
>>482
それはキミがバカだからわからないんだよ
JSONで記述された設定ファイルの話をしていたら、どっかのバカが
>何の設定ファイル?
>JavaScriptには設定ファイルなんてないぞ。
と、絡んできただけ

488:デフォルトの名無しさん
16/09/25 00:39:56.37 0J+83ZC2.net
>>483
だからJSONで記述された設定ファイルの話を
JavaScriptのスレでする意味ないだろって話なんだが?

489:デフォルトの名無しさん
16/09/25 05:34:54.46 y4/VuarS.net
もういいよ
>>483が正しいって分かってるから
>>484は放っておこう

490:デフォルトの名無しさん
16/09/25 07:44:51.98 qiD59u34.net
そうでないかと危ぶんでいたが、やはり、Atomだったか
Atomの設定ファイルをテキストエディタで編集するのはcsonだと思うが、jsonを編集する事なんてあるのか?
改行もインデントもされてないjsonファイルを直接編集するのはいかれてるとしか思えないんだが
> 皆>>483が正しいって分かってるから
本人しか同意してないように読めるけどな

491:デフォルトの名無しさん
16/09/25 08:41:36.29 hrPU7kVw.net
>>463 >>466
jQuery UI のダイアログでも使えば?
OK, Cancelの2つのボタンしか無いなら、
if(OK){ }
else { }
でいいだろ
戻り値が、NaN というのは、数値変換エラーだから、プログラムにバグがある
>>486
圧縮された、JSファイルでも、Edgeの開発者ツールなどで、きれいに整形して表示してくれる

492:デフォルトの名無しさん
16/09/25 09:50:51.04 KU3wtz+G.net
>>484
>だからJSONで記述された設定ファイルの話を
>JavaScriptのスレでする意味ないだろって話なんだが?
足りない頭で必死に考えたんだろうが、バカ過ぎる
あるアプリの設定ファイルを設計したい、javascriptなのでJSONで行こうと思うが、
その際の注意点は…
全然問題ない

493:デフォルトの名無しさん
16/09/25 10:03:00.83 NgaD/H31.net
そうだよな、設定ファイルがJSON形式というだけ

494:デフォルトの名無しさん
16/09/25 10:13:15.83 qiD59u34.net
>>487
いや、「config.csonを編集することはあってもapplication.jsonを編集することはないんじゃない?」って事
テキストエディタの設定ファイルをテキストエディタで編集するなら、コメントやインデントをつけたくなるし、俺はAtomでJSONファイルを編集したことがない
> 圧縮された、JSファイルでも、Edgeの開発者ツールなどで、きれいに整形して表示してくれる
そういうツールがあるのは知ってる
JSONを整形するなら内部的にJSON.parseと同等機能を使っているはずだが、彼(>>465)はなぜか否定的というか馬鹿にしている感があるし、主張がちぐはぐすぎるんだよな…

495:デフォルトの名無しさん
16/09/25 10:27:53.21 qiD59u34.net
そもそも、JSONはテキストエディタで直接編集することを踏まえていない感がある
インデントはできるが、コメントは使えない時点でテキストエディタで編集する気が起きない(Atomで膨大な設定用プロパティを全て覚えるのは無理)
どうしても必要な状況があれば「JSON エディタ」的な何かを使うだろうな
実際には>>476のように設定用UIを別に作っているケースが多いと思う
Atomはユーザが直接編集するものはCSONかCoffeeScriptを使い、プログラム側で生成するものはJSONを使っている

496:デフォルトの名無しさん
16/09/25 12:11:22.44 qud+/4QR.net
うーん。設定用UIねえ
ゲームエンジン作ったときの話だけど
ユーザー側の設定用UIはボチボチ作るというかJSONにしないけど
そのエンジンの設定ファイルを書き出すためのツール作らないでしょ
バージョンアップの度にUI弄って書き出すのか?と言うことになるし
intファイルと同じく手編集もするものだと思うよ
で、コーディングと一緒に書いていくから、クォーテーションの整合性を気にするのも自然

497:デフォルトの名無しさん
16/09/25 12:22:42.62 iekzKwrb.net
JSONがテキストエディタで編集するのに向かないって話じゃないの?
CSVをテキストエディタで編集しないのと同じ

498:デフォルトの名無しさん
16/09/25 12:24:56.98 iekzKwrb.net
>>492
iniはコメントを許す仕様じゃなかったっけ
テキストエディタで編集する前提ならその設定行の意味するところをコメントで書くべきだと思うな

499:デフォルトの名無しさん
16/09/25 13:28:03.63 0J+83ZC2.net
>>488
> あるアプリの設定ファイルを設計したい、javascriptなのでJSONで行こうと思うが、
別にJavaScriptだからってJSONを使う理由はないし
RubyだってJSONを使うことだってある。
っていうか、その理屈だとYAMLはいつ使うんだよ?w
YAMLみたいな言語はないぞ。

500:デフォルトの名無しさん
16/09/25 13:32:12.13 0J+83ZC2.net
Atomの例でわかるように、JSONが" " でくくられているからって、
JavaScriptのコードは "" で括る必要はないね。

501:デフォルトの名無しさん
16/09/25 13:33:11.00 V/4I7o9u.net
>>495
YAMLみたいな言語、がようわからんね。
Yaml ain't markup language
なんだから、言語ではないよ。

502:デフォルトの名無しさん
16/09/25 13:33:55.60 0J+83ZC2.net
>>497
だから設定ファイルの流儀をソースコードに持ち込むなって話だよ。
atomの例で分かったろw

503:デフォルトの名無しさん
16/09/25 13:53:31.79 V/4I7o9u.net
>>498
そりゃ変だよ。
パースできるものとソースの書式が同じでなんの問題も無いし、
存在意義とか目的によって、サブセットになるのは至極当然な気がするが。

504:デフォルトの名無しさん
16/09/25 13:56:15.35 6/nEO/uB.net
evalでパースすれば関数もパース出来るし、式も使える
コメントもあるし、""をキーに使わなくていいし、''を使う事も出来る

505:デフォルトの名無しさん
16/09/25 14:39:36.71 0J+83ZC2.net
>>499
話がずれてる。同じだと問題があるなんて一言も言ってない。
同じにする必要はない。設定ファイルのことなんか忘れて
JavaScriptのやり方として良い方を選べって言ってる。
その例としてAtomを出したんだが?わからなかった?
Atomは設定ファイルにJSONを使っているが、
JSONが""だからって、ソースコードは""にする必要はない。

506:デフォルトの名無しさん
16/09/25 14:41:15.30 0J+83ZC2.net
>>500
それはJSONの仕様を満たしていないから
JSONではない。

507:デフォルトの名無しさん
16/09/25 14:54:10.10 hrPU7kVw.net
>>491
JSONでは、JSのコメントが使えないの?
それならダメだわ
Ruby, Groovy みたいに、言語そのものが、
設定ファイルとしても読める、DSL風の言語が優れている

508:デフォルトの名無しさん
16/09/25 15:05:45.98 0J+83ZC2.net
>>503
お前「言語そのものが設定ファイル」の意味分かってないだろ。
言語そのものを設定ファイルとして読むっていうのならどの言語でも可能だよw
コンパイルしないと実行できない言語の場合は
コンパイラを内蔵する必要があるだろうけど。

509:デフォルトの名無しさん
16/09/25 15:36:47.03 y4/VuarS.net
>>501
「必要はない」じゃないんだよ
「ない」という答えを出すのは簡単
元の質問に、「そんなのどっちでも関係ない、そんなこと聞くな」というのは簡単
でもそれじゃつまらないから、しいて言えばの理由をひねり出してるんでしょ
その前提分かってそういうこと言ってる??
しいて言えばそういうこと気にする人もいるということを言ってるの
別に一般的に気にする必要があるとは誰も言っていない

510:デフォルトの名無しさん
16/09/25 15:38:42.41 0J+83ZC2.net
はぁ?
じゃあGoogleのコーディングスタイルに合わせて
'' を使うべきだっていうのが正確だよw

511:デフォルトの名無しさん
16/09/25 15:39:13.51 0J+83ZC2.net
あ、見にくかったな。
' ' (シングルクォート)でくくるべきだっていうのが正解だよ。

512:デフォルトの名無しさん
16/09/25 15:51:35.05 0J+83ZC2.net
どっちが良いのかは、実際にどちらが多く使われてるかで決めたほうが良いよ。
URLリンク(sideeffect.kr)
理由がある場合は必然的に多く使われるし
理由がなくとも一般的なJavaScriptの書き方として統一しておいたほうが良い。
あともちろんJavaScriptとしての話なので、
ここで他の言語のルールを参考にする必要はまったくないw

513:デフォルトの名無しさん
16/09/25 15:59:27.55 0J+83ZC2.net
数もそんなにないし転記しようかね? (俺のスタイルと完全に一致してるw)
・最後にカンマ vs 最初にカンマ → 最後にカンマ
○ var obj = {
foo: 1,
bar: 2,
× var obj = {
foo: 1
, bar: 2
・スペース vs タブ → スペース
・関数名の後にスペースを入れる vs いれない → 入れない
○ function foo() {
× function foo () {
・引数の前後にスペースをいれる vs いれない → 入れない
○ function fn(arg1, arg2) {
○ if (true) {
× function fn( arg1, arg2 ) {
× if ( true ) {
・オブジェクト定義の:の前後にスペースを入れる → 値の前のみに入れる
○ foo: 1,
× foo:1,
× foo : 1,
・条件文のキーワードの後にスペースを入れる → 入れる
○ if (true) {
× if(true) {
・シングルクォート vs ダブルクォート → シングルクォート

514:デフォルトの名無しさん
16/09/25 16:00:55.47 rgw8PMte.net
前から疑問なんだが
JSONはなぜ大文字なの?

515:デフォルトの名無しさん
16/09/25 17:02:28.76 +OU/FywJ.net
>>510
JavaScript Object Notationの略であり、英語ではこの様に単語の頭文字を抜き出した略語を他の語と区別するために大文字で表記する慣習があるから

516:デフォルトの名無しさん
16/09/25 17:17:23.26 0J+83ZC2.net
つーかatomの例を出したんだから
そこから理解しろよw
JSONとJavaScriptは別物なんだから
JSONがダブルクォートだからって、
ソースコードまでJSONに合わせる必要ねーだろ。
文字列をくくるのはシングルクォートだし、
オブジェクトのキーであればそもそもクォートでくくらない。

517:デフォルトの名無しさん
16/09/25 17:20:48.99 iekzKwrb.net
>>503
JSONではコメントを使えないのでAtomではテキストエディタで編集する前提のファイルにはCSONを使っている
上でJSON云々で暴れている人はJSONをまるで理解してしないと思われる

518:デフォルトの名無しさん
16/09/25 18:25:59.06 afVL0VXc.net
どっかでみた感じのテンションの上がり方だな。
尻カンマではなく頭改行カンマ派だと言うことはおいといて、
なぜその言語のサブセットか自体であるべきではないと言い切っちゃうんだろう。
最悪、パーサが無くても解釈出来るようにだと思うんだが。

519:デフォルトの名無しさん
16/09/25 18:34:17.91 KU3wtz+G.net
>>513
頭悪いな
じゃpackage.jsonでも、なんでもいいぞ
atomを使ってないのは正解だ

520:デフォルトの名無しさん
16/09/25 20:12:32.35 0J+83ZC2.net
知らないかもしれないが、package.jsonっていうのはnpmの話だ。
ソースコードをみれば、何が言いたいのかわかるだろう。
URLリンク(github.com)
JSONの流儀に合わせるやつなんていない。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch