タグ

ブックマーク / nobeans.hatenablog.com (8)

  • Java8のInvokeDynamic実装一新によるGroovyのindyモードの性能改善効果が凄すぎた件 - 豆無日記

    日、Java Day Tokyo 2014に来ています。 で、ついさっきのセッションで「JDK8ではInvokeDynamic(以下、indy)の実装を一新したのですごく速くなったよ」という話を聞いたので、Groovyのindyモードで試してみました。 Groovyは2.0(現在は2.3)でindy対応されています。 それ以前はGroovy独自機構による性能改善が行われていました。 しかし、JDK7からのホヤホヤなindyを前提にしてしまうと、JDK6で動かなくなってしまいます。 Groovyは下位互換性が重視されているので、これは問題です。 というわけで、indyが使えないJDK上でも使えるように既存の独自機構もそのまま残っているし、indy不要バージョンが標準になっていて、indyオプションを利用可能にするには$GROOVY_HOME/lib配下を$GROOVY_HOME/indy配

    Java8のInvokeDynamic実装一新によるGroovyのindyモードの性能改善効果が凄すぎた件 - 豆無日記
  • Groovy2.3.0-beta-1と噂のTraitを試してみた - 豆無日記

    Groovy2.3.0-beta-1がリリースされましたね。 目玉としてはやはりtraitでしょう。 今までのMetaClassによるメソッドの動的探索パスをいじる系の機能で似たようなことはできましたが、何かと限界(複数スレッドにおける動作の保証とかかなり泥臭い感じだったり、一度動的メソッドを追加すると取り除くのが大変だったり)がありましたが、それらを超えるために静的ソリューションとしてtraitが実装されました*1。 ドキュメントがすごくわかりやすくて、サンプルコードを上から順に読むだけで少なくともどのように使えるかは難なく理解できるでしょう。 http://beta.groovy-lang.org/docs/groovy-2.3.0-SNAPSHOT/html/documentation/core-traits.html 最初の方を読んでるとJava8のインタフェース+デフォルトメソッ

    Groovy2.3.0-beta-1と噂のTraitを試してみた - 豆無日記
    waman
    waman 2014/04/09
    『Java8のインタフェース+デフォルトメソッドと同じかな?と誤解しますが、Groovyのtraitはステートフルなのです。つまりプロパティを定義して状態が持てる。もう完全に普通の多重継承です。』
  • GroovyServとGradle Daemonとの違い - 豆無日記

    10/23 9:50 訂正&追記: GradleがデフォルトでDaemon起動すると書いてた件 (thanks to きょんくん) 元記事: http://dev.classmethod.jp/server-side/gradle/gradle-first-contact/ 経緯的な id:daisuke-mが昼過ぎに技術を語るいつものシリーズにGradleを追加した旨のツイートをしてました。 生粋のGradlerとしては喜び勇んでチェックしてみたんですが、「Gradleのインストール」であるべきところを「Groovyのインストール」と書いてたので、親切心でコメントしたわけです。 @daisuke_m "Groovyのインストール"->"Gradleの〜"— Yasuharu Nakano (@nobeans) 2013, 10月 22 そこまでは良かったのですが、ちょっと調子に乗ってしま

    GroovyServとGradle Daemonとの違い - 豆無日記
  • Gradle1.6の新機能mustRunAfterでタスク間の実行順序が制御可能になった #gradle - 豆無日記

    Gradleではタスク間の依存関係の指定ができます。 build.gradle: task a << { println "A" } task b(dependsOn: "a") << { println "B" } task c(dependsOn:"a") << { println "C" } task d(dependsOn: ["b", "c"]) << { println "D" } 実行結果: $ gradle d :a A :b B :c C :d D BUILD SUCCESSFUL Total time: 1.612 secs 実はこの例のBとCの間の関係は不定であり、実装に基づいて(この場合はアルファベット順だったりしたはず)実行順序が決められます。 ここではA→B→C→Dになっていますね。 しかし、このようなグラフ的には一見どっちがさきに実行されても良いようにみえるB

    Gradle1.6の新機能mustRunAfterでタスク間の実行順序が制御可能になった #gradle - 豆無日記
    waman
    waman 2013/06/21
  • コペンハーゲンのGR8Conf EU 2013でGroovyServとImproxプラグインを紹介してきた - 豆無日記

    5/22-24にデンマークはコペンハーゲンで開催されたGR8Conf EU 2013というGroovy系のカンファレンスで、GroovyServとImproxプラグインを紹介してきました。 http://gr8conf.eu/index 右の写真はコペンハーゲンの定番がっかり観光スポットの「人魚の像」ですね。 がっかり感が軽減されている一枚を選びました。 まあ、どこの観光地にもがっかりスポットはつきものです。 札幌の時計台にくらべれば人魚はだいぶ良かったんじゃないでしょうか。 GR8Conf EUは今年で5周年だそうです。コペンハーゲンがオリジナルですが、「GR8Conf」ブランドのカンファレンスは別ロケーションでも何度か開かれていて、USは今年も7月にありますしほぼレギュラー化してるようですね。他に覚えているところではオーストラリアでも開催されてました。日でも開きたいですね。 さて、自

    コペンハーゲンのGR8Conf EU 2013でGroovyServとImproxプラグインを紹介してきた - 豆無日記
  • GExcelAPI 0.3 リリースしました #gexcelapi - 豆無日記

    GExcelAPI 0.3をリリースしました。 https://github.com/nobeans/gexcelapi Change Log、といえるかどうか 変更点としては、以下の2点。 POI3.9化 Java7対応 (thanks to @yamap_55) これだけ? はい、これだけです。 でも、Java7対応重要です。ですよね? オレオレMavenリポジトリの移転 あと、今後の使うときの注意点として大事なのが、オレオレMavenリポジトリの移転です。 今までMavenリポジトリとしてGitHubrawモードを使った疑似リポジトリを使っていましたが、今回からCloudBeesのリポジトリを使うようにしてみました。 既存の0.1、0.2もなんとなくそっちにコピーしてありますので、ひとまず今後はCloudBeesをお使いください*1。 release (stableバージョン) h

    GExcelAPI 0.3 リリースしました #gexcelapi - 豆無日記
  • Groovyベースのビルド管理ツールGradleを使ってみる - 豆無日記

    Gradleってなに? 簡単に言えばMaven2のようなものですね。 あらかじめ様々な機能がプラグインとして用意されているビルドツールです。 勝手に選んだ主な特徴のトップ3は↓。 設定ファイルをXMLではなく、GroovyによるDSLで書く(build.gradleファイル) Groovyコードを含むプロジェクトの設定が非常に簡単 Maven2のディレクトリ構成を踏襲しているので、Maven2との同居も可能 といった感じで、とりあえずあっさりと流しておきます 入手・インストールなど ↓ダウンロードはこちらからどうぞ。 http://www.gradle.org/ 展開したディレクトリをGRADLE_HOME環境変数に指定して、PATHに$GRADLE_HOME/bin通すだけの、よくあるインストール方法です。 $ gradle --version ---------------------

    Groovyベースのビルド管理ツールGradleを使ってみる - 豆無日記
    waman
    waman 2010/10/14
    プロジェクト管理ツール
  • JavaOne2010 9/20 -- Groovy: To Infinity and Beyond - 豆無日記

    GroovyのPJリーダのGuilliame Laforgeが体調不良でJavaOneに参加できなくなったため、急遽Grails開発メンバのJeff Brownが代役で登壇。 流れとしては↓のような感じ。 過去編:Groovy1.6以前の振り返り 現在編:Groovy1.7で追加された機能 未来編:Groovy1.8で追加予定の機能(現在1.8beta2がリリース済み) 日々、新着情報は追っていたのでJavaOneならではというような新しい情報は全く無し。 復習に始まり、復習に終わったセッションでした。 ただ、よくまとまっているので、Groovy始めたばかりの人にはいい資料なんじゃないですかね。 資料公開が待たれるところです。 1.7では: ネストクラスも書けるようになり、よりJavaコードとの互換性が向上。 アノテーションをimport文などJava標準よりも多くの場所に付けられようにな

    JavaOne2010 9/20 -- Groovy: To Infinity and Beyond - 豆無日記
    waman
    waman 2010/09/30
    Groovy1.8 とか。 DSL など
  • 1