レポート

「業務系システムは今すぐ脱Strutsを!」業務システムエンジニアのためのHTML5勉強会#04 活動報告

この記事を読むのに必要な時間:およそ 6 分

Scalaから見たWeb技術

前頁まではJava技術を中心に解説を進めてきました。しかし本頁では方向性を少し変え,同じJVMで動作するScala言語で,Web技術をどのように扱うのか取り上げてみましょう。

写真 左:石黒尚久氏/右:竹添直樹氏

写真 

ストーンシステム代表の石黒尚久氏からは,Scala言語の入門レベルの解説が行われました。JavaプログラマからScalaプログラマへの知識体系の差分を,詳しく説明していただきました。

Web開発としてのScalaについての説明は,NTTデータ先端技術の竹添直樹氏@takezoenに解説していただきました。

  • ステートレス
    • HTTPもステートレス。
    • クライアント側で頑張る流れになってきている。
    • 関数型言語のステートレスな性質と相性が良い。
  • コレクション操作
    • Webアプリは基本的にデータを加工して表示する。
    • 強力なコレクションAPIはこのような処理と相性が良い
  • フレームワーク
    • ノンブロッキングI/Oを活用。
    • アクセス数の多いシステムのバックエンドに適している。

B2Cのようなアクセスが一気に殺到するようなWebシステムに適していること,生産性,スクリプト言語のような柔軟性とJavaのようなTypeSafeさの両方を兼ね備えていることが,Scalaのメリットです。

ScalaのWebフレームワークとしては,Play2やScalatraが挙げられます。

Play2は,ノンブロッキングで,1台で処理できるリクエスト数を上げ, 非同期も簡単に書けるという特徴を持ちますが,この場合,DBアクセスが集中してボトルネックとなってしまうケースが多いです。

最近では,postgresql-asyncのようなDBアクセスを非同期処理するライブラリが出現していますが,本来であればJDBCレイヤーで解決するべきであり,標準技術で対応して欲しいところです。

また,Play2はタイプセーフです。Javaのテンプレートはタイプセーフさを活かせていないこともありましたが,Play2は改善されています。HTML5的なネタとしては,WebSocketにも対応しています。

既存Java資産のポーティングという観点では,Play2はServletコンテナ上での動作させることが困難です。Tomcatなどで動いている既存のシステムを移行するのであれば,Scalatraの方が向いています。ルーティングがタイプセーフに記述できないという弱点もありますが,Scalatraにはひと通りのライブラリが実装されています。

  • Play2:B2Cなコンテンツの制作に向け。
  • Scalatra:業務系など既存のJavaのシステムの移植に向け。

Scalaの欠点としては,書き方の統一性が低く,コンパイルも遅く,またIDEもJavaと比べると成熟していません。

しかしこういった弱点は,かつてのJavaも持っていたはずです。Javaも改善を繰り返して今の姿になりました。

Javaが10年前,J2EEをアンチテーゼに様々なOSSが出てくるなど,熱気が強かったように思えます。それが今,お客様の瑕疵担保を強く意識するようになるなど,保守的になり,新しいものを生み出すことが難しい状況になってしまったと思います。

Scalaには,かつてJavaにあったような熱気があります。Scalaは業務でも十分に使える言語だと考えています。未熟な部分もありますが,エンジニアと共に成長していきましょう!

議論は一部懇親会へ,そしてライトニングトーク

竹添氏の講演の終盤で,寺田氏と突発的に議論が開始。その後,懇親会へ持ち越されました。JavaとScala,この2つを"Web"という共通のテーマの上で議論させたのが,良いきっかけになったのかもしれません。競争は素晴らしいことです。

懇親会のLTでは,わたなべ氏@nabedgeにより,JavaによるWebアプリのためのテンプレートエンジン「Mixer2」が紹介されました。JSFと同様,デザイナー協業が意識されている点に,時代の流れを感じます。エンタープライズでも,GUI専門のデザイナーを雇うことが多くなりました。

