新刊ピックアップ
[そこが知りたい(!?)採用事例]関数プログラミング/関数型言語の注目プロダクトを探ってみよう!
ここ最近,
一方,
メジャーサービスの一つTwitterは,
関数型言語Scalaを主要なインフラやライブラリなど大規模に採用しています。元々TwitterはRuby on Railsベースのシステムでしたが, ベースをJVM (Java Virtual Machine) 上へと徐々に移行しました。その上で動作するScalaを使用し, Finagle (RPCフレームワーク), Kestrel (メッセージキュー) をはじめ多数のScalaフレームワークを利用しています。 LinkedInはビジネス向けに特化したSNS
(Social Networking System)。世界規模のサービスであり, 関数型言語の大規模事例の一つです。大量の検索クエリをさばくため, NorbertというScalaで実装されたフレームワークを利用しています。Norbertとは, クラスタアプリケーションを簡単に構築するためのフレームワークです。 - manaba
manabaは,
教育機関向けの学習管理システムで, (株)朝日ネットが開発する日本発のサービスです。200余りの教育機関で採用実績があり, 学生の方々は学校ですでに導入されているかもしれません。出席管理/アンケート機能が関数型言語のHaskellで開発されています。リアルタイムに回答状況を確認できる等, モダンな作りが特徴のWebアプリです。 - SCAWAR
SCAWARは,
Android端末向けのシューティングゲームです。Punch Wolf Game Studiosが開発するフィンランド発のプロダクトで, Scalaで書かれています。関数型言語でどんなゲームが作れるのか, 気になる方は事例の一つとして遊んでみるのが一番わかりやすいでしょう (注2)。
大規模事例から注目株まで,
- 注1)
- 関数プログラミングは,
「関数」 を構成単位にして, その関数を部品としてプログラムを組み立てます。ここで言う関数とは, いわゆる命令型言語で言う関数とは異なり, 数学的な意味での 「関数」 であるのがポイントです。教科書で見るf(x)とかg(x)とか, そちらの方面の関数です。関数プログラミングは, その背景にあるラムダ計算は1930年代に登場しており長い歴史があります。 - 注2)
- 本記事執筆時点
(2014年12月) で無償でダウンロード可能になっていました。
※初出:
記事中で紹介した書籍
-
関数プログラミング実践入門 ──簡潔で,正しいコードを書くために
長い歴史のある関数プログラミング。 メジャーな命令型言語の最近のバージョンでは, 関数プログラミングの要素を取り入れた機能が入ってきました。 使っている言語...