SlideShare a Scribd company logo
1 of 85
Download to read offline
Hack/HHVMの最新事情と
メイン言語に採用した理由
株式会社スカイディスク CTO
大谷 祐司
2017/6/10 @ PHPカンファンレンス福岡
自己紹介
・株式会社スカイディスク CTO
・山口県下関出身
・今年から福岡に移住してIoTやってます
・技術が大好きなエンジニア
マンガになりました。 雑誌に寄稿しました。
検索:大人になったらエンジニア 大谷
スカイディスクについて
IoTサービスを展開している福岡のスタートアップ。
2013年の創業で社員は約20名です。
ハードウェア、Webサービス、機械学習など、
IoTに必要なことを幅広くやっている会社です。
センサーデバイス
ゲートウェイ DB
IoTサービスのプラットフォーム
NW/
APP
IoTダッシュボード
データ分析基盤
今年「Scalable」「適材適所」をキーワードに、
全面的に技術の見直しを行いました。
スカイディスクの開発言語
昨年まではPythonのみで開発していました。
今年から、用途に応じて3つの言語を使います。
分析や機械学習
・豊富な分析系ライブラリ。
・AIフレームワークのデファクトスタンダード。
Webサービス開発
・PHPの拡張言語で、高いパフォーマンス。
・福岡にPHP人口が多い。
・日本語の情報が多く、スムーズに開発できる。
バッチ、APIのバックエンド
・非常に高いパフォーマンス。
・カチッとした言語仕様。
・並列処理が簡単に行える。
おまけ:データベース
質問①
Hack/HHVMを使ったことがあるかた
質問②
PHP5系→7系に移行検討中のかた
Hack/HHVMもぜひご検討ください。
・PHP5系/7系に設定の変更が可能。
(ini ”hhvm.php7.all = 1”)
・静的解析ツール(hh_client)でソースチェック。
・ライブラリはC++で記述→hphpize
HHVMのPHP7関連設定
Hack/HHVMについて
基本的な解説
・Facebookの作ったPHP実行環境。
・PHPをバイトコードに変換して高速化。
・JavaでいうJVMのような役割。
HHVMとは
・Facebookによって開発された言語
・PHPと互換性を持っている
・HHVMという仮想マシン上で動作する
・高いパフォーマンスと独自の言語仕様
Hackとは
・バグのないコードを迅速に書けるようになる
・エンジニアがコーディング体験を楽しめる
・「高速な動作」「大規模開発向きの仕様」
Hackの思想
Hackの特徴
コーディング体験を楽しめる!!
ソース初めの宣言を「<?php」→「<?hh」と変更
→Hackのソースとして認識されます。
(PHPとHackからお互いに呼び出し可能です)
HHVMにおけるHack or PHPの指定
HHVMはC++で書かれている(PHPはC)
→簡潔に実装でき、機能の強化や安定性を実現。
PHPとの大きな違い
Hack言語の採用
スカイディスクでの利用状況
・IoTダッシュボードで採用
・フレームワークはFuelPHP
・テンプレートエンジンは未使用
(xhpを一部導入)
・エディタはNuclideを推奨
・コードフォーマットはPHP_CodeSnifferを利用
→hhvmでキックすればそのまま利用可能
(PSR-2を採用)
・CentOS7をDocker(開発) / AWS(本番) で採用。
スカイディスクでの利用状況
活用しているライブラリ
・MySQL / Redisは標準で利用可能。
・MongoDBはComposerを利用。
→HHVMのライブラリが公開されている。
・LevelDBのアクセスはGoを呼び出す。
(HNIで実装予定)
PHP7がリリースされて、Hackの特徴が
いくつも盛り込まれています。
大幅な高速化!!
Hackの特徴もたくさん実装されています。
・スカラ型のタイプヒンティング
・返り値のタイプヒンティング
・配列で使うメモリが少ない
・AST(抽象構文木)を使ったコンパイル
しかし、PHP7が出たから
Hack/HHVMは不要というのは誤解。
それぞれに特徴があります。
PHP7の採用も検討しましたが、
・拡大するサービスをかっちり作る
・パフォーマンスの高いサービスを素早く作る
という観点から、Hack/HHVMを選びました。
ポイント①
強力なタイプヒンティング
タイプヒンティングとは?
functionの引数/戻り値がどの種別かを指定できます。
Class Sample {
public static function sampleFunc(int $a):
string{
return "OK";
}
}
//OK
Sample::sampleFunc (1);
//Fatal Error
Sample::sampleFunc ("a");
タイプヒンティングの仕様は、
HackとPHP7で大きく異なります。
タイプヒンティング/PHP7
2つのタイプが存在。
・弱い型指定→自動的な型キャスト。
・強い型指定→型まで厳密に判別。
<?php
Class Sample {
public static function sampleFunc(int $a): string{
return "OK";
}
}
//どちらのタイプでもOK
Sample::sampleFunc(1);
//「弱い型指定」のみOK
Sample::sampleFunc("1");
タイプヒンティング/PHP7
・デフォルトは「弱い型指定」
・「強い型指定」には、ファイルの最初で宣言が必要。
・ファイル単位でのみ「強い型指定」が設定可能。
→iniファイル等での指定は不可能。
<?php
//ファイルに「強い型指定」が有効になる。
declare(strict_types=1);
タイプヒンティング/Hack
・PHP7の「強い型指定」のみが存在。
・mixedを使うことで、nullを含むあらゆる型を許容できる。
<?hh
Class Sample {
public static function sampleFunc(mixed $a): string{
return "OK";
}
}
//OK
Sample::sampleFunc(null);
Sample::sampleFunc(1);
Sample::sampleFunc(”a");
タイプヒンティング/Hack
・配列のKey, Valueに型指定できる。
<?hh
Class Sample {
public static function sampleFunc(array<int, string> $a):
string{
return "OK";
}
}
//OK
Sample::sampleFunc(array(1 => "a", 2 => "b"));
Sample::sampleFunc(array(1 => 1, 2 => null));
タイプヒンティング
「強い型指定」が基本。
型をきちんと意識した、
大規模サービス向けの仕様。
「弱い型指定」が基本。
型を意識せず実装できる、
開発速度を重視の仕様。
ポイント②
専用のコレクション
PHPの配列とは
・配列と連想配列を同じものとして扱える。
・配列に入れる型は何でもOK。
・キーは整数または文字列。
・何をキーにしても、値は入れた順番に取り出される。
<?php
//実行するとabと表示される。
$arr = array(1 => ”a", 0 => ”b");
foreach($arr as $value ) {
print($value);
}
コレクション/Hack
・独自のコレクションが利用可能(Vector/Map/Set/Pair)
→宣言時に型を指定できる
<?hh
$a = new Map<string, string>;
//OK
$a->set("key1", "value1");
//OK
$a->set("key2", 2);
//OK
$a->set(3, array());
49
Map
キーと値をセットで格納。
B
A
D
EC
50
Vector
順番に値を保持する純粋な配列。
21 4 53
51
Set
値の集合で、中身の重複が認められない。
BA D EC
52
Pair
2つの値をセットにして保持。
配列/コレクション
・4つの独自コレクション。
・コレクションに型を指定可能。
配列の用途を意識して、
かっちり利用できる。
・”何でも入る”配列のみ利用可能。
・配列の種類、型は意識しない。
連想配列に何でも突っ込める、
開発速度を重視の仕様。
ポイント③
コードの効率化に役立つ
独自の言語仕様
独自の言語仕様
・Lambdas (ラムダ式)
・Generics (ジェネリクス)
・Enum (列挙型)
・Tuples (複数の要素を持つ配列)
・Shapes (複数の要素を持つマップ)
Enum(値の列挙)
<?hh
enum Size: int {
SMALL = 0;
MEDIUM = 1;
LARGE = 2;
X_LARGE = 3;
}
型を指定した値を宣言できる
Tuples(複数型の配列)
<?hh
list($a, $b) = testFunc();
public function testFunc() : (string, int) {
return tuple(“OK”, 1);
}
functionから複数の値を戻せる
and, or, endforeach, goto, globals, break N
などを非推奨にしています。
PHPソース中にHTMLを書くのもNGです。
(ファイルが<?hhから始まらなければエラー)
非推奨の構文
ポイント④
並列実行のサポート
並列実行
Async/Awaitという独自の関数を利用して、
並列処理を実行することができます。
マルチスレッドではなく非同期で処理を実行。
活用することで処理を高速化できます。
並列実行
ポイント⑤
静的解析ツール
静的解析ツール
hh_clientにより、コードの静的解析が可能。
構文エラーや型の不整合など実行前に潰せます。
厳密な型制約を持つHackで利用することで、
バグの少ないコードを実現できます。
実行前に構文チェックを行えます。
・コンパイルエラー
・引数/戻り値の型チェック
・非推奨の構文
・型の不適切な変換
etc
静的解析ツール/Hack(HHVM)
ポイント⑥
大規模サービスでの採用実績
Wikipediaを編集する際の速度が2倍に!!
https://www.box.com/blog/going-forward-faster-hhvm/
Webレスポンスを1/3に短縮!!
https://slack.engineering/taking-php-seriously-cf7a60065329
パフォーマンス向上のためPHPをHHVMに移行
これらのポイントに魅力を感じ、
HHVM/Hackを採用することにしました。
素敵なHack/HHVMですが、
覚悟が必要な点もあります
リリースサイクルがとても早い
Hack(HHVM)
・8週ごとにリリース。
・3バージョン毎のLTSを1年間のサポート。
PHP
・リリースサイクル1年
・ライフサイクル3年(バグ2年/セキュリティ1年)
LTSを約1年間サポート。
サポートについて/Hack
ググラビリティが非常に低い。
問題点
フレームワーク対応状況
・以前はフレームワークの対応状況を公開。
・現在は自分たちでテストの実行が必要。
最近の動向
Hack/HHVMの進化は早く、
最近もたくさんの動きがありました。
Nuclideリリース(2015/03)
Nuclideについて
・Facebook製のAtomプラグイン
・Hack / js / Reactなどに対応。
・サーバのソースをリモート編集できる。
NuclideのHackサポート
・コードの静的チェック
・オートコンプリート
・定義へのジャンプ
・コードフォーマット
HHVMのPHP7対応(2015年4月)
PHP7に対応した設定項目がver3.11より追加される
ソースコードフォーマット(2017/04)
hackfmtでソースコードをフォーマットできる。
ただしPSR2などは指定できず、おそらく
Facebook内部で利用されている規約のみ利用可能。
Windowsサポート終了
ユーザは少かったのかもしれませんが、
サポート終了。。
Arm hardware対応
2017年3月に、Armハードウェアの対応をしていくこ
とがアナウンスされる。
まとめ
このようにHack/HHVMの動きは非常に早く、
継続的に進化し続けています。
今後の技術選定において、
Hack/HHVMを選択肢に入れてみては
いかがでしょうか。
募集してます
Webエンジニアを募集しています。
最新技術に積極的に挑戦できます!
興味あるかたは気軽にお声がけください。
ご静聴ありがとうございました。

More Related Content

What's hot

クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜Takuya Oikawa
 
「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するかYuji Otani
 
SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジーSKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジーYuji Otani
 
情報共有から始めるチーム開発とキャリア戦略
情報共有から始めるチーム開発とキャリア戦略情報共有から始めるチーム開発とキャリア戦略
情報共有から始めるチーム開発とキャリア戦略Takuya Oikawa
 
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦いYuto Komai
 
PHPカンファレンス2015
PHPカンファレンス2015PHPカンファレンス2015
PHPカンファレンス2015Daisuke Kasuya
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet将 高野
 
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -de:code 2017
 
IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~
IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~
IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~Yuichi Saotome
 
[Gree] グリーのソーシャルゲームにおける機械学習活用事例
[Gree] グリーのソーシャルゲームにおける機械学習活用事例[Gree] グリーのソーシャルゲームにおける機械学習活用事例
[Gree] グリーのソーシャルゲームにおける機械学習活用事例Takashi Suzuki
 
エンジニアが人に言われることあるある(副題「LaravelとReactで開発したい!」)
エンジニアが人に言われることあるある(副題「LaravelとReactで開発したい!」)エンジニアが人に言われることあるある(副題「LaravelとReactで開発したい!」)
エンジニアが人に言われることあるある(副題「LaravelとReactで開発したい!」)プログラミングをする パンダ
 
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例leverages_event
 
kintone × IOT ノンコーディングチャレンジ
kintone × IOT ノンコーディングチャレンジkintone × IOT ノンコーディングチャレンジ
kintone × IOT ノンコーディングチャレンジCybozucommunity
 
顧問エンジニアというロールを作りたい
顧問エンジニアというロールを作りたい顧問エンジニアというロールを作りたい
顧問エンジニアというロールを作りたいMichitaka Yumoto
 
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組みMasahiro Nishimi
 
クソアプリのつくり方
クソアプリのつくり方クソアプリのつくり方
クソアプリのつくり方Yusuke Kon
 
副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフトKazuto Ohara
 
C#でアプリを作ってみよう! #ngtnet
C#でアプリを作ってみよう! #ngtnetC#でアプリを作ってみよう! #ngtnet
C#でアプリを作ってみよう! #ngtnet将 高野
 

What's hot (20)

クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
 
「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか
 
SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジーSKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジー
 
情報共有から始めるチーム開発とキャリア戦略
情報共有から始めるチーム開発とキャリア戦略情報共有から始めるチーム開発とキャリア戦略
情報共有から始めるチーム開発とキャリア戦略
 
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
 
PHPカンファレンス2015
PHPカンファレンス2015PHPカンファレンス2015
PHPカンファレンス2015
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet
 
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
 
IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~
IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~
IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~
 
[Gree] グリーのソーシャルゲームにおける機械学習活用事例
[Gree] グリーのソーシャルゲームにおける機械学習活用事例[Gree] グリーのソーシャルゲームにおける機械学習活用事例
[Gree] グリーのソーシャルゲームにおける機械学習活用事例
 
エンジニアが人に言われることあるある(副題「LaravelとReactで開発したい!」)
エンジニアが人に言われることあるある(副題「LaravelとReactで開発したい!」)エンジニアが人に言われることあるある(副題「LaravelとReactで開発したい!」)
エンジニアが人に言われることあるある(副題「LaravelとReactで開発したい!」)
 
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
 
UiPath on Windows 11
UiPath on Windows 11UiPath on Windows 11
UiPath on Windows 11
 
kintone × IOT ノンコーディングチャレンジ
kintone × IOT ノンコーディングチャレンジkintone × IOT ノンコーディングチャレンジ
kintone × IOT ノンコーディングチャレンジ
 
顧問エンジニアというロールを作りたい
顧問エンジニアというロールを作りたい顧問エンジニアというロールを作りたい
顧問エンジニアというロールを作りたい
 
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
 
クソアプリのつくり方
クソアプリのつくり方クソアプリのつくり方
クソアプリのつくり方
 
副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト
 
C#でアプリを作ってみよう! #ngtnet
C#でアプリを作ってみよう! #ngtnetC#でアプリを作ってみよう! #ngtnet
C#でアプリを作ってみよう! #ngtnet
 

Similar to Hack/HHVMの最新事情とメイン言語に採用した理由

基幹業務もHadoopで!! -ローソンにおける店舗発注業務への Hadoop + Hive導入と その取り組みについて-
基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-
基幹業務もHadoopで!! -ローソンにおける店舗発注業務への Hadoop + Hive導入と その取り組みについて-Keigo Suda
 
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?SORACOM,INC
 
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...Insight Technology, Inc.
 
NoOpsへの挑戦
NoOpsへの挑戦 NoOpsへの挑戦
NoOpsへの挑戦 Hiromasa Oka
 
UXデザインを活用した仮説立案から考えるデータ分析とは?
UXデザインを活用した仮説立案から考えるデータ分析とは?UXデザインを活用した仮説立案から考えるデータ分析とは?
UXデザインを活用した仮説立案から考えるデータ分析とは?Shigeyuki Kameda
 
クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介masaoki_ohashi
 
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジー
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジーデブサミ2013 【15-A-1】「爆速」を支えるテクノロジー
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジーDevelopers Summit
 
サーバーサイドSwift
サーバーサイドSwiftサーバーサイドSwift
サーバーサイドSwiftNatsuki Kawai
 
みなさんがHtml5をやらなくていい3つの理由
みなさんがHtml5をやらなくていい3つの理由みなさんがHtml5をやらなくていい3つの理由
みなさんがHtml5をやらなくていい3つの理由Masakazu Muraoka
 
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法Yuta Matsumura
 
html5とcss3実例紹介とデモ
html5とcss3実例紹介とデモhtml5とcss3実例紹介とデモ
html5とcss3実例紹介とデモAkihiro Sugiyama
 
柏市におけるIoT柏市ビジネスの創出について
柏市におけるIoT柏市ビジネスの創出について柏市におけるIoT柏市ビジネスの創出について
柏市におけるIoT柏市ビジネスの創出についてkashiwanoha-iot
 
導入事例特集:ペーパレス会議
導入事例特集:ペーパレス会議導入事例特集:ペーパレス会議
導入事例特集:ペーパレス会議handbook_mktg
 
EXE #3: AIを協力して作成するDapp
EXE #3: AIを協力して作成するDappEXE #3: AIを協力して作成するDapp
EXE #3: AIを協力して作成するDappblockchainexe
 
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話Keigo Suda
 
Apache Hadoopを利用したビッグデータ分析基盤
Apache Hadoopを利用したビッグデータ分析基盤Apache Hadoopを利用したビッグデータ分析基盤
Apache Hadoopを利用したビッグデータ分析基盤Hortonworks Japan
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるMasakazu Muraoka
 
今こそ聞きたい開発環境
今こそ聞きたい開発環境今こそ聞きたい開発環境
今こそ聞きたい開発環境佳孝 中田
 
20180921 Twilio Smart Communication Award 2018
20180921 Twilio Smart Communication Award 201820180921 Twilio Smart Communication Award 2018
20180921 Twilio Smart Communication Award 2018Ukyo Satake
 

Similar to Hack/HHVMの最新事情とメイン言語に採用した理由 (20)

基幹業務もHadoopで!! -ローソンにおける店舗発注業務への Hadoop + Hive導入と その取り組みについて-
基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-
基幹業務もHadoopで!! -ローソンにおける店舗発注業務への Hadoop + Hive導入と その取り組みについて-
 
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
 
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
 
NoOpsへの挑戦
NoOpsへの挑戦 NoOpsへの挑戦
NoOpsへの挑戦
 
UXデザインを活用した仮説立案から考えるデータ分析とは?
UXデザインを活用した仮説立案から考えるデータ分析とは?UXデザインを活用した仮説立案から考えるデータ分析とは?
UXデザインを活用した仮説立案から考えるデータ分析とは?
 
クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介
 
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジー
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジーデブサミ2013 【15-A-1】「爆速」を支えるテクノロジー
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジー
 
サーバーサイドSwift
サーバーサイドSwiftサーバーサイドSwift
サーバーサイドSwift
 
みなさんがHtml5をやらなくていい3つの理由
みなさんがHtml5をやらなくていい3つの理由みなさんがHtml5をやらなくていい3つの理由
みなさんがHtml5をやらなくていい3つの理由
 
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
 
html5とcss3実例紹介とデモ
html5とcss3実例紹介とデモhtml5とcss3実例紹介とデモ
html5とcss3実例紹介とデモ
 
柏市におけるIoT柏市ビジネスの創出について
柏市におけるIoT柏市ビジネスの創出について柏市におけるIoT柏市ビジネスの創出について
柏市におけるIoT柏市ビジネスの創出について
 
導入事例特集:ペーパレス会議
導入事例特集:ペーパレス会議導入事例特集:ペーパレス会議
導入事例特集:ペーパレス会議
 
CCDSlideShare
CCDSlideShareCCDSlideShare
CCDSlideShare
 
EXE #3: AIを協力して作成するDapp
EXE #3: AIを協力して作成するDappEXE #3: AIを協力して作成するDapp
EXE #3: AIを協力して作成するDapp
 
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
 
Apache Hadoopを利用したビッグデータ分析基盤
Apache Hadoopを利用したビッグデータ分析基盤Apache Hadoopを利用したビッグデータ分析基盤
Apache Hadoopを利用したビッグデータ分析基盤
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
 
今こそ聞きたい開発環境
今こそ聞きたい開発環境今こそ聞きたい開発環境
今こそ聞きたい開発環境
 
20180921 Twilio Smart Communication Award 2018
20180921 Twilio Smart Communication Award 201820180921 Twilio Smart Communication Award 2018
20180921 Twilio Smart Communication Award 2018
 

More from Yuji Otani

Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7Yuji Otani
 
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由Yuji Otani
 
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)Yuji Otani
 
