岡本さんが手掛けてきた開発プロジェクトは、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カ月で辞めた。
Haskellに関連した研究開発の人材を募集していたソフトウェア開発の大手企業だった。ところが入社してみたら、非エンジニア職も含めた全新入社員が同じ研修を受けるため、技術研修のレベルが岡本さんにとっては低過ぎた。それに研修中は社内からインターネットに接続できなかった。
時間の無駄だと思った岡本さんは、研修の途中から出社することを辞め、自宅で勉強することにした。すると人事部から呼び出しが掛かり、いろいろあって、研修期間中に退職してしまった、というわけだ。
研修の印象は散々だったが、コンサル営業の研修だけは気に入ったそうだ。「課題を解決する提案をグループで作る」という内容で、「自分は割とできるな、と感じた」そうだ。岡本さんはプログラミングだけでなく、コンサルティングや営業、経営にも関心があり、「そちらの能力を伸ばしてみたいな」と感じていた。
その後岡本さんは、不動産会社の営業職に第2新卒として就職した。「営業を勉強したかった」からだ。
この会社には半年いた。営業のノウハウを学べたことは、その後の起業やフリーランス活動に大いに役立っているそうだ。2番目の会社にいた時期の終わりごろには、会社の業務を効率化するためのプログラム開発に取り組んでいた。
退職後も会社との関係は良好で、フリーランスとして独立した後の最初の仕事は、この不動産会社から受注した。
Copyright © ITmedia, Inc. All Rights Reserved.