ハンガリー語表記の目的は、意味的な注釈を埋め込むことです。
- それ以外の場合は、言語、特に型システム AND
- 文脈から明らかではない
変数の名前で。さて、Perl には静的型システムがないため、ハンガリー語表記がかなり一般的であるように見えるかもしれません。しかし、ハンガリー語表記の価値を示す標準的な例を見てみましょう。それは、信頼できないデータの出所を追跡することです。
ハンガリー語表記のよく引用される例の 1 つは、文字列が信頼できるソース (またはサニタイズされている) または信頼できないソースから来たかどうかに応じて、アプリケーション内のすべての文字列変数の前にs
or u
( safeとunsafeを表す) を付けることです。しかし: unsafeをtaintedに置き換えるだけで、Perl での汚染の完全な説明が得られます。したがって、この場合、Perl には静的型システムがありませんが、動的型システムがあります。言語内で信頼できる/信頼できないのセマンティクスを表現できる型システムであるため、ハンガリー語表記は不要です。(また、汚染のサポートが組み込まれていない言語であっても、サブタイピング (Python、Ruby、Smalltalk、...)、注釈/属性 (Java、C#、...)、メタデータなど、通常ははるかに優れた方法があります。 (Clojure、...) および静的型付け (Haskell、ML、...)。
また、Perl は非常に表現力が高いため、変数のコンテキスト全体を頭の中に (または 1 画面分のコード内に) 保持しておく方がはるかに簡単です。
もちろん、良いネーミングも役立ちます。
覚えておいてください: ハンガリー語表記法は C 用に発明されたもので、C は表現力がなく、静的な型システムを持ち、ほとんどの場合、ジョークのオチとしてのみ使用されます。