【初心者向け】Go言語勉強会資料
 【初心者向け】Go言語勉強会資料 【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料Yuji Otani
 
Phalcon勉強会資料
Phalcon勉強会資料Phalcon勉強会資料
Phalcon勉強会資料Yuji Otani
 
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)Yuji Otani
 
【基礎編】社内向けMySQL勉強会
【基礎編】社内向けMySQL勉強会【基礎編】社内向けMySQL勉強会
【基礎編】社内向けMySQL勉強会Yuji Otani
 
Nginx勉強会
Nginx勉強会Nginx勉強会
Nginx勉強会Yuji Otani
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会Yuji Otani
 
負荷分散勉強会
負荷分散勉強会負荷分散勉強会
負荷分散勉強会Yuji Otani
 
NoSQL勉強会
NoSQL勉強会NoSQL勉強会
NoSQL勉強会Yuji Otani
 
Php5 4勉強会
Php5 4勉強会Php5 4勉強会
Php5 4勉強会Yuji Otani
 

More from Yuji Otani (13)

Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7
 
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
 
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
 
【初心者向け】Go言語勉強会資料
 【初心者向け】Go言語勉強会資料 【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
 
Phalcon勉強会資料
Phalcon勉強会資料Phalcon勉強会資料
Phalcon勉強会資料
 
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
 
【基礎編】社内向けMySQL勉強会
【基礎編】社内向けMySQL勉強会【基礎編】社内向けMySQL勉強会
【基礎編】社内向けMySQL勉強会
 
Nginx勉強会
Nginx勉強会Nginx勉強会
Nginx勉強会
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 
負荷分散勉強会
負荷分散勉強会負荷分散勉強会
負荷分散勉強会
 
NoSQL勉強会
NoSQL勉強会NoSQL勉強会
NoSQL勉強会
 
Php5 4勉強会
Php5 4勉強会Php5 4勉強会
Php5 4勉強会
 

Hack/HHVMの最新事情とメイン言語に採用した理由