パスワードを忘れた? アカウント作成
176231 story

ECMAScript 第5版 承認 21

ストーリー by soara
普及にどれくらいかかるだろう 部門より

sekia 曰く、

Publickeyのエントリで知ったが、 ECMA-262第5版の仕様策定が完了した(ECMA Internationalの発表)。 仕様書はECMA InternationalのWebページからダウンロードできる。

1999年発行の ECMA-262第3版以来、実に10年ぶりの新規格である(第 4版は欠番)。 ECMAScriptの新規格策定においては、 Microsoft/Yahooが主導するマイナーチェンジとバグフィックスが主のECMAScript 3.1と、 Adobe/Mozilla/Opera/Googleが主導する野心的な機能拡張である ECMAScript 4の間で対立があったが、 ECMAScript Harmonyと呼ばれる統合計画によって ES3.1をベースに ES4のサブセットを取り込む形で両者が合意した経緯がある。

プレスリリースで触れられている主だった新機能は次の通り:

  • アクセサプロパティ
  • オブジェクトのreflective creation (反映的生成?)とイントロスペクション
  • プロパティ属性のプログラム制御
  • 追加的な配列操作関数
  • JSONのサポート
  • エラーチェックとセキュリティを拡張するstrictモード

主要ブラウザベンダの多くが策定プロセスに参加しており、早期の導入が期待できるだろう。また、本規格はファストトラック制度を用いてISO/IEC JTC 1にも提出されるとのこと。

