僕は普段Windowsプログラミングをする事が多く、なんとなくハンガリアン記法を踏襲しています。
Win32の環境ではどういうわけか不自然なキャスト(reinterpret_cast)を多用しないといけないのでハンガリアン記法は有効だと僕は思います。
逆に言えばそのようなWin32の仕組みがおかしいという事にもなるわけですが。
一方、C#やJavaやそれに近い言語では型の意味はあまりありませんし、例えば純粋な数値計算のプログラムなどでは変数は「数値」か「ポインタ」かくらいの意味しかなく、intだろうがshortだろうが本来区別の必要はないというのも納得の行く所です。
というわけで、そのような環境ではハンガリアン記法はデメリットが目立ちます。
(ハンガリアン記法はマイクロソフトが推奨していましたが、C#などを推進するようになってからはハンガリアン記法も推奨しなくなっています。これは Win32環境の弱点をハンガリアン記法でカバーしていたのを、今度はC#によって改善しようという考え方もできると思うのですがどうでしょうか)
さて、今後のために結局どういう記法がいいのかと検索してみるとハンガリアン記法をすごい毛嫌いしてる人がけっこういる事がわかります。
中には明らかに間違った事を書いてる人もいますし、理にかなったもっともな意見もあります。どうやら宗教戦争の様相を呈しているようです。
おそらく、否定・肯定の割合はその人がどのような環境で開発をしているかに依存するので議論しても仕方ないような感じだと思うのですが。
なんとなく否定派・肯定派の種類を分別してみた。
・否定派
・変数名が意味不明になる、発音できないのが嫌など、そもそも嫌い派
・型を意識する必要はないだろう派
・そもそも高級プログラミングにおいて変数型を意識する必要はあまりない派
・後から型を変えれなくなるor変数名を変えないといけなくなるからダメ派
・C++などでクラスや型の種類が増えてくると対処不能だからもういらない派
・規約からからはずれた記述(記法違反)があると大混乱するからよくない派
・大嫌いなマイクロソフトが推奨してたから嫌い派
・マイクロソフトも推奨しなくなったなだから良くないんだろう派
・SUN,GNUなどの環境で洗脳されてる派
・食わず嫌い派or判断できるレベルに達してない派
・よくわからないけど否定しといたほうが玄人っぽいから派
・肯定派
・慣れてるし判りやすいから。とにかく好き派。
・Windowsプログラミングで慣れ親しんでいるしメリットもあるから派。
・人に薦められたからいいんだろうし確かに便利だな派。
・デメリットはあるもののうまく使えば役立つ派。
・言語やプラットフォームによって使い分ける派
・部分的に使えばいい派
・Windows環境で洗脳されてる派
・これしか知らないor本当の高級プログラミングを知らない派
・よくわからないけど「記法」とか言っておけばカッコいいっぽいから派
うーん。面白い。
うちはハンガリアン記法は使わないですねぇ。とかいいながら、窓だと中途半端に使うこともありますが、結局プログラムしやすいことば一番大切という(苦笑<br>で後から変数名の統一を取りたくなって激しく後k…ry
みかんさん>>変数名を変更しづらいというのもデメリットなのかもしれませんねえ。とはいえ、最近はエディタが進化してるので単語の置き換えはある程度簡単ですが。