まつもと ゆきひろです
In message "[TSpython:308] モザイクで巨大壁画を・・・"
on 03/02/04, "機械伯爵" <kikwai@...> writes:
| 例えば極端な例で、AWKとPythonを比較してみましょう。
|
| AWKをプログラミング言語とするかどうかは難しいとこ
|ろですが、とりあえずCSVのような2次元テキストデータ
|を処理するのには、絶大な威力を発揮します。
|
| PythonでもAWKと似たようなことはできないわけではな
|いですが、AWKの専門分野のような処理を行おうとすると、
|どうしても記述に無駄が多くなりますし、AWKに比べて見
|やすいコードが書けるかといえば、必ずしもそうではあ
|りません(処理速度たるや、比較にならないでしょうし)
同じ問題を解決するプログラムをAWKとPythonで記述した場合、AWK
の方が分かりやすいケースがある、という主張だと理解しましたが、
よろしいでしょうか。
別に反対はしません。そういうこともあるでしょう(そうでないこ
ともあるでしょう)。しかし、その差はさほど大きくないとは思い
ますし、たとえばPythonとAWKを比較してAWKの方が圧倒的に短いと
か、圧倒的に読みやすいとかってことはないと思いますし, AWKの
方がPythonより速い局面というのもかなり限定されると思います。
AWKだとちょっと複雑なことをしようにもライブラリがないし。
Pythonがあるのに今さらAWKなんてというのがニュータイプの正直
な印象でしょう。
| AWKよりもうちょっと詳しい記述をしたいならIconのほ
|うが使いやすいでしょうし、計算をせずにフィルタリン
|グのみに専念するのなら、sedのほうが使いやすいかもし
|れません。
|
| Iconでパワー不足ならPerl、Perlのモジュールが一定
|以上大きくなりそうならRubyやPython。
まったく客観的でない個人的な意見ですが、適用分野ごとに言語を
切り替えるというアプローチはだんだん時代遅れになっていくので
はないかと思います。昔はsh, AWK, sedなどツールを使い分け、そ
れらの能力を駆使したプログラミングが行われていたわけですが、
正直なところ、Perl以後の現代ではひとつの言語がカバーする領域
はどんどん広くなっていると思います。以前はshで書いていたもの、
あるいはCで書いていたものまで「スクリプト言語」の守備範囲に
なってきているという。
| 今回は出発地点がAWKでしたから、こんな感じになりま
|したが、処理内容の規模といった非常に単純なベクトル
|であっても、それぞれ「これくらいならコレがベスト」
|と思う言語があると思うのですが、いかがでしょう?
|
| 汎用言語になればなるほど、特化した文法を組み込む
|ことが困難となり、ライブラリやモジュールを使用する
|ことになるわけですが、ライブラリやモジュールを使う
|ことは、それだけ「素早さ(記述の少なさ・・・さらに
|は見易さ)」を犠牲にしていることを考えざるをえませ
|ん。
言語の切り替えにはコストがかかりますから「これくらいならコレ
がベスト」を追求するより前に「そこそこデキるヤツで、ほとんど
全部カバー」というアプローチの方が総合的なコストは低くなると
いうのが現実のような。そして、そういうアプローチが許容される
言語がすでに登場してきていると思うのです(Pythonとか)。
まつもと ゆきひろ /:|)