2018/12/27 00:42

自己増殖型言語」にてこう書きました:

>「プログラムを組むことができる」とはっきり言える人は、10個や20個のプログラミング言語は使えるでしょう。その全部を資料なしにというわけではないでしょうが。ならば、代表的と言えるような5,6個の言語すら検討できないというのは、好奇心の欠如か、能力の不足であるように思えます。教員の仕事が忙しいのはわかります。ですが、「だとしても」です。

このように複数のプログラミング言語に触れる利点はなんでしょうか?

同じような言語に触れていてもあまり意味はありませんが、考え方が違う言語に触れるということは、問題に対しての考え方を複数持つということに繋がります。そしてもちろん、言語あるいはパラダイムごとに得意な処理があるので、問題に応じて使い分けるという選択肢も得られます。

以前、本プロジェクト、本企画の母体である講習会にて「C言語かN88-Basicを使えれば問題ないでしょう?」と仰った方がいました。N88-Basicは極端としても、講習会で聞く限り、プログラミング言語は1つ使えればいいと考えている方も少なくないようです。どちらも汎用言語ですから、その認識がまったく間違っているとは言えません。ですが、こっちの言語を使えばもっと簡単に問題を解けるという例はそこら辺にいくらでも転がっています。

教育用言語」において awk (gawk) を出したからですが、文字列処理をするなら awk (gawk) はかなり賢明な選択でしょう。同じようなことをC言語でやるとしたら、かなり面倒になることは想像に難くないと思います。このあたりは ruby でも Python でも構いませんし、どれだけ汎用なのかを考えれば、 ruby や Python を選ぶという選択肢もあるかと思います。

ここで一つ重要なのは、すくなくともユーザー・レベルであれば、なにもかもを一つの言語で書いてしまうのではなく、複数のツール (どの言語で書かれているとしても) を組み合わせて処理をするという考え方です。これは unix の基礎的な考え方でもあり、今もって有効な考え方です。

とは言え、本企画およびその母体の講習会では細かいところにまで入るつもりはありません。問題に対して複数の考え方がある、あるいは複数の考え方を繋ぎ合わせて処理をするという考え方があるというところに留めるつもりです。もちろん、「留める」とは言っても、それぞれの処理や処理の考え方を実現しやすい言語があるというところには触れます。

しかし、それ以前に問題をどう考えるかが掴めていないと、このおおきな問題には入れません。そのためにこそ、特定の言語を用いるのではなく、そもそもの考え方を体験し理解したもらえるようにしています。

興味を持っていただけたなら、ぜひご支援をお願いしたいと思います。