uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

java

Javaにも不変データ構造に基づいた(Cons セルベースの)リストがあるのだよ

TL;DR JDK(tools.jar)中、com.sunパッケージ配下に、javacが内部的に使っている「com.sun.tools.javac.util.List 」が含まれており、これは不変データ構造としてのリストのように(Cons セルベースのリストのように)利用できる。 はじめに ScalaのコードをGro…

JCUnitのBuilder APIをためす

以前、以下の記事で紹介した、JCUnitの開発がすすんでいます。(開発ブログ, ソース) uehaj.hatenablog.com 主な拡張としては、状態機械をモデリングしてテスト生成、ビルダーAPIの整備などなど*1 Spockからの利用サンプルをかきなおしてみました。ビルダーAP…

Java VM上の言語の覇者を決める(但しJava以外)スクリプトボウルの履歴

米国開催のJavaOneカンファレンスで恒例の人気セッションとなっている「スクリプト・ボウル」というのがあります。Java VM上で動作する言語同士のガチ勝負で、コード例とか、技術力とかいろいろな側面からパネルセッションでバトルして、その年勝者を決める…

オフラインどう書く第九回の問題をJava 8 Lambdaでやってみた。

オフラインどう書く第九回の問題をやってみた オフラインどう書く第九回の問題をCompileStatic指定してやってみた という記事を書きましたが、今回はJava 8 Lambda式を使って書きなおしてみました。 import java.util.*; import java.util.function.*; impor…

てっとり早くGroovyでJava8のLambdaを使う

追記 http://groovy.codehaus.org/Groovy+2.3+release+notes#Groovy2.3releasenotes-OfficialsupportforrunningGroovyonJDK8groovy 2.3以降、Goovyクロージャはfunctinal interface(sum型)が要求される場所で使用される場合、自動的にそのインターフェースに…

JavaOne 2012 Tokyo/JVM言語BOF

JavaOne Tokyoに参加しています。 表記のBOFにはスピーカーの一人として参加致しました。資料はこちら。 Java One 2012 Tokyo JVM Lang. BOF(Groovy) View more presentations from Junji Uehara 直前の暴風雨で、予定していた懇親会が流れたせいで(?)、慣れ…

GVM: GroovyでJavaVMを書いたよ

前置き さてやっと発売日となりました、私も著者の一人として執筆に参加している「プログラミングGroovy」ですが、ご覧になった方もいらっしゃると思います。プログラミングGROOVYposted with amazlet at 11.07.06関谷 和愛 上原 潤二 須江 信洋 中野 靖治 …

速いぞGroovy!

Javaと同等レベルに高速に実行できるGroovyコードを書く方法が紹介されてます。 Yes, Fibonacci in Groovy can be as fast as Java ! こんなスクリプトです。 @ast.Bytecode int fib(int i) { l0 iload 1 iconst_2 if_icmpge l1 iconst_1 _goto l2 l1 frame …

HtmlUnit賛歌

知っている人には、今さらですが、HtmlUnitというものがあります。名前からするとxUnit系の、ユニットテストツールのような気がするかもしれませんが、違うよ!全然違います。誤解を招く名称です*1。これはGUIレスなブラウザなのです。GUIがないだけでなく、C…

スプーンとAST変換

さっき書いたenumの記事で思い出したのでご紹介ですが、フランスのINRIAがやってる(やってた?)Spoonというプロジェクトがありまして、これはなにかというと、Javaのコンパイラを拡張して、特定アノテーションの指定をきっかけとしてコンパイラのコード生成と…

ビューティフル・アーキテクチャ

ビューティフルアーキテクチャposted with amazlet at 10.05.30オライリージャパン 売り上げランキング: 87474おすすめ度の平均: 1章が価値高いAmazon.co.jp で詳細を見るこの本買ってみました。 おもしろすぐるです。たかだか、この十数年だと思うのですが…

Javaでクロージャを!!!

Javaでクロージャが使えない? はぁ〜〜〜〜〜〜〜〜〜〜??? 聞こえんなぁぁ〜〜〜〜〜〜??? といわんばかりの豪腕なライブラリ。Closures support for Java using dynamic Groovy evaluation.文字列を実行時にGroovyのクロージャに変換してるみたい。…

細粒度並列処理について

JSR-166yはJava 7で導入が予定されている、細粒度並列処理を効率よく行うことができるようにするためのライブラリ群です。Java7でjava.util.concurrent.forkjoinパッケージで提供される予定ですが、実は今でもダウンロードして利用できます。本記事ではこれ…

Java 7における5つ(かそこいら)の変更点確定版

Java 7の最終変更点が確定したとのことで、記事を翻訳してみました。 Project Coin: The Final Five (Or So)まず最初に、Project Coinへ興味深い提案をお送りいただいたみなさま、思慮深いコメントをくださった方々、そしてJavaプログラミング言語を発展せし…

UNIX Magazineのクラウド特集は読んどくべき

UNIX MAGAZINE (ユニックス マガジン) 2009年 04月号 [雑誌]出版社/メーカー: アスキー・メディアワークス発売日: 2009/03/18メディア: 雑誌 クリック: 24回この商品を含むブログ (19件) を見る2009年春号のUNIXマガジンは凄いおもしろい。Burtfs, iPhoneの…

おーい、雲よ!

クラウドという言葉を特に良く聞くようになってきた今日この頃です。ユニマガも特集してましたね。Google Apps Engineも晴れて待望のJava対応になりました。ちょっとまとめますと: ビューはJSPを使うらしい servletも使える。基本的にJava eeのWAR部分。た…

Java 7の文法上の変更

http://javanicus.com/blog2/items/212-index.html http://hamletdarcy.blogspot.com/2008/12/java-7-update-from-mark-reinhold-at.html 上の参照先にJava7の言語仕様変更に関する具体的な構文がでていたのでちょっとメモ的に。 cathch節で受け取る例外宣言…

djUnitのススメ

djUnitというのは、ユニットテストをするためのEclipse のプラグインであります。機能的にすぐれていて、かつ情報もまとまっていて大変よろしいです。 * http://works.dgic.co.jp/djwiki/Viewpage.do?pid=@646A556E6974djUnitには、JUnitを呼び出して実行す…

.NETプラットフォームでJavaコードをコンパイル&実行できるSDK「Ja.NET SE」

Ja.NET これって、さりげなくすごくね?Visual J#との関係は? Groovy.NET、Grails.NETがいながらにして実現?JRuby.NETとかも可能か。 .NET CLR上だとJVMより速かったりして。 JavaNews経由。(追記) http://www.infoq.com/jp/news/2008/12/Ja-NET をみる…

Javaへのクロージャ導入は、苦労じゃ?

http://www.infoq.com/jp/news/2007/12/closures-preserving-feel-of-java 留意しておきたいことは、既にJVM向けのすばらしいプログラミング言語があって両者を提供しており、さらにJavaの相互運用性も備えていることです。 ふむふむ。 それはScalaです。 ず…

Javaの延長線としてのGrails

もともとのJavaの基本理念として、マシン依存・OS依存なコードのみをCで書く、という役割分担の考え方があります。Grailsが訴求しているのは、その考え方(役割毎の言語分担)と似たところがあります。つまり、インプリメンテーション依存、プラットフォーム…