Diary?

2008-02-06
Wed

(00:32)

初心者用プログラミング言語について。身も蓋もない結論から書いてしまうと、そんなもんあるわけねーだろ、ヴォケ。どんなプログラミング言語にも得手不得手はあって、最初に持った目的を容易に達成できそうな言語を選んだら、他の部分でどん詰まりになるなんてのはいかにもありそうな話だ。

それじゃあどんな言語でもいいかというとそれは全然違う話で、最初に覚えるべき言語が備えているべき特性はいくつかあげられると思う。パッと思いついたのは次のような感じ。

  • 導入が簡単。世の中にはどのパッケージを落とせばいいのかすら初見じゃさっぱりわからん言語もあるが、そういうのはまず最初に学ぶに値しない
  • 開発環境が端末とエディタだけでもやっていける。 IDE は初学者にとっては邪魔なだけだ。そういう言語を勧める奴は、単に頭が悪いか自分が初学者だった頃のことをすっかり忘れているのだろう
  • 複数のパラダイムを扱える。関数プログラミング (クロージャと高階関数があれば関数プログラミングをサポートしてるといっていい) とオブジェクト指向プログラミング (これは多くの言語でサポートされてるか) があれば、とりあえずどうにかなる (マクロやテンプレートといったメタプログラミングはどうしたものか。一度やっといて損はないと思うけど)
  • オフィシャルサイトのチュートリアルやリファレンスがしっかりしている
  • その言語で書かれた実用的なソフトウェアのソースが容易に手に入る。他人のソースはいつの時代もいい教材だ
  • フリーソフトウェアである。言語に限らず、プロプライエタリなものにどっぷり浸かるのは危険極まりない

ところでもっと身も蓋もない事を書いてしまうと、プログラミングに打ち込むんならガタガタ言ってねえでとっとと Unix 系 OS に乗り換えろなんだけどな。 Windows と違って、プログラマのためのお膳立ては充分過ぎるほど揃っている。

追記: 「まともな文法」を入れるのを忘れていた。ちなみにまともな文法の定義は「一貫性がある」「シンタックスシュガーが無意味に多くない」の二つ。あとはあれだ、モジュール性。これは真面目に書くと長くなりそうなのでまたいつか。

(21:36)

結局、 Ogg に助けられる形になった。まだまだ課題は山積みだけど、特許とロイヤリティの問題はクリアできる見込みが出来た。本当、こういうフォーマットの存在は有難いよ。後出しジャンケンで金をせびり出した Fraunhofer とか Unisys の連中は xiph の人たちを見習えってんだ。特に後者は GIF を扱うフリーソフトウェアを駆逐したからな、相当罪は重い。

(23:05)

流石に俺以外の人間がさっぱり手出しできない今の状態は非常にマズいので戦力を増やしたいのだが、そうなるとネックになるのが人材の育成である。ぶっちゃけ全然育ってないからなあ。そして何より人がいない。ああ、今研修やってる新人を使うという手もあるか。

ところでその人材育成だけど、やる気があって酷く頭が悪いわけではない人なら、別にこっちがあれこれ教えなくても勝手に勉強して勝手にレベルアップしてくれるものだ。なので、俺はプログラマの教育に関する問題は恐らく

  • やる気があるのに学ぶ機会を奪われている人をどうするか
  • やる気があるがやり方が恐ろしく間違っている、あるいは何をやっていいかわからない人をどうするか
  • やる気の無い奴をどうするか

というものだろうと思っている。二番目の奴は相手がよほどの大バカものでもない限り、多分問題にはならない (実際問題になったことは大学の時に一回こっきりである)。三番目の奴はどうしようもないので放置するしかない。となると、早急に解決しないといけないのは最初の奴だ。多分。そしてこの学習機会損失が起こる原因は

  • 忙しくて勉強する時間が無い
  • 仕事から得られるものが無い

の二つの合わせ技だろうと思っている。忙しくても仕事から得られるものがあればスキルアップになるし、仕事が簡単でも余裕があれば一歩上を目指す余力が生まれる。そして先月までいた現場はこの複合技でやられていた。そしてこの考えが正しいと仮定するなら、本当に解決するべき問題は真に無駄な作業時間をどうやって減らすかになって、そしてこれは

  • 本当に必要な作業かどうか管理する側と管理される側で合意が取れていない

というのが真相な気がする。そして前の現場では成果物の運用とか成果物の作成方法とかそもそもの成果物の定義が全然一貫していなくて、振り返って見ると結局は単なる無駄骨だったというのがとても多かった。そしてそういった無駄骨で相当な労力を消費していて、心身ともに疲弊してやる気デストラクションというのが日常的な光景だった。

じゃあ解決策は何かと言うと、えーとね、ぶっちゃけ一般解は無いと思ってる。お互いに何が問題なのかという認識を正しく共有するのは難しいことだし、そもそも本当に何が問題か誰もわかっていない。なので、俺が上に書いたことが凄まじい的外れという可能性は多いにある。

人材育成の話から逸れた気がするが、いつものことだからまあいいや。

Creative Commons
この怪文書はクリエイティブ・コモンズ・ライセンスの元でライセンスされています。引用した文章など Kuwata Chikara に著作権のないものについては、それらの著作権保持者に帰属します。