Ruby使いのためのScalaのススメ
Upcoming SlideShare
Loading in...5
×
 

Ruby使いのためのScalaのススメ

on

  • 20,390 views

Java使いにばかり注目されているScalaですが、Ruby使いこそScalaを学ぶべきという持論をつらつらと述べていきます。

Java使いにばかり注目されているScalaですが、Ruby使いこそScalaを学ぶべきという持論をつらつらと述べていきます。

Statistics

Views

Total Views
20,390
Slideshare-icon Views on SlideShare
16,263
Embed Views
4,127

Actions

Likes
18
Downloads
60
Comments
2

18 Embeds 4,127

http://ja.verbmode.net 3633
http://d.hatena.ne.jp 341
http://www.slideshare.net 71
http://kaorumori.hatenadiary.com 15
http://webcache.googleusercontent.com 14
http://verbmode.net 11
http://s.deeeki.com 9
http://paper.li 8
http://kaorumori.iotaworks.jp 6
https://si0.twimg.com 5
http://ja.verbmode.net. 3
http://74.125.153.132 3
http://cache.yahoofs.jp 2
https://twitter.com 2
http://a0.twimg.com 1
https://twimg0-a.akamaihd.net 1
http://tweetedtimes.com 1
http://twitter.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • 作者による Scala求人のステマ
    https://jobs.forkwell.com/t/scala
    Are you sure you want to
    Your message goes here
    Processing…
  • Scala覚えてみたくなったわ
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Ruby使いのためのScalaのススメ Ruby使いのためのScalaのススメ Presentation Transcript

    • Ruby使いのための Scalaのススメ Presented by おおかゆか
    • 自己紹介: おおかゆか (id: oukayuka) フリーランスのWebプログラマ。 元々はPHPerでしたが、最近はもっぱらRails案件 を生業に活動中。 最近、エンジニアがお金について考えるための rake:money という勉強会を始めました。 10/15に第2回をやるのでATND見てね。 http://atnd.org/events/1626
    • What's Scala? Scalaって何それおいしいの?
    • Scalable Language が、その名前の由来。 ただしここで言う「スケーラブル」とは、簡単な スケーラブル スクリプトから大規模な基幹システムまで同じ ように書けるという意味らしい。 JVM上で動く関数型言語で、初版リリースが 2003年とプログラム言語としては最後発の部 類。作者はスイス連邦工科大学のMartin Odersky(マーティン・オダースキー)教授。 Odersky
    • Scalaはいいとこ取りの言語(1) 最後発であるのをいいことに、Scalaは既存の 言語をいいとこ取りし放題なのが特徴。 まずはJavaからいいとこ取り。 コンパイルするとJavaとまったく同じJVM用の バイトコードになるため、Javaの高度なGCや最 適化されまくりのパフォーマンス、そして膨大な ライブラリ群をそのまま利用することが可能。
    • Scalaはいいとこ取りの言語(2) その他の言語からも、 Ruby の Mix-in のような Trait、DSLフレンド リーなゆるい文法 OCaml によく似た型推論 Haskell ばりのパターンマッチ、パーサーコン ビネータ Erlang からまんまパクリのアクターモデル 等がいいとこ取りされている。
    • Scalaはハイブリッド言語(1) Scalaはハイブリッド言語である。 Java以上に徹底したオブジェクト指向言語であ オブジェクト指向言語 ると同時に、関数型言語でもある。 関数型言語 これは作者のOdersky教授の信念で、OOPと 関数型の設計が高度に融合したところに真の スケーラビリティがあるというもの。 Pizza(言語) → Generic Java(コンパイラ) → Scala と一貫してきた彼の思想である。
    • Scalaはハイブリッド言語(2) Scalaはハイブリッド言語である。 Javaと同様のバイトコードにコンパイルできる コンパイラ言語であると同時に、逐次実行可能 コンパイラ言語 なインタプリタ言語でもある。 インタプリタ言語 scalaコマンドを単独で実行すれば対話型イン タプリタ(Rubyでいうirb)が起動し、他のLLのよ うに随時動作を確認しつつコーディングすると いう開発スタイルも可能。
    • 私に言わせるなら… ScalaはJavaと同等のパフォー マンスと堅牢性、それにRuby マンス 堅牢性 並みの開発効率を兼ね備えた 開発効率 言語である。
    • Why Scala? そこでScalaですよ
    • Ruby使いこそScalaを学ぶべき 現状、Scalaを学ぶプログラマはJava使い が圧倒的に多い。しかし私はRuby使いこ そScalaを学ぶべきだと思う。 ScalaをマスターしてしまったJava使いは、 積極的にJavaを使う理由がなくなる。(そ の生まれからして“Better Java”だから) Java” だがRubyの場合は必ずしもそうではない。
    • Ruby使いがScalaを学ぶべき理由(1) ScalaはRubyよりもパフォーマンス・堅牢性 ともに上であるが、やはりフットワークの軽 さにおいては一歩譲る。 JVM言語であるがゆえに起動が遅 い、Java文化を引きずった冗長さ、型推論 があるとはいえ基本は静的型付け言語な ので面倒な記述を強いられることがある 等。
    • Ruby使いがScalaを学ぶべき理由(2) 負荷の高い内部処理をScalaで、頻繁に変 更が発生するインターフェース部分を Ruby(Rails)で実装するという使い分けを しているサービスも存在する。 これなどはScalaとRuby双方の利点を活用 している事例だろう。
    • Ruby使いがScalaを学ぶべき理由(3) 一撃必殺だが直線的で射程の短い八極拳と、威力 八極拳 は譲るが曲線的で予測しづらく遠距離戦を得意と する劈掛掌を共に学ぶことで「八極に劈掛を加え 劈掛掌 れば、鬼神も恐れる」と言われるほどの無敵さを誇 れば、鬼神も恐れる」 ると言う。(※『拳児』少年サンデーコミックス参照) Ruby使いがScalaを学ぶことで死角がなくなり、八 極拳×劈掛掌の使い手のように並のプログラマー が束になってかかってもかなわないほどのパワー を手に入れられるのではないだろうか。
    • Scala, Famous Hackers tell about 教えてエロい人
    • “If I were to pick a language to use today other than Java, it would be Scala” James Gosling 「今日、もしJava以外に自分で使いたい言語が あるとすれば、それはScalaだろう」 ジェームズ・ゴスリン(=Javaの生みの親)
    • “Scala, it must be stated, is the current heir apparent to the Java throne. No other language on the JVM seems as capable of being a ‘replacement for Java’ as Scala, and the momentum behind Scala is now unquestionable” Charles Nutter 「はっきり述べておきたいのは、Scalaが現時点での最も有力なJava の王位継承者候補だということだ。JVM上で動く他の言語には『Java の代替』になれるような器を持ったものは見当たらず、Scalaの勢い にはすでに疑う余地がない」 チャールズ・ナター(=JRubyプロジェクトのリーダー)
    • “I can honestly say if someone had shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy” James Strachan 「2003年(註:Groovyの開発が開始された年)当時、Martin Oderskyの『Programming in Scala(邦題:Scalaスケーラブルプ ログラミング)』を誰かに見せてもらっていたなら、正直なところ Groovyは作らなかっただろうと思う」 ジェームズ・ストラッチャン(=Groovyの作者)
    • 「面白い。いろんな点でGroovyを思い出させるが、もっ とずっと革新的かも」 「Rubyに似たところがあるなあ、と思ってたんだけど、 多重継承を廃止しMix-inを持つなど、新しくなってより 似てきた感じ」 「Erlangとは違う形で(分かりやすい/扱いやすい)並 列プログラミングを提供する言語になる、かも」 「ScalaのActorはJVMのスレッドプールを使って実現さ れているそうだけど、十分な性能が出るなら(これが難 しい)、ErlangではなくScalaが次世代を席巻するかも」 まつもとゆきひろ
    • “Scala is the Java of the future” Martin Odersky 「Scalaは未来のJavaだ」 マーティン・オダースキー
    • Who uses Scala? あらこんなところにもScalaが
    • みんな大好きTwitter 現状、Twitterのメッセージキュー、およびミドルウェアと APIのほとんどは、Scalaで実装されている。(ちなみに Twitterのアクセスの80%がAPI経由とのこと) 最初、TwitterはRubyベースのメッセージキューを使用 していたが、すぐにパフォーマンスの壁に突き当たって しまった。 色々検討した結果Scalaを採用することとなり、その結 果それまで2時間半かかっていた処理が20秒で済むよ うになったという。
    • その他の事例 求人特化型SNSのLinkedInが以前からScalaを 使っているのは有名。Odersky教授を招いて技 術セッションを行っている様子をYouTubeで見る ことができる。 あとSony ImageworksがDBミグレーションライブ ラリをScalaで開発してオープンソースで公開す るなど、社内での開発にScalaを使用している様 子。
    • Let's Scala! Scala使いたくなったでしょ?