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

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

  • 邪悪な仕様を列挙すると
    ・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の公式テストにフルパスする実装は殆ど無い。
              万人に共通する当たり前だなんで言えない。

              • > TypeScriptはES6->ES5コンパイラじゃない。
                いや、TypeScript の範疇で使えば部分的なES6->ES5コンパイラといえる。

                > Traceurとかがそうであって、十分実用的。
                これも部分的なものだろうし、デバッグが困難なコードを出力するのに実用的とは言えない。

                ES5 はメジャーなブラウザはテストに99%程度合格してるから、当たり前のように使えるといえる。
                (古いバージョンのブラウザをサポートし続ける必要があれば、ほとんど永久に無理だが)

              • by Anonymous Coward

                Traceurは全機能網羅してるし、デバックも十分可能。
                使ったこと無いのに想像で言わないで欲しい。

              • もちろん使ったことあるけど、ソースはかなり変形されて出力されてた。
                それでも(無理やり)デバッグ可能といっているのであれば、そうなんだろうね。

                あと、
                http://kangax.github.io/compat-table/es6/ [github.io]
                ここ見てサポートしてない機能をあるなと思っただけ。全機能網羅してるかは詳細に調べてはいない。

                親コメント
              • by Anonymous Coward

                ソースマップというものがあるんだよ。
                なぜTypeScript知ってるのに分からないのか。

              • あーなるほど。
                TypeScript は使う必要が無いし、以前使った時に変数の値を変更できなかったから使うのをやめた。

                親コメント

犯人はmoriwaka -- Anonymous Coward

処理中...