櫻庭祐一氏@skrbのLTは,Web技術でGUIのJavaアプリケーションを開発できる「JavaFX」⁠WebKitをJava側から操作する様子に感動し,重度なWeb信者である私たちスタッフは,待ってましたと言わんばかりに目を輝かせます。JavaFXは,古くはXULRunner,最近であればSenchaやPhoneGapに代表される,マルチプラットフォームGUIアプリ用途としてのWeb技術の好例と言えるでしょう。

画像

寺田氏から寄付された「Java EE 6」の本は,じゃんけん大会の景品になりました。こともあろうか,運営スタッフがジャンケンに優勝,ちゃっかり本を貰って帰っていました。今回は殆どのスタッフが,講演内容を見れていません。まさに,頑張った人へのご褒美です。

フロントエンド系エンジニア中心のいつもの懇親会とはやや異なる空気の中,最後は盛大な拍手の中,JJUGとの初の共催イベントが幕を閉じました。Java+Web技術はもはやエンタープライズ鉄板な組み合わせなので,今後もまたどこかで機会があるでしょう。会場提供に協力いただいたGREE様にも,大変感謝します。

最後に

Web技術者コミュニティ「html5jえんぷら部」では,エンタープライズのWeb技術を取り巻く,Microsoft Internet Explorer,Oracle Javaの2つのプラットフォームについて,2回のイベントに分けて情報を発信してきました。いかがでしたでしょうか。

IEもJavaも,進化するWeb技術へ追いつこうと様々なアプローチを行っています。そして両者ともに,エンタープライズを担ぐことがネックとなり,技術の進化に対し比較的ゆっくりとしたスピード感で進行しているようです。歯がゆく感じます。

最近になって急激に注目を集めているオープンなWeb技術によるアプリ開発は,Javaに比べるとまだヨチヨチ歩きです。標準化されていない技術の扱い方,相互運用性の考え方,性能の考え方など,知識体系もサーバサイドほど普及も成熟もしているとは言い難い状況でしょう。

瑕疵担保の問題もあるかもしれない,多くのリスクを孕んでいるかもしれない。しかし竹添氏の言う通り,こういう分野こそエンジニアと共に成長できるチャンスがあるのではないでしょうか。

Web技術の進化により,業務システムとそれを取り巻くプラットフォームは再び,多様性・差別化の材料を獲得しようとしています。モバイルやクラウドなど様々なテクノロジーの中核にインターネット技術とWeb技術があり,今まさに変化しようとしているのです。

今まで考えもしなかった領域にITが入るかもしれない,今まで考えもしなかった方法でITが活用されるのかもしれない,そういう可能性を秘めている。最近では,WebデザイナがSI領域へ自分たちの価値を売り込むなど,Webという共通言語を通じて,異なる業種間でそれぞれの強みを売り込むという道も開けているように思えます。

いよいよ,その進化が全くもって予想できない状況です。

次回予告

Web技術者コミュニティ「html5jえんぷら部」では,今後もWeb技術とエンタープライズの関わり方を,最前線から発信していきます。私たちの活動のモチベーションは,HTML5という新しいWeb標準が,エンタープライズ・産業向けのシステムをどのように変えようとしているのか国内で最も早く知ること,そして普及・推進を行うことです。

これまで隔月程度しか活動していませんでしたが,10月は17日以降,毎週どこかでhtml5jえんぷら部企画な何かが起こります。

10月17・24日は,Web技術の開発環境を扱った小規模なハンズオンのイベントを開催する予定です。また31日は,エンタープライズ分野でHTML5やJavaScriptフレームワークを扱った適用事例をテーマに,大きめの勉強会イベントを開催する予定です。

どのイベントも,業務系システムのデベロッパ・デザイナで,HTML5や新しいWeb技術を扱いたいと考えている方にオススメします。イベント告知は,こちらで行っています。スタッフとして,イベントの運営や講師という形で参加していただける方も大歓迎です。

今後の活動に,ご期待ください。

著者プロフィール

川田寛(かわだひろし)

某SIer所属のITアーキテクト。業務システム案件への技術支援を行う傍ら,Google準公式コミュニティ「html5j」えんぷら部の部長として,エンタープライズ領域へHTML5などの新しいWeb技術の普及・推進活動を行う。

Twitter / Facebook