教えて! キラキラお兄さん「クソみたいな社会は変えられますか?」:プロエンジニアインタビュー(4)(1/4 ページ)
「Haskell」を業務アプリ開発にフル活用する岡本和也さんは、「UZUZ」のCTOを務めると同時にソフトウェア開発会社「ARoW」を経営し、さらにフリーランスエンジニアとしても活動する。Haskellにこだわる理由、“複業”エンジニアとして活動する理由を聞いた。
岡本和也さんは、既卒、第2新卒向け転職支援サービスを提供する「UZUZ(ウズウズ)」の最高技術責任者(CTO)だ。それなのに「月に2日程度しか出社しない」という自由な働き方で仕事に取り組んでいる。
UZUZのCTO職を務めるのと同時に、ソフトウェア開発会社の「ARoW(アロー)」を経営し、さらにフリーランスエンジニアとしても活動する。得意技として駆使するプログラミング言語は「Haskell」だ。純粋関数型言語として知名度が高いが、業務利用はまだ珍しい
複数の仕事に同時に取り組み、希少なHaskell技術者でもある岡本さんの自由な働き方の背景には、どのような考えがあるのだろうか。話を聞いてみることにした。
Haskellの魅力に取りつかれ、業務アプリ開発にフル活用
岡本さんは、もともとプログラミングや電子工作が好きだった。
小学6年生でVisual Basicと出会い、大学の学部3年の授業でHaskellに触れた。岡本さんはたちまちHaskellの魅力にとりつかれた(なぜHaskellを学ぶと良いかなどの記事も執筆している)。
「Haskellプログラミングには、パズルを解くのと同じ種類の楽しさがある」と岡本さんは語る。「関数型言語としての側面はあまり強調したくない」とも言う。
「関数型言語といえばまずLispを連想するが、HaskellはLispとはまるで違う言語。カッコがたくさん出てくるわけでもない」
岡本さんが考えるHaskellの特徴は「型が厳密。型に関してコンパイルエラーが出ないように書くところにパズル的な面白さがある。コンパイラを通ったプログラムは、まずランタイムエラーが出ない」というところ。確かに、エラーが出にくいことは業務上のプログラミングでも有用な性質だ。
Haskellは、他の大抵の有名な言語と設計思想が違う。数学的なバックグラウンドもある。使いこなすには能力が必要──はっきり言うと、頭が良くないと使えないのではないだろうか? ところが岡本さんは、堂々と「僕は頭が良くないのでHaskellを使っています」と話す。どういうことなのだろう?
岡本さんによるとHaskellは、「言語仕様が大きくない。というよりも、いかに機能を削ぎ落としていくかを追求した言語。何しろ変数に値を代入して書き換えることができない。その制約の中でプログラミングすると、知らず知らずのうちにバッドノウハウが入らないプログラムになる」とのことだ。さらに「うっかりミスがあり得ない。コンパイルを通ればランタイムエラーが出ない」と続ける。
他の言語の話をすると、例えばRubyは型宣言を書かなくて済む動的言語で、自由で多様な書き方ができるので人気がある。ただし、動的言語はプログラムを実行させないとバグを発見しにくい。そこでRuby活用の現場ではテスト用のコード(テストケース)をプログラムと一緒に書き、実行時にバグを発見して修正することを繰り返すテスト駆動開発(TDD)の考え方が広がっている。
ところが岡本さんは「僕はRubyは厳しいですね。きっと実行時エラーを出してしまう。でもテストケースを書きたくない」というのだ。
これは言語や手法の批判というより、立場が違うということだろう。ここで筆者にはテスト駆動開発の普及に取り組むあるプログラマーの顔が脳裏に浮かぶ。「……これは話がかみ合わないだろうな……いや、意外と面白い対話になるかもしれないぞ……(取材者の心の声である)」。
岡本さんの考え方は、多数派の開発者の考えとちょっとだけ違うかもしれないが、岡本さんにとってHaskellは“ちょうどいい”言語だったのだ。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 教えて! キラキラお姉さん「仕事がワクワクしないときは、どうしたら良いですか?」
ブライダルにまつわるさまざまな情報を提供しているウエディングパークのシニアエンジニア/データサイエンティスト 菅沼幸子さんは、先輩女性エンジニアというロールモデルが身近にいない中で、幅広い経験を糧に現在の仕事に就いている。その歩みと原動力を尋ねた - 教えて! キラキラお兄さん「プログラミングは視覚障害者にオススメの職業って本当ですか?」
視覚障害者こそ、PCを使いこなしていろいろな仕事についてもらいたい――全盲のセキュリティエンジニアは、画面読み上げソフト(スクリーンリーダー)を駆使して、人の役にたつモノ作りを続けている - Haskellプログラミングの楽しみ方
関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう - 関数の話をしよう
Haskellは関数プログラミングのための言語だというのだから、関数が出てこなくては話にならない。今回は、関数の話をしよう - もう少し関数の話をしよう
新しい考え方あるいは用語というものは、通常「よく分からない」ものだ。それは、いままでに知らないことだからだし、だからこそ「新しい」考え方なのだから