"血をもって書け。そうすればあなたは、血が精神だということを経験するだろう。"

いつまでたっても(自分が)embeddedに精通できないnの理由

まずembeddedに対する憎悪と偏見と愚痴を今吐き散らす。
思いっきりdisるね!以下に書いてあることには全く責任を持ちません。

  1. 分業しすぎてコードを書く機会を失う。
  2. かといって回路理論を理解しているわけでもないのでただの配線屋に成り下がる。
  3. そもそも低レイヤが生理的に嫌い。
  4. 未だにポインタが呑み込めない。某LLのリファレンスの方が遥かに分かりやすい。
  5. アドレスをハードコードとか吐き気もの。
  6. CPU性能が低いので最適化対象が抽象度ではなくパフォーマンス。
  7. 各CPUとか、そのポートやレジスタなどの部分機能に個性がありすぎ。
  8. 回路とソフトが密結合。
  9. ノイズが乗る。特に無線。
  10. 回路バグの再現性が低い。
  11. 電源管理。
  12. 瀕死の部品が半端に粘ってくれる。
  13. オシロの取り回しが面倒。調節箇所多すぎ。
  14. コストの高い部品。一度壊れたら買い替え。
  15. 物理的な干渉や配線。
  16. 物理リソースの入手性が悪い上に、管理もことごとく面倒。検索性の低さ。
  17. 気がついたら生産中止。欲しいものは品切れ。
  18. 本気でやるためにはOSまで自作。
  19. CPUマニュアルをメーカーが囲い込んだ結果オープンソースコミュニティから白い目で見られる。
  20. 一部雑誌を除いて秀逸なドキュメンターがいない。どの雑誌をとってもマニアック。
  21. ドキュメントがないので勘と経験の比重が大きすぎ。
  22. 熱狂的な情報集積コミュニティがない。
  23. 基礎教養がないのでつまずいたらググるしかない。
  24. ググった情報は焦点が狭いか古すぎて参考にならない。
  25. そもそも、情報の鮮度や洗練度に対する感覚が遅れすぎ。

ほとんど完全に個人的な問題だけど、特に最後の方とかなんとかならないかな。

でも

実はこれってweb以外のほとんど全ての世界がこういう調子で回ってるわけだ。webの醍醐味を知っている人がwebに情報を垂れ流すことを考えると、web上で最も充実している情報はwebそのものに何らかの関係のある情報になるのは当然。逆に言えばその他の情報はまだ全然整備されていない。少なくとも日本語においては。

それはその情報がwebとの接点を持っていないからであることもある。でも、embeddedの場合はそのままであってほしくない。

あまりによくできたハイウェイのおかげでwebエンジニアはどんどん飽和してコモディティ化することが予想される。確実にwebとリアルデバイスの融合が待っているポストweb2.0な世界において、embeddedに明るいエンジニアがwebしかhackできないエンジニアに比べて希少価値が高まることは明らかだ。

その割には、webな人々もembeddedな人々も、自分の世界に固執しすぎだろ。もっと交流しろよ。CGI動かすのも楽しいけど、WiiやカメラやLCDや多関節ロボットをhackできたらもっと楽しいじゃないか。
ということがいいたかった。

というわけで

つべこべ言わずにembedded勉強しないといけないし、もっとembeddedとwebな人々の尻を組織的に叩いていかなきゃなー、というロジックを組み立てていたのだが、ちょうど先日TBを送ってくれたid:hxmasakiなどはまさに両方の最先端にいるお手本みたいな人といっても過言ではないと思っている。言い訳をして精進を怠っている僕と、ロボコンの最上位の頂へ登りつめた彼。頭が上がらない。