タグ

ブックマーク / uehaj.hatenablog.com (7)

  • パワーアサート(Power Assert)の真の意味 - uehaj's blog

    つい先ほど、Spockの記事をみてましたところPower Assertのことが書いてありました。ご存知のように、Groovy 1.7の「Power Assert機能」は、Spockの機能から由来しています。私としては結構お気に入りの機能です。Power Assertを気軽に体験するにはこちらとかもどうぞ。 私は、Power Asserについて、分かりやすくて便利だな、とは思ってましたが、Spockの記事に書いてあったことで「はた!」とわかったのは、Power Assertがさまざまなassertのバリエーションを不要にするってことです。 さまざまなassertのバリエーションとは、 assertEquals assertSame assertNotEquals assertNotNull とか、極めつけはhamcrestの assertThat(theBiscuit, is(equalTo

    パワーアサート(Power Assert)の真の意味 - uehaj's blog
  • プログラミング言語Frege(フレーゲ)を紹介します - uehaj's blog

    これはマイナー言語 Advent Calendar 2013の21日目の記事です。 Frege(フレーゲ*1 )を紹介します。 Fregeは、Java VM上で動作するHaskell風の言語です。以下のような特徴を持っています。 純関数型言語 非正格評価(いわゆる遅延評価) Hindley-Milner型推論に基づく静的型言語 これらの特徴は、Haskellと共通するものであり、構文も基的なところについてはHaskellとだいたい同じか似ているかもしくはサブセットです。標準関数やデータ型やモジュールについても、Haskell 2010からたくさん引っぱってきているそうです。 しかしながら、Fregeはその目標において、Haskellとの完全な互換性を達成しようとはしていません。実際かなり違っています。特にJava VM上で有用であることに重点が置かれており、プリミティブ型はJavaのもの

    bojovs
    bojovs 2013/12/22
  • DCIアーキテクチャについて語ってみるよ - uehaj's blog

    Trygve Reenskaug氏とJames O. Coplien氏らが提唱する「DCIアーキテクチャ」について、id:digitalsoulさんが論文を翻訳してくださり、またその解説とサンプル実装(groovy, scala)を示してくださっており、読んでみたところ、大変興味深いので理解した限りを書いてみます。 おじさん登場 たとえば、あるおじさんがいたとします。 このおじさんは、白いスーツ、グラデーションの入ったサングラスと金ぴかのネックレスをつけて新宿歌舞伎町に出かけ「やくざ」として振るまいます。とおりかかったお兄さんがそのおじさんに出会い、目が合ってしまい、因縁を付けられ、お金を巻き上げられてしまいます。 さて、おじさんは家に帰ります。実は、このおじさんは家では良いお父さんとして振る舞います。赤ちゃんはこのおじさんの目を見て笑いかけます。おじさんは相好を崩し、オーよしよし。 さて

    bojovs
    bojovs 2012/12/24
  • GroovyServを公開しました - Grな日々(uehajの日記)

    以前予告編として紹介した、Groovyを常駐サーバ化して、見た目の起動速度を高速化するGroovyServの0.1版をApache Lisence 2.0に基づくOSSとして公開しました。GroovyServを使う事で、Groovyの起動がRubyPerlのように速くなります。これにより、「JVM上のスクリプト言語は起動が遅いから駄目だ」などという批判を過去のものとする事ができます。 特徴は以下の通り。詳しくはこちらもどうぞ。 クライアントはC言語およびRubyのものを用意(C言語クライアントの動作にはWindowsでは今のところcygwinが必須。cygwinが嫌な方はRuby版をどうぞ。)。 MacOSX,Windows(cygwin),Linuxで動作確認されており、これらの環境向けにバイナリパッケージが提供されています。 クライアントは、初回起動時にサーバが動作してなければサーバ

    GroovyServを公開しました - Grな日々(uehajの日記)
  • [JVM][Clojure] Clojureについて本を読んだだけで語ってみるよ - uehaj's blog

    プログラミングClojureのを読み終わりましたので、読書感想文です。 Clojureでのプログラミング経験があるわけではないので、ごくごく浅いものとなっています。 基的な間違いもひょっとしてあろうかとも思いますので、コメントいただけますと幸いです。 ClojureView more presentations from uehaj. (2010/3/31追記) あ、表紙の日付は間違い。2010/01/17です。id:kawaosoさんご指摘どうもありがとう! Closure入門のは、個人的にとてもおすすめです。 (2010/5/26追記) コメント欄でご指摘いただき、「短く書ける」の例のリンク先URLがたどれないのと、URL自体変更になっているみたいなので、あらためてscalaとclojureの比較を行っている記事へのURLを紹介します。 http://www.bestinclas

    [JVM][Clojure] Clojureについて本を読んだだけで語ってみるよ - uehaj's blog
  • Clojureの型ヒント - uehaj's blog

    遅まきながら、一部でブーム?のClojureの、「プログラミングClojure」読んでます。 プログラミングClojure 作者: Stuart Halloway,川合史朗出版社/メーカー: オーム社発売日: 2010/01/26メディア: 単行(ソフトカバー)購入: 10人 クリック: 324回この商品を含むブログ (71件) を見る ClojureはJVM上のSchemeライクなlispで関数型言語で高速とのことです。 Clojureに興味があったのは、何で高速なのかを知りたかったということが一つです。マイクロなベンチマーク(1,2)を見るとなかなか速いらしい(少なくともGroovyよりは)。Lispも動的系の言語なのに、なぜその差が生じるのかなと。 まだを途中まで読んだ限りですが、高速であることの理由として、関数型だから副作用が無くてロックしないコレクションを持ってるとかもある

    Clojureの型ヒント - uehaj's blog
  • プログラミング言語Fan - uehaj's blog

    James Strachan氏のブログ記事へのコメントを見ていて知ったのですが、Fanというプログラミング言語があるそうな。 http://www.fandev.org/ 「Productivity of Ruby, Performance of Java」と書いてありますが、JVMで動いて、.NETでも動いて、JavaScriptにコンバートされてブラウザ上でも動くらしい(JVMが基で.NETはほぼ動く、JavaScriptは実験的?)。 名前はやっぱり、Groovyに対抗して、Fan楽しいってわけですかね。(Funと勘違いorz)ググラビリティはGroovyに劣らずに悪い、というか最悪の部類か。 上のページのトップにある特徴は以下の通りです。 Rubyの生産性でJavaの性能 移植性 FanコードはJava VMと.NET CLR、そしてブラウザ中のJavaScript上でも動作しま

    プログラミング言語Fan - uehaj's blog
  • 1