blog.bouzuya.net

2016-09-17 雑記 -- ASI: Auto Semicolon Insertion の感想 他

ASI : Auto Semicolon Insertion について調べたり、bouzuya/rally-client-js をつくっているうちに一日が終わる。


ASI : Auto Semicolon Insertion について。

まず semicolon の有無に関わらず ASI の挙動を正しく理解すべきだと思う。ASI は ECMAScript の仕様にその規則が明確に記載されている。ASI を理解することなしに semicolon だけに注意していると、改行のある箇所に不適切な semicolon を自動挿入される可能性がある。

また semicolon をなくすのはそれなりの合理性があると思う。適切に semicolon を打っても、不適切な改行で台無しになるわけだから、最初から改行に十分な注意を払って ASI を活かしていくのも選択肢としてはありだと思う。

設計者の意図とそれへの感想。 ASI の意図は誤り訂正のように読めるので、 semicolon なしが設計者の意図した形かと言われると怪しい。しかし、もしそうなら ASI を仕様に含めるべきでなかったとも思う。仕様に含まれている以上、ASI の規則を理解して semicolon を省略する人々を批判するのは難しいと思う。その仕様のせいで不適切な改行などというものがあるわけなので……。

要約すると、semicolon をなくす流派は一定の合理性はある。言語設計者の意図に反するが、仕様も悪いので否定は難しい。仕様化されたのが広まった後のような気もするので、同情はする。


非公式な RALLY の client である bouzuya/rally-client-js をつくっていて、公式の bug を見つけた。つらい……。