本家でも取り上げられている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • オブジェクトのreflective creation (反映的生成?)とイントロスペクション

    「イントロスペクション」は間違いではないでしょうか。プレスリリースでは対応する部分は (introspection ではなく) inspection となっています。 inspection は検査とか調査といった意味です。

    ECMAScript 5 仕様書の中で inspection という言葉はイントロダクションの中にしか出てこないようですが、オブジェクトの inspection とはおそらく ECMAScript 5 で追加された Object.getPrototypeOf, Object.getOwnPropertyNames 等の関数のことを指しているのでしょう。

  • http://www.infoq.com/jp/news/2009/12/ecmascript5 [infoq.com]

    JavaScript とか詳しくないですが順当で妥当な進化っぽいですね。

  • by Anonymous Coward on 2009年12月19日 20時19分 (#1691490)

    先走っちゃったActionScriptはどうするんだろう?
    このまま、継続?

    • 先走っちゃったActionScriptはどうするんだろう?
      このまま、継続?

      Adobe の動向を追っているわけではありませんが、まあこのまま継続でしょうね。 ECMAScript として標準化されなかったからやめるという類のことではないと思います。

      僕は変数が型を持っていてコンパイル時型検査がある言語の方が好きなので、 Adobe 側の陣営に頑張ってほしかったのですけれど。

      ECMAScript 5 に対応したブラウザーがまだない段階で言うことではないかもしれませんが、 ECMAScript の次の版はどうなるんでしょうね。

      親コメント
  • by Anonymous Coward on 2009年12月19日 11時29分 (#1691316)
    • by sekia (38775) on 2009年12月19日 12時18分 (#1691332)

      それに関連する表現なのは確か。というかリフレクション/イントロスペクションは殆ど同じ用語です(よね?)。
      ただJavaScriptって名前空間(もどき)がオブジェクトだし、プロトタイプ自身もオブジェクトなので今までもやろうと思えばいくらでもリフレクションできた訳で、今更挙げる分には何か特別のAPIでもできたのかと思って訳しあぐねました。まあ訳さなくても大体分かるよね。

      # 今仕様書を簡単になめてみたけど"reflect"とか"object creation"といった単語が出てくる部分にはそれっぽい文章は見当たらず

      --
      言ってないことに反論するなよ
      親コメント
      • by Anonymous Coward
        > それに関連する表現なのは確か。というかリフレクション/イントロスペクションは殆ど同じ用語です(よね?)。

        あんなのリフレクションじゃねえと怒りだす人たちもいますけどねww
        • by Anonymous Coward

          >>リフレクション/イントロスペクションは殆ど同じ用語です(よね?)。
          たぶん全然違うと思う。

          リフレクションはリフレクション。
          リフレクションはそれがない言語だと奇妙に感じるかもしれないけど、
          ソフトウエアサイエンスの普通の専門用語だから。

          >あんなのリフレクションじゃねえと怒りだす人たちもいますけどねww

          それが普通の反応だと思うよ。

          ちょっとでもリフレクションを勉強したら、その荒唐無稽ぶりに驚かされます。

          • by Anonymous Coward
            > >>リフレクション/イントロスペクションは殆ど同じ用語です(よね?)。
            > たぶん全然違うと思う。

            イントロスペクションはリフレクションの一部
  • by Anonymous Coward on 2009年12月19日 14時06分 (#1691364)
    求人広告でも「ECMAScript」を求めてる案件が見当たらない。
    「JavaScript」ならいっぱいあるのに。

    なんていうか、もう少し読みやすい文字列にはならなかったのかな・・・
    • by Anonymous Coward on 2009年12月19日 18時29分 (#1691460)
      > 求人広告でも「ECMAScript」を求めてる案件が見当たらない。
      > 「JavaScript」ならいっぱいあるのに。

      「JavaScript」で求人しておいて、
      「ECMAScriptって分かります?」
      「え? 何でしょうか?」
      「(あぁ、こいつ素人か)」
      と判別出来るメリットがあります。

      求人広告で最初から「ECMAScript」と明示すると、
      「JavaScript」出来ると自認してる人が「ECMAScriptとは何か?」を予習して応募するため、
      この手が使えません。
      親コメント
      • by Anonymous Coward on 2009年12月19日 21時45分 (#1691512)

        「JavaScript」で求人しておいて、
        「絵熊Scriptって分かります?」
        「え? 釣りですか?」
        「(あぁ、こいつ2ちゃんねらか)」

        親コメント
        • by Anonymous Coward
          var aa = [
          "         \   ∩─ー、    ====",
          "           \/ ● 、_ `ヽ   ======",
          "           / \( ●  ● |つ",
          "           |   X_入__ノ   ミ   そんな餌で俺様が釣られクマ——",
          "            、 (_/   ノ /⌒l",
          "            /\___ノ゙_/  /  =====",
          "            〈         __ノ  ====",
          "            \ \_    \",
          "             \___)     \   ======   (´⌒",
          "
    • by Anonymous Coward
      Java Scriptを標準化したのがECMAScriptで、そこから分化したのがAdobe Flashで使われているAction Scriptと理解しているけど、相互互換性とかどうなんでしょうね。環境ごとに閉じているようなイメージがある(実態は良く知らないが)。
      • by fcp (32783) on 2009年12月20日 9時19分 (#1691613) ホームページ 日記

        ActionScript は以前ちょっと触ってみただけで、まともにプログラムを書いたこともありませんが、知ったかぶりをして答えます。

        Java Scriptを標準化したのがECMAScriptで、そこから分化したのがAdobe Flashで使われているAction Scriptと理解しているけど、相互互換性とかどうなんでしょうね。環境ごとに閉じているようなイメージがある(実態は良く知らないが)。

        ActionScript は ECMAScript を元にしていますが、一番目立つ違いとしては、 ActionScript 2.0 以降では変数が型を持っていてコンパイル時型検査があります。 ECMAScript 3 の次の版でこのあたりの仕様を入れるかどうか揉めた、というのはタレコミ文にも書かれている通りです。

        それと、言語の違いを無視しても、使える API が違うので互換性はありません。例えば、ブラウザー用のスクリプトの中でブラウザーが持つ API (document.getElementById('...') とか) を使うように、 Flash Player 用のスクリプトでは Flash Player が持つ API (Sprite クラスとか) を使うわけです。

        親コメント
    • by Anonymous Coward

      LispにおけるCommon Lispみたいなもんだよ。

      • by Anonymous Coward
        C99のが適切なような。
  • by Anonymous Coward on 2009年12月20日 11時50分 (#1691632)

    今回から入った、コーディングミスを減らすための制約が強いモードなのですが
    なんだかPerlみたいですね。
    http://www.infoq.com/jp/news/2009/12/ecmascript5 [infoq.com]
    http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/ [ejohn.org]
    に解説があります。

    • by Anonymous Coward

      いつの間にかUNIX環境では最も使われている言語になってるっぽいのに、
      use strictって書くだけで動かない糞プログラムが量産されてるしなぁ・・・

      制約の緩い言語って、プログラムを書ける人が気楽に書くには便利なツールだけど、
      プログラム書いたこともない奴が適当に書いても(というより既存のソースをコピペして
      適当に改竄しても)、なんとなく動いてしまうってのが最悪に始末が悪いと思う。

      それをまた「経験のないオレでも出来た」とか自慢げに語るんだよなー。
      個人の趣味でやるんなら別にいいけど仕事でやるなって思う。
      後からメンテする人の事くらい考えろorz

      • by Anonymous Coward

        それはあなたの同僚がダメなのであって、Perlがダメなわけじゃないと思いますけど

  • by Anonymous Coward on 2009年12月20日 12時42分 (#1691635)

    クラス定義はこのバージョンでもないのですね。
    今後もprototypeプロパティで疑似クラスを実装するのか・・・・。

typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...