2014-09-22(月) | -- (permalink)

『12ステップで作る組込みOS自作入門』という本を読んだので、その内容や感想について書いてみる。

動機

ウェアラブル時代に備えて

勝手な予想ではあるが、これからウェアラブル端末向けアプリケーションの需要が高まるとすれば、それはすなわち計算資源の少ない環境での開発が避けられないということではないかと思う。そうすると、アプリケーション開発者も低レイヤの知識を身につけておいて損はないのではないかと考えている。

モバイルソフトウェアの限界を感じて

なんとなくソフトウェアだけで問題が解決できそうな時代ではなくなってきた気がして不安を感じている。もし本当にハードウェア・スタートアップとかが台頭してきて、一山当てる時代とかになったら対応できないとまずそうだ。(モバイルソフトウェア開発自体に価値がないということではない。「アプリとか誰でも作れる。そのうち無くなる仕事。」みたいなニュアンスの語り口の人をtwitterとかで稀に見ることがあるが、「いや、そもそもこっちだって動くものを作るだけなら簡単なのは百も承知だ」というのがあって、そういう言説には多少イライラしている。ある程度の規模のアプリケーションを長期的に運用していくマネジメントとか、大規模なフレームワークを隅まで理解している人の重要さとかを側で見ていると、「誰でも作れる、なんていう暴論を吐くのはアプリケーション開発に対する無知のなせる業だろ」っていうのが一番言いたくなることだが、それは置いておく。)

未来予測のため

コンパイラやハードの進化がソフトウェアで実現できることを底上げするわけであるから、これらの進化を追うことはソフトウェアの未来予測に繋がるはずである。例えば、Appleが製造するチップの性能やLLVMの新機能などを見ていれば、Apple製デバイスの長期的な戦略が多少は察しがつく(今だとGPU関連の技術への投資が目立つ...)。

ブラックボックスを減らすことで、心理的負荷が下がる

私の中でプログラミングの最大のモチベーションはブラックボックスを減らすことだ。前書きにこんな記述がある。

興味があれば、本を読むのも試行錯誤をするのも面白いでしょう。面白ければ続けることができます。大切なのは継続することです。そしてそのために考えるべきは、「どの順番で読むべきか?」ではなく「自分のモチベーションを維持するにはどうしたらよいか?」なのです。だから好きなことをやる ...


2014-07-07(月) | -- (permalink)

はじめに

私は文系出身のプログラマであるが、今年の4月でようやくプログラマ歴2年になった。 その私がこの1年間で読んだ本を、整理も兼ねてまとめてみる。

読んだ本一覧

コンピュータサイエンス全般

「文系出身の」と見出しをつけたものの、文系・理系がどうとかあまりそういうことにはこだわらないし、また、こだわるのは愚かだと思っている。 かのハイゼンベルク

科学は人間によってつくられるものであります。これはもともと自明のことですが、簡単に忘れてしまいがちです。 このことをもう一度思いかえすならば、、しばしば嘆かれるような人文科学-芸術と、 技術-自然科学という二つの文化の間にある断然を少なくすることに役立つのではないでしょうか。\<W.ハイゼンベルク(1974)『部分と全体』みすず書房 p.vii>

と文理の壁を超えることの重要性を説いている。こうした哲学的基礎があったからこそ、 不確定性原理という非常に深遠な考えを導き出すことが出来たのであろう(私程度の知性では全く理解できない原理ではあるが)。 とはいえ、文系出身の私にとってはアカデミックな教養がないというのは大変なコンプレックスであり、

「「コンピュータサイエンス」」

とか、ましてや

「「計算機科学」」

などと唱えられると、「ははぁ、参りました」となってしまう。 というわけで、そういうアカデミックな雰囲気を醸し出す本にはめっぽう弱い。

コンピュータの構成と設計〜ハードウエアとソフトウエアのインタフェース

通称パタヘネ。 3章までしか読めていない ...


2014-06-25(水) | -- (permalink)

はじめに

Yahoo!JAPAN様主催の第1回 Swift LT会に参加し、発表してきた。

資料

要点

「Swift中級編」と銘打ち、初見では気づきにくい側面について自分なりにまとめてみた。

Objective-Cでの開発経験があり、Swiftの特徴・メジャーな言語仕様についてある程度理解していている、そういう人を対象にしている。

そういう意味での「中級」だ。

内容から察していただける通り、「Objective-Cの動的特性にかなり愛着がある」というのが、この発表での私の立場だ。

Swiftに対する印象

自分のまだまだ短い業務経験の中で、実用的な言語の登場を目の当たりにしたのはこれがはじめてだった。

だが、別に物珍しい言語でもなんでもない。近年の実用的な言語の仕様、LLVMの進化などから言って「当然そうなるであろう」という言語だ。

実用化を強く意識しているだけに、「驚き最小の原則」が徹底されていて、ドラスティックな機能は存在しない。

あくまでアクのないベーシックな言語ではあるが、

等々、モダンで重要な機能は全部取り入れた、そういう印象が強い言語だ。

情報発信の価値について

むしろ印象的だったのは、言語そのものではなく、その広がり方だった。


2013-12-12(木) | -- (permalink)

第2回potatotipsに参加し、発表してきた。

主にAVFoundationを利用した、iOSでの動画編集の話をした。使用したスライドは以下のものである。

Video Editing in iOS from Yusei Nishiyama

噂通りのハイレベルさで、1人持ち時間5分という短さながらも、濃い内容の発表ばかりであった。
特に珍しい意見でもないと思うが、

これらが揃うと、「良い発表」だったなと感じる。
とはいえ、普通は1つ満たすだけでも難しい。

それぞれのトレードオフもあるので、全部揃えるとなると、これは並大抵のことではない。

まだまだ、先は長い。


2013-06-07(金) | -- (permalink)

プログラマとして働いていると、特に非プログラマの人から

「hogehogeをfugafugaするようなことって(プログラムで)できるんですか?」

という類の質問をされることが良くある。当然そういうことを聞かれたら

「できると思いますよ。」

と答えるしかない。まともな思考な人が考えるような要求、つまり「iPhoneの画面をダブルタップすると、口やかましい上司を遠隔地へと転送できる」とか「母親をカメラで撮影すると、実家への仕送りを強要しなくなる」とか、そういうのではない要求、というものはたいていの場合、理論上実現可能だからだ。

コンピュータサイエンスに明るいわけではないが、「チューリング完全」という言葉ぐらいなら知っている。コンピュータの世界における「やればできる」に相当する概念といったところか。

つまり、「できますか」という問に「やればできる」と答えていて、さらに、「やればできる」のことを「できる」という言葉で表してしまっているわけだ。

物質世界にくらべて、「やればできる」のが当たり前のソフトウェアの世界だからこそ、その当たり前の答えを使ってしまうと厄介なことが起きる。まず、

「Aさんがhogehogeをfugafugaできるらしいから、やってもらおう。」

という風に自分が頼まれてしまう。そして、自分自身も判断力が鈍っていると

「まぁ、やればできるはずだからやってみるか。」

と安易に引き受けてしまうわけである。プログラムの世界以外なら ...