タグ

scalaに関するtakeshiketaのブックマーク (28)

  • Don't use Actors for concurrency

    Don't use actors for concurrency. Instead, use actors for state and use futures for concurrency. A common practice I've seen in scala code is to use actors for concurrency. This is encouraged by Akka and a lot of writing about Scala, the documentation of which is highly actor-centric. I assert that this is a bad practice and should be considered an antipattern most of the time it is used. Actors s

  • Node.js vs Play Framework (with Japanese subtitles)

    Video: http://www.nicovideo.jp/watch/1410857293 Here's the showdown you've been waiting for: Node.js vs Play Framework. Both are popular open source web frameworks that are built for developer productivity, asynchronous I/O, and the real time web. But which one is easier to learn, test, deploy, debug, and scale? Should you pick Javascript or Scala? The Google v8 engine or the JVM? NPM or Ivy? Grun

    Node.js vs Play Framework (with Japanese subtitles)
  • エンタープライズ向けにPlay + Scalaを活用する - ワザノバ | wazanova

    ウォルマートカナダの開発を担当したKevin Webberが、エンタープライズ向けの開発を前提としたPlayフレームワーク + Scalaの利用について、講演しています。 まずUIまわりのアーキテクチャについて、PlayをAPIとして利用するパターンと、Playを複数のSPA (Single Page Web Application)のホストとするパターンの二つを紹介。 1) UIを物理的に分ける 構成図例(ビデオ 6分40秒時点) PlayフレームワークをRESTful APIとして使う。Playにはフロント側のコードを置かない。各UIは、Play APIのクライアントという位置づけになる。 この場合のUIの選択肢は、 JavaScriptフレームワーク、HTML5/CSS/Javascript etc. ネイティブモバイルアプリ 標準的なwebプロトコルで通信できるものであれば何でもあ

  • 独習 Scalaz — 独習 Scalaz

    独習 Scalaz これまでいくつのプログラミング言語が羊の衣を着た Lisp に喩えられただろうか? Java は馴染み親しんだ C++ のような文法に GC を持ち込んだ。それまで他にも GC を載せた言語はあったけども、現実的に C++ の代替となりうる言語に GC が載ったことは 1996年には画期的に思われた。やがて時は経ち、人々は自分でメモリ管理をしないことに慣れていった。JavaScriptRuby の両言語もその第一級関数 (first-class function) やブロック構文を持つことから羊の衣を着た Lisp と呼ばれたことがある。S式の同図像性がマクロに適することから Lisp系の言語はまだ面白いと思う。 近年の言語はもう少し新しい関数型言語から概念を借りるようになってきた。型推論やパターンマッチングは ML にさかのぼることができると思う。時が経てば、人

  • Scala の implicit parameter は型クラスの一種とはどういうことなのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    なんか型クラスとか言うと型の怖いひとたちが怖い話をワイワイしてるイメージがありますよね。わたしはあります。「で、それって何がうれしいのよ」とか、そういう話はあまりされていないような印象がありますね(あくまで印象です)。その上 "Scala の implicit parameter は型クラスの一種" とか言われると「暗黙的な引数がなんで型クラスの一種なんや!!!意味がわからん!!!!」となります。わたしはなりました。 というわけでそのへんについて勉強したので書きます。 そもそも型クラスってなんや Haskellとかにあるやつですね。アドホック多相を実現するもの、らしいです。すごい、いきなり意味がわからない。 というわけで、まずは「アドホック多相ってなんなの」という話からして行きます。 さて、まずは「多相」から行きましょう。この文脈で言う多相とは、簡単に言えば「引数にいろんな型を取れる」とい

    Scala の implicit parameter は型クラスの一種とはどういうことなのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • Effective Scala

    Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) [translated by Yuta Okamoto (@okapies) and Satoshi Kobayashi (@scova0731)] Table of Contents 序章 書式: ホワイトスペース, 命名, インポート, 中カッコ, パターンマッチ, コメント 型とジェネリクス: 戻り型アノテーション, 変位, 型エイリアス, 暗黙 コレクション: 階層, 使う, スタイル, 性能, Java コレクション 並行性: Future, コレクション 制御構造: 再帰, Return, forループと内包, require と assert 関数型プログラミング: 代数的データ型としてのケースクラス, Option, パターンマ

    Effective Scala
  • HerokuでPlay2のコンパイルを速くする

  • RegexParsersで手軽にScalaのパーサコンビネータを使ってみる - seratch's weblog in Japanese

    入門記事の一覧 About - case class HatenaDiary(id: Symbol = ’seratch2) Scalaのバージョン この記事が対象とする Scala のバージョンは「2.9.1.final」です。 お読みになる前に パーサコンビネータの体系的な入門についてはこちらの記事やコップなどの書籍等をご確認ください。 http://itpro.nikkeibp.co.jp/article/COLUMN/20100526/348498/ http://itpro.nikkeibp.co.jp/article/COLUMN/20100526/348454/ この記事は、RegexParsersを使って比較的手軽にパーサコンビネータの使い方を知るという趣旨です。 パーサのAPI 以下の scaladoc を一読すると、基的なAPIを把握することができるかと思います。

    RegexParsersで手軽にScalaのパーサコンビネータを使ってみる - seratch's weblog in Japanese
  • Play Framework 2 Meetup (2014/05/24 14:00〜)

    機能改善 イベント資料の投稿において、SlideShareやSpeakerDeckと同様に、Docswellの資料を埋め込みスライド表示できるように対応いたしました。資料の投稿機能は、資料URLを指定するだけで、URLから取得した情報を、適した形でconnpass上で表示・共有できる機能です

    Play Framework 2 Meetup (2014/05/24 14:00〜)
  • S-99: Ninety-Nine Scala Problems

    These are an adaptation of the Ninety-Nine Prolog Problems written by Werner Hett at the Berne University of Applied Sciences in Berne, Switzerland.  I (Phil! Gold) have altered them to be more amenable to programming in Scala.  Feedback is appreciated, particularly on anything marked TODO. The problems have different levels of difficulty.  Those marked with a single asterisk (*) are easy.  If you

    takeshiketa
    takeshiketa 2014/04/10
    練習帳
  • YammerがScalaからJavaへ移行中

    原文(投稿日:2011/11/30)へのリンク Yammerの従業員であるCoda Hale氏がScalaの商用ベンダであるTypesafe社へ送ったメールがYCombinatorとGitHubgist経由でリークした。メールによれば、Yammerは複雑さや性能面を鑑みて、基盤のインフラをScalaからJavaへ戻すそうだ。 YammerのPR部門のShelley Risk氏によればこのメールはCoda Hale氏の個人的な意見であり、Yammerの公式な見解ではないとのことだ。このリーク後、Coda Hale氏は自身の考えをhttp://codahale.com/the-rest-of-the-story/で表明している。氏はこのメールはDonald Fischer氏(Typesafe社のCEO)からのフィードバックの要請に答えたもので、移行を示唆するツイートを補足したものだと説明して

    YammerがScalaからJavaへ移行中
    takeshiketa
    takeshiketa 2011/12/06
    安定の反論力
  • ScalaにおけるJavaのインターフェースって?

    t_yano @t_yano Scalaについてはtraitとか構造型についていろいろ聞いてみたいことがあるんだけどとても140文字では表せないな…。まあ、スタイルというか定石とかがどうなってるのか知りたい系の話だけど。 2011-10-24 01:31:09 t_yano @t_yano なんか実装継承するケースばかりを見かけるのたけど、型を定義するためにtraitを使うとか、すべてのクラスはなんらかのtraitを型として持つべきだ派とか、あるいは逆に、すべての引数は理由がない限り構造的部分型にすべき派とか、そういう話はないんだろうか的な疑問。 2011-10-24 01:34:22 t_yano @t_yano あるいはあるクラスを受け取ると定義されている関数に、その型ではないけど事実上その方として振る舞える別の型のオブジェクトを、なんらかの方法で渡すことが可能なので、関数インタフェー

    ScalaにおけるJavaのインターフェースって?
  • 「ここがヘンだよScala言語」についてのまとめ - kmizuの日記

    ここがヘンだよScala言語の記事に突っ込みどころが多かったので、色々書いたのですが、ちょっとコメントの書き方が挑発的過ぎたので、こちらのエントリでまとめなおします。 if式の返り値 val v1 = if (1 < 2) {"a"} println(v1) val v2 = if (1 < 2) {"a"} else {"b"} println(v2) v1はUnit、v2は"a"。else節が無い場合、「最後に評価された式を、返り値とする」というルールから外れる。 2.8.1、2.9.0等、現行の版では、v1、v2ともに"a"が返る。ルール通りの動きで問題はない。 取り消し線と訂正がありますが、それについては題とは関係無いので省きます。重要なのは、Scalaには「最後に評価された式を、返り値とする」というルールは最初から存在しないのに対して、そのようなルールが存在すると勘違いされてい

    「ここがヘンだよScala言語」についてのまとめ - kmizuの日記
    takeshiketa
    takeshiketa 2011/06/12
    表面なぞっただけなので必然なのかホントに複雑なのか見分けが付かないので何とも言えないけど、取りあえず複雑だとは思う。第一印象で損することあるよねという感じ。
  • JavaとScalaとC#のジェネリクス機能比較表 - Onion開発しつつ、PEGEXを開発する日記

    JavaScalaとC#のジェネリクスは、いずれも継承を持ったオブジェクト指向言語においてParametric Polymorphismを実現するための手段であり、それぞれ異なった特性を持っている。というわけで、それぞれの言語においてジェネリクスがどのようにサポートされているかを比較した表を用意してみた。後で気が向いたら、各項目の説明を追加するかも。 Java(5.0以降) Scala C#(4.0) ジェネリックなクラス ○ ○ ○ ジェネリックなメソッド ○ ○ ○ 型パラメータの上限 ○ ○ ○ 型パラメータの下限 × ○ × 型パラメータの推論 ○ ○ ○ 全ての型のサブタイプ(ScalaにおけるNothing) × ○ × definition-site variance × ○ ○ use-site variance ○(Wildcard) ○(Existential Typ

    JavaとScalaとC#のジェネリクス機能比較表 - Onion開発しつつ、PEGEXを開発する日記
  • InfoQ: ScalaとSpring:両世界のベストを一体化

    このドメインモデルに基づいて、まず第一に、このアーティクルでは、どのようにHibernate/JPAを使って、Scalaにおける Personエンティティ用の ジェネリックData Access Object (DAO) と具体的なDAOの実装方法を示す。その結果、 PersonDaoに、 CRUD操作が実行できるようになりる。例: val p1 = new Person(“Rod Johnson”) val p2 = dao.findByName(“Martin Odersky”) p1.link(p2) personDao.save(p1) Step 2 それからこのアーティクルは、Person エンティティを「リッチな」ドメインオブジェクトに変換するのに、何が必要なのかを要約する。このオブジェクトは、内部で NotificationServiceを使って、linkメソッドが呼ばれたと

    InfoQ: ScalaとSpring:両世界のベストを一体化
  • Play framework で Java Web アプリケーション開発をもっと簡単に

    Play framework で Java Web アプリケーション開発をもっと簡単に ついに Web デベロッパによって Java フレームワークが開発されました。 ぶくぶくに膨れ上がったエンタープライズ Java をクリーンに置き換える魅力に気付いてください。 Play は開発者の生産性に注目し、RESTful アーキテクチャを目指します。 ★ リリース 1.0.2 ダウンロード そして はじめてみよう ! 概要 バグを直したらリロードするだけ Java ファイルを修正して、保存して、ブラウザをリロードすれば、すぐに結果を見ることができます! コンパイルもデプロイもサーバの再起動も必要ありません。 ステートレスモデル Play は "Share nothing" なシステムです。 同じアプリケーションの多数のインスタンスを複数台のサーバ上で動作させることで容易にスケールし、REST に

  • Scala開眼

    1階受付:インストール等 / 1階案内版:コマンド / 2階:書き方 / 3階:文と式 / 4階:関数 / 5階:オブジェクト指向 / 6階:型 / 7階:注釈等 / 屋上:言語仕様要約 / 雲:scalaパッケージ概観 / 青空:その他の付属パッケージ概観 なお、以上の解説はJavaの文法とコマンドや標準ライブラリ等を一応知っていることを前提(現行のScalaはなおJavaライブラリへの依存度が高くScalaだけで完結できる状態では無い。なお、Scalaのコンパイラ自体はJava1.4用のコードも吐けるが、標準ライブラリが多く1.5を前提としている)とし、その違いだけをとりあえずは書き留めるものである。もっぱら文法やライブラリ参照用であることを目指しているので、例や特長等は次のリンクを参照されたい(なおただし、原著者たちの配慮にもかかわらず、それらの例は関数型言語に関する事前の概要的把握

  • Scalaで使えるWebアプリケーションフレームワークのメモ - Hello, world! - s21g

    ざっと調べてみた感じでは Lift maven2使用。 Play framework Railsっぽいディレクトリ階層。ちょっとMerb風味。 Slim3 GAEに特化しているらしい。 Step Sinatraみたいな感じ (gamiさん、情報thx!) Sweet via @maiha Slinky Scalazにmergeされたらしい Pinky via @maiha lib.web (thx @takedasoft) WebFlavor (thx @takedasoft) Circumflex (thx @tsuka)

  • RubyからScalaに乗り換えた15くらいの理由 - ヽ( ・∀・)ノくまくまー(2010-04-26)

    ● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのがになる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc

  • なぜ Lift に違和感を覚えるか

    最近の私の仕事Ruby on Rails 案件ばかりだ。そうなる以前、流行しつつある Rails を横目に見ながら Java 案件に取り組んでいた頃は、Java の融通の利かない言語仕様に苛立ち、一刻も早くJava から Ruby へ移行したいと思っていた。しかし、実際に Ruby で開発を行ってみると、そこには譲れないトレードオフがあった。Eclipse 上の Java コードは、死んだ文字列ではなく、呼びかければ応えてくれるオブジェクトだったが、Aptana RadRails 上の Ruby コードは、それとは程遠い代物だった。補完はまともに働かず、依存先へのナビゲーションや依存元の検索はインテリジェントでなく、リファクタリング支援は貧弱。これは、特定ツールの未成熟の問題というよりも、動的型付け言語のアイデンティティに関わる問題だろう。そして、Rails アプリケーションの実行速度