blog.syfm

徒然なるままに考えていることなどを書いていくブログ

イケている技術、イケていない技術

たまに Twitter で「イケている技術」とか、「イケている会社」といったフレーズが流れてくることがある。そしてそのたびに違和感を覚えている。
Twitter で流れてくることにはほとんど価値はないので、それに対してなにか意見するのは不毛かもしれないけど思っていることを書いておきたい。

(ここでは面倒なので「イケている技術」で固定します)
イケている技術に挙げられているのは、例えば今、人気が徐々に出てきているプログラミング言語だったり、有名な企業が公開したライブラリやフレームワークなどの新しい OSS だったりが多い。
人はハロー効果に弱くて、例えば GitHub のスター数が 1000 を超えていたり、GoogleFacebook が公開しているというだけでいとも簡単にそのソフトウェアを信用してしまう。

しかし、実際に気になった OSS を読んでみたりすると、あまりにもひどいコードでうんざりすることがよくある。
言語特有のイディオムに則っていなかったり、エラーを握りつぶしていたり、テストがなかったり、OSS にもかかわらずドキュメントが整備されていなかったり、とにかく一度読んで見ればすぐにコードの臭いがすると思う。

「イケている」という言葉は、その対象以外はイケていないのか?と思ってしまうので、自分はかけられたくない言葉だし、言いたくない言葉だと思っている。 ただ、あえて自分の思うソフトウェア開発における、イケている技術を定義してみると、「ソフトウェアの品質を担保できる技術」だと思う。
プログラミング言語や、フレームワークは、ただの手段の一つであって、それ自体が品質を左右するわけではない。(左右する場合もあるけど、あくまで一つの要因でしかない)
適切な設計、ドキュメント、コードとコードレビュー、十分なテストと環境など、そういった一見地味に見えるところの方が大切だと思う。適切な設計がなされていれば、新しい技術を取り込むといった拡張も容易だし、バグの修正も容易となる。
一部の人には当たり前に見えると思うけど、実際は当たり前ではない。ひどいコードはインターネットのありとあらゆるところに落ちている。

yshibata.blog.so-net.ne.jp

自戒を込めて、初心を忘れずに日々学習していくために今思っていることをこうして残しておきたいと思う。