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

PHPのnamespaceのセパレータに'\'を採用 30

ストーリー by hayakawa
「:)」だと(一時的に)和めたんですけど 部門より

あるAnonymous Coward 曰く、

PHPのnamespaceセパレータに'\'が採用されることになった。(本家/.より)

採用基準は、

  1. セパレータとしての入力のし易さ
  2. typo-vulnerability(typo時にエラーや警告なく意図しない動作に繋がらない)
  3. 構文解析のし易さ
  4. IDE互換性
  5. 文字数
の5項目。開発者らが他の候補と比較しながら'\'に決定するまでのIRCログも公開されている。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • なんでまた (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2008年10月27日 14時14分 (#1444849)
    ASCII(ISO 646 [wikipedia.org])で言語ごとに違うところの文字を当てるんでしょうね。
    • 同じコードポイントに異なる文字が対応するというのは
      混乱の原因になるとはいえ、インタープリタ自体は
      単に数値として見ているだけなので問題はないのでしょう。
      とはいえ、いろいろなシチュエーションでエスケープのために
      使われる \ というかバックスラッシュを割り当てるというのは
      なにか問題が出ないだろうかと心配になります。
      どんな議論が交わされたのか後で見てみるか…
      --
      屍体メモ [windy.cx]
      親コメント
    • by Anonymous Coward
      それを言うなら、$[]{|}だって、同じように各国違う文字が割り当てられてるみたいですが。
      • by Anonymous Coward
        他の言語圏はISO 646やめてISO-8859-xx等々使ってるんから問題ないとか?
  • なるほど (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2008年10月28日 11時52分 (#1445650)
    >1. セパレータとしての入力のし易さ
    >2. typo-vulnerability(typo時にエラーや警告なく意図しない動作に繋がらない)
    >
    がしばらく「???」だったんですが、英語キー配列の場合は「:」と「;」が同じキーに割り当てられてるんだ!っていうのに気付いて妙に納得した。
    「::」を「:;」とかって入力しちゃって、しかもドット単位でしか見た目違わないからエラーにまったく気付かない、と。

    どうせ互換性維持のためにユーザー側で選択的に「::」も使えるようにするんだろうし、バックスラッシュ「も」使えますよっていう仕様変更ならエンドユーザー側にはほぼ影響ないでしょうね。
    • Re:なるほど (スコア:1, すばらしい洞察)

      by Anonymous Coward on 2008年10月28日 11時59分 (#1445658)
      見ためのこともあるかもしれないけれど、
      主眼は、「タイプミスしたときに文法的に正しいものとして受諾されずエラーになるような字句要素を選ぶ」ってことじゃないかな。
      親コメント
    •  >1. セパレータとしての入力のし易さ
      って、

       英語キーボードだとバックスラッシュキーはほかのキーよりひときわ大きめな(ことが多い)

      のを指しているんだとばかr(ry
  • by acc (36768) on 2008年10月28日 11時13分 (#1445598)
    RSSでは、バックスラだったのに /.J の本文はエンマークでした。
    この時点でナニがアレ。

    Macってどちらも入力できるんでしたっけ。
    • by Anonymous Coward
      可能だよ。Option+¥
      ¥\

      ほらね!でも投稿するとどちらにせよ¥になるのでA.C

      • Re:\ or ¥ (スコア:2, 興味深い)

        by Anonymous Coward on 2008年10月28日 11時49分 (#1445646)
        Macの場合は'\'も'¥'も両方入力出来るので, 初心者は混乱するでしょうね. 日本語なら'¥'ですみますが, 韓国語だと'₩'なので, ソースの見にくさは尋常ではないでしょうね.
        親コメント
      • Re:\ or ¥ (スコア:2, 参考になる)

        by khwarizmi (23623) on 2008年10月28日 16時58分 (#1445927)

        現状のmacのややこしいのは,ソフトによってバックスラッシュと円マークをどれくらい区別してるかが違うこと.普通にバックスラッシュを入力した時に,円マークが入力される場合もあればバックスラッシュが入力される場合もある.さらに,その円マークがバックスラッシュとして使える場合もあれば使えない場合もあるという(たぶん文字コード依存?).

        TeXとかでコマンドを打ち込む時とか,正規表現で¥dとか打つ時に何で動かないんだろうとはまる時が.個人的には円マークなんてほとんど使わないので,TeXのコマンドとかエスケープとかのバックスラッシュをいちいちoptionつけて打ち込む羽目になるのは勘弁して欲しいと思ったり.

        親コメント
      • Re:\ or ¥ (スコア:2, 参考になる)

        by Anonymous Coward on 2008年10月28日 20時25分 (#1446037)
        まじめに答えると、Unicode上では、¥ と \ はコードポイント(文字コード値)が異なるからです。
        一部のソフトがこれらを同一視することがあるのは、正規化 [unicode.org]のためです。
        親コメント
        • ASP.Netで (スコア:1, 興味深い)

          by Anonymous Coward on 2008年10月29日 13時58分 (#1446518)
          ASP.Net で開発してたとき、IE7 のテキストボックスで¥が\に表示されてイタイ目に遭った。どうやらIE7標準の内部CSSフォントがそうなってるみたいなのと、body 等の上位ノードからフォントスタイルを継承しないみたいで、¥が表示されるようにするため、わざわざテキストボックスへのフォント指定をしてやらないといけないのが苦痛でした。

          巧い回避方法があるのかもしれませんが。
          親コメント
        • by Anonymous Coward
          つうか、レガシーな文字コードでも区別があったのに、あえて区別を曖昧にしてきたのが、
          Unicode が絡む途端に問題が顕在化するわけですな。
          # なので、これを理由に Unicode 批判は筋違い
        • by Anonymous Coward
          ちゃんとコードポイントで書かないと、誰もが勘違いしている可能性もあったりなかったり。
          U+5C REVERSE SOLIDUS
          U+A5 YEN SIGN
          U+FF3C FULLWIDTH REVERSE SOLIDUS
          U+FFE5 FULLWIDTH YEN SIGN
      • by Anonymous Coward
        ウチのMacでは'¥'と'\'は同じものには見えないんですが…
        何故だ…
      • by Anonymous Coward
        Windowsだけど¥は¥のまま、\は\のまま表示されてますよ?
  • 「考え方が斜め上方向にいっちゃってるんじゃないのか」
    「そりゃ形が \ だからね」
    という話になりました。
  • by Anonymous Coward on 2008年10月28日 10時57分 (#1445578)
    ダメだこんな言語
    • by Anonymous Coward
      「ダメだ」とか安易に言わずに、「どうあるべきだ」と思って今回採用された仕様を「ダメ」と判断したのか言ってほしいですね。
      文句だけなら誰でも言えるんです。
      文句だけのコメントはノイズにしかならない。
  • by Anonymous Coward on 2008年10月28日 12時28分 (#1445689)
    でエスケープになって困る。

    対応しようとするとエスケープを""内のみとかに限定すればいいのか。
    じゃぁコメント行に"を奇数書いた人とかどうすんのよとか頭の悪いことを考えてしまうではないか...

    # 本質(プログラムの動作)とは関係ないとはわかっちゃ居るけど気持ち悪い
    • by Anonymous Coward
      「コメント開始」に出会ったら「コメント終了」が見つかりまで解析せずに読み飛ばすでしょ、普通。
      「//」や「#」なら行末まで、「/*」なら「*/」まで。
  • by Anonymous Coward on 2008年10月28日 13時58分 (#1445785)
    1時間バグを探した結果が
    「セパレータを入れたつもりがバックスペースでデータを消していた」
    と言う落ち
  • by Anonymous Coward on 2008年10月28日 15時11分 (#1445836)
    - クォートされた文字列の中に名前空間やクラス名を書くのが面倒になった
    - ワンライナーを書くのが面倒になった

    プログラムからwindowsでファイルパスを扱う時に起きた面倒がほとんど全て当てはまる感じですか。
    C#の @"" みたいなのはphpにはあるんでしょうか。

  • by Anonymous Coward on 2008年11月03日 2時50分 (#1448922)
    またパーサ作ってる人の手抜き用構文ですね.
    何にするか議論するぐらいならlispかML(か最低でもC++)を見習えと言いたい.
    どうせ, 初心者が混乱する とか言って逃げたんだろうが,
    これで次期標準?ではラムダ式とかクロージャをサポートするとか のたまってるから笑えるw
    ----- C++はツンデレ
typodupeerror

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

読み込み中...