パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

悩まされてしまうプログラミング言語の奇妙な特徴は?」記事へのコメント

  • 邪悪な仕様を列挙すると
    ・var の巻き上げ
    ・ブロックスコープがない
    ・モジュールがない
    ・class 構文がない (class のようなものは作れるのに!)
    ・ただの function なのに this にアクセス出来る (コールバックに登録した時は便利だけど、直で呼び出した時は this は何?とか)
    他も細かいのは色々…

    ただ、そんな JavaScript を俺は好きだ。

    • by Anonymous Coward

      ES6では巻き上げ無しのブロックスコープ宣言letが入ったし、
      モジュールも、class構文も、thisバインド関数もあるじゃん。

      • もちろん、ES6 でかなりの部分が解決されたけど、まだ当たり前のように使えるようになるには
        数年掛かると思うよ。

        現状でも TypeScript を使えばかなりの部分が解決されるから、基本 TypeScript でやっちゃってるけどね。
        (短いものは直接 JavaScript だけど)

        親コメント
        • by Anonymous Coward

          JSが使われる環境も目的も広いから、何をもって当たり前と言ってるのかが分からない。
          最近モジュール周り仕様がファイナライズされたから、ES6->ES5コンパイラをもって、当たり前に使えるとしてもいいと思う。

          • > JSが使われる環境も目的も広いから、何をもって当たり前と言ってるのかが分からない。
            普通意味するところは、ES6 を直接実行できる環境が全てのブラウザで提供されている事だ。

            > 最近モジュール周り仕様がファイナライズされたから、ES6->ES5コンパイラをもって、当たり前に使えるとしてもいいと思う。
            ES6->ES5コンパイラなんて、TypeScript 以外実用的じゃないんで、まだ当たり前にはなってないね。
            TypeScript もES6の一部を取り入れてるだけだし。

            親コメント
            • by Anonymous Coward

              TypeScriptはES6->ES5コンパイラじゃない。
              Traceurとかがそうであって、十分実用的。
              全てのブラウザとか言ってたら、ES5でさえ未だに当たり前に使えないことになってしまう。
              それにES6は互換性があるから、段階的にES5の上に実装していくことができる。
              現に全てのメジャーブラウザの最新版では、何らかの機能が実装されてる。
              逆に今だES5の公式テストにフルパスする実装は殆ど無い。
              万人に共通する当たり前だなんで言えない。

        • by Anonymous Coward

          Traceurの未実装な点について
          末尾最適化、正規表現のyフラグは重箱の隅
          型付配列やプロトタイプセットなんかはDOMやブラウザの独自仕様として既に実装されているものを使う
          normalizeやMath系は分離されてて、別のライブラリで補う

          実質無いのはSymbolとProxy-Reflectの2点
          まあProxyはどうにもならない。素で使えるようになるのも最も後になろう機能
          Symbolはまあfor-ofのための@@iteratorが重要で、for-ofでは見せかけの対応がなされてるのでどっぷり使おうとしなければ問題ないと言える
          でもこれも変換に頼れるような機能ではあまりない

          10月になればChrome/Firefoxの安定版でS

「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常

処理中...