SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

私がScalaを選んだ理由

JavaとRubyとScalaの比較

  • X ポスト
  • このエントリーをはてなブックマークに追加

エンタープライズアプリでRubyを使えるケースはまだ少ない

 しかし、自分の主戦場であるエンタープライズアプリケーションでは、とても便利なRubyを使えるケースはまだまだ多くありません。

 現時点ではエンタープライズのアプリケーションでも、今PHPで作っているWebサイトや、あまりトランザクション量の多くない、レスポンスに対してもそんなにシビアでないシステムだと今すぐ使えると思います。動的な性質があるのは利点でもあるのですが、例えば1つのメソッド呼び出しでも、静的な言語と比べると5倍程度かかるとのことです。ただし、レスポンスがもっとシビアなシステムでも、構築事例もあるため、今後はハードウェアの発達などで対応可能かもしれません。

 それでも動的型付の言語は、多めの人数で開発することに向かない面があります。

 言語が「動的」なので、実行するまでコードに問題がないか分かりません。多めの人数で開発するときは、優秀ではない人も混じっていると思いますが、その人が他の人のコードに影響を与えるおかしなコードを書いたとしても、あくまで「実行時」にしか見つけることができないことになります。これはたくさん人数で開発するときに問題となってきます。

 この点が、JavaやC#といった「静的型付け」の言語が持っている「メリット」です。Javaなら、実行する前にコンパイラやIDEがやツールがコードの問題を発見してくれますので、多めの人数でプログラムを作る時は動的言語に比べて圧倒的に有利ですし、レスポンスの面でも先にコンパイルをしてしまうために、動的な言語よりずっと速く動作します。

 これは、動的な言語と静的な言語のどちらがいいか? ということではなくて「使い分け」だと思います。迅速な変化への対応や高い生産性を達成する少人数での開発でレスポンスもそんなにシビアなレベルが要求されなければ、動的な言語が最適ですし、多めの人数で開発して、データ量も多く、シビアのレスポンスが要求されるといった言語であれば、静的な型付けの言語を選んだ方が、少なくとも現時点では良さそうです。

 「だからといって、JavaやC#を使い続けるのは面倒くさいなぁ…Rubyだとあんなに楽ちんなのに…」

 と筆者は思っていました。Rubyでもある程度の人数で作るようなエンタープライズアプリ開発できればいいのになぁ…と。

Scala

 そんな時に、豆蔵のフェローである羽生田さんが、ちりとてちんと共にScalaに熱中しはじめて講演をしたり記事を書いたりするようになっていました。

 Scalaはスクリプト言語ですが、静的型付けで、事前にコンパイルもできます。そして下記のような特徴を持っています。

  • 静的型の言語だが、型推論によってRubyに近い柔軟さを得ている
  • ScalaからすべてのJavaクラスを利用可能(逆も可能)
  • JavaVM上で実行されて、実行速度は、Javaコードとほぼ同等(ほとんどのスクリプト言語より一ケタ早い)
  • Scalaは純粋なオブジェクト指向言語
  • しかも本格的な関数型言語
  • 作者Martin Odersky教授(JavacやJava Genericsの開発貢献者)
  • LiftというRuby on Railsのようなフルスタックのフレームワークがあり、JavaのWebコンテナ上で動作する

次のページ
Scalaの能力

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

牛尾 剛(ウシオ ツヨシ)

株式会社豆蔵 BS事業部 エンタープライズチーム。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2464 2008/05/16 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング