初心者がどうやってプログラミング言語を学ぶべきか。というのが、話題になっている。一方で最近はAPIなどを駆使した軽量のwebを個人で作ることがブームになりつつある。
これを見て思ったのは、「じつは初心者がプログラミングを学ぶのは、こういうものをつくったりまねたりすればいいんじゃないかな?」ということである。
ここ数年LL(Lightwieght Language)というものがはやっている。たとえばperlやruby, phpなどのスクリプト言語を指して用いられることが多く、修正などが容易な言語を指して用いられる言語である。 ここから文字って、Lightweight Software/Serviceという考え方を持ってみるのはどうだろうと考えた。
考え方としてはこうだ。
エンタープライズ向けに提供することは無理。ユーザからお金をもらうことも・・・・ちょっと難しいかも。けど、プログラミングを勉強する一環として、めんどくさい部分は全部APIまかせにし、自分の考えを実現する。
よくよく考えてみると、自分がプログラミングを学んだひとつの方法として、他人のプログラムを見てコピペしたりまねをするというのがあった。
「これが作りたい!」と思うと、オープンソースのソフトを持ってきたりしてまねをするわけである。車輪の再発明がかっこ悪いという批判はあるものの、現代はソフトウェアの歴史なんてしらないし、世の中にあるソフトウェアを網羅的に把握してたりする人のほうが少ない時代である。
批判する人も出てくるだろうが、今回のえがちゃん騒動を見てて思ったのは、批判しない人のほうが多いしそっちのほうが一般的であるという事実である。
あれがすごいことなのかといわれると、ソフトウェア的な価値はほとんど0である。ただそれは、売り物にはならないとかいうレベルの話であって、いちいち趣味に対してセキュリティホールがどうのこうの言うのは、親切心でないとしたら、余計なお世話だろう。(俺は個人的にあの人は嫌いだが)
実はこのLightweight Software/Serveceと呼べるようなものは割と簡単にまねすることができる。ほとんどのものはAPIたたいて、単純な四則演算してるだけだからである。
また、たいていの場合は、いろんなところを右クリックしてURLを調べたり、htmlのソースを見てみたりするとプログラムそのものが見れてしまう。
先にあげたamachangのものであれば、親切に画面の一番下に利用しているAPIが書いてある。もうこれで材料はそろった。あとは、試行錯誤して何とか真似をすればいい。(と、言ってるほど楽でもないんだろうが)
ひとつ思うのは、プログラミング初学者のためにLightweight Software/Serviceのソースを公開してみてはどうだろうかということ。
おそらくソースコード自体も高々数百行程度だろう。読むのもそれほど苦ではない。
最近ではgit hubやcodereposというような、自分のソースコードを公開するための仕組みも提供されている。
利用にはgitなどの利用方法がわかっていないといけないが、自分でwebで公開する手間に比べたら幾分らくだと思う。
こういったものをプログラミング初学者のために、また自分が学ぶためにやってみるというのはどうだろうか?