読者です 読者をやめる 読者になる 読者になる

正義と微笑

numb_86のブログ

知識のブラックボックス 2015年11月の活動報告と、今後の方針

  • 読書
  • 瞑想
  • 創作活動
  • ランニング
    • 2回走って6キロ。
  • パソコンを買い換える
    • 今まで使っていたものが7年目に突入して限界を迎えつつあったので、買い替え。
  • JavaScriptの勉強を再開
    • このサイトで勉強。11月は第一章から第十章まで。何年か前にちょっとだけ勉強して、しばらく中断していた。その後もJavaScriptは多少使っていたけど、知っている知識の使い回しだったり、必要に応じてピンポイントな情報を得たりしていただけだったので、久しぶりにちゃんと勉強しようかと。
  • Bootstrapの勉強


 ドットインストールは本当に素晴らしい。
 何かを新しく勉強しようとするとき、まず概要を掴むのにはこれが最適だと思う。

 これが無料で、しかもユーザー登録すら不要でほとんどの機能が使えるのだから、すごい。
 しかも元々は個人レベルでこれを企画し作り上げたのだから、さらにすごい。


 Bootstrapについて調べていたら、こんなページも見つけた。
 「ホームページをつくろう」「ウェブプログラミングをやってみよう」と思った人なら、一度は辿り着いたことがあるであろう「とほほのWWW入門」である。

 まだ更新が続いているのがすごいし、BootstrapやAngularJSといった比較的新しい技術をカバーしているのもすごい。
 このサイトの情報も当然、無料で誰でも見ることが出来る。


 上述のJavaScriptの学習サイトにしても、無料で勉強できるのだからありがたい。
 記述ミスやサンプルが間違ってる、などはあるけど、内容を理解していれば気付けるレベルなので問題ない。市販の技術書でもその手のミスは山ほどあるし。


 こういったサイトを見ていると、インターネット万歳、インターネットで人は革新できる、という気持ちになってくる。

 しかし残念ながら、インターネットはあくまでもツールであり、無条件に人の可能性を引き上げてくれるものではない。

 インターネットが普及すればするほど、大衆化していき、ネットの世界も、現実に近づいていく。
 インターネットがどんなに素晴らしいものでも、使う側が変わらなければ、結局何も変わらない。

 稚拙な人たちがのさばって誠実な人が潰されていくのを見ると、そんな風に思ってしまう。


 最近プログラミングを始めたあるブロガーが、「Railsのようなフレームワークを使っていては、プログラミング能力は身につかないのでは?」という、率直な違和感や疑問を表明していた。

 それが、「誰かをバカにしたくてしょうがない人たち」の格好の餌食になってしまい、そのブログはたちまち、程度の低い揶揄や冷笑で溢れかえってしまった。
 ちょっとした炎上状態になっていた。

 一度そういう流れが出来るともうどうしようもなく、「こいつは叩いていいんだ」と認定され、わらわらと寄ってきては、得意気になって稚拙なコメントをぶつけていく。


 その結果、そのブログは閉鎖されてしまった。まだ始めて2ヶ月くらいだったのに。
 勉強熱心で意欲のある初学者を叩いて、潰して、一体何なのだろう。
 そんなことをして得意気になっていることが、どれだけ惨めなことか、分からないのだろうか。


 初心者を叩くなとまでは言わない。
 正面からの批判や指摘なら、むしろ望ましいことかもしれない。
 間違っているなら、間違っていると指摘したほうが、優しいのかもしれない。

 だがそのブログに寄せられていたコメントのほとんどは、そういう類のものではなかった。

 揶揄、冷笑、揚げ足取りばかり。しかも皮肉が効いているわけでもなく、ただただ稚拙。
 あるいは、そのブログをちゃんと読んだとは思えないような、論点やレイヤーがずれた筋違いなコメント。


 そもそも、そのブロガーの指摘は、とても真っ当なものだと思う。
 というより、かねてから指摘され、議論になっている話題である。
 以下の記事が詳しい。

 今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 | sumyapp

 まさにこの記事の通りで、Railsなどのフレームワークは、まだ十分にブラックボックスになっていないのだ。


 電子メールを利用している人たちは、電子メールがどんな仕組みで動いているのか、知らない。知る必要もない。
 知らなくても、基本的には問題なく使えるからだ。
 グーグル検索もそう。その技術的な背景など知らなくても、まったく困らない。


 だがプログラマにとってのフレームワークは、違う。
 その中身を知らなくても問題なく使えるなら構わないが、そうではない。

 テンプレ通りのことなら出来るが、ちょっとカスタマイズしたり、問題に対応したりしようとすると、中身の知識がないとどうにもならなくなる。
 中身を知らなくても困らないレベルにまでブラックボックス化が進んだのなら、無理に中身を学ぶ必要はないと思う。
 だけど実際にはまだまだ、そんな状況には程遠い。

 中身が分かっていないがゆえに、ちょっと動かしただけで予期せぬ挙動をして大惨事。なんてことはよくある。


 もちろん、便利なものは積極的に使うべきだし、中身を知らなくても十分に用途を満たせるのなら、分からないままでもいいとは思うけど。むしろそのほうが効率的かもしれない。


 これはどのような分野にも言えることだと、自分は思っている。
 結局のところ、基本的な理解や知識があってこそ、応用が効く。
 便利な道具はどんどん使うべきだが、基本を疎かにしていては結局、出来ることがかなり制限されてしまうと思う。

 だから、地味で退屈に思えても、今はちゃんと、基礎的な勉強や修練に取り組みたい。
 遠回りに思えても、しっかりとした土台を作ることでこそ、将来的により大きな仕事が出来るはずだから。


 フレームワークは学習の妨げになる恐れがある、というのは自然な感覚であり、アメリカの著名なプログラマであるエリック・レイモンドも同様の指摘をしている。

ウェブアプリケーションフレームワーク、たとえば RubyOnRails, CakePHP, Django などは、あまりに簡単に見かけ上の理解に到達できてしまうため、本当にむずかしい問題に直面したり、簡単なものへのソリューションをデバッグするときでさえ必要になるようなリソースを与えてくれないかもしれません。
How To Become A Hacker: Japanese


 ちなみにこの素晴らしいドキュメントも、その翻訳も、無料で公開されている。
 翻訳者の山形浩生氏は他にも、オープンソースに関するエリック・レイモンドの文書を翻訳して公開している。

 同氏は、ピケティの『21世紀の資本』の訳者でもあるのだが、同書の要約を無料で、ネットで公開してくれている。
 また、パブリックドメインとなっているケインズの著作についても、ボランティア(趣味?)で翻訳し、公開している。


 インターネットは本当に誰にでも開かれていて、刺激に満ちていて、偉大な知性がゴロゴロしていて、しかも自分もそこに何かを投げることが出来る。
 やっぱりインターネットは、人を革新させるかもしれない。

 残念なことも多いけど、偉大な人たちの背中だけを見ながら、インプットとアウトプットに励んでいきたいと思う。