IoTサービスを展開している福岡のスタートアップ。2013年の創業で社員は約20名です。IoTに必要なことを幅広くやっている会社です。全面的に技術の見直しを行いました。昨年まではPythonのみで開発していました。今年から、用途に応じて3つの言語を使います。・豊富な分析系ライブラリ。・AIフレームワークのデファクトスタンダード。・PHPの拡張言語で、高いパフォーマンス。・福岡にPHP人口が多い。・日本語の情報が多く、スムーズに開発できる。・非常に高いパフォーマンス。・カチッとした言語仕様。・並列処理が簡単に行える。Hack/HHVMもぜひご検討ください。・PHP5系/7系に設定の変更が可能。・静的解析ツール(hh_client)でソースチェック。・Facebookの作ったPHP実行環境。・PHPをバイトコードに変換して高速化。・JavaでいうJVMのような役割。→Hackのソースとして認識されます。→簡潔に実装でき、機能の強化や安定性を実現。Redisは標準で利用可能。・MongoDBはComposerを利用。→HHVMのライブラリが公開されている。・LevelDBのアクセスはGoを呼び出す。いくつも盛り込まれています。Hackの特徴もたくさん実装されています。Hack/HHVMは不要というのは誤解。それぞれに特徴があります。いう観点から、Hack/HHVMを選びました。functionの引数/戻り値がどの種別かを指定できます。HackとPHP7で大きく異なります。・弱い型指定→自動的な型キャスト。・強い型指定→型まで厳密に判別。・「強い型指定」には、ファイルの最初で宣言が必要。・ファイル単位でのみ「強い型指定」が設定可能。→iniファイル等での指定は不可能。//ファイルに「強い型指定」が有効になる。・PHP7の「強い型指定」のみが存在。・mixedを使うことで、nullを含むあらゆる型を許容できる。Valueに型指定できる。「強い型指定」が基本。大規模サービス向けの仕様。「弱い型指定」が基本。開発速度を重視の仕様。・配列と連想配列を同じものとして扱える。・配列に入れる型は何でもOK。・キーは整数または文字列。・何をキーにしても、値は入れた順番に取り出される。//実行するとabと表示される。キーと値をセットで格納。順番に値を保持する純粋な配列。値の集合で、中身の重複が認められない。2つの値をセットにして保持。・4つの独自コレクション。・コレクションに型を指定可能。・”何でも入る”配列のみ利用可能。・配列の種類、型は意識しない。開発速度を重視の仕様。PHPソース中にHTMLを書くのもNGです。並列処理を実行することができます。マルチスレッドではなく非同期で処理を実行。活用することで処理を高速化できます。hh_clientにより、コードの静的解析が可能。構文エラーや型の不整合など実行前に潰せます。バグの少ないコードを実現できます。実行前に構文チェックを行えます。HHVM/Hackを採用することにしました。・8週ごとにリリース。・3バージョン毎のLTSを1年間のサポート。LTSを約1年間サポート。ググラビリティが非常に低い。・以前はフレームワークの対応状況を公開。・現在は自分たちでテストの実行が必要。最近もたくさんの動きがありました。Reactなどに対応。・サーバのソースをリモート編集できる。hackfmtでソースコードをフォーマットできる。Facebook内部で利用されている規約のみ利用可能。