タグ

ブックマーク / www.todesking.com (4)

  • ScalaMatsuriでFrom Ruby to Scalaという発表をしてきました - TODESKING

    RubyScalaに比べてクソとかいう話ではなく、Scalaから見たRubyの興味深い点のご紹介みたいな趣旨の発表です。発表資料が見にくくて申し訳ございません。 なぜかトリに発表することになった結果、Scalaのイベントで延々とRubyの話をしてる異常者みたいな印象が強化されたけど、私はただ、言語の多様性について皆さんに考えていただこうと…… RubyScalaの印象についてですが、動的でアジリティとハック性に優れるRubyと、静的で記述性が高くアカデミック要素の強いScalaという感じですね。エコシステムの変化が激しくて、関連フレームワークのアップデートを怠るとすぐ死ぬのはどちらにも共通した特性(そういうのがつらい人はジャバエイトをやるとよい)。 私はJava出身といってもmavenエコシステムに関する知識に乏しかったので、mavenの上に載ってるsbtの依存性管理には悩まされました

  • Scala雑記 - TODESKING

    しばらく前ですが、Scalive #1というところでLTしてきました。 Scalaのコンパイルを3倍速くした話 こういう実務寄りのScalaイベントって珍しい気がしますね。なんと発表者が誰もモナドって言わなかった!! その代わりコンパイル速度について言及されまくってましたが……。 3月末からScalaでアドテクやるという会社に転職したのでScalaでアドテクをやってますが、Rubyソシャゲやるのとそれほど感覚は変わらない。どちらも制限時間付きの大量リクエストをさばく必要があるけど、それなりのインフラがあれば、あとはふつうに高品質なコードを書いて粛々とレスポンスを返すのみですよワハハ。なのでハイパフォーマンスまわりのおもしろい話はできません。まあ常識で設計してふつうに開発すればいいんじゃないの。とか言ってると強い人から殴られそうだな…… 最近は技術的負債の返済を主なミッションとしてビルドシ

  • Rubyで高速にパターンマッチするgemを作った - TODESKING

    Ripperの出力とかParseletの解析結果などを扱うのに、ArrayやHashでパターンマッチして中身を取り出す処理を多用する必要があったのでパターンマッチライブラリを作りました。 GitHub: todesking/patm 同様のライブラリとしてはpattern-matchがあります。 機能面ではpattern-matchのほうが豊富ですが、PATMは高速なのが売りです(DSLによるメソッド定義を使用した場合、ネイティブRubyコードにコンパイルされるため50倍くらい速い。case式内で使用した場合でも7倍程度)。ベンチマークについてはこの記事の下のほう参照。 主な機能 DSLによるメソッド定義 extend Patm::DSL することで define_matcherを使ったメソッド定義が可能です。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    clavier
    clavier 2014/05/26
  • Rubyのローカル変数をシンタクスハイライトするVimプラグインを書いた - TODESKING

    Rubyはローカル変数への参照と無引数のメソッド呼び出しを同じ記法で書けるので、コードを読むときに混乱したりtypoでNoMethodErrorを出してがっかりすることが多々あります。 幸いなことにこれらは静的に解析することができるので、ローカル変数への参照を色付けするVimプラグインを書いた。 Github/ruby_hl_lvar.vim すごく便利な気がする!!!!!!! Rubyインタフェース(>=1.9)が有効になったVimが必要なのでご注意ください。MacVim 7.4 KaoriYa 20140107で動作確認しました。 しくみ Ruby1.9以降に標準添付されているripperというライブラリで、Rubyの構文解析をしてローカル変数への参照を取り出しています。 require 'ripper' Ripper.sexp(<<EOS) a = 10 b = 20 c = a +

    Rubyのローカル変数をシンタクスハイライトするVimプラグインを書いた - TODESKING
  • 1