Web向けプログラム言語には
・PHP
・.NET(.aspx)
・VB(.asp)
・JAVA
・HTML+COLDFUSION
その他ありますが、複数言語対応の開発と管理(改修や保守)が比較的楽なものはどれでしたでしょうか?
(それぞれ多言語対応の手法を概要で結構ですのでご教示頂けますでしょうか?)
PHPとJAVAだけしかやったことがありませんが、どちらも大差ありませんでしたね。
PHPについては、defineを並べたファイルを作って、言語によってincludeを分けました(message_en.php, message_ja.php, message_cn.php。。。)
JAVAの方も大差なく、Propertiesで実装しました。
Propertiesの方が、デフォルトプロパティが使えるので、ローカライズしていない部分はデフォルトを使えるので、文言が決まっていない状態などでは楽でした(各国工場向け生産管理システムだったため、開発部門じゃ現地語がわからなかったので・・・)
フリーのプログラマとしてですが、PHP Perl JAVAでの開発に携わった経験があります。他の回答者の方と同じで、PHPとJAVAにはそれほど差は感じられませんでした。強いて言うなら、PHPの方が自分が慣れているのと、もともとPHPはHTML出力に特化した関数を多数持っていてその面でPHPの方が楽と言えば楽でした。
Perlは二度と関わり合いになりたくない言語の一つで、というのも、Perlの場合、人によってコーディングスタイルが全く違い、当時の自分の力ではソースを読むために必要なエネルギーが非常に大きかったからです。
蛇足ですが、長期運用を考えた場合、PHPには少し不安が残る気がします。というのも、PHP3→PHP4→PHP5と、毎回後方互換性をある程度犠牲にして言語の改良を行っており、PHP4で作った物をPHP5が入っているシステムで動かそうとすると意外と手間だったりします(思わぬ落とし穴があるというか)。個人的には好きなスクリプト言語の一つですが、保守に関する不安はどうしても少しだけあります。
参考になれば幸いです。
有難う御座います。
私もHTMLべたべたに書けるPHPがお気に入りなものの、バージョンの件とフリーウエアゆえの一抹の不安を持っています。
あと、私が書いたコードをあとから他の人が見て分かってもらえるかどうか(これは私自身の問題でしょうけど)。
PHP4または5を用いるのであれば、
文字コードはUTF-8で、多言語部分はob出力バッファ制御関数のフックからタグを独自拡張して実装してしまおうかな、などと考えているところです。
.NETはMSが意地でも続けるでしょうから(多少の言語仕様変更はあるかもしれませんが)
保守や他人への引き継ぎの面で安心できるのですが、なにせ重いし内部の動きが理解できない・・・
これ(多国語対応)はPG言語の特性にはそれほど関係無く、手法の問題だと思います。
Perlで多国語対応をした経験がありますが、結局テンプレートエンジンを使うかどうかです。
Perlの場合では、HTML::Templateを使って、多国語ページを用意して、どの国語で表示すべきかのパラメータでスイッチしました。エラーメッセージ等も同様です。
PG言語の特性に関して言えば、PHP、ASP、ColdFusionなどは元々HTML埋め込み型言語として登場したPG言語ですから、テンプレートエンジンを使ってしまうと、そのレーゾン・デートル(存在理由)が問われてしまいます。
特にPHPの場合はSmartyというテンプレートエンジンがデファクトスタンダードみたいになっていますが、「HTMLから極力PGコードを排除する」というテンプレートエンジンの思想に反してSmartyはあれこれ不必要な機能満載で、スキルの低いプログラマに任せてしまうとHTMLがSmarty言語で氾濫してしまいます。
またColdFusionなどは、オブジェクト指向のベースクラス継承などによる手続きのテンプレート化が困難である為、私の場合はColdFusionを勉強した時点で見限りました。
そういう意味ではWebに特化したPG言語の方がむしろ使い難い、というのが私の感想です。
有難う御座います。
HTML::Templateという名称を初めて知りました。
>スキルの低いプログラマに任せてしまうと・・・
確かにこれは避けたいですね。
VBに有りがちな、意味は分かっていないけどとりあえず動くからOK、みたいな
泣けてくるコードの保守は堪らないです。
PHPを選んだ意味がなくなってしまいますね...。
早速有難う御座います。
あまり大差ないですか...