教えて! キラキラお兄さん「クソみたいな社会は変えられますか?」:プロエンジニアインタビュー(4)(2/4 ページ)
「Haskell」を業務アプリ開発にフル活用する岡本和也さんは、「UZUZ」のCTOを務めると同時にソフトウェア開発会社「ARoW」を経営し、さらにフリーランスエンジニアとしても活動する。Haskellにこだわる理由、“複業”エンジニアとして活動する理由を聞いた。
サーバ側はServant、フロントエンドはElmやES6で
岡本さんが手掛けてきた開発プロジェクトは、UZUZの仕事も他の仕事も、Webアプリケーションが中心だ。HaskellでWebアプリを作るため、DSL(ドメイン特化言語)のServantを活用している。「型レベルプログラミングをむちゃくちゃ使っている」ことがServantの特徴だ。
「従来の型では表現できない副作用に関する型、例えばWeb APIのリクエスト仕様などを明記し、コンパイル時にその仕様に従っているかを確認できる」
このような型の制約をうまく使いこなせば、Haskellの強みを生かし「ランタイムエラーがまず出ない、改修、保守しやすい」プログラムを作れる。
Webのフロントエンド側では、最近気に入っているのがElmだ。Haskellに似た言語仕様を持ち、JavaScriptを生成する。JavaScriptを生成するプログラミング言語(Alt JS)はTypeScriptなど複数登場しているが、その中でもElmは「型がすごく安全」だと岡本さんは強調する。
「フロントエンドで本当に必要なものだけに機能を絞っている(HaskellのMonadなどは使っていない)のに加え、The Elm Architecture という、React.js + Reduxのもととなったフレームワークを公式にサポートしている。このため実際にフロントエンド開発を始めるまでの学習障壁が低い」
この他、JavaScriptの最新仕様であるECMAScript6(ES6)で記述したVanilla JS (フレームワークを使わない素のJavaScript)を、現行バージョンであるECMAScript5仕様のJavaScriptにコンパイルするやり方も使っている。「(ECMAScript6の新機能の)クラスとconstは使いたい」のが理由だ。
「ざっくり言って、規模が大きい開発ではElm、規模が小さい場合はES6+Vanilla JSと使い分けている」と岡本さんは説明する。
就職先を3カ月でドロップアウト
岡本さんは、新卒で就職した会社を3カ月で辞めた。
Haskellに関連した研究開発の人材を募集していたソフトウェア開発の大手企業だった。ところが入社してみたら、非エンジニア職も含めた全新入社員が同じ研修を受けるため、技術研修のレベルが岡本さんにとっては低過ぎた。それに研修中は社内からインターネットに接続できなかった。
時間の無駄だと思った岡本さんは、研修の途中から出社することを辞め、自宅で勉強することにした。すると人事部から呼び出しが掛かり、いろいろあって、研修期間中に退職してしまった、というわけだ。
研修の印象は散々だったが、コンサル営業の研修だけは気に入ったそうだ。「課題を解決する提案をグループで作る」という内容で、「自分は割とできるな、と感じた」そうだ。岡本さんはプログラミングだけでなく、コンサルティングや営業、経営にも関心があり、「そちらの能力を伸ばしてみたいな」と感じていた。
その後岡本さんは、不動産会社の営業職に第2新卒として就職した。「営業を勉強したかった」からだ。
この会社には半年いた。営業のノウハウを学べたことは、その後の起業やフリーランス活動に大いに役立っているそうだ。2番目の会社にいた時期の終わりごろには、会社の業務を効率化するためのプログラム開発に取り組んでいた。
退職後も会社との関係は良好で、フリーランスとして独立した後の最初の仕事は、この不動産会社から受注した。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 教えて! キラキラお姉さん「仕事がワクワクしないときは、どうしたら良いですか?」
ブライダルにまつわるさまざまな情報を提供しているウエディングパークのシニアエンジニア/データサイエンティスト 菅沼幸子さんは、先輩女性エンジニアというロールモデルが身近にいない中で、幅広い経験を糧に現在の仕事に就いている。その歩みと原動力を尋ねた - 教えて! キラキラお兄さん「プログラミングは視覚障害者にオススメの職業って本当ですか?」
視覚障害者こそ、PCを使いこなしていろいろな仕事についてもらいたい――全盲のセキュリティエンジニアは、画面読み上げソフト(スクリーンリーダー)を駆使して、人の役にたつモノ作りを続けている - Haskellプログラミングの楽しみ方
関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう - 関数の話をしよう
Haskellは関数プログラミングのための言語だというのだから、関数が出てこなくては話にならない。今回は、関数の話をしよう - もう少し関数の話をしよう
新しい考え方あるいは用語というものは、通常「よく分からない」ものだ。それは、いままでに知らないことだからだし、だからこそ「新しい」考え方なのだから