1 :
デフォルトの名無しさん :
04/03/23 23:27
そう思っているのは1だけ。
3 :
デフォルトの名無しさん :04/03/24 07:21
なんか恥ずかしい名前ですね
正直ちょっといいかなと思ったJava+python愛好家。
おもしろそうだね。 で、何に使うの?
スクリプト言語といえばテキスト処理。 テンプレートエンジン使ったりとかだね。
正直、久しぶりに面白いスクリプト言語に出逢った気がする。
まずはHellWorldを見せろ 話はそれからだ
println "Hello, World"
13 :
デフォルトの名無しさん :04/04/16 01:00
s1 = 'Hello' s2 = 'World' print "${s1},${s2}"
groovyMarkupだぞこら
>10 seasarのコンテナを扱うというよりかは groovyでseasarのコンテナの設定ができる 、だな。
>>15 さんぷるも。
後、PicoのGroovyとどの辺が違うの。
コンテナが違うということ以外に。
名前が悠長すぎる!!!Groooooooooooooooobyってなんだよ!
グビレって言う日が来るのかね。
19 :
デフォルトの名無しさん :04/05/30 13:30
グルービーて何ですか?
21 :
デフォルトの名無しさん :04/07/03 00:52
結局、スクリプト言語ってどれが良いのよ?
sh
23 :
デフォルトの名無しさん :04/07/04 21:02
n88-BASIC
24 :
デフォルトの名無しさん :04/07/11 01:21
なんかパッと見 ruby っぽいな
>>24 そりゃパクリなんだから当然だろ。既存のスクリプト言語のいいトコパクリ+
JVM上で動く言語。Java自身に続き、商売で言語作成ヤッテル連中の当然の発想
だよ。
この言語発音するのは人前でサタデーナイトフィーバーのあのポーズとるくらい恥ずかしい。
foreachの構文はtigerと同じにしてもらいたいものだが。
0 を何かで割ろうとすると反応が返ってこないんだけどなぜ? 例. (10 .. 0).each { println it / 10 } 実行結果 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 <= ここで stop 環境は Version: 1.0-beta-6, JVM: 1.5.0-beta2-b51 です。
ほほう、ここがうわさの 32書き込み/4.5ヶ月 のGroovy スレか。
これからだよ。これから。
捺印ナビリティの向上には激しく期待してるんですが、今度のプロジェクトでgroovy使いましょー、とはさすがに提案できないなぁ。言えるのは何年くらい先でしょうねぇ……。
納品物に使うんじゃなくて、テストとか、ちょっとした試行錯誤とかに使うんだよ。
そんなんだったら他のLLと同じやん……。
納品物に使わないなら開発効率の改善は限られた物になってしまいます。 GroovyをJava並に普及させるには納品物に使われることを目指す必要があります。 Groovyが普及するにはまずGroovyの仕様安定と欠点の解消が必要ですが、 それは本家の人達にがんばってもらう方が良いでしょうね。 外野として出来る事としては 1.Javaの小規模案件にGroovyを使えるようにするための環境整備 携帯電話用Javaを置き換える しないでしょう。 標準スプリクト言語になるには納品物に使わえるようにする事が大事です。
実状は全然知らんのだけど、ドキュメント整備じゃないのか? 自分一人知ってたところでどうしようもないわけだし。
済みません、先ほど途中で書き込んでしまいました。
Groovyを納品物に使わないなら開発効率の改善は限られた物になってしまいます。
開発効率を根本的に改善するにはGroovyを納品物に使う必要があります。
Groovyが普及するにはまずGroovyの仕様安定と欠点の解消が必要ですが、
それは本家の人達にがんばってもらう方が良いでしょうね。
外野としては周辺を整備を行うという形で協力するのが良いのではないでしょうか。
1.Groovyが使われる分野を作り出す
日本では携帯電話用Java(iアプリ)が普及しています。
iアプリはサイズが小さく独立性も高いため他の言語に置き換えやすいと考えられます。
Groovyによるiアプリ開発環境があればGroovyの普及が進むでしょう。
iアプリ分野でGroovyの開発効率が知られるようになれば
Webアプリケーションにも食い込みやすくなります。
2.Javaのソースに変換出来るようにする
Javaはすでに納品物に使う言語として認知されているので
Groovy->JavaトランスレータがあればGroovy採用の障壁が減ります。
Groovyで開発し、Groovy認知まではJavaで納品するという手が使えます。
>>40 確かに知名度向上と知識共有のためにドキュメントはもっと欲しいですね。
公式ドキュメントについてはGroovyラボが日本語版を用意されていますが、
周辺ドキュメントはこれからですね。と、いうわけでもうひとつ追加します。
3.Groovy周辺ドキュメントを整備する
Groovyプログラマの助けになるドキュメントを書きましょう。
例えばGroovyによるデザインパターンの解説などが考えられます。
プロトタイピングとテストのためでも、十分開発効率は改善できるし。 iアプリは、静的検証の役割が大きいから、Groovyは採用しづらいだろう。というかできない。 Webが一番有力。 それでも、Java2se5のautoboxingや拡張forで、一番効率の悪かった部分は解消されるし、いろんなフレームワークでコーディング量が減ってるからそこまで効果があるかどうか。 結局は、Rubyも納品用のプロダクトじゃなくて簡単なフィルター作るために人気があるようだから foreach("somefile.txt"){ println it } のようにファイルを読み込んで一行づつ処理する構文が一番望まれる。
Groovy ってそのうち JDK に入るんじゃないっけ?
JSRだからといって、SDK/JREに入るとは限らないと思うけど。
これって.NETの多言語戦略のパクリ?
そもそもJVM上で動くJava以外の言語なんぞ、 COBOLからRubyまであるしな。 Sunは黙殺してたが。
52 :
デフォルトの名無しさん :04/08/23 23:35
Javaのあのくそ長いメソッド名は最初からスクリプト言語と相性悪い罠
53 :
デフォルトの名無しさん :04/08/23 23:46
これはインタプリタ言語?
わざわざ別スクリプト言語用意して、evaれなかったら哂う。
中身は悪くないけど、ネーミングセンスが最悪だから 標準にはなれない。
すでにJSRなんだけども。
話がループしているようだ。
>>53 インタプリタ言語だけど、コンパイルしてクラスファイルにすることもできる。
標準化されたとして、どんな使い道があるんだろうか
60 :
デフォルトの名無しさん :04/08/28 16:00
Javaより若干遅いっていう評判だけど、 .class にコンパイルしても、やっぱり若干遅いの?
遅いよー(ちょっとは使ってみたら?) >> 60
>>59 すでにJavaが使える人には、あまり使い道がないけど、PHPとかからの乗り換えにいい。
ところで、7月からb6で止まってるんだけど、どうしたんだろうね。
rc待ち?
GSPはリンク切れだし。
63 :
デフォルトの名無しさん :04/09/19 12:22:11
luaみたいにアプリ内部の動作をgroovyから制御できる ことって出来ますか?
↓グルービーでキャッチーでポップな一言
ぬるぽ
ゴッ!
鈍い音がした……
オリンピックの重量挙げの最中にそんな音が響き渡ったこともあったなあ。 いたそ。
JavaWorld11月号特集2「Groovyの魅力を探る」 (P50〜P76)
http://www.idg.co.jp/jw/features.html >Javaプログラマーのための次世代スクリプト言語
>Groovyの魅力を探る
>・・・関谷 和愛/上原 潤二
>開発サイクルが短くなる一方、仕様の追加/変更が頻発する今日の業務システム開発の現場においては、
>XP(Extreme Programming)をはじめとするアジャイルな開発手法に注目が集まっている。
>しかし、こうした“軽量”な開発手法を実践するには、JavaやXMLだけでは重厚すぎ、
>道具立てに欠けると感じたことはないだろうか。
>「Groovy」は、こうした背景から生まれた新世代のスクリプト言語である。
>本特集では、このGroovyの文法/使い方の基礎から応用までを詳細に解説する。
>それを通して、GroovyがJavaプログラマーにもたらすメリットを明らかにしたい。
>オーバービュー Groovyの輪郭をつかむ
>基礎編 基本操作と必修イディオムを学ぶ
>応用編 定番処理にGroovyを組み込む
サンプル・ソース
ftp://ftp.idg.co.jp/pub/jw/0411/Groovy.zip
軽量な開発手法ってJaclやTclBlendやjythonやrhinoではだめなのか? そういった先達を無視してGroovyだけのの利点のように扱うのはどうかと思う。 Groovyだけの利点って何よ。
Groovyが特別、ほかのVM上で動くスクリプトより秀でているってことはないんじゃないかな。 Javaに文法が似てるってのは結構意義があるね。Javascript2.0もかなりJavaに似てると思うけど。
>>71 Java VM で Ruby っぽいことができる。
ついでに「先達を無視して○○だけのの利点」のように取り巻きが振る舞う
and/orメディアに取り上げられるのもまたRuby譲り、かなと。w
まあ、だからアンチRuby とか、Ruby以外好き にゃあ、無用だね。
>>74 なぜにそこでRubyが話題に?
Ruby好きならJRubyにいくと思うけど・・・
76 :
デフォルトの名無しさん :04/09/26 05:03:16
Groovyのクロージャどうやって実現してんだろ? Javaスタックは使えないよね? もし独自に環境モデルでやってるなら遅そうだなー
クロージャか。delegateみたいなもんだな。 Javaはようやく全てクラスとして書くって思想が 重いって事に気づいたようだな。
>>77 Javaを擬人化するのはやめていただきたい
それにJavaが変わるわけでもないし
>>77 C#のdelegateみたいなのだったら実質javaの内部クラスと同様だからわかるんだけど
クロージャってコンテキストを持つじゃん?
どうやってんのかなー
80 :
デフォルトの名無しさん :04/09/26 17:01:45
Javaの内部クラスはいちおうfinalなローカル変数にはアクセスできますが? そうだなぁ。 Javaで普通に作ると、内部クラスにHashmapかなんか持たせて、 アクセッサ用意してローカル変数をそっちに詰め込んで、 クロージャはそっちをアクセスするって感じじゃないの?
WebProg板でやれやアホども
なんでWebProg板?関係ないじゃん
たぶん言ってみたかっただけだよ。 なんか勘違いしてるだけかもしらんが。 馬鹿は処置なしです。
>>75-80 適当な推測で語ってないで groovyc でスクリプトを
class ファイルにコンパイルしてから逆コンパイルしてみろ。
見当違いなこといってると恥ずかしいぞ。
処理系すら手元にありませんが何か?
>>84 すまんおれもインストールすらやる気なし
知ってんなら教えて
逆コンパイルで簡単に仕組みわかるぐらいなら内部クラスか?
finalつけないといけない制限どうすんだ?
推測三昧だわ
スマソ実は俺も処理系なし。 自前のフレームワークに取り込むかどうか思案中だけど、、、。
実は俺もダウンロードすらしていない。
俺漏れも
インスコすんのマンドクサ('A`)
>>90 べつに、ダウンロードして解凍するだけですよ。
フルパスでコマンド打ち込むのがいやならパス通せばいいだけの話。
>>91 それが面倒だっつってんだろが
おれの気持ちもわかってくれよ
まぁいいよ
Groovyはローカル変数を独自の環境フレームに確保する
なのですげー遅いウンコ言語
というわけで脳内解決したから興味なくなった
すげー遅いのは確かだけど独自の環境フレームには確保しないよ。
>>92 わかってるよw
起動がめんどくさかったら、自分でレジストリいじくってダブルクリック起動すればいいだけの話でもある。
Groovyの読み方を教えてください
やっぱり環境フレームつくってるじゃねーか 適当なこと言うんじゃねーよ、ボケが
ハア?
100 :
76 :04/09/29 03:42:13
お前だろが、見当違いなこと言って恥ずかしいやつってのは しりもしないくせに見栄はっちゃってよ えらそうに言ってるわりに何にもわかってねーじゃん てか低脳
>>99 どうやら76は84のことを怒っているものとおもわれ。
>100 ABC
環境フレームっつーと、LISPやSchemeでおなじみのアレか。 処理系独自のフレーム管理になるから、 JavaVMのスタック命令使えなくて遅くなるのかもしれないけど、 あれは便利だよね。 スクリプト言語はこうじゃなくちゃいけない。 これと比べてしまうと、gccの関数内関数拡張なんてゴミに等しい。
なんかむちゃくちゃ遅いって噂流れてますが、マジ?
まじ
使い捨てプログラムの場合、書く時間 >> 実行時間だから書く時間が短くなれば、実行時間が少々増えたところで、思い立ってから結果が出るまでの時間が短い、という考え方。 結果が得られることがわかってから、Javaに持っていけばいい。
まだ実験段階だから、最適化を全くしてないらしいが。
ボウズ、最適化は仕様が固まってからだろ
短所を探すよりも長所を伸ばしましょう
漏りあがってるねぇ。
おくればせながら
>>70 を買ってきた。
なんかすごいページ数なんですけど。しかも記事がマニアックだ。
>>71 そんな風によみとれる表現があるの?
71は日ごろから被害妄想に悩んでる人なんだよ
"c:\\rtest"が c:\キャリッジリターンtest と評価される nやtで始まってもダメなんだろうな お陰でFile.separatorを初めて活用した
今夜はグルービーナイト
なんか懐かしいこと言ってくれるじゃないの!
117 :
デフォルトの名無しさん :04/10/04 01:04:03
groovyをインストールしてgroovyshは動いたけど、groovyConsoleを起動しようとすると Exception in thread "main" java.lang.ClassNotFoundException: groovy.ui.Console ........ というエラーが出る。どうすればよいの?
>>118 実はJavaの経験が無いので、よくわかっていませんが、
JAVA_HOME, JAVA_FONTS, GROOVY_HOMEは設定しています。
groovyshは動くので、大筋ではあっていると思うのですが。
>>117 groovy-1.0-beta-7.jarにgroovy.ui.Console.*が入ってないですね。
ビルドのミスでしょうか?
groovy-1.0-beta-7\src\main\groovy\ui (beta-7ソースファイル)
Console.groovy <-これがコピー、コンパイルされるはず
ConsoleSupport.java
GroovyMain.java
GroovySocketServer.java
InteractiveShell.java
package.html
ShellCompleter.java
groovy-1.0-beta-7.jar\groovy\ui (beta-7 jarファイル)
ConsoleSupport.class
GroovyMain.class
GroovySocketServer$GroovyClientConnection.class
GroovySocketServer.class
InteractiveShell.class
ShellCompleter.class
groovy-1.0-beta-6.jar\groovy\ui (beta-6 jarファイル)
(前略)
Console.class <- コンパイル
Console.groovy <- コピー
ConsoleSupport.class
GroovyMain.class
InteractiveShell.class
\ │ / / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ─( ゚ ∀ ゚ )< くっちゃらはぴはぴ! \_/ \_________ / │ \ ∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ! Py厨〜〜〜〜! >( ゚∀゚ )/ | / \__________ ________/ | 〈 | | / /\_」 / /\」  ̄ / /
124 :
76 :04/10/20 22:55:40
気が向いたので84の言うとおりにgroovyc でスクリプトを classファイルにコンパイルしてから逆コンパイルしてみた。 結果憶測は完全に正しかった。 ローカル変数はpropertyという名前で自前の環境フレームにて管理されてる。 84わかったか?
そもそも環境用意しないでクロージャ実現なんてできるん?
>>124 ほら、やっぱりやれば出来る子じゃないの
お母さんもそう言ってたでしょ?
>95 ぐるるるるるぅ?hぃ
グルーなルビー?
130 :
デフォルトの名無しさん :04/11/12 23:38:10
java上で動くperlはないものか。
\ │ / / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ─( ゚ ∀ ゚ )< くっちゃらはぴはぴ! \_/ \_________ / │ \ ∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ! Py厨〜〜〜〜! >( ゚∀゚ )/ | / \__________ ________/ | 〈 | | / /\_」 / /\」  ̄ / /
133 :
デフォルトの名無しさん :04/11/12 23:47:48
普通にJavaを使えば良いと思うんだが…。 遅くなるだけだろ?
再利用しないコードを手っ取り早く書くには便利だよ。 速度が遅くても早く書けることのほうが重要なケースってあるし。
135 :
デフォルトの名無しさん :04/11/13 16:01:52
海外でははやっているようなんだが、日本ではまだかな。 日本語のドキュメントが足りないんだろうな。
136 :
デフォルトの名無しさん :04/11/13 18:08:40
>>134 RubyやPerl等の言語と比べても手っ取り早いの?
ぐるぅびぃは使ったことないからわからんのよ
自分で調べろ。
>>136 変わらんけど、RubyやPerlはJavaに組み込んで使えないでしょ?
139 :
デフォルトの名無しさん :04/11/13 18:30:42
RubyもPerlもPythonもTclもJavaScriptもJVM実装がある
140 :
デフォルトの名無しさん :04/11/13 18:34:51
仮想マシンの上で動くJavaのそのまた上で動くスクリプト?いみね。
PerljのJVM実装って名前なに?
perl JVM って B-JVM-Jasmin かな?
>>139 そういう意味じゃなくて、Javaアプリケーションの中に組み込んで使えるかどうか。
144 :
デフォルトの名無しさん :04/11/13 19:16:32
使えるよ
JavaScriptは確か組み込みのがあったね。 PerlやRubyは初耳だな。
好きなもん使えよ。どれも大して変わらんから。
Javaのクラスを透過的に使えるかどうかじゃないの?
JVM=Javaと思ってるんだろうな。
JVMで動くRubyがあったと思ったけど、Rubyで動くJVMのことだった。orz
>>148 Javaのクラスが透過的に使えないとでも?
寝言は寝て言え。
>>151 JVMで動くGroovy以外のスクリプト言語で?
154 :
デフォルトの名無しさん :04/11/13 21:44:12
perlでJavaクラス呼び出しか。萌える。
なにこのJVMで動くスクリプト言語総合スレ
>>154 それより、Javaのクラスを継承したクラスをPerlで定義とか。
>>151 例えば、Perlで$valueに文字列を代入して、
$value = "Hello Perl!";
Javaでそれを使用することは出来る?
System.out.println(value);
逆はどうかな?
グルービィアーチェ
159 :
デフォルトの名無しさん :04/11/13 23:49:52
JythonはJavaのクラス継承できるよ。
160 :
デフォルトの名無しさん :04/11/13 23:55:12
>>157 JythonでもJaclでもできるよ。
Java版Perlは使ったことないからしらないけどできないと思う理由がない。
え、Javaのソースの中にJythonのコードを一つのソースファイルに混ぜて書いて、 コンパイルしてクラスファイル作れるってこと? たとえばJPerlなら.plファイルからクラスファイルを作れるだけじゃないの? PerlからJavaのクラスを使用する事はできるだろうが、ソースファイルにPerlと Javaの文法ごちゃまぜに書いたりはできないんじゃないか?
それぞれ使ったことがないものについて話をしているのが笑える。
163 :
デフォルトの名無しさん :04/11/14 00:35:25
Pythonコードの文字列をJavaソースに含めることを「一つのソースファイルに混ぜて書いて」に含めるならそれもできるよ。 逆に聞くけどGroovyではそれ以上のごちゃまぜができんの? Javaコンパイラのシンタクスに手を入れるような裏技を使ってるとか?
Javaコンパイラは使っていないと思うが。
最初に出て来たPerlとRubyはどこに行った。
>>161 ,163
たしかGroovyはJavaの文法を完全に含んでるはず。
C++とCの関係みたいなもん。
だからGroovyとJavaの文法をごちゃまぜという事態は発生しない。
>>166 forEachと拡張for
っていうか、なんでみんな憶測で断定するんだ?
>> C++とCの関係 嘘吐くな
自作アプリの拡張用にGroovy使ってるんだけど、便利だよ。 パフォーマンスはイマイチだけどね。
じゃ、イラネ・・・ ていうかJavaランタイムないと動かんのでしょ? 問題外だわ
Java みててもわかるように速度は後から改善できても、 言語仕様はなかなか変えられない。 どっちを優先すべきかは自明。
JREさえあればプラットフォームに依存せず動くというのはとても便利。 PythonだってRubyだってOS標準で入ってるわけじゃないのはJavaと条件は一緒。
>170 はアセンブラ厨ということで。
>>170 のような考え方でよくスクリプト言語のスレ見る気になったよな
175 :
デフォルトの名無しさん :04/11/19 00:17:43
groovyって cat 20041111.log | ./hoge.groovy みたいなパイプを使った処理って出来ますか? groovy パイプとかでぐぐっても見つけられません 教えてえらい人
拡張子長! 標準入力から読めばいいんじゃね?
177 :
デフォルトの名無しさん :04/11/19 17:42:18
$ cat A.groovy class Foo { myGenerator(yield) { yield "A" yield "B" yield("C") } static void main(args) { foo = new Foo() foo.myGenerator { println "Called with ${it}" } }} $ groovyc A.groovy $ ls A.groovy Foo$2.class Foo$_main_closure1.class Foo.class としてから $ java Foo を実行したのですが、java.lang.NoClassDefFoundError ... と言われ怒られてしまいます。 groovy-version/lib 内にある幾つかの *.jar ファイルを CLASSPATH に 入れればいいのはわかっているのですが、なにしろ20個近くのjarファイルがあるので、どれが ランタイムに関わっているのかわかりません。 だれか、実行するのにインクルードされるべき jar ファイルを教えていただけませんか?
全部含めればいいじゃないか。
179 :
デフォルトの名無しさん :04/11/19 20:46:46
>>178 classpathが長すぎるとantがエラーはく。
だからやだ。
hibernate+spring+velocityで25くらいのjarをクラスパスに含めてるけど、そういうことに陥ったためしがないんだが。
ant使ってるのにclasspathにパス指定してるとか? いまどきシステムのclasspath使うなよ。
182 :
デフォルトの名無しさん :04/11/19 22:53:36
Groovyもスクリプト言語なのにクラスパスとかJavaのめんどくささを継承してるってことだよね
どんなスクリプト言語でもライブラリのパスは設定する必要があるわけだが。
184 :
デフォルトの名無しさん :04/11/19 23:03:48
素直にJava使えよ。
185 :
デフォルトの名無しさん :04/11/19 23:04:25
>>183 > どんなスクリプト言語でもライブラリのパスは設定する必要があるわけだが。
全部一つのjarファイルにまとめればよい。
そうすればパス指定は1つで楽にすむ。
187 :
デフォルトの名無しさん :04/11/19 23:05:56
>>184 > 素直にJava使えよ。
java でのプログラムはtedious。誰もがそれを認めている。
>>185 で、jakartaだけでもいろいろなバージョンの組み合わせで10000とおりくらいのjarの中からひとつ選ぶようになるわけか。
>>187 それはオマエが単純な部分しか任されないチームに隔離されてるから。
190 :
デフォルトの名無しさん :04/11/19 23:37:33
> で、jakartaだけでもいろいろなバージョンの組み合わせで10000とおりくらいのjarの中からひとつ選ぶようになるわけか。 log n で済むわけなんだが。
191 :
デフォルトの名無しさん :04/11/19 23:40:51
>>189 >
>>187 > それはオマエが単純な部分しか任されないチームに隔離されてるから。
おまえの「単純な部分」の定義がわからんのだが。。。
大体、スクリプト言語での仕事 => 単純な部分
という大胆すぎる inference は考慮がたりなさすぎる
はい、スレ違いなのは他でやってね。
>>191 よくわからんが、あなたが任されてるtediousな部分。
tediousな部分しかやってないチームにいるからjavaはtediousと思って、周りの誰もがそれを認めてるんでしょ。
あぁ、Javaじゃなくてスクリプト言語を任されてるんだね。
>>190 > log n で済むわけなんだが。
どうやったら?
195 :
デフォルトの名無しさん :04/11/20 01:21:42
>>193 >
>>191 > よくわからんが、あなたが任されてるtediousな部分。
> tediousな部分しかやってないチームにいるからjavaはtediousと思って、周りの誰もがそれを認めてるんでしょ。
> あぁ、Javaじゃなくてスクリプト言語を任されてるんだね。
ハァ? 俺はプログラムの内容じゃなくてシンタックスが記述的に「tedious」と述べた
だけなんだけど。。。
>>194 > どうやったら?
jarを想像してみ。シンプルなツリー構造になるだろ?
>>195 >> どうやったら?
>jarを想像してみ。シンプルなツリー構造になるだろ?
で、それがバージョンごとの可能な組み合わせを考えなくていい理由になるのか?
いやまあ、俺は何でそこで「tedious」なんて英単語を持ち出す必要があるのか 分からんかった。 「長ったらしくてつまらん」でいいだろ?
>>197 log nとか、nが少なかったら何の意味もなさない書き方してるし、そういうことでしか賢さを示せない方では?
groovyでクラスパスの設定するのに、いちいち環境変数使ってるの? $GROOVY_HOME/conf/{command}-classworld.conf使ったほうがよくない? アプリごとにconfファイル用意して、 バッチファイルをいじれば好きなアプリ毎に自由にクラスパスの設定の切り替えができる。 (シェルスクリプトのほうは修正しなくても最初からそうなっている) 慣れればこっちのほうが便利だと思うけどな〜
>>177 libじゃなくて、展開したディレクトリの直下にgroovy-1.0-beta-*.jarとかが置かれてない?
多分これ1つでOKだったと思った。
201 :
デフォルトの名無しさん :04/11/20 11:46:31
Javaの仕組みが同じディレクトリにjarがあったら全部拾ってくれるようになってればいいんだよ。 WindowsのDLLってそうじゃないか。
>>201 うっとおしい。ただ、classpathに指定したディレクトリのjarはすべて含むようにとかはして欲しかった。
けど、もうどうでもいい。
classpathなんか設定しないし。
203 :
デフォルトの名無しさん :04/11/22 10:29:13
204 :
デフォルトの名無しさん :04/11/29 15:10:35
JDK5.0にGroovyは対応しているのでしょうか? JDK1.4x以上とあるのは1.4V内での話しなのか ホントに以上なのかがイマイチよくワカリマセン。 日経ソフトウェアの今月号にはお奨め言語と なっていました。SqeakのeToyと「ひまわり」と 一緒に。
205 :
デフォルトの名無しさん :04/11/29 16:06:25
自分で聞いて自分で回答するのも なんですが、うまく行くようです。
まあJ2SE 5.0はJ2SE 1.4の上位互換があると言ってるから、groovycで コンパイルしたバイトコードは動くだろうね。
>>205 自作自演Q&A乙。こういうのは役に立つのでこれからも自作自演を続けてくれい。
208 :
デフォルトの名無しさん :04/12/05 13:07:34
209 :
デフォルトの名無しさん :04/12/12 18:21:52
自作自演Q&A Hey! Beta8がもうすぐReaseされるタイミングです。 大体2ヶ月ピッチ? 前回は9月だからして…。 ひょっとするとBetaが省かれて1.0 になる可能性もあるらしいが。
210 :
デフォルトの名無しさん :04/12/12 18:26:04
>>209 ひょっとしてAranskが復活したりしてね。
関数型言語からスクリプト言語に宗旨替えしてさぁ。
HPやBlogも最近頻繁に書き換えているようだし…。
今まで何しとったん?
211 :
デフォルトの名無しさん :04/12/13 05:43:57
>>210 自作自演Q&A乙。こういうのは役に立つのでこれからも自作自演を続けていれくい
212 :
Aransk :04/12/18 15:44:28
Groovy Beta 8が12月17日付けで発表されました。 Beta7から、どこがどう変わったのかさっぱり 分かりません。要はインストールして 自分で試せと言うことらしい。
213 :
Aransk :04/12/20 10:22:02
このGroovyスレって盛り上がらないねぇ。 Ruby,Pythonのいい所取りだから仕方ないかもね。 ある面スクリプト系言語の閉塞状況を示して いるのかも知れない。
正式版が出てないから、これ以上盛り上がりようが。
Javaでしか使えないからもリあがらないんだよ。
Rubyにあらゆる点で劣っているしな。
仕様も固まっていないし。
220 :
デフォルトの名無しさん :04/12/21 00:31:28
きょうのすれは、まれにみる盛況ぶりだったな
Groovy 1.0b8の主な改良点
ttp://docs.codehaus.org/display/GROOVY/2004/12/20/Groovy+Beta+8+is+released ・groovyConsoleとstreaming buildersがディストリビューションに復活
・groovyshでのエラーメッセージ表示が少なくなった(スタックトレース無しよ)
・JDK 5.0上での動作を改善
・GroovyShellで数千ものスクリプトを実行すると発生していたメモリリークが解消
・MarkupBuilderが<a href="groovy">stuff</a>を生成できるようになった
・Windowsでclasspathフラグが働いてなかったことがあったのを修正
・antで特別なtaskdefをしないでもgroovy namespaceを使えるようにした(翻訳自信無し)
222 :
Aransk :04/12/21 18:35:48
>>214 ー221
>芸が細かい自作自演Q&A乙
かも知れんが、孤独感はかなり癒された。
GroovyのHPにある言語仕様はまだ誰も訳して
ないようなんで全てダウンロードして
意訳=>異訳=>違約を試みております。
単なる言語仕様じゃなく、「重点」をこんなことが
出来て嬉しい!実例に置きたい。
が、しかし、そんな嬉しい実例があったら
とっくにRuby本でやってるはずだとも
思いつつ…。
自分的にはGroovy HPのFeaturesセクションが 「こんなことが出来て嬉しい」にヒットしまくり。
名前がダサすぎ
シェル上で実行できるスクリプト言語としては当たり前のことなんだが、 1行目に #! を書いて動いたのがなんだか嬉しかった。 #!/usr/bin/env groovy n = 0 for (k in args) { n++; println("Argument " + n + " : " + k) }
226 :
Aransk :04/12/22 18:41:44
>>224 ダサいとは思わないが長いとは思う。
出来れば3文字、長くて4文字程度が望ましい。
.groovyってのはー>.gvyでも.gryでも良さそうに
思える。
「ぐびー」で。
Groovy ぐるーびぃ ぐ るーびぃ ぐ るびぃ ぐるびぃ GRuby GNU Ruby???
230 :
Aransk :04/12/23 16:03:20
groovyのforeachは for ( i in array ) と書き 今回JDK5.0で追加されたjavaの foreachは for (i : array) となった。 この「in」と「:」の差異は何なんで しょうねぇ?
prologの x:xsと通じるものがあるのかもしれない
しまった Aransk と同じ時を過ごしてしまった
inというキーワードを追加したら、inという名前の変数を定義してたりする コードが動かなくなるから。
>>231 prologは、[X|XS]
x:xsはML
>>233 java.lang.System.inが……
あぁ、だからenumは容赦なくキーワード認定されたのか。
>>230 Python慣れしたユーザーにアピールするためにinを採用したとか?
>>234 ML は x::xs
x:xsは Haskell
まあどっちみち関係ないし。
個人的には in は Ruby っぽい気がするが、 Python でもあるだろうし、それ
を言い出したら、元を辿るとシェルになる気もする。
239 :
Aransk :04/12/24 10:31:02
今回のJDK5.0言語仕様変更担当者の話では 従来のfor構文との整合性をとったとのことです。 つまり意地でもforeachという単語を付加したく なかった。 ここからは筆者の推測です。 groovyも基本的にはこの路線を走っていた。 しかしinだけはスクリプト感覚的に利用して しまった。 その後同じJava言語開発陣が傍流のgroovyごときに 追随する訳には行かなかった、が、しかし、 機能的にはgroovyで既に実現している部分なので 手を抜きたかった。 そこでinを:に変更し、面目だけは保った。 つまり「write once,run anywhere」は 今回の文法変更により成立しなくなっているです。 従ってJava開発陣としてのプライドだけが 「:」に込められているのではないでしょうか?
えっと、inが予約語にできなかったという理由がSystem.inと関係ないと言えなければ、単なる妄想だけど。
System.in もだけど、みんなローカル変数で InputStream in; とかやってないのかな?
is。ただ最近はeclipseのすすめるままにstreamとかinputStreamとか そんなんがおおい。
243 :
Aransk :04/12/26 17:36:55
間違っているかもしれませんが、 inってIoStreamのフィールド変数名ですよね? 予約語でもなんでもありません。 例えばfor ( i in array )このinをIoStreamの inと間違う可能性があるのだろうか?
同じタイミングでstatic importが規格に入ったから考慮してみた って屁理屈はあるかもな。
>>243 ・既存のソースコードをコンパイル出来るかどうか
・パーズ速度が犠牲にならないかどうか
・適切なエラーメッセージが生成できるかどうか
などは考えたの?
246 :
Aransk :04/12/27 17:12:45
「in」と「:」で >・既存のソースコードをコンパイル出来るかどうか >・パーズ速度が犠牲にならないかどうか >・適切なエラーメッセージが生成できるかどうか 上記諸点に差が出るとは思えませんが…。
>>246 従来のコンパイラだと in を予約語にしないと for(TypeName object in list) みたいにできない。
・in を予約語にすると java.lang.System.in を直さなければならず、
java.lang.System.in を使用する全てのプログラムを書き直すか破棄する必要がある。
・in を予約語にしない場合は、例えば
class C { public static class in {} };
List in = new ArrayList();
for(C. in in in in){}
を正しく構文解析できる言語仕様とコンパイラが必要になる。
>>247 > class C { public static class in {} };
局所クラスでは public も static も使えない。
> List in = new ArrayList();
ここで局所変数名に in を使ってるので
> for(C. in in in in){}
ここでは局所変数名に in を使えない。
あとgenericsとかで List の要素型が指定されてないので参照型の縮小変換が発生してエラー。
in を4つ並べんのは無理っぽい。
in 3つまでならできるか?
class C { class in {} }; java.util.List<C.in> list = new java.util.ArrayList<C.in>(); for(C. in in in list){} これで in 3つ。
なんかくだらないことしてるね バカ?
まあ、4つ並ぶことはないにしても、いろいろなところにinが混じることがあってそれをコンパイルできるコンパイラはめんどいってことじゃね?
252 :
Aransk :04/12/28 13:03:43
そうするとGroovyはどうやってるんでしょう? System.in も使えたような記憶があるが…。
クロージャの仮引数名なんだけど、 cl = { hoge | …… } … hoge = … みたいに、同じスコープ中の他の変数名とかぶると動かないのって、 仕様?既知のバグ?
ただ、動かない、っていわれてもなあ・・・ とりあえずお前を馬鹿と認定したが
>>254 クロージャとか名前関係の仕様って既に出来てるんか?
出来てなければ作者本人にしかわからんと思うが。
257 :
Aransk :04/12/29 13:36:53
>>253 for ( i in array )
のinが予約語ではなく、かつ
System.in
のフィールド変数名とGroovy言語の中で
共存していることになるのでしょうか?
>>257 文脈に依存させているということだろ。
具体的にはfor()の中のトークンを全部先読みするのかな。
package in; import java.util.ArrayList; public class in<T> extends ArrayList<T> { public static in<in> in = new in<in>(); } とかやっていたら気持ち悪くなってきた。
>>254 仕様のバグです。あるいは設計者の思考アルゴリズムの。
261 :
Aransk :04/12/30 15:56:52
>>260 >仕様のバグです。あるいは設計者の思考アルゴリズムの。
スクリプト言語のメリットって、バグじゃないかぁ!
と思うほどのイージーさで動作するところに
あるのでしょうね。
Javaの目標がEoD(Ease of Development)とすると
コード量を少なくしてマシーン負荷を
高める方向に進化するのでしょう。
Groovyもこの流れに沿った動きと考えます。
> Javaの目標がEoD(Ease of Development)とすると > コード量を少なくしてマシーン負荷を > 高める方向に進化するのでしょう。 EoDってコンパイル時負荷は高くなったが 実行時負荷が変わらんような気がするが。
263 :
Rubyこそ最高言語!!!!!!!PHPは糞!!!!!! :04/12/30 19:34:50
Ruby作者matz神の神発言!!!!!!!!!!!
http://www.rubyist.net/~matz/20041227.html#p03 こんな短いプログラムで比較するのもどうかと思うのだが、 Rubyで書いたら絶対これより短くなる。
ということは、PHPではなくRubyを使えという話なのか。どうも、そうではなさそうだ。
よくいただく反論は「PHPでもできる」ということであって、同じくらい良い(動的)言語からPHPを選ぶ理由ではないはずだ。
PHPは決して速くないし、記述力が高いわけでもないし、たくさんの欠点が残っているように見えるが、
あちこちで「そのシステムPHPで書かないの」という質問が出るところをみるとそれなりに馬鹿には使われているようだ。
もっとも、PHP陣営から出てくる数字はmod_phpのインストール数とか、mod_phpのパフォーマンスと(mod_perl抜きの)perl
CGIとの比較とか、まったくフェアでない印象があるが。
あるいは「すでにPHPを覚えているので、いまさら他の言語を覚えたくない」ということなのかもしれない。
その気持ちはまあ理解できないでもない。
もしかすると、よく分からない初心者をイメージ先行で取り込んでしまい、
「いまさら他の言語を覚えたくない」という」意識でロックインしてしまうというのは、
初心者をターゲットにした素晴らしいマーケティング戦略なのかもしれない。
もしそうだとするならば、というか実際そうだろうし、Rubyは絶対にその戦略を取りたくない。
それくらいだったらマイナーなままでいてくれた方がずっと良い。
>>262 進化するでしょう、ってことだから、これから先の話じゃないの?
Javaはインフラ的な部分もあいかわらず狙ってるから、そうは単純にはいかないとおもうけど。
単純にはいかないので、Groovyのようなスクリプト言語をもってくるんだと思われ。
最高言語Ruby >>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<>Grooooooooooooovy
>>263 しかもそこの比較、Javaのコードには空行が2行続いてる部分があったりして、結果PHPより1行多いということになってたりするからな。
しかし、いいものが広まるとは限らない。
Rubyの前にはあらゆる言語が自動的に敗北する。
別に他人がどんな言語使ってようがほっとけばいいのさ。 そいつよりも自分の方が同じプログラムを短時間に楽に書けて、 そのことを秘密にしておく方が、よっぽど利益になる。 「あぁRubyね、日本純正だし、いいよねー」と言っておけばいい。
Ruby 最強!!!!!!!!!!! Groovy 最低!!!!!!!!!!!
273 :
Aransk :04/12/31 18:30:41
ttp://www.rubyist.net/~matz/20041227.html#p03 読みました。
「良い言語が人気があるとは限らない」のは真理です。
しかしそれは常によりマイナーな言語側の真理です。
何故なら良い悪いはその人の主観によるからです。
RubyがPHPやGroovyより精緻な言語仕様であることは
認めますが、それが実用的かどうかはまた別の問題です。
Javaを補完することに主眼をおくならばGroovyはこれ以上
言語仕様を肥大化させない方がベターではなかろうかと
個人的には考えています。
275 :
Rubyist! :05/01/01 13:50:39
Rubyの良さが分からない馬鹿にわかりやすいような話にしてやろう。 おまえらは取り柄のないブ男だ。 強いて出来るのは、強者の揚げ足取りだ。 それを他者が奪うのは、ある意味では残酷だという見方はある。 だが、当のおまえらが自分の醜さを棚上げして 揚げ足取りの権利を声高に主張したり あまつさえ自分の醜さは価値があると主張し出したら それはもう、自意識が暴走してるとしか言えないだろう。
新年初書き込みがこんなのとはガッカリ。 冬休み終わったらこういうのも減るだろな。
277 :
Rubyist! :05/01/01 14:08:29
>>276 なにも言い返せないけど何とかして貶したいというキミの気持ちはよくわかる。
よーーーくわかるw (プゲラ
休みが終わったから消える?ご期待には添えそうにないが、まあその時になって自分で判断してくれ。
まあ、ひきこもりに年末年始、平日休日なんて関係ないもんな…
279 :
Aransk :05/01/01 16:46:13
>強者の揚げ足取りだ。 いつからRubyが強者になったのでしょうか? このスレはGroovyの話題がメインです。 Rubyは「つまみ」にしか過ぎない…。
aransk先生がこんな所にいらっしゃるとは。 いやー、でもgroobyって面白いですね。どっちかって言うとjavaよりもgroobyの方 に私は期待しちゃってます。今まではpnutsとかbshなど使って見て凄く面白かった ですよ。
有名な(プゲラたんが遠くこのスレにまで出張してきたのかな。
pnutsはかなりヨカタ。 Groovyとは競合になるのかな。。。
>>282 比べられることも多いけどpnutsとは言語の設計思想がちがうですよ
285 :
デフォルトの名無しさん :05/01/14 11:17:12
早く休みが終わらないかなぁ
そんなに働きたい?
287 :
Aransk :05/01/19 17:35:26
先生方!
V1.0−Beta-9がリリースされてます。
I'm pleased to announce the release of Groovy-1.0-beta-9.
You'll be able to download it here:
http://groovy.codehaus.org/Download The main goal of this release, after the recent beta-8, was to
make Groovy JDK 1.5 compliant.
Groovy should now run just fine under JDK 1.5,
この「should」が消えたら、正式リリースか?
Python財団から開発助成金が出たというJythonも気になります。 Javaとの連携はGroovyのほうが数段上だと考えてもいいのでしょうか?
連携させる意味あるの?
Jythonの開発はしばらく止まってたし、Groovyはまだ1.0前だし、 まだ評価できる状態じゃないと思われ
>>289 その質問の答えは、「お前、生きてる意味あるの?」と同じだ。
答えを言ってみろ。
>>293 なぜ違うと思う?
両方の答えを言ってみろ。
Gruby??
>>294 連携させて意味があるかどうかは、答えが検証可能。
生きている意味があるかどうかは、答えが検証不可能。
・知能障害を起こす
上手に連携できればJava言語で書いたクラスをGroovyでユニットテストするというのもやりやすい。 Java言語でほかの人が書いたクラスライブラリを簡単に呼び出したい、というときにも意味あるでしょ。
Groovyでテストなんて正気か?
301 :
Aransk :05/01/20 13:57:08
少なくとも正式リリースまでには ボロイPCでもストレス無しで 動くスピードにしてもらいたい。 世の中、今や貧しいことこそ美徳なんだ からして。
\ │ / / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ─( ゚ ∀ ゚ )< ぱいちんこぱいちんこ! \_/ \_________ / │ \ ∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< ぱいちんこ! ぱいちんこ〜! >( ゚∀゚ )/ | / \__________ ________/ | 〈 | | / /\_」 / /\」  ̄ / /
BSF経由でJSP書くのに使おうよ!
306 :
デフォルトの名無しさん :05/02/10 00:34:18
307 :
デフォルトの名無しさん :05/02/11 14:41:26
groovyちょっと試したんだが、スクリプトに間違いがあったときに エラー行が何行目か出ないじゃん。 これでプログラムを書く気がしない。
310 :
デフォルトの名無しさん :05/02/18 21:20:17
age
>>309 それホント?
groovyを褒め称える人たちは
そんなの気にしないで書いてるのか?
R-projectも一緒
>>309 |
\ __ /
_ (m) _ピコーン
|ミ|
/ .`´ \
('A`) 体技:スルー!
ノヽノヽ
くく
≡ ('('('('A` )
≡ 〜( ( ( ( 〜)
≡ ノノノノ ノ サクッ
315 :
デフォルトの名無しさん :05/03/03 20:39:45
>>311 新しいバージョンでは出るようになりました
316 :
デフォルトの名無しさん :05/03/03 23:58:37
普通にJavaで書けば良いのでわ?ワケワカメ。
それが出来る人はね。 Javaがワケワカメな人には、Groovyはとっつきやすい。
要するに、Perl の対抗、と考えるべきなのかな。
変数宣言しないでいいのは素敵なんだが、 いかんせんjavaって元からクラス名が長すぎなんで スクリプトっぽく短く書けない・・・。 あんま代わり映えがしない気がしたよ。groovyが悪いわけじゃないが。
320 :
デフォルトの名無しさん :05/03/05 11:38:51
>>317 Groovyが分かるならJavaも分かりそうなものだが…。
コンパイル時にエラー検出してくれるし。
開発環境に到ってはJavaの方が親切だし。
GroovyがRuby並に動的ならば使ってみたい
322 :
デフォルトの名無しさん :05/03/06 14:06:54
気分はGroovy
>>321 Rubyほど動的ではない。
むしろ、型付き可能なRubyとみなした方がアイデアが広がるかと。
324 :
デフォルトの名無しさん :05/03/06 22:23:47
型付けの弱い言語は糞
↑適材適所を知らぬ厨。
↑ VB厨
↑ C厨
Ruby厨 ↓
人権擁護法反対洗脳厨 ↓
織田信長厨 ↓
\ │ / / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ─( ゚ ∀ ゚ )< くっちゃらはぴはぴ! \_/ \_________ / │ \ ∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ! Py厨〜〜〜〜! >( ゚∀゚ )/ | / \__________ ________/ | 〈 | | / /\_」 / /\」  ̄ / /
←ハイ厨
びっくりする程遅い。
まず全裸になり ( : ) ( ゜∀゜)ノ彡 <( ) ノωヽ
defとか@Propertyって今後必須になるわけ? クロージャーが使えるだけの動的Javaになりませんように
自分の尻を両手でバンバン叩きながら白目をむき 从 Д゚ ) て ( ヾ) )ヾ て < <
おもむろに以下のコードを実行。 String np=null; np.toString();
こんなにネタがあればPythonの 未来も明るいと言えるよね。 こんなにネタがあればPythonの 未来も明るいと言えるよね。 こんなにネタがあればPythonの 未来も明るいと言えるよね。 こんなにネタがあればPythonの 未来も明るいと言えるよね。 こんなにネタがあればPythonの 未来も明るいと言えるよね。 こんなにネタがあればPythonの 未来も明るいと言えるよね。 こんなにネタがあればPythonの 未来も明るいと言えるよね。
339 :
デフォルトの名無しさん :2005/04/29(金) 20:33:15
GroovyのJSR-1が出てたので、初めてためしてみた。 ・defっているんかいな。最初に出てきたら変数定義でいいでしょうに。前からあったっけ、これ。 ・defで変数定義して、そこにループでどんどん数値を加算してく処理を書いたら、intの範囲を超えた ところでプログラムの動作がへんになる(longと明示的に指定してやれば動く) これはPerlでもRubyでもあり得んことだが、結局型付けしないといけないんですかね.... でも、遅い遅いとは聞いてたので覚悟のうえで使ったにも関わらず、あまりの遅さにちょっとびっくりした。 ためしにRubyとGroovyとJavaで同等のロジック(2分間ひたすら浮動小数点の掛け算とたし算をやる)を 書いてみたんだが、秒あたりのループ回数でRubyの半分も出ないのはさすがにちょっと問題じゃないか。 Javaと二ケタ違うのはこの際許すにしてもなあ。 ちなみにgroovycでコンパイルしても結果はほとんど同じだった。jadでデコンパイルしてみたら、 とんでもなく冗長なコードが吐き出された.... プロパティアクセスからメソッド呼び出しまで全部 リフレクションですかそうですか。 別にJava級の速度は期待しないけど、その辺のスクリプト言語級にはしてもらいたいなあ。
341 :
340 :2005/05/22(日) 05:34:05
補足 > (longと明示的に指定してやれば動く) これは long count = 0 みたいにするってことだけど、 def count = 0L みたいに、代入値を明示的にlongにしても(当たり前ながら)ちゃんとLongと解釈されるみたいだ。 しかし結局型は意識しないといけないので解決になってないんだけど。
342 :
デフォルトの名無しさん :2005/05/25(水) 18:33:40
JSR-1で導入された、変数宣言にdefをつけろってのがよくわからんで、引き続きいじってた。 defつけないでもコンパイルが通る事もあって、何でだろうかと思ってたんだけど、これ、要するに 「インスタンス変数にはdefをつけるか、さもなければpublicとかprivateとか付けろ」ということみたいね。 メソッドの中のローカル変数には def はいらないみたいだ。 標準のアクセス修飾子が protected に変わったのと合わせて、結局defってprotectedって書くのと 変わらんような気がする。 しかし、Groovyではpublicで作ったインスタンス変数には自動的にgetterとsetterが作られるんだが、 それだったら「@Property」って命令はいらんようにも思う。しかも @Property field1 とかやると、field1は protectedになりやがるし......どこがプロパティなんだと。これはバグかなあ。 結局 public field1 と書く事になるんだけど。
ちなみに
>>340 で、GroovyとJavaで1秒間のループ回数が2桁ちがうと書いたが、2桁なのはRubyのほうだった。
Groovyはなんと3桁違った。groovyが21回ループする間にRubyは487回、Javaは36000回ループした。
まあこんなしょぼいベンチマークだと対した参考にもならんかもしれんけど。
ベンチ乙です。 あと Groovy、なんかややっこしそう(文法よりもバグとの折り合いとかが)。 JVM 上のスクリプト言語、これから学ぶのに Groovy か Jython か迷ってたけど、 今は Jython にしとこうかな。
kawa
皮
皮って速いのかしら、ベンチとった人いる?
350 :
デフォルトの名無しさん :2005/06/01(水) 02:29:18
この言語期待してるんだけどまだまだ使い物にはならんのかな。 仕様が安定して速度が出るようになったら 使い捨てスクリプトは全部これで書くことにしようかと思ってるんだが。
351 :
デフォルトの名無しさん :2005/06/01(水) 02:38:59
素朴な疑問: 1.JavaをつかわないでGroovyをつかう理由って何? 2.スクリプト言語でJVMを動作させる必要がどうしてもあるというときに、 JythonやJRubyなど、既存のある程度かれてそうな実装ではなくてGroovy を選択するメリットって何? 3.実行性能が優先順位低くて、単にタスクをバッチ実行したいだけならAnt をcronで叩くとかでもいいのではと思うのはおいらだけ?
352 :
デフォルトの名無しさん :2005/06/01(水) 04:12:00
ありがちな理由としては 1.Javaより適当なコードで書ける 2.構文が基本的にJava 3.antはファイル処理とか書くのがめんどう・・・かな。 というところかな。
また駄法螺かよ
自作のツールにGroovyの実行環境を組み込んで、機能拡張に使ってるんだけどこんな感じ。 1、必要になったときにコンパイル、再起動無しで新しい機能が追加できて便利だから 2、当時話題だったんで。そのうち別言語の実行環境も組み込みたい 3、そういう用途じゃないんで 長くて100行程度のスクリプトしか書かないんで、速度が問題になったことは あんまり無いな。 速度や規模が欲しいときはツール本体を強化しちゃう。
356 :
354 :2005/06/02(木) 12:07:36
100行でも、ループが多かったら問題にならないか?
359 :
354 :2005/06/03(金) 15:09:33
>>357 えー、まあ・・・
>>358 テキストファイルの簡単な分析をするスクリプトを書いたんだけど、
全部で約2メガのファイルを分析させたら2回目以降約5秒かかった
(一回目はGroovyの初期化も入って15秒。Pentium M1.7GHz。
コンパイルはしてない)。
全文字に対して分析してるんで、約200万回はループしてこの数字だから、
速いとは言えないけど実用範囲内だとは思う。
俺のところで作ったテスト的なひたすら計算とループするプログラムは、1回ループするごとに 整数のたし算と浮動小数点の掛け算を一回ずつする。結果は秒毎25000ループくらいだな。 Javaはこの1000倍(大げさじゃなく1000倍)速いってのが、いくらなんでも差がつきすぎじゃないか、 とは思う。ちなみにJavaは30,790,000回ループする。 Javaな文法で簡単に書けるスクリプト言語というのは気に入っているので、もうちょっとなんとか して欲しいと思う。昔はPerlで書いてたんだけど、最近はIDE使ってJavaで書いた方が早いくらい にJavaに慣れてしまったので、Javaっぽい感じで書けるスクリプト言語というのはいい感じだ。
今はまだ最適化してないって言ってたし、これからじゃない? 早い時期に下手な最適化して設計を汚くされるよりはいいよ。 もうそろそろ何とかしてほしいとは思うけど。
362 :
デフォルトの名無しさん :2005/06/04(土) 00:16:34
結論:VM上のJava上で更にスクリプト言語なんてナンセンス
APサーバみたいにJavaソースコードを動的にコンパイルして内蔵スクリプト として使う事はできないの? リフレクションとか使えばできそうな気だけはするけど、教えて豪い人!!!
364 :
350 :2005/06/04(土) 01:36:21
>>351 ほとんど
>>352 なんだけど、
1.ちょっとしたファイル処理とか書くには、色々簡単でよさげ。
動的な型付けがどんなものか試してみたいとも思うし。
2.Javaに慣れているから、似た文法と同じライブラリっていうのはいい。
それに、将来Javaの言語仕様に取り入れられれば、他の言語よりも使いやすくなるんじゃないかと。
3.目的が違う。
遅すぎたな。
GroovyってJSRにも入ってたりするし、Javaコミュニティプロセスに参加してる企業も 支持してるんだよな。 なんでなんかと思ってたんだけど、IBMのWebSphere Application Serverの管理コマンドが JaclとJythonで動いているのを知って、あーこれを置き換えたいのかなあ、なんて思った。
Pythonって結構普及してるから、 がんばらないとJython置き換えるの大変そうだね。
そーいや BeanShell もJSRに入っちゃったね。 Sunは、っつーか JCP は何がしたいんだか。
JCPは、来るものこばまず、だろ。
369 :
デフォルトの名無しさん :2005/06/06(月) 03:18:24
Windowsで動くGroovyはHDDをフォーマットするって本当?
そのうちjodeも入るんだろうか。
_ / l_ |// ヽヽ / ノ ̄/ l / l l| ,' ノ レ \ | / | / 、ヽ =z | l z z | ヽヽ ', /v ヾ | / ヽ yl'〃wr'vyvト、j |-'' > l〈 =ァェ、 ィァ=l ) ヽ─‐ / ヽ', 、l // | ./ /l\ -=- /_ | l /ヽ ヽ-'"l\::::7ヘ───── - 、 | ', ,/`゙ヽ、\ . ∧/ヽ l::::::\ | ヽ,/;;;;;;;;;;;;;;;;\ヽ |\7 lヽ/ 〈ノ '':::::::\ /\ !! /ヽ/`ヽ,;;;;;;;;;;;;;;;;\| .Y ヽ____ヘj ヽ. \ /r' ヽ\ / / \;;;;;;;;;;;;;;;;;;;\ \Oヽ  ̄\ ', \ 弋_ノ \ `ヽ ∧/ / ... \;;;;;;;;;;;;;;;;;;ヽ/ ヽ ヽ \ l ヽ:::/\\ r'. \ l/ ./ :::::::: /;;;;;;;;;;;;;;;;;;;;;;;\/ヽO', /\ / .ヽ/ 弋 ノ r' / /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ/ヽ ', /  ̄\ / \ / / /\;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\l \ \ \ 〈 、 ヽ / / ヽ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ l .ヾ\ \ \ \ヽソソ' / / ',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;V \\ \ / ̄ /::.. r'ヽ_ _____ _ l| \\ ./ ./::::::.. // `ヽ\ | ::::::|r'  ̄二二ヽ \〉/ .\::::::. | | 二二ア `ヽ-、_ ...::::| |、__二二ィ  ̄ ̄ ̄/ ̄ ̄ ̄|.「」 | /l /:::...  ̄ //
| ', ,/`゙ヽ、\ . ∧/ヽ l::::::\ | ヽ,/;;;;;;;;;;;;;;;;\ヽ |\7 lヽ/ 〈ノ '':::::::\ /\ !! /ヽ/`ヽ,;;;;;;;;;;;;;;;;\| .Y ヽ____ヘj ヽ. \ /r' ヽ\ / / \;;;;;;;;;;;;;;;;;;;\ \Oヽ  ̄\ ', \ 弋_ノ \ `ヽ ∧/ / ... \;;;;;;;;;;;;;;;;;;ヽ/ ヽ ヽ \ l ヽ:::/\\ r'. \ l/ ./ :::::::: /;;;;;;;;;;;;;;;;;;;;;;;\/ヽO', /\ / .ヽ/ 弋 ノ r' / /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ/ヽ ', /  ̄\ / \ / / /\;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\l \ \ \ 〈 、 ヽ / / ヽ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ l .ヾ\ \ \ \ヽソソ' / / ',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;V \\ \ / ̄ /::.. r'ヽ_ _____ _ l| \\ ./ ./::::::.. // `ヽ\ | ::::::|r'  ̄二二ヽ \〉/ .\::::::. | | 二二ア `ヽ-、_ ...::::| |、__二二ィ  ̄ ̄ ̄/ ̄ ̄ ̄|.「」 | /l /:::...  ̄ //
やっぱりサンビームさんだよな
気分はGroovy
377 :
デフォルトの名無しさん :2005/06/09(木) 01:24:32
_ / l_ |// ヽヽ / ノ ̄/ l / l l| ,' ノ レ \ | / | / 、ヽ =z | l z z | ヽヽ ', /v ヾ | / ヽ yl'〃wr'vyvト、j |-'' > l〈 =ァェ、 ィァ=l ) ヽ─‐ / ヽ', 、l // | ./ /l\ -=- /_ | l /ヽ ヽ-'"l\::::7ヘ───── - 、 | ', ,/`゙ヽ、\ . ∧/ヽ l::::::\ | ヽ,/;;;;;;;;;;;;;;;;\ヽ |\7 lヽ/ 〈ノ '':::::::\ /\ !! /ヽ/`ヽ,;;;;;;;;;;;;;;;;\| .Y ヽ____ヘj ヽ. \ /r' ヽ\ / / \;;;;;;;;;;;;;;;;;;;\ \Oヽ  ̄\ ', \ 弋_ノ \ `ヽ ∧/ / ... \;;;;;;;;;;;;;;;;;;ヽ/ ヽ ヽ \ l ヽ:::/\\ r'. \ l/ ./ :::::::: /;;;;;;;;;;;;;;;;;;;;;;;\/ヽO', /\ / .ヽ/ 弋 ノ r' / /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ/ヽ ', /  ̄\ / \ / / /\;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\l \ \ \ 〈 、 ヽ / / ヽ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ l .ヾ\ \ \ \ヽソソ' / / ',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;V \\ \ / ̄ /::.. r'ヽ_ _____ _ l| \\ ./ ./::::::.. // `ヽ\ | ::::::|r'  ̄二二ヽ \〉/ .\::::::. | | 二二ア `ヽ-、_ ...::::| |、__二二ィ  ̄ ̄ ̄/ ̄ ̄ ̄|.「」 | /l /:::...  ̄ //
Groovy Night Dancin' Fever
保守
380 :
デフォルトの名無しさん :2005/07/07(木) 00:49:54
Antのスクリプトに使ってみた。 IDE補完がないのはきつい jellyで書くよりはいいかも
381 :
デフォルトの名無しさん :2005/08/21(日) 12:12:19
MustungではJavaScriptエンジンが標準で入るとかどっかの記事で読んだんだが、 Groovy大丈夫か?
JavaScriptと何か関係あるか?
JavaScriptが採用されるってことは、Groovyが採用されないってことだからね。
>>384 もちろんRhinoではJavaScriptからJavaのクラスを使えるわけだが。
// this is JavaScript on Rhino var message = "Hello, world."; java.lang.System.out.println(message);
387 :
デフォルトの名無しさん :2005/08/26(金) 12:49:00
JavaからGroovyとかその逆の使い方で、 具体的にどんな使い方してます(したい)か? どうも使い道が思い浮かばないんですが
>>387 サーブレットの代わりにJavaScriptを使う
入力検証をJavaScriptで書いて、クライアント側とサーバー側で同じロジックを使う
>>388 それ、387が求めてるのと激しく違うと思うよ。
だいいちGroovyじゃないじゃん。
Javaから呼んでないし。
>>389 JavaからJavaScriptよぶんだよ。
で、何でJavaScriptが出てくるわけ?
GroovyのかわりにJavaScriptが標準でJavaSEに載るから っていうか、そういう話題だったから。
>>360 かなり亀レスだけど、Groovyはプリミティブ型を使うとラッパクラスをバカスカ生成するから、
Javaでプリミティブ型を多用するような処理させるとかなり差が大きくなるよ。
正規表現みたいに、すでにJavaのほうで処理が実装されるものを呼び出すような処理は
差が小さくなる…と。
Groovyが全体的に1000倍遅いわけじゃなくて、数値計算がかなり不得手だってことじゃないか?
#ループの終了判定なんかでBooleanがバカスカ生成されてたら全体的にだめそうだな
#リフレクションだから、JRE依存?
数値型、char、booleanの変数はgroovy.langあたりにイミュータブルじゃないラッパを用意して、
そっちを使うようにできないモンかね。
instanceofとかで意図しない動作になってしまうとか、Javaコードへのパラメータ引渡しが面倒とか、
コンパイルして作ったクラスのメソッドの戻りはなんになるのかとかいろいろあるなぁ…
各ラッパクラスのうち、よく使われそうなもののインスタンスをキャッシュするとか?
395 :
デフォルトの名無しさん :2005/11/26(土) 12:07:41
遅い言語に興味なし
>>396 アセンブラ厨とCOBOL爺は死んでください
398 :
396 :2005/12/02(金) 00:10:49
金持ちC様なので、死なずに済みました。
なるほど、つまりスレ違いのバカ野郎様ですね。
>>398 C言語・・・構造化アセンブラ
C++ ・・・オブジェクト指向アセンブラ
だから死ね
Java ・・・ VM中間コードアセンブラ
>>401 吐き出すコードの問題ではない。使っている人間の意識の問題。
構造化プログラミングのパラダイムでアセンブラ厨が選んだのがC言語。
オブジェクト指向が盛んになったときに選んだのがC++。
プログラムの最適化しか頭にないカチンコチンの思想の持ち主がアセンブラ厨。
あきらかにGroovyはそのような思想の持ち主のために作られたものではない。
自己紹介は板違い
>>402 に同意。
Groovy は シェルスクリプト位の感覚で使えばいいと思う。
あんな起動に時間のかかるシェルスクリプトはいりません…… いや、無理して使ってるけどさ。他の人にはなかなかそういう使い方は勧められないな。
>>405 GroovyはJavaの資産をうまく活用しないと生かしきれないと思う。
いままでJavaだけだとRubyやPerlほどシンプルにできない部分があったけど
Groovyならそういった部分もかける。
あと、クラスプラットフォームなオブジェクト指向多言語環境ってのも見逃せない。
Jython、JRuby、Jacl、Sleep、Smalltalk、Java間でライブラリを共有できるし
CGIは今は毎回起動するから向いてないけどServletみたいに起動しっぱなしにできたら
Windowsでスクリプトを書いてUNIX環境のサーバで動かすみたいな使い方には向くようになるかもしれない
クラスプラットフォーム?
409 :
デフォルトの名無しさん :2006/03/04(土) 19:43:04
Java6からJavaScriptが標準で付いてくる。 Groovyなんて訳わからんもん誰が使うんだw なにかひとつでもJavaScriptに勝てる物があるのか?
3ヶ月レスのついてないGroovyスレで、煽って何が楽しいんだこの低脳は。
Rhinoの存在を最近知ったバカなんだろ。ほっとけ。
412 :
デフォルトの名無しさん :2006/03/06(月) 19:56:49
これって結局どうなったの?
Expert Group Formationで2年も止まったままか。 チームだけ出来て2年音沙汰なしじゃ…。 結局、SUNがオープンソース界の気を引くためのダシに使っただけか。
ん?ちゃんとCodehausで開発が進んでいるが.... 2月13日には最後のJSRラインでもあるJSR-05が出てるし、この後はRC(リリース候補) ラインに移行するらしいぞ。
実装の話じゃなくて、
>>1 のリンクにある標準化プロセスの進行具合。
当然のようにDolphinのメニューにもなかったと思う。
言語として格別なにか優れてるんならともかく、単なる俺言語じゃね…。
TextSS のWindowsXP(Professional)64bit対応化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
>>1 64bitで作ってくれ<メイドさんスクリプト
現在groovy.codehaus.orgにアクセスできんけど、ディスクトラブルだそうだよ。
(´;ω;`) 復活まだカナー
www.codehaus.orgが仮復旧していて、groovyの仮ページみたいなのが出来てたけど、 これってISPがぶっ飛んだ結果、全データなくなっちまった、ということなんだろうか? 以前はあったドキュメントが見つけられなくて難儀した。
現在、Groovyletの勉強と行っています
ttp://www-06.ibm.com/jp/developerworks/java/050428/j_j-pg03155.html ここを参考にしながら、windows上で環境を整えた所、
『リスト5. Groovletを使い始める』のコードがそのまま動きました。
同様に、Linux上で環境を整えて、上記コードを実行した所、
javax.servlet.ServletException: サーブレットインスタンスを割り当て中のエラーです
というエラーが出ます。
以下、動作環境です
【windows】
OS・・Windows XP Home
Apache・・2.0.54
Tomcat・・4.1.31
JDK・・1.4.2_11
Groovy・・groovy-1.0-beta-9.jar
asm・・asm-1.5.2.jar
【Linux】
OS・・centos 4.13
Apache・・2.0.54
Tomcat・・5.5.16
JDK・・1.5.0_06
※Groovyとasmは同バージョンです
申し訳ありませんが、どなたか御教授の程
宜しくお願いします。
>>420 そのあとに「at ほげほげほげ」ってのが何行もでてないか?
>>422 NoClassDefFoundErrorって出てるじゃん。
HttpServletとかかいてるし、クラスパスにservlet.jarとかservlet-api-2.3.jarとか
そういうServlet用のjarファイルがないんじゃないの?
ちゃんとTomcatにディプロイしてるのか?
424 :
420 :2006/05/24(水) 10:21:30
>>423 Linuxの/etc/profileにGROOVY_HOMEと
GROOVY_HOME/binを設定して、
クラスパスに追加していたgroovy-1.0-beta-9.jarとasm-1.5.2.jarを無くした所
正常に動作しました。
codehausが復活しつつあるようだね。 groovy.codehaus.orgは復活してたし、ドキュメントも見られた。 いくつか画像のリンク切れがあるくらいな感じ。 PicoContainerとかも復活してたんで、ほぼ全面復旧だろうか?
426 :
デフォルトの名無しさん :2006/07/04(火) 21:20:53
時給1000円でJava教えてくださるかたを募集します 場所 所沢(池袋・高田馬場から直通) i−want−to−study−java@hotmail.co.jp (アドレスは全角で書いてあるので半角に直してください) よろしくおねがいします
427 :
426 :2006/07/17(月) 21:11:36
教える対象は超初心者です。 専門学校などでJavaを勉強されていて夏休みだけ教えたいという方も歓迎です
時給安杉 交通費だけで赤字じゃねーか
激しくマルチ。無視すること。
430 :
デフォルトの名無しさん :2006/09/10(日) 03:40:38
最近どうよ
微妙
432 :
デフォルトの名無しさん :2006/12/02(土) 06:23:48
最近これを使うことがあった JRuby や Jython も検討したけど Groovy を選んだ 実際使ってみると少し遅いことが気になるもののすごい便利で感動した Java プログラマなら使わないと損だと思う
俺はPnutsでいいと思った。 Groovyはちょっと冗長じゃない?
冗長かどうかで言えばGroovyの方が簡潔な気はするけど Groovyは文法がこなれてないとか処理系の使い勝手が悪いとかの方が俺は気になる Pnutsはさすがに歴史が長いだけあって処理系の使い勝手も悪くないし、文法も割と よく考えられてると思う。あと、起動速度や動作速度でもPnutsの方が速いね
サポートというか開発はちゃんと続くんだろうな?
>>435 Groovyは当分開発は続くと思うよ
MLはgroovy users/devともに流量も多くて活発だし、減る様子もあんまり無い
437 :
デフォルトの名無しさん :2006/12/16(土) 00:56:07
背景として開発はとめられないんじゃない? JAVA SE6でスクリプトがサポートされたのはいいけれど、 Groovyだと遅い、っていう評価が出ちゃったから、 これを覆すには開発を継続していくしかないんじゃないかしら。
438 :
デフォルトの名無しさん :2006/12/16(土) 01:08:58
チョット書き忘れてたけど、 Groovyだと遅い、の理由は言語的な問題じゃなく、 スクリプトエンジンの問題みたいっす。
439 :
デフォルトの名無しさん :2006/12/27(水) 20:03:15
it's groovy!
441 :
デフォルトの名無しさん :2007/01/21(日) 17:11:28
なんでこんなにも盛り上がってないんだろう
442 :
デフォルトの名無しさん :2007/01/21(日) 17:45:17
JVMの上ならJava動かせば良いから。
リリースに手間取ってる間に、JDK6にはJavaScriptが載ったし、流行はRubyだし。
他はともかく、Rubyって流行してないだろ…
Java使いの注目ったら、Rubyしかないだろ。
446 :
デフォルトの名無しさん :2007/01/22(月) 10:11:44
Rubyで実装されたシステムって有名どころでは何? ちなみにGroovyは聞いたことが無い。
GroovyにもRailsが出来れば流行るだろう。 ・・・いや、流行るかもしれない。 ・・・・流行る可能性は否定しきれない・・・ ・・・・・・・無理かな・・・ jrunscriptでRhino使うの楽だもん・・・・・
GroovyのGroovy MarkupとかGroovy BeanとかGrailsとかは結構出来はいいと 思うよ。Grailsなんか元の名前は「Groovy On Rails」だったわけで。 まあ有名では全然ないが。
Grailsおもろいぜ。Rails系なりの手軽さが味わえる。 ただ、RoRでなくてGrailsを選ぶ理由は何かと問われると、答えに困る。 def〜endより{〜}が好きとか、HTML記述はtaglib風構文の方がまだ許せるとか、 それくらいしか思いつかない。 Java互換でJavaのライブラリが使えるって言っても、あんまりメリットとも思えない。 GroovyでHttpUnit使ったプログラム書いたら、エディタに補完機能がなかったので タイプ数の多さにまいった。 スクリプト言語にはスクリプト言語なりのAPIが要ると思ったね。
>>447 おまえは真のrhinoを知らない!
アレは劣化rhinoだ!!(笑)
てかrhinoはコンパイルモードがデフォだし、
クラスロードが出来なきゃ自作のネイティブオブジェクト読めねぇよ。
マシン型を実装してくれんとLiveConnectで整数型が認識出来んし。
ファイル操作とXML操作が組み込まれてるのは便利だが。デバッガくらい同梱して欲しかったな。
>>450 クライアントサイドのgroovy向けツールキットとか有っても良いと思うんだけどな。
複雑な処理をスクリプトで行うために。
ちょっとした捨てアプリでGUI書くのはスクリプトになっても手間だし。groovy用swingラッパーとか良いかも。
探したんだけどデスクトップアプリ用groovyライブラリとか無かったよ・・・
452 :
447 :2007/01/23(火) 18:47:01
>>451 正直、俺が一番使いやすいのはpnuts
リストとかコレクションAPIのクラス普通に使えるし
rhinoはあんまり使ってないさw
pnutsいいね フットプリントもちっちゃいしコードも読みやすい
pnutsは速いらしいね。
Pnutsは処理系も安定してるし、便利なライブラリもそれなりにあるしいいよね って、なんでGroovyスレでPnutsの話題になってるんだかw
いやだって、俺pnutsスレ探してこのスレたどり着いて定住してるからww pnuts単体だとスレ立てても過疎るだろうなぁと思って立てずに groovy,rhino,pnutsとか込みで、ここ見てる感じ。
いまこそjrunscriptのスレを立てるべき時! 実は需要あるんではないかと睨んでたんだが・・・ Scripting APIに従ったエンジンならJavaと通信できそうだし スクリプトから使うことを前提としたJavaラッパーライブラリが欲しいぜ。 クライアントサイドJavaScriptみたいに //新規ウィンドウを生成するファクトリ window.open(hoge,hoge) て感じなのをJavaで書いてスクリプトから共通利用出来たら捨てアプリ作るの楽じゃない? 言語非依存だし
Scripting API という括りの方が良さそうですね。 Pnuts の話題が出ているのは個人的に(ノ∀`)ウレシイ Pnuts なら、 frame("test").show() の一文だけで、 AWT のウィンドウ表示ができるよ。 Groovy の拡張ライブラリの 種類の豊富さや開発状況から見ると 需要はそこそこなんじゃないかなと思う。 本も二冊出版されている様子だし。 ・・とはいえ、殆ど英語圏の話。 Scripting API 絡みで Pnuts への注目も少しは強まるかなと思ったけど まだネット上を見る限りでは変化がない模様。
>>458 jsなら
(new java.awt.frame("test")).show()
だな
Pnutsとrhinoは安定している事に加えてPnutsならライブラリの充実、rhinoならJavaScriptのブラウザでの実績があるがgroovyは処理系が安定してないし、実行が遅いってのがあるな。
Javaのライブラリをシームレスに扱えるのが一番デカイが
あとgroovyスクリプトからgroovyスクリプトを呼ぶのに一度コンパイルする必要があったがもう改善された?
Scripting API の組み込み候補ならrhino,Pnuts,groovyの3つが有力だし
【jdk6/組み込み】Scripting API 総合【Rhino/Pnuts/Groovy】
って感じで括れば面白いかもな。
スレの内容としてはJava VM上で動作しJavaと通信出来る言語用フレームワークの紹介とか情報交換とか。
日本語圏じゃjdk5すら浸透してないけどな
Scripting APIってことは、BSFは無し?まああんまり話題も無いだろうけど
BSFは別フレームワークだしな・・・。 それにBSFだとピンポイントでJSP絡みな話来そう。 ここの板連中ゲームとJavaEEは苦手じゃね?
462 :
デフォルトの名無しさん :2007/02/01(木) 11:14:03
Groovyってinclude無いの? それともincludeなんて当たり前すぎてどのサイトにも載ってないのか?
import じゃなくて include を探してるの??
464 :
462 :2007/02/04(日) 13:23:44
>>463 ん、importでソースファイルの参照できんの?
クラスのimportはネットでよく見るけどソースファイルを指定してのimportは見つけられなかった
スクリプト言語なので、クラスのimportじゃなくて普通にincludeしたい
cppでも使ってろ
groovy スクリプト・ソースに対しても import で読み込めるよ。
Grails使ってる奴いる? Tomcat5で動かすと、HTTP GETで送ったパラメータが文字化けする問題が解決できないんだが。 Grails付属のJettyや、Tomcat4.1.34だと上手くいくし、Tomcat5でもPOSTなら文字化けしない。 試したTomcat5は、5.5.20と5.0.28。あと6.0.9もダメだった。 Grailsの web.xmlにはフィルタの定義が3つあって、 最初のfilter-mappingにSpring FrameworkのCharEncodingFilterを定義して フィルタ内でrequest.setCharacterEncoding("UTF-8")してるんだけど、どうもそこが機能していないっぽい。 フィルタの順番の問題?ちゃんと最初のfilter-mappingで定義してるんだけど。
>>467 Tomcat5以降のデフォルトではGETのパラメータにsetCharacterEncodingが効かない。
469 :
467 :2007/02/24(土) 08:10:52
>>468 感謝感激!server.xmlのConnectorに、
userBodyEncodingForURI="true"か、URIEncoding="UTF-8"を加えたら上手く動きました!
Grails関係なかったね…
470 :
デフォルトの名無しさん :2007/04/23(月) 12:34:44
471 :
470 :2007/04/23(月) 12:37:13
472 :
デフォルトの名無しさん :2007/06/16(土) 12:24:12
TemplateServletもーちとなんとかならんかね。 変数探す時勝手にrequestを探しに行ってくれたりとかnullの時は 何も表示しないように出来たりとかしてほしい。
勝手に探して出てきた変数使われたら怖すぎ
>>473 Velocityだのはそうなんだけどなあ
公式で公開されてる。1.0の正式リリースってJSR構文とjava likeなfor文使えないの? @Property hoge def foo as String for( ; ; ){//bar} って文。何かしらの実行時引数とかソース中にディレクティブ追加が必要?
477 :
デフォルトの名無しさん :2007/08/14(火) 20:23:38
お前はすでに死んでいる・・・。
今頃なんだが、@Property は1.0でまたまた変更されてるんだね。 (GroovyBeans の宣言ということだが) @Property の部分を、Object と型名宣言に単純に置換する、という 理解でいいのか?
groovyConsole の挙動はおかしいよね。 文法の形式が正しいかどうかだけをチェックしようと思って、 普通のクラス宣言なんかを通してみると、それだけでエラーを吐く。 (本家から拾ったサンプルコードさえ、エラーを吐いたりする) なんでかなあと思ったら、 メインメソッドか、クラス外に必ず実行される文が println でも なんでもいいからないと、ダメらしい。 おかげて、 println("これはテストコードです") という一文をくっつけないと、文法の形式チェックもできない。 頭にきて、JRuby に乗り換えようと一瞬思ったが、 Javaとの親和性を考えて、もうちょっと踏みとどまろうと思う。 普通、意味ある実行文なんて1行もなくても、 形式チェックぐらいできるだろ。いちいちNetBeans立ち上げるのが 面倒なんだよ! こんどなにかあったら、即、JRubyに行くからな! (ていうか、しっかりしてくれよ、ホントにもう)
つーか、 NetBeans でやっても同じだったわw いや、print文だけデフォで書いてあった。 ま、プリント文が一つあるだけでいいわけだが。 そういう仕様ということだった。なんつーか orz
481 :
デフォルトの名無しさん :2007/09/07(金) 23:59:03
Groovy in Action って翻訳出ないのかな
482 :
デフォルトの名無しさん :2007/09/09(日) 19:55:55
def printStr(str) { println str } closure = printStr closure("aaa") closure("bbb") 予想していた実行結果: aaa bbb このコードが撥ねられるというのは、おかしいよなー。 クロージャは変数に入れられなくなった? よく分からん…
>>482 よくしらんけど、printStrは括弧無しの呼び出しとはみなされないの?
484 :
デフォルトの名無しさん :2007/09/09(日) 20:49:40
>>483 いや、1.0以前は動いてたサンプルコードだと思ったんだが、
1.0でいろいろ変わっていて、クロージャだけじゃないけど、
動かないのが多いんだよ。
どうも、以下のような構文じゃないと、ダメになったみたい。
自分の勘違いでなければ、だけど。
// 例1
def printStr(str) {
println str
}
printStr("aaa")
printStr("bbb")
実行結果:
aaa
bbb
// 例2
def printStr(str) {
println str
}
closure = printStr("aaa")
実行結果:
aaa
1.0の挙動は所々ふしぎに思う部分もあるが言語仕様はどこにあるんだ?
486 :
デフォルトの名無しさん :2007/09/09(日) 22:30:54
Groovy は、Java言語そのもののもう一つの表記法とも言われているけど、 実際そんな感じだけども、 いわゆる Groovyっぽい書き方ということになると、 ちょっとJava的オブジェクト指向とは少し違う傾向があるよね。 java では、クラスでデータと関数を結びつける。 でもGroovy では、基本的考え方として、データと関数は分離する。 クラスでは、データのみ定義し、関数は別のところに持って、 クロージャなどで活用するっていうか。 いわゆる関数言語的な書き方に近いような気がする。 自分はまだまだ修行中なんだけど、なんだかすごく気にいっちゃった。 Java使う人間なら、絶対触ってみてほしいよ。 JRubv じゃ、ここまでスムーズにJava と連携できないと思うし、 いつか 風向きが Groovy に向くと思うんだけど。
しかしそれにつけてもGroovyは絶望的に遅すぎ。まずはそこからだ。
489 :
デフォルトの名無しさん :2007/09/25(火) 18:46:31
>>488 別にそんなに遅いとも思わないけどなー。
(そりゃ、JVMの起動時間はかかるけど)
だいいち、あまりに遅い部分があるなら、そこだけJava で書けばいいじゃん。
Groovy 使えてJava 分からんなどという人間がいるとも思えないが…
いやGroovyは遅いぞ。他のJava VM系言語色々試してみ。 groovyの強みが今のところjavaとの通信のシームレスさがズバ抜けている事しかない上に 更新は遅い、正式版出した割に挙動がちょっと怪しい、スクリプトのロードが面倒、 標準化されてる仕様(構文周り)が実装されてない。 と、トロトロやってるうちに他のJava VM系言語に追い抜かれてしまってる。 シームレスな通信の存在は大きいから使っていきたいけど上に挙げた問題から移行まではしてないな。
491 :
:2007/09/26(水) 00:59:57
グルグルグルグルグル グルービー
透過性を求めるんだったらpnutsもいいよ 実用的な速度でるし
ん。一番軽量高速ってイメージがあるね。>>pnuts
イメージかよ
じゃあJavaスクリプト系言語のベンチマーク取ってみるか。 どんなベンチがいいかな? ・起動時間(スクリプト起動前のtime - スクリプト頭のtime) ・終了時間(スクリプト尻のtime - スクリプト終了後のtime) ・インスタンス生成ループ ・メソッド/関数呼び出しループ なんかおもいつかねえ。 あと、対象は? - Rhino - Groovy - JRuby - Jython - JavaFX - Pnuts 他なんかあるかな? あ、あと、 - Java 今見たら、俺一番Groovy使ってないわ。
Rhinoはインタプリタモードとコンパイルモードの使い分けが難しいのとバージョンが上がる度に 密かに最適化がアグレッシブになり、インタプリタモードとコンパイルモードで最適化実装が 違うから単純にベンチマーク取れるもんじゃないよ。 あと、java6のRhinoはRhinoじゃないから。
そんな難しいのは、試行のバリエーションの一つ。 提供されたものを素直に動かしたらどうなるかのレベルでいいと思う。
>>496 のいいたいことを分かりやすく解説すると
「おれはRhinoに詳しいんだぜ」
あのなぁ、 ろくにGroovy 試してみたこともないような奴らは、来なくていいから。 ていうか、こないでくれ!!! うざい。
次スレからは、他のスクリプト系言語も受け入れるスレタイにしような・・・・
>>950 あたり、よろしく頼むよ・・・・
>>500 2chはそういうところなんで、オマエが来なければいいと思うよ
いいか、ここは Groovy のスレなんだ! お前らは不要!!!
そういうのがイヤなら、勝手によそでwikiとか立てておけばいいと思うよ。
話題がないのも寂しいから、初歩のサンプル・コードをいくつか… ファイル読み込みと画面表示 サンプル・コード myFileName = "/tmp/sampleTextData.txt" // sampleTextData.txt ファイルの入った tmp フォルダを // C ドライブ直下に事前に置いておくこと。 // 注 "/fileName.txt" の形式は、C ドライブ直下 myFile = new File(myFileName) printFileLine = { println "File line: " + it } myFile.eachLine( printFileLine ) 実行結果(ファイルの内容が表示される。 ただし、各行頭に File line: が付加されている)
初歩のサンプルコード ファイルへの書き込み myFileName = "/tmp/sampleTextData.txt" // C ドライブ直下に事前にtmp フォルダを作っておく。 // "/fileName.txt" の形式は、C ドライブ直下 myFile = new File(myFileName) myFile.write("これは groovy による書き込みテストです") 実行結果 事前に用意してあったC ドライブ直下の tmp フォルダ (つまり C:\tmp)内に sampleTextData.txt が生成され、 これは groovy による書き込みテストです と 書き込まれている。
509 :
デフォルトの名無しさん :2007/10/23(火) 21:10:52
ttp://yher2.blogspot.com/2006/10/groovy-rhino-jython-jruby.html に、各スクリプト言語のベンチマークがあった。
(2006年後半時点でのことだが)
Javaとの実行時間比は:
groovy: 約5.5〜500倍
rhino: 約1.5〜50倍
jython: 約2〜150倍
jruby: 約20〜6000倍
となる。
Groovy はJava からみればかなり遅いが、
それでも本家より速いと評判のJruby よりは
かなり速いわけだなぁ。
あと、個人的にはようやく1.0の文法がほぼ分かった。
うまく使いこなせるようになりたい。
1.1は11月中旬に登場だそうだが、楽しみだ。
Rubyの本家ってどんだけ(ry
2006年後半時点ではまだ本家より速く無かったよ 今だってオプションやらを付けなきゃ本家より遅いはず
macじゃどうかしらないけどlinuxだとrubyはthreadが有効だと なんかポーリングか何かが多発して恐ろしく遅くなるんだよな。 これはvmのデザイン上の問題?それともシステムライブラリ回りと相性悪いのか。
513 :
デフォルトの名無しさん :2007/10/25(木) 14:42:39
まあ、Ruby のスピードの話はともかくとして、 Groovy は実は他のスクリプトと同等程度のスピードは持っている のに、とかく度外れて遅い呼ばわりされてしまうのは、 やっぱりJVM の起動時間なんでしょうねぇ。 SE7 ではHD上にJVM のキャッシュなどを持つことによって、 起動時間が速くなるとされてます。 あと、来月半ば登場のGroovy1.1ではなんでも2割程度スピードアップ されているような記事を見たと思います。 まあ、個人的には自分のマシンを最新の Core2Duo にする方が先だろ、 というのはありますけど。まだCeleron なんですよー orz
全てのJVM系スクリプト言語の期待の星は Java Quick Starter
pnutsでwebアプリのプロトを作ろうと試みたが、本家でダウンロードできる pnuts-examples.zip(pnutswiki)をtomcatで実行できますか? pnutsは最新1.2.1, jdk1.5, tomcat5.1の環境で試みているのだが。 一見ドキュメントが整備されているように見えるが、何かやろうとすると、 全然足りない。
>>516 レスありがとうございます。
yohooの方はあんまりな寂れ具合にビビリました。ので、メイルでもしてみようかと思います。
ただ、本当に普及させようという感じに思えないので、pnutsを選択すること
について、再考の余地ありかと思いました。
>>518 もし、サーブレットを操りたいということでしたら、
Java 王道のJSP じゃダメですか?
JSP もいちおうスクリプトですし、ここは王道に従っても、
スクリプト言語のメリットは受けられるように思いますが。
520 :
デフォルトの名無しさん :2007/10/30(火) 20:32:56
そもそも何でまたよりによって、pnutsなんだ
>>519 JSPはあくまでJavaであり、スクリプト言語にあらず。
Java風スクリプト言語であるPnutsやGroovyとは違う。
触ってみれば違いが分かるよ。
ところでJava以外の言語でJSPとかできないんだろうか。
<%@page language="Java" %>以外を指定できるコンテナないのかね。
なんちゅうか、CGI のノリで、下みたいな感じでやったらダメ? def text = """\ <html> <head> <title>My Simple Groovlet</title> </head> <body> <h1>My Simple Groovlet</h1> <p>Today is ${new java.util.Date()}.</p> </body> </html> """ println(text)
もし、
>>523 をコピペして、
テキストがプリントされずエラーが出たら、1行目の\ の後ろに
スペースが入っているからだから、取り除いて。
それでエラーは出ないはず。と思うけど。
これは、
ttp://kakutani.com/trans/ociweb/jnbFeb2004.html にあったGroovlet のサンプル
out.println <<<EOS
<html>
<head>
<title>My Simple Groovlet</title>
</head>
<body>
<h1>My Simple Groovlet</h1>
<p>Today is ${new java.util.Date()}.</p>
</body>
</html>
EOS
が手元のGroovy1.0 では実行するとエラーになるから、
僕が勝手に上のように書き換えたものだよ。
(このままでは 1.0ではダメなのかな? よく分からない)
GSP は要するにテンプレだから、別につかわなくったっていいんでしょ?
昔、perl でみんなこんな感じでCGI 書いてたじゃん。
それだと、forとかifとか制御構文を入れだしたら、Perlのような世界が待ってるな。 今更戻りたくない。
Servlet の件だけれどさ、やっぱり、
最初に無理やりスクリプトにこだわるより、
はじめだけでも Java 王道からやった方が、結局は楽と思う。
NetBeans による Web アプリケーション開発入門 というのが、
ttp://www.netbeans.org/kb/55/quickstart-webapps_ja.html にある。
これがもっともシンプルに Web アプリを生成する方法だと思う。
少なくとも、初心者にとって。
(Eclipse だと ビルドに 標準的な ant だけではないものを使っている
とか、Tomcat をバンドルしてないとか、いろいろ面倒がある)
まず、これを押さえてから、これをベースにして
他の手法を(Groovlet であれなんであれ)やった方がいい。
でないと、初心者の場合、最初に動かすまでにつまづいてしまって、
先へ進めないと思う。
別に、初心者がPnutsなりGroovyなりでWebアプリ作るための手段を話しているわけではない。
そうでないとすると、 俺にはなんでそこまでスクリプトにこだわるのか、 まるっきり理解できないよ。 Java 本体でやるほうが楽なところはJava でやればいいんだし、 もちろん、(JVM上の)スクリプトで楽なところはそれでやればいい。 (とくに、Groovy ではクロージャがあるので、場合によっては たしかに使う意味があると思うが) 両者の組み合わせは自在だし、なにがなんでもスクリプトでという その執念の理由が分からないな… 自分も pnuts は多少使うことを検討したこともあるが、 oop すら満足にサポートしてなさそうで、敬遠した…。
なぜなら、そこに言語があるからだ。
まあ、とにかく servlet の知識がなければ、なにも始まらない わけだからさ。 (Groovlet は下のように servlet のサブクラスなんだからね) java.lang.Object - javax.servlet.GenericServlet -- javax.servlet.http.HttpServlet --- groovy.servlet.AbstractHttpServlet ---- groovy.servlet.GroovyServlet web.xml の設定の仕方ひとつとっても、なにがなんだか分からないでしょ。 servlet 知らないと。
GSPって日本語扱うと化けない? どこにも設定できる場所が見あたらないんだけど. ちなみに今作ってるのはjetty+groovy+hsqldbで, パッケージングされたスタンドアロンな掲示板システム. 何の役に立つかは秘密.
1.1正式版、まだかよー。
535 :
デフォルトの名無しさん :2007/11/27(火) 07:49:53
Groovyまた最近盛り上がってきた?
つーか、JVM系スクリプト言語、 たくさんあり過ぎてどうすりゃいいか分かんない状態。 腰が定まらないw
結論 素のJava最強
>>536 俺は当時のことは知らないけど、
70年代にLispの上に言語開発するのが流行ったけど、
あれに似た状況になっているな。
539 :
デフォルトの名無しさん :2007/12/07(金) 19:52:53
1.1正式版、待ちくたびれたー
540 :
デフォルトの名無しさん :2007/12/09(日) 21:14:10
なにやら、いきなり1.5 になったんでない? ウチはまだインストールしてないけど、インストールした人いる?
使ってみたけどシェルの起動が遅くなった気がする。 ところでgroovyってスクリプトをロードする関数無いの? Rhinoで言うload()関数みたいな。
542 :
デフォルトの名無しさん :2007/12/11(火) 00:17:55
Rhino を知らないからよく分からないが、
下は参考にならないかね?
実用的なGroovy: JavaアプリケーションにGroovyを混ぜ込む
ttp://www.ibm.com/developerworks/jp/java/library/j-pg05245/ あと、シェルの起動が遅いって、groovyConsole のこと?
あれは、使わなきゃいいんじゃない?
cドライブ直下に、myProgram.groovy というファイルでも
置いておいて、そこにプログラムを毎度書くことにしておいて、
コマンドプロンプトで
cd c:\
groovy myProgram.groovy
と打つと決めてしまえば、groovyConsole は使わなくてすむよ。
あとは、cドライブ直下の myProgram.groovy のショートカットを
デスクトップにでも置いておけば楽チンかと。
ていうのは、ダメかい? 起動はすごく早くなるけどね。
読んでみたけど一度groovycでコンパイルして吐いたクラスファイルをimportしなきゃだめなの?
544 :
デフォルトの名無しさん :2007/12/11(火) 00:44:26
>>543 そのページにある GroovyScriptEngine ていうのじゃダメ?
(クラスにする必要はないはずだが。自分はライトなユーザーなんで、
よう知らんけどw)
それ以上のことは、パワーユーザーの方、よろ。
これはビルドインなクラスをインポートする例でしょ? ユーザー定義のクラスを読み込むにはざっと見た感じ、一度クラスファイル吐くみたいだけど・・・。 クラスファイル吐かないでロードやインクルードの類が出来ないかなって事なんだけど。
ちがうか、スクリプトエンジン自体をgroovyから生成してコンテキストにバインドしてソースファイル読み込んでるのか。 普通にインクルードしたいだけなのになんでこんなに謎だらけなんだw
547 :
デフォルトの名無しさん :2007/12/11(火) 01:06:48
だけど、そこには >直接コンパイルによってGroovyスクリプトをJavaプログラムに取り込む方法の他に、スクリプト自体を埋め込む方法に関しても、幾つかの選択肢がある って、はっきり書いてあるやん。 俺自身は、スクリプトとして使うことしか興味ないんで、 いままでJavaとの連携をやったことはないが。 (Java はJava、Groovy はGroovy という使い方しかしてこなかったなぁ)
たぶん、いろんなJVMスクリプトをいろいろ混ぜ込ませるなら、 Bean Scripting Framework を使うと決めてしまうのが、 混乱すくなくてよさそうな気がする。 いや、なんとなくだけど
".groovy" という拡張子でファイルをおけば それを import で取り込めるけどそういうことではない?
>>549 そのやり方で、Java から自分の書いたGroovy スクリプトを
実行できたっけ?
groovyShell か groovyScriptEngine (スペルあってるかな)を
通す必要があるんじゃない???
まさにそれなんだけどどうやってやるの?
ああ、
>>549 宛てね。
import <ファイル名>;
import <パッケージ名>;
import <完全修飾クラス名>;
で試してもエラー出るんだけど。
$ cat Hello.groovy public class Hello { public void sayHello() { println "Hello!" } } $ cat main.groovy import Hello def hello = new Hello() hello.sayHello() $ groovy main.groovy Hello! $
ああ、パッケージ名付けたらダメなのか。
パッケージをつける場合はパッケージと同じディレクトリ階層を作って そこにファイルを置くみたいだね
そこだけjavaと同じなのか。ややこしい。
「だけ」ってことはないだろ
groovy 同士のやり取りの話もいいが、
Java 上でのgroovy スクリプトを動作させる件だが、groovy1.5 で確認したが、
GroovyShell とGroovyScriptEngine とも、旧バージョンと代わりなく動作したよ。
以下、NetBeans 5.5で確認した例ね。
// Cドライブ直下の groovyScripts フォルダに myProgram.groovy ファイルと
// myProgram2.groovy ファイル置き、適当なテスト用スクリプトを書いておいた。
// なお、ツールメニューのオプション・コマンドで groovy Home を指定するとともに、
// ツール・メニューのライブラリマネージャーから、groovyLib の名で
// groovyフォルダ内の全jarファイルを取り込んでおく。
// (あ、もちろんcoyote プラグインは入っている
ttp://groovy.codehaus.org/NetBeans+Plugin )
import java.io.File;
import groovy.lang.Binding;
import groovy.util.GroovyScriptEngine;
public class ScriptEngineEmbedGroovy {
public static void main(String args[]) throws Throwable{
String[] paths = {"C:\\groovyScripts"};
GroovyScriptEngine gse = new GroovyScriptEngine(paths);
Binding binding = new Binding();
Object[] path = {""};
binding.setVariable("args",path);
// groovyプログラムへ与えるターゲットファイルの指定
gse.run("myProgram.groovy", binding);
gse.run("myProgram2.groovy", binding);
}
}
// 以上を実行すると、Java上で myProgram.groovy と myProgram2.groovy が実行される
559 :
558 :2007/12/12(水) 16:14:09
上の補足ね。 Object[] path = {""}; binding.setVariable("args",path); // groovyプログラムへ与えるターゲットファイルの指定 がひとまとまりね。 ターゲットファイルがないので、 Object[] path = {""}; と、なにも指定していない。
まだ無名クラスがサポートされてないんだな。
561 :
デフォルトの名無しさん :2007/12/13(木) 15:28:23
そもそも、クロージャがあるのに無名クラスなんているのか? 基本的に、クラスだってJavaとは違う使い方が想定されているし。 (Java のようにも使えるが) クラスではプロパティーのみを定めて、メソッドは外に追い出し それはクロージャで追加的に組み合わせて、あちこちで流用するという ようなそんな感じなんじゃないか? Java のように使うつもりなら、Java でやればいいんだし、 groovy使う意味がない。まー、自由に行き来できるんだから、 好きなように組み合わせればいいわけだが。
563 :
561 :2007/12/14(金) 20:50:16
>>562 ああ、GUI の扱いね。そんなこともあるのかな。
自分の場合は、Swing はNetBeans の GUIビルダで組んで、
groovyと組み合わせようかと考えてた。
groovy でのSwing は情報少なくて大変そうな気がするが、
そうでもないのかなぁ。
>>562 リスナーなんぞ使わずに直接ぶち込むんだ!
window.windowClosed = { System.exit(0) }
window.windowClosing = { window.setVisible(false); window.dispose() }
1.0betaの頃に、ドキュメントが間違っているのか、実装が間違っているのか、俺が間違っているのか分からず
ちょっと触っただけで離れてしまったけど、1.5はなかなか良さそうだな。
今こそが始め時な気がする。
プリミティブな配列の宣言ってどうするの? JOGLのデモソース移植しようとしたら プリミティブ型とラッパークラスのオートアンボクシングが行われなくて例外でるんだけど・・・。
さて、俺が興味を示しましたよ
anarchy golfに追加されたよ
マジかw
あなごるスレでつぶやいたら速攻追加されたw 早速トライしてみるがいきなり2でつまづきそう。25byteでできるのか。。。
echoの30byteはたぶん System.in.eachLine{println it} 25byteはどう書いたんだろう。
あそこは答さえ合えばなんでもありなので
とある理由によりGroovyに触れる機会がありそうなんだが、微妙っぽいな やっぱりJVM上はJava以外ありえんな
Scalaはいいぞ〜
だめか println System.in.text
lnはいらん print System.in.text System.out<<System.in
576 :
デフォルトの名無しさん :2008/03/10(月) 02:00:43
grailsのdomainのpojo書くだけで勝手にDBのスキーマまで作ってくれるのと、 サービスのメソッドが何の宣言しなくてもトランザクションになってるのは 黒魔術っぽくて好き 運用中のgrailsアプリで、domainのフィールド何気に削ってセーブしたら、 DBの方まで削られてエライ目にあったけどw
577 :
デフォルトの名無しさん :2008/03/10(月) 02:12:05
578 :
デフォルトの名無しさん :2008/03/16(日) 21:02:01
579 :
デフォルトの名無しさん :2008/03/31(月) 02:14:50
grails動かしながらコンパイルが通らないdomain書くと、 セーブした瞬間に buildexceptionでgrailsごと止まるのはどうにかならんのか。 ソース書いてる途中でC-x C-sする癖があるので知らん間に落ちてる。 いちいちgrails run-appするのうざったい。
580 :
デフォルトの名無しさん :2008/03/31(月) 20:57:25
581 :
デフォルトの名無しさん :2008/04/16(水) 00:27:18
Groovy 1.5.5 出ました
yieldマダー?
583 :
デフォルトの名無しさん :2008/05/07(水) 23:38:38
Groovy は getopts みたいな コマンドライン引数解析を楽にするものは付いてないんですかね Commons CLI 使えってのは無しで
584 :
デフォルトの名無しさん :2008/05/07(水) 23:48:00
>>583 ですけど Commons CLI が
Groovy の配布物の中に含まれてるからそのまま使えるんですね
スレ汚し失礼しました
585 :
ひみつの検閲さん :2024/11/25(月) 04:34:26 ID:MarkedRes
586 :
39s :2008/06/18(水) 20:15:22
39s
あぼーん
あぼーん
589 :
ひみつの検閲さん :2024/11/25(月) 04:34:26 ID:MarkedRes
WinGroovy
591 :
デフォルトの名無しさん :2008/07/11(金) 19:34:42
ちょいおれの Groovy の使い方の妄想をと聞いてくれよ、
まだためしてないんだけどな。
・bash や perl などのスクリプト言語の代替ではなく、
・Java で繰り返し書くような"たいくつな"コードを Groovy にできないか、というアプローチを目指す
1.たとえば JUnit のテストクラスはある意味使い捨てなわけで、ここらへんを Groovy でぬるく書けないか
2.Struts + Spring + ORM なんかのときに、Spring と DAO クラスは Java で書き、
Action クラス内の
HogeForm form = (HogeForm) form;
String zaikoNo = form.getZaikoNo();
List<Zaiko> zaikoList = zaikoService.findList(zaikoNo);
if (zaikList.size() == 0) {
// 画面A へ
} else {
// 画面B へ
}
といった、単なる比較や分岐のようなところは Groovy にできないか?
あと、この方のblogをたまにみている。
http://d.hatena.ne.jp/masanobuimai/searchdiary?word=%2a%5bgroovy%5d ant builder って使ったことある人いる?
■■■□■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■■■□■■■■□■■■■□■■■■■■■■■■□■■■■■■ ■■■□□□□■■□■■■□■■□□□□□■■■□■■■■■■ ■■■□■■□■■□■■■□■■■■■■□■■■□■■■■■■ ■■□■■■□■■■■■□■■■■■■□■■■■□■■■■■■ ■■□■■■□■■■■■□■■■■■■□■■■■□■■■□■■ ■■■■■■□■■■■■□■■■■■□■■■■■□■■■□■■ ■■■■■□■■■■■□■■■■■■□□■■■■□■■□■■■ ■■■■■□■■■■■□■■■■■□■■□■■■□■■□■■■ ■■■■□■■■■■□■■■■■□■■■■□■■□■□■■■■ ■■■□■■■■■□■■■■■□■■■■■■■■□□■■■■■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■□□□□□■■■□□□□□■■■■■□■■□■■□■■■□■ ■□■■■□■■■□■■■□■■■■□■□■■□■□■■□■■ ■□□□□□■■■□□□□□■■■□■■■□■■■□■■■■■ ■□■■■□■■■□■■■□■■■□□□□■■□□□□□□■■ ■□□□□□■■■□□□□□■■■■■□■■■□■■■■□■■ ■□■■■■■■■■■■■□■■■■■□■■■□□□□□□■■ ■□■■■■■■□■■■■□■■■□□□□□■□■■■■□■■ ■□■■□□□□□□□■■□■■■■■□■■■□□□□□□■■ ■□■■■■■■□■■■■□■■■□■□■□■□■■■■□■■ ■□■■■■■□□■■■■□■■■□■□■□■□■■■■□■■ ■□■■■■□■□■■■■□■■■□■□■■■□□□□□□■■ ■□■■□□■■□■■■■□■■■■■□□□■■□■■□■■■ ■□■■■■■□□■■■□□■■■□□□■■□□■■■■□□■
593 :
デフォルトの名無しさん :2008/07/16(水) 01:57:05
BuilderSupportを使って、自分のツリー構造のオブジェクトを作ってみたいんだけど、 どうやって作ればよいかよくわからない。
>>593 既存のビルダー、特にSwingBuilderのソース読んで勉強すると良いと思う
大して難しく無いよ。
595 :
デフォルトの名無しさん :2008/09/20(土) 17:18:35
>Groovyイン・アクション ガンダムのフィギュアかと思ったw
598 :
使い捨て取締役 ◆QLzND0Vw6o :2008/09/27(土) 16:48:01
Grailsは1.0.3で安定したっぽいな
599 :
デフォルトの名無しさん :2008/10/13(月) 19:20:45
GrailsのGSPでなにかのパラメータ付けるとデバッグモードになり エラーのsrc箇所がわかるってやつなかったっけ? 確かerror_with_srcみたいな感じのパラメータ。。。
600 :
デフォルトの名無しさん :2008/10/24(金) 22:38:48
あったけど、なんだっけ?? urlの後ろにつけるやつだよね。
601 :
初心者 :2008/11/09(日) 17:13:21
C/C++で作成された関数をGroovyから呼び出せるのでしょうか? pythonなら簡単にできましたけど。
swigでラッパ作ってJNI経由になるが、一応可能。
603 :
デフォルトの名無しさん :2008/11/14(金) 00:49:21
604 :
デフォルトの名無しさん :2008/11/15(土) 09:20:16
Grails 1.0.4でた
605 :
使い捨て取締役 ◆QLzND0Vw6o :2008/12/14(日) 18:10:56
日本語解説本は出版されないのかな
607 :
デフォルトの名無しさん :2008/12/15(月) 02:12:45 BE:871719438-2BP(22)
608 :
デフォルトの名無しさん :2008/12/24(水) 04:35:27
Groovy 1.6 RC1でた
Grails 1.1 beta 3 出た
611 :
デフォルトの名無しさん :2009/02/10(火) 04:51:23
Groovy 1.6 RC3 出た
流行ってねーな
613 :
デフォルトの名無しさん :2009/02/20(金) 18:28:23
1.6 age
614 :
デフォルトの名無しさん :2009/02/24(火) 17:09:29
617 :
デフォルトの名無しさん :2009/04/08(水) 23:32:20
1.6.1age
これってどういうけい? JavascriptみたいなやつとRubyてきな感じ?
動的型、型推論ちょっとありのJava+クロージャ
いきなりで済みませんが、Groovyのパフォーマンスってどんな感じですか。 Groovy単体の処理性能、Javaへのアクセス、ScriptEngine経由でのInvokeコスト、日本語との相性で教えてください。 今まではJavaScript、JRuby、Jythonを試しましたが、一番バランスがいいのはJavaScriptでした。 JRubyはJavaアクセス、Invokeコスト、日本語に難があり、Jythonも日本語に難がありました。
GroovyでScripting APIのScriptContextにアクセスするには、 直接ScriptContextをScriptEngine.put("context", engine.getContext())とかしなきゃダメですか?
>>620 ですが、何だかんだで自分で調べました。
内に閉じた処理性能、Script→Java呼び出し、Java→Script呼び出しの全てでトップクラスでした。
これらは以前までは、順にJRuby、JavaScript、Jythonと綺麗にそれぞれ棲み分けが起きていました。
日本語の問題はJavaScriptと同じく、特に問題は見あたらず、かなり万能といえます。
ただインスタンスメソッドがファイルスコープの変数を参照できないのは仕様でしょうか?
ScriptEngine.putでJava側で変数を変更した場合の対応に少し困りました。
この点に注意を払えば特に穴もなく、無事、自前アプリの対応スクリプトにできそうです。
624 :
デフォルトの名無しさん :2009/04/26(日) 17:18:24
1.6.2age
あぼーん
grailsがよさげっていうからインストールして作り始めたけどけっこうrailsよりも立ち上がりが遅いな。 スループットは上なんだろうけど開発中のモッサリ感はこっちのほうが上のような気がする。
628 :
デフォルトの名無しさん :2009/05/26(火) 19:48:30
GrailsのServiceのDIだけど、 Service1}{ def service2; }とService2{ def service1; } で起動で初期化エラーが出る。 まあ、それはそうだけど。 しかし、何とかできる方法知りたい!! 誰か助けてください
629 :
デフォルトの名無しさん :2009/06/16(火) 17:47:57
630 :
デフォルトの名無しさん :2009/08/09(日) 05:07:55
631 :
デフォルトの名無しさん :2009/08/24(月) 10:24:36
The August 2009 GroovyMag is now available. Building a Grails Portal - Part I Grails Logging - Part II Grails in a J2EE world - RMI
632 :
デフォルトの名無しさん :2009/11/03(火) 08:34:45
1.7-beta-2 あげ
633 :
デフォルトの名無しさん :2009/11/30(月) 22:12:58
1.6.6 and 1.7-RC1
634 :
デフォルトの名無しさん :2010/01/06(水) 09:20:11
Greeeeen Grooooovy
635 :
デフォルトの名無しさん :2010/02/22(月) 20:14:56
Grailsのサイト、いつの間にか
>>448 から移転してるんですね。
TOPページがGroovyサイト以上にいかがわしい感じがするのですが。
それは兎も角、日本語ページが化けてて全く読めないのは作業中だからなんでしょうかね?
636 :
デフォルトの名無しさん :2010/04/20(火) 01:37:01
Grails 1.2.2 age
Scalaが出てきてすっかり影が薄くなったね
638 :
デフォルトの名無しさん :2010/06/09(水) 18:39:27
Grails1.3.1でヒョロいサイト作ってるんだけど、 あからさまなバグ多くない?1.2.xにしとくんだった…
所詮はJavaのシンタックスシュガーに過ぎないしなー
640 :
デフォルトの名無しさん :2010/06/15(火) 22:01:41
1.7.3 age
>>639 C言語はアセンブリのシンタックスシュガー
とか言っちゃう人?
1.6.9
643 :
デフォルトの名無しさん :2010/06/18(金) 01:19:55
Grails 1.3.2 age
644 :
デフォルトの名無しさん :2010/06/25(金) 17:03:02
Grails 1.2.3 age
645 :
デフォルトの名無しさん :2010/07/09(金) 17:24:45
Grails 1.3.3 age
このスレ立ったの何時だよ・・・ 歴史を感じさせるわ
647 :
デフォルトの名無しさん :2010/07/20(火) 22:25:26
648 :
デフォルトの名無しさん :2010/08/20(金) 17:20:36
シンタックスソルト
649 :
デフォルトの名無しさん :2010/09/04(土) 03:17:55
GrailsはRooの踏み台になってしまうん?
GroovyもRails専用言語のRubyみたいに Grails専用言語的なもんなの?
651 :
デフォルトの名無しさん :2010/09/05(日) 13:56:20
JavaがRoo専用言語だ、っていう理解でよいポジションの人なら
>>650 も正しいかもね。
groovyshで閉じ括弧などを入力し忘れてエンターキーを押すと、 プロンプトがgroovy001:>などになって、元に戻らなくなって、 いったんシェルを終了するしか方法が無くなってしまうのですが、 何か良い方法は無いのでしょうか?
653 :
デフォルトの名無しさん :2010/09/21(火) 11:17:48
655 :
デフォルトの名無しさん :2010/09/23(木) 00:29:10
>>654 おお、ありがとうございます!
ずっと待ち望んでいた解答が遂に得られました!
656 :
デフォルトの名無しさん :2010/10/05(火) 23:11:26
grails1.3.5 age
657 :
デフォルトの名無しさん :2011/01/23(日) 11:37:44
GroovyはJavaのScript版なんだから、もうみんなでJavaScriptって呼ぼうぜ
Groovyで作られたサイトとかないです?
659 :
デフォルトの名無しさん :2011/02/05(土) 22:04:02
見るです
最近興味が湧いてきたので色々ググってみてるんですが とんでもなく遅いという記事を多々見かけて、ガックリです 遅い遅いと馬鹿にされるRubyより遅いらしくてビックリです 富豪的プログラミングにも限度があるだろう しかし、以前に比べて300倍速くなるかも、Javaとほとんど同じ速度にできるかも、 という記事も見かけました 実際のところ、現状はどんな感じなんですかねえ? 速くなる目処は立っているけど、今はまだそこまでは、という感じなんでしょうか? それとも、もう結構速くなってるんでしょうか? 速度面が改善されてたら、後は ・対応IDEはあるか ・起動時間はどうなのか が気になるところですが JVM上で動く言語はJVMの起動時間が足を引っ張るという話も見かけたので気になるところです
最近頭が湧いてきたので色々ググってみてるんですが とんでもなく痛いという診断を多々見かけて、ガックリです
いやいやちょっと待ってくださいよ… 別にGroovyを馬鹿にしてるわけじゃなくて 現状どんな感じですか?と尋ねてるだけなのに 「自分が入れ込んでる言語が馬鹿にされた、ムキー!」 みたいな反応しないでくださいよ…参ったなあ Javaに比べて圧倒的に楽に書けそうなあたり大変魅力的なんですけど JavaやScalaが数秒で終わる処理が、数分かかるという話は、さすがに… でも、最近は速くなってるんですか? だったら話は別だ、と思って尋ねてるんですけど 実際使ってる方々なら、あっさり答えるだろうと思ったんだけど…
「いつの時代の話をしてるんだ。今は遅くないぞ」 「そのうち速くなるから待て」 「体感上そんなに遅くはないよ?」 「速度に関しては弁護できないな」 「速度欲しいところはJavaで書くよ。Groovyの価値は別のところにある」 とかそういう感じの話を聞きたいです 実際どうなんですか、印象として
「もう使ってない」
666
668 :
デフォルトの名無しさん :2011/02/14(月) 22:03:38
Scalaってやったことないけどちょっと毛色が違うんでしょ? これまでJava、C++、C#とか、PHP、Perlとかを使ってた人がすんなり入れるものなんかね
671 :
デフォルトの名無しさん :2011/04/10(日) 20:19:25.03
Expandoってなんて読むんだ?? えきすぱんどー?
Scalaに押され気味だね
673 :
デフォルトの名無しさん :2011/04/22(金) 01:55:24.65
Scalaも50歩100歩だが、Pythonにはずーっと押されっぱなしだな。
でもGroovyと同じJavaベースのPython(Jython)はさっぱりじゃん
PythonあるのにJython使う意味無いし。
PythonからJava部品使えるの?
JPython/Jythonはかなり早い時期に出たんだけど、長いこと古いバージョンで 停滞してたので、deadなプロジェクトと見なされ JVM上のスクリプト言語としての関心を呼ばなくなったのではと思う Jython2.0 2001 Jython2.2 2007 <-- CPythonはすでに2.5 Jython2.5 2009 <-- CPythonはすでに2.6および3.1 とかそんな感じだ CPython3.xでは文字列が完全にUCSベースになったので、仕様的に Javaや.NETとの親和性が高いはず JythonやらIronPythonやらは、さっさと3.x系に移行すればいいのにと思うが まあ今更手遅れかもな
>>676 Javaのライブラリ使うなら、Javaで記述した方が容易。
JythonはPyPyと連動して、本家とbackend以外、処理系実装を共有する計画がある。
681 :
デフォルトの名無しさん :2011/04/27(水) 23:49:15.11
1.8.0 age
682 :
デフォルトの名無しさん :2011/04/28(木) 00:11:09.87
ほんとだ、ありがとう。
大分早くなったらしいけどどうなの?
684 :
デフォルトの名無しさん :2011/05/07(土) 19:20:43.55
勿論、嘘だ
ちょ・・
会社でGroovy使えるよって言っていたんだけど、先日たまたま 同僚の前で1MBくらいのテスト用のファイルを作成するスクリプトを ぱぱって作って見せたら、スクリプトの実行から作成に異様に 時間がかかり、「Groovyって、全然使えねーじゃん」と吐き捨てるように 言われてしまった。悔しい…。
GroovyServ は仕込んでおかなかったの?
>>687 GroovyServって、ちょっと試したけど同時に複数の子プロセスを扱えないし
ある程度長時間実行してるとワーキングセットがOSに奪われてスワップアウト、
結局接続に時間がかかったりで、非常に使えるという印象は無かった
むしろgroovyでスクリプティングできるjfd2をメインファイラにするのが
良いのではと思った
まあ俺は内骨格使ってるので結局移行するには至らなかったけど
そうそうもう一点 今は改善されてるかもしれないが、GroovyServ経由で標準出力→端末への出力を 利用すると正直我慢ならないほど遅かった
Groovyは死んだ…
ほう。死因は?
餓死
諸君らが愛してくれたGroovyは死んだ。なぜだ!
婆やだからさ
Groovy 1.8.1が出てる・・・ この間、1.8.0出たばっかりなのに
697 :
デフォルトの名無しさん :2011/08/27(土) 02:59:02.29
もうPythonでいいよ
そうだね
699 :
デフォルトの名無しさん :2011/09/02(金) 00:12:14.52
>>696 1.8.0に間に合わんかった分の補填だよ。
あんまりにも不人気なんでScalaに乗り換えるわ
701 :
デフォルトの名無しさん :2011/09/03(土) 23:55:29.84
せやな
Scalaやってみたけど、なんか微妙だったわ。 やっぱ俺はGroovyのほうがいいわ。
704 :
デフォルトの名無しさん :2011/09/08(木) 03:13:24.15
1.8.2
JavaVM自体が終わっている。 その上のマイナースクリプトなんてゴミ
706 :
デフォルトの名無しさん :2011/09/22(木) 18:30:31.26
>>706 面白いネタの提供ありがとう。
さっそくFreeplane上でGroovy使って遊んでいるよ。
708 :
707 :2011/09/23(金) 15:50:26.42
さっそく躓いてしまいました… マインドマップからSQLiteのDBへアクセスを試みたのですが、スクリプト実行時に JDBCドライバ(sqlitejdbc-v056.jar)が正しく読み込めないためか、以下のような メッセージをログに出力してエラー終了していまします。 STDOUT: org.sqlite.JDBC2011/09/23 12:59:19 org.freeplane.core.util.LogTool warn 警告: java.lang.ClassNotFoundException: org.sqlite.JDBC どなたか対策をご存知でしたら教えてください。
709 :
707 :2011/09/23(金) 16:18:24.15
スレチのようなので、質問撤回します。失礼しましたm(_ _)m
710 :
uy :2011/09/24(土) 12:04:03.99
ほんとさー、 こういうごみかすスクリプトに夢見ちゃう奴ってなんなんだろうな まだPHPでも使ってたほうがマシだと思う Ruby使わない理由はなんなんだろうな ごみなのか 一生JAVAやってろごみかす
712 :
デフォルトの名無しさん :2011/09/26(月) 19:13:08.79
Rubyはバージョン上げる度に非互換激しいからなー。 Javaもあるけどそれはバグ扱いだし、APIを無くす前には非推奨期間が数年続くし。 1年以上先までメンテナンスするつもりがあるなら、 Rubyの採用はちょっとありえない。
そうですか
714 :
uy :2011/09/29(木) 01:42:15.99
>>712 まともなこと言ってると思うよ
ゴミとわかっていても、使うっきゃない
一世代、時代遅れになった言語っていうのは、もう進化しないから
広く使われるようになる
Rubyも今の1.9以降、もうバージョンアップしません とかなると、結構幅広く使われるだろうが
Rubyはそういう風にはならなくていいな
>>714 rubyはこういう奴が多いから使いたくない
716 :
uy :2011/09/29(木) 18:37:35.93
使わなければいいじゃんwwwwwww 言語は嫌いでもRubyで超効率だしてる奴がうらやましいのか 効率の差がわからない"ごみかす"と"ゴミッカス"と"ゴミ"って悲惨だね
>>716 rubyはこういう奴が多いから使いたくない
C言語は全てのプログラマがアセンブラから開放されることを目指して作られたと言うのに。
そんなわけないだろ、スタックにちょっかい出すのにかなり限られた裏技しかないんだから
キャリフラグも触りたい
仮想記憶とかファイルシステム記述できる言語は当時ほとんどなかった。 今でもC/C++一択だけど。
722 :
uy :2011/09/29(木) 22:50:51.45
723 :
デフォルトの名無しさん :2011/09/29(木) 23:00:49.98
Javaは拡張しても後方互換性は残すもんなー。Rubyとは大違い。
こ こ ま で G r o o v y の 話 題 な し
Groovyのバージョン間の互換性はどうなの?
>>725 誰も使い込んでいないので問題にならない。
727 :
uy :2011/10/03(月) 16:31:30.50
どこだったか忘れたけど 俺に対して「Groovyも知らないとかwwwwww」って必死な奴がいたよ VIPだったっけ なんか、そういうところでしか、口を開けない奴っているんだよな そういう奴らのためにも、こういうマイナー言語は必要で、 C++やRubyじゃ勝てないから、マイナーな言語をマスターして その世界で、上位にいきたいっていう。 ラグナロクでいう、過密鯖でトップを取るか、過疎鯖でトップを取るかの違いみたいなもん 言語選択って。
> C++やRuby ゴミくずはほんとうにおこがましいよな
死んだ?
>Java の創作者である James Gosling 氏や >JRuby の主要開発者である Charles Nutter氏に続いて, >Groovy の創作者である James Strachan氏もScalaへの賛意を表明している。 >氏はScalaに非常な感銘を受けているようで,もしScalaが先にあったなら, >そもそもGroovyを作ることはなかっただろう,とまで言っている。 不人気になったとしたらこれが曲解されてる可能性もあるな。 ScalaのほうがGroovyより上、とまでは言ってなくて Javaじゃ使いづらいけどScalaあるならわざわざコストかけて Groovy作るほどでもなかったかなという程度で。
dynamicinvokeみたいなのでで変わる面も jrubyやgroovyは、java7のインフラ利用も積極的なので、 新しい機能が古い環境と分断する事もあるだろうけど
groovyスレってooでも検索しづらい
Mac OS X でgroovyConsole実行すると、 ・C-hがreplace (置換) に ・C-fがfind (検索) に 割り当てられていて、たいへん使いづらい。 しかしキー割り当てを変更するようなメニューは、groovyConsoleにはないみたい。 groovyConsoleでキー割り当てを変更する方法は? 繰り返すが当方Mac OS Xユーザ
737 :
デフォルトの名無しさん :2012/02/24(金) 22:41:14.51
Groovyで if (map[key] == null) { map[key] = [] } map[key].add(value) という処理を簡潔に書く方法はありますか。 Rubyだと (map[key] ||= []) << value Pythonだと map.setdefault(key, []).append(value) という処理です。 よろしくお願いします。
738 :
デフォルトの名無しさん :2012/02/24(金) 23:02:13.43
MIKAMIのインターネット でググれ このブログ痛すぎwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww クソワラタwwwwwwwwwwwwwwwwwwwwwwwwww
>>737 RubyやPythonと比較すると簡潔さには劣りますが…
map[key] = map.get(key, []) << value
連投、すみません… 左辺とってもうまくいきました。 map.get(key, []) << value
>>739 これはmap << valueの戻り値がmapであることを利用したコードですね。
しかしそれを知らない人にはまったく意味不明でしょう。
採用するか悩みます。
>>740 それだとkeyがなかった場合に、map[key]はnullのままではないでしょうか。
groovyって、「||=」は使えないんだっけ?
>>737 こういうソースってなんか非常に可読性が低いように見えるんだけど
JavaとかCのプログラマだからかい?
>>737 その辞書の値が常にリストであるのなら、
Python2.5以降ならdefaultdictのほうが便利じゃないのかな
from collections import defaultdict
d = defaultdict(list)
のように作っておいて
d[key].append(value)
でいい
Groovyだと、withDefaultがPythonのdefaultdictと同等らしい
d = [:].withDefault{[]}
のように作って
d[key] << value
でいい
Grailsが、ネット接続環境でないと起動しないんですが、そんなことないですか。 喫茶店でGrails使おうとしたらエラーになってすごく困りました。
plugin探しにいくからっしょ Grails offlineでググろう
ちょっとRubyに浮気してみたけど、あっちはバージョンの互換性が全然だめだね。 また、似た機能のパッケージが無数にあって混沌としていてだめだ。
釣れますか?
developerWorksの記事にgroovyのコードがあるんだけど
http://www.ibm.com/developerworks/jp/java/library/j-ft11/?cmp=dw&cpb=dwjav&ct=dwrss&cr=dwrss&ccy=jp&csr=051112 ここが何をやってるのかわからん
def asSquare(peg) {
[getWidth:{peg.x}] as SquarePeg
}
def asRound(peg) {
[getRadius:{Math.sqrt(((peg.width/2) ** 2)*2)}] as RoundThing
}
[getWidth:{peg.x}] はハッシュオブジェクトなのはわかるが、{peg.x} は関数オブジェクト?
それに as SquarePeg をつけると、
・SquarePegの匿名サブクラスが作られて
・そこに def getWidth() { return peg.x } が定義される
・そしてその匿名サブクラスのインスタンスオブジェクトが作成される
という理解でいいの?
だとすると、getWidth()は引数をとらないメソッドなのに peg という変数を使えるのはなぜ?クロージャだとこういうことができるの?
public SquarePeg asSquare(Peg peg) {
return new SquarePeg() {
public int getWidth() { return peg.x; } // なんで変数pegにアクセスできるの?
};
}
クロージャは、クロージャ作成時点の変数をキャプチャするから参照できるよ。 そのJavaの例のような単純な変換では、クロージャは表現できないね。
流行って欲しいのになかなか流行らんなー
起動が遅いのが致命的だな。
753 :
デフォルトの名無しさん :2012/06/28(木) 21:03:36.12
Groovy使うくらいならむしろJRubyを選ぶ
756 :
デフォルトの名無しさん :2012/06/30(土) 21:20:19.98
>>706 の簡単なスクリプトを書きたくてGroovyの基本を抑えたいのですが、
Javaは殆ど覚えてません・・・
非Javaユーザー向けで良さそうなGroovyのチュートリアルなど
ご存知の方いらっしゃいましたら教えて下さい。
>>756 Groovy使いだけど、freeplaneのGroovyは使うにはちょっと癖がありすぎてあまりオススメできない。
freeplane自体も開発がストップしているようだし…。
>>757 遅くなりました!情報ありがとうございます!
なるほど一筋縄ではいかないという事ですね・・・
私のような日曜プログラマが土日に書ける程度ではなさそうですね。
今考えているスクリプトは、ノート付きのノードが複数個あった時に、
そのノードを結合するとノートも結合するようにする(現在のfreeplaneだと1つ目のノードのノートのみのこり、他は消される)
といった程度のものですが、それでもやっかいでしょうか?
762 :
756 :2012/07/09(月) 18:23:02.89
>>761 情報ありがとうございます。
中身検索しましたら何とかなりそうでしたので注文しました。
来月にできそうなので素人なりにこの本で頑張ってみようと思います。
764 :
デフォルトの名無しさん :2012/07/17(火) 10:25:16.26
beanshellてどう?
766 :
デフォルトの名無しさん :2012/07/25(水) 10:36:58.95
なんでこの言語流行んないんだろ?
糞遅いから
768 :
デフォルトの名無しさん :2012/07/27(金) 08:02:02.47
今後速くなる見込みあるんだろうか・・・
見込みがあればとっくに速くなってる
なってま〜す。2.0.0 でアレしたり、 元から入れておくあれを使ったり。
いずれにせよ。小細工しなきゃいかんわけだ…
773 :
デフォルトの名無しさん :2012/07/28(土) 11:47:52.79
>>770 速くなってるのに流行らないって
今後の普及は絶望的ってこと?
時代はRubyだからな。 Javaをスクリプト的に使いたければ、JRuby一択だよ。
Rhino標準添付のJSだろJK
>>773 速くなったからこれから流行るんだろう。
お前の言い方なら。
時代はJ#
778 :
デフォルトの名無しさん :2012/07/31(火) 16:27:26.87
Groovy 2.0.1が出てるというか 2.0.0が消えてるな・・・
名前が悪すぎる
Rubyっぽく省略してGubyってどうよ?グビィ♪
下痢っぽい
夏は水の飲みすぎと 生水の腐敗に注意
>>779 SEO的にも最悪
普通に使われる言葉だし
Perlの人はかしこかった
いとくとらの人も
ファイルの拡張子長過ぎ。 .grv位にすべきだった。 .groovyは無いわ。
Groovyを起動している間に、子供が小学生になった
787 :
デフォルトの名無しさん :2012/08/06(月) 23:00:43.67
>>780 Ruby側に怒られるわ
Grailsでもそれに近いことをやって注意されてんのに・・・
Java開発やってる人がちょっとした試験や開発のオトモにはいいんだけどな>Gruby vimのgroovy拡張がF4で即実行できて便利です。
789 :
デフォルトの名無しさん :2012/08/10(金) 21:54:11.53
で、Jythonとどっちが速いん?
起動さえしてしまえば似たようなもの
Grails可愛いよGrails
792 :
デフォルトの名無しさん :2012/08/12(日) 09:00:18.22
Groovyはjavaを完全に含んでるから javaから人がガンガン流れ込んでくるんじゃなかったっけ?
嵐が来ぬまま幾星霜 JSR外れて幾星霜
このスレ民はgroovy書くのに何使ってる? 俺はvimにプラグイン入れてる。
VZエディタ
JEdit (MacOS 専用の奴じゃないよ!)
jは小文字
お前らのエバンジェリストちゃんのことなんだけどさ 自分のことイケメンだと勘違いしてる雰囲気は前々からあったけど twitterの寝顔アイコンとか、あれなんなの? 気持ち悪いからお前らちゃんと注意してやれよ それともなにか、ヲチって陰でこそこそ笑ってんのか?かわいそうに
誰?
>>800 日本におけるGroovyの第一人者、@kyon_mm先生を知らないなんて、どんだけアンテナ低いの?
そんなんだから@kaori_t_spicaとsexできないんだよ?
英語の情報だけでお腹いっぱいなのではないか?
流行らないのは他の言語と競合してるから?この分野が不人気だから?
土方しか集まらないから
わざわざgroovy使うくらいならRubyやPHPみたいな生粋のLL使うか、 静的開発言語のJava使うわな。 どういうケースでプロダクトに使われるのか、想像が付かない。 Javaプロジェクトの単体テストや付属ツールとかちゃちゃっと作るのには向いてるんだけどね。
Freeplane更新されたな。開発がストップしているとか嘘を伝えてしまい。すまん。 バージョンアップで、groovyスクリプトでできることも増えていい感じだ。
807 :
デフォルトの名無しさん :2012/08/25(土) 08:55:53.34
JSR 241は休眠中らしい まあ開発自体は進められているので 心配しなくてもよさそうだが
JavaEEにGroovyのポジションがないのが痛い メインで使われるとするとGrailsで済む規模の案件ぐらいか それ以外はテストやメンテ用使い捨てスクリプトしか用途がなさそう Eclipseベースに作られたオフィスソフトLotus SymphonyでGroovyがマクロとして使えれば面白かったんだけど
ところでソフトのマクロとしてのGroovyてどうなん? プログラマならjava人口が多いから、マクロがGroovyだと楽だけど、 非プログラマが習得しやすいかどうかが良く分からん
馬鹿には無理
配列内の全要素を10倍した配列を得たい場合、 Ruby → arr.collect { |e| e * 10 } Groovy → arr.collect { it * 10 } または arr.collect { e -> e * 10 } 俺的にはGroovyの記法のほうが好き。
ScalaスレでアホはGroovyでもやってろみたいな言い方されるから簡単なんだろう。
Scala使いは頭が良いんだろうけど性格悪いな。 まあ、Scala挫折組を積極的に取り込んで Groovy人口増やす手もあるがw
馬鹿には無理
問題は本当のバカだとGroovyの前に最初にとりあえずJava覚えろってなるんだよな。 GriffonとかGaelykとかのキラータイトルがもちょっと知名度上がってくれるといいんだけど。
Gaelykはマジ神! Javaは知らなくてもJavascript分かればGroovy余裕だと思う しかしJavascript好きなWebっ子たちがGroovyなんてやりたいはずもなく
GroovyとScalaって用途被るの? Grooby==劣化Scalaみたいな認識か
818 :
デフォルトの名無しさん :2012/09/01(土) 00:08:18.71
HTMLにJAVAスクリプトを書いたけど、動作がおきません。 どうしたら、いいかわかりません。 因みに、時計を作っています。 時間、分、秒を取得するプログラムです。 どなたかわかりましたら、レスおねがいします。
領海です!
>>817 実際そうだがな
開発者も口をすべらした
GroovyはJavaプログラマなら容易に使いはじめることができる
じゃあJavaでもいいじゃん?ってなっちゃうんだよね。 業務システム向けにExcel+Accessの親和性が高くてGroovyっぽい言語があったら、 ナウいヤングにバカ受けだと思うんだけど。
つActiveRuby
確か作った奴がゴネて何となく載ったんだろ 変な方言なんか採用しないでjruby使えよ てか、nashornには期待していいのか
ウィルススキャンの入ったPCだと、起動に3分位掛かる件について。 jarを全部スキャンするからな…。
826 :
デフォルトの名無しさん :2012/09/16(日) 11:55:03.06
>>822 Javaよりは実装はやりやすいんだけどな
圧倒的遅さが多少のシンタックスシュガーをすべてスポイル。
828 :
デフォルトの名無しさん :2012/09/17(月) 08:38:00.59
で後でメンテで苦しむんだな・・・
この手の言語ってJavaのライブラリが使えることが最大の売りな反面 一番足を引っ張るのもJavaのライブラリなんだよな 何をするにもまどろっこしくてスクリプト言語との相性が悪すぎる
Groovyでアプリ組むならGrails,Gaelyk,Griffonくらいしか使えそうなフレームワーク無い? 社内向けでちょっとしたツールと言うかミニシステム組むのに使おうかと思うんだけど。 SwingでもWebでも構いません。
Gradleとかどう?
>>799 >>801 俺の使ってるGroovyちゃんにエヴァンジェリストなんかおったんか…
>>817 Groovy==劣化Ruby が正解。
しかしなんでScalaな人はあんなにRubyに喧嘩売ってんの?
>>831 お返事遅くなりましたが、Gradle試してみます!
そしてgroovyを起動するのには、groovy-embedded.jarとivy.jarだけあれば、
とりあえず動くんですね。
834 :
デフォルトの名無しさん :2012/09/24(月) 18:09:36.04
Rubyは実装する時には色々注意しないといけないことが意外に多いから 手軽とは言いがたいところがあるな
>>834 具体的にはどんな所ですか?
スクリプト言語を何か習得しようと思っていて
RubyにするかGroovyにするかで迷っています。
JavaはちょっとはわかるのでGroovyの方が入りやすいのでしょうが
Rubyの方が今後役立つ場面が多いのかなとも思っていて。
※Ruby, Railsを使ったプロダクトのカスタマイズなど
>>835 なら素直にPythonかRubyの2択でしょ
日常的なちょっとした処理に使おうと思うならJava系はいかん
テキスト処理なワンライナーもJavaで書く俺に死角は無かった
Java系だとちょっと込み入ったことをしようとすると あのいまいましいJavaライブラリを呼び出す破目になるよね
逆に基幹系がJavaの場合に、そのシステムのライブラリとかを呼び出して単体テストするのには向いてるよね、とも言える。
少なくとも独立したスクリプト環境として使うものではないな どんなに書きやすい言語だろうと必ずソース書く上でJava呼び出しが巨大なボトルネックになる
>>835 です
様々なご意見ありがとうございます
あれからGroovyの書籍を1冊読んでみました
Javaを多少なりとも使ったことがあるので
楽しく、感激(?)しながら読めました
また、ここでのご意見も読んで次のような印象を持ちました
「Javaでの開発のサポートとしてGroovyは大きな力を発揮する」
>>838 >>840 おたずねしたいのですが
日常的なタスクの自動化にはGroovy以外のスクリプト言語で記述されているのでしょうか?
GroovyはあくまでもJavaによる開発でのサポートツール的な位置づけでしょうか?
GroovyというかJava系スクリプトはそういうもん
新しい職場がWeb UI開発がGrailsでバージョン管理システムがMercurialなのだが 両方ともEclipseプラグインが不安定で挫けそうになる。 でもGrails+Groovyは良いね。基本Javaで仕事してきて小道具としてRubyも愛用 してきたので、さっくり書けつつJavaも直接叩けるのは実に便利。
UWSCでいいよもう
846 :
デフォルトの名無しさん :2013/01/05(土) 21:19:07.08
GroovyでUWSCみたいなことってできないのかなと 色々調べてみたけど・・・
※JavaはWindowsにがっつり依存したタスクには適していません
ライブラリが整備されてないだけだろ 誰かが苦労して前もって用意しとけば適してないこともない
Javaの意味ないよねそれ
時代はScala。さよならgroovy
851 :
デフォルトの名無しさん :2013/03/04(月) 01:09:12.13
>>850 Scalaも良いのよね
まあでも使い道がちょっと違うからGroovyも重宝する
両方使いこなせるのが一番
その2つやたら比較したがる人いる気がするけど、 全然適用範囲が違うし比較してもしゃあないだろと思う GroovyとJRuby比較するんだったら分かるが
853 :
デフォルトの名無しさん :2013/03/16(土) 16:12:34.88
Javaプラスアルファとして一番使いやすいのはGroovyだと思う。 ぶっちゃげjavaファイルの拡張子を.groovyを書き換えてもそのままGroovyで動く。 JRubyではこうはいかん。
Java の創作者である James Gosling 氏や JRuby の主要開発者である Charles Nutter氏に続いて, Groovy の創作者である James Strachan氏もScalaへの賛意を表明している。 氏はScalaに非常な感銘を受けているようで,もしScalaが先にあったなら, そもそもGroovyを作ることはなかっただろう,とまで言っている。
つまりチェック例外は失敗だったと
857 :
デフォルトの名無しさん :2013/03/22(金) 19:26:52.11
GroovyもScalaもまだまだ若い言語だから 両方とも上手く育ってほしいとは思うな
858 :
デフォルトの名無しさん :2013/06/02(日) 21:53:02.56
seleniumとかhtmlunitとか色々弄り回すのには便利だな IDE使うんなら例外処理すら書かなくていいし Java系のライブラリを使い倒すのには使える
859 :
デフォルトの名無しさん :2013/06/02(日) 22:14:59.88 ID:ioPsxRq/!
先日Groovyで書いていたコードを一部Javaで書き換える作業をしたのだけど比較的死んだw 一つはクロージャーを使ったコレクション操作(特にcollect)、それとやはりクロージャーを 使ったトランザクション等のAPI(withTransaction{...}みたいの)、あと地味に文字列中の式展開。 いや〜Javaで書くと死ぬほど冗長になるのね。
860 :
デフォルトの名無しさん :2013/06/04(火) 14:29:43.72
GradleでGroovyが標準で使えないっていうのはちょっと辛いな
テスト
Groovy楽しいね〜
GMaven2.0が割と便利で使いやすい Mavenのプラグインを取り込んで色々とやれる
ちょっとした業務系のツールとか作るのに便利だよね。 便利そうだったらそのままコンパイルして運用系に組み込んでもいいし、 逆に運用系のJavaライブラリをそのまま読んだりも出きるし。
実際Groovyで書いている人ってどの程度動的型を利用しているのかな。 自分はJavaあがりでGroovyで書くときも型はきっちり書いてdefを使うのは例外的 だけれども、Ruby育ちの同僚が書くコードは比較的defが多い。 STSの上だと型を書かないとContent Assistの打率も悪いしコード表示もイマイチ 綺麗にならないのでついつい静的型でかっちり書いてしまう。
メソッドとクロージャの引数には必ず型を明示するようにしてる。 それ以外の場合は、書いてたほうがわかりやすいかな、という時には書くけど基本はdefだな
Groovyが原因かGrailsが原因かよくわからないけれどもインナークラス周りで 妙なエラーが出てはまることが時々ある。 クラス内で宣言したenumが使えなかったり、今もあるstaticなインナークラスを newするところでなぜかVerifyErrorが出て動かなかったコードが、そのインナー クラスを外に出すだけで動くようになったり・・・訳わからん・・・
>>867 Groovyのバージョンによって使える場合と使えない場合があるし
スクリプトとして定義しているかクラスとして定義しているかでも違ってくる
869 :
デフォルトの名無しさん :2013/09/14(土) 18:05:43.33
最近生きてるか?Groovy
scalaに対してgroovy作者が完全敗北を認めた時点でgroovyは死んだ
ふつうにGrailsと共に元気ですねん。
GradleもGroovyだしなぁ
Grailsバリバリ使ってるぜ!超便利(でもハマると死ぬ)
クロージャ等の為に自動生成クラスをもりもり使うGroovyとSpringの二重奏でスタックトレースの 深さが酷いことになるよねGrails。
875 :
デフォルトの名無しさん :2013/09/16(月) 17:17:26.63
しかし最近TIOBEで何故か22位になってんだよ なんでこんなことになってんのか・・・
TOPBEとかにまじになっちゃってどうするの?
>>876 マジになってるように見えたの?妄想激しくない?
マ、マジになんてなってないですよ・・
夢中 熱中 Get you, I do ―?― 熱暴走
TOPBEwww
881 :
デフォルトの名無しさん :2013/10/03(木) 13:28:05.58
GradleはそろそろデフォでGroovyをサポートしてくれぇ・・・
groovy+grailsで幸せになれるのになかなか喰い付かない老害Javaプログラマーに歯痒い今日この頃
Webアプリ→Grails Swing →Griffon でいいじゃん。JavaFX?なにそれおいしいの
そうなんだけれども、Javaの類はWebサービスを書いた後にデプロイするのが 面倒で、Tomcatにデプロイするのにweb.xml書いたりJetty使うコード書いたり。 で、Groovyに話を戻すとGroovyでRESTサービスとか書いてサクッとデプロイする 手軽な方法が案外無い。あえて挙げればGrailsだけれどもRESTだけのためには 色々セットになりすぎで少々大げさすぎる。 Javaの場合にはDropWizardを使えばJAX-RSで書いたRESTリソースをサクッと デプロイ出来て、しかもロギングからメトリクスまで勝手にやってくれるので 手間いらずなのだけれども。 ・・・と、ここまで書いていて、Groovyで書いたRESTリソースにJAX-RS アノテーションをちょこちょこつけてDropWizardでデプロイすれば良いことに 気がついた。仮に上手く動けばこりゃ楽だ。試してみよう。
GORMの動作がイマイチちゃんと理解できない... 逆引きみたいなのがあれば良いのにな〜
888 :
デフォルトの名無しさん :2013/10/14(月) 01:22:24.44
GroovyがTIOBEで18位って何やらかしたんだろうな なんか面白いAPIでも出てきたんだろうか?
グーグルがAndroidの新しい開発環境としてAndroid Studioのテスト版の公開を始めたからじゃないのかね? これはIntelliJ IDEAってIDEをベースに、ビルドをGradleでやる仕組みになってるので
890 :
デフォルトの名無しさん :2013/10/15(火) 02:08:05.90
なるほどGradle絡みか
Groovyはもうちょっと起動さえ早くなってくれれば 割と便利なツールになりそうなんだけどなぁ
Windows環境でPerlとかPythonはインストールが面倒なので、 .batと.jarコピーするだけのGroovyはお手軽とも言える。 VBScriptの方が環境選ばなくて便利な気もするけど…。
893 :
デフォルトの名無しさん :2013/10/17(木) 20:32:37.19
OracleがJavaのアップデートでgroovy入れてくれたらいいのに
>>893 なんでもかんでも標準に取り入れたらそのぶんフットワークが重くなるだろ
Java8からJavaFXを取り込むとかいう話が出てるみたいだけど GroovyはJavaFXへの対応をどうするつもりなんだろう GroovyFXは瀕死なのに・・・
896 :
デフォルトの名無しさん :2013/10/19(土) 01:56:57.78
>>894 じゃあgroovyなんて、流行らないな
apache projectの状況を見ろよ情弱
Java8のラムダを見たけどGroovyのクロージャとちょっと違うな 物凄く似てるけど微妙に違うという感じだ
実際のところGroovyのJava8対応はどういう方針なのかな。 例えばJava8で関数型インターフェイスを引数にとるメソッドも増えるだろう けれども、これも今まで通りのクロージャの記法でGroovy内から利用できる ようになるのかな。
>>899 こっちもそれに興味があったんで色々調べてたんだが
まだどうするかの方針は出てない感じだな
SwingBuilderのJavaFXバージョンのやつをGroovyのAPIで出してくれたら Groovyも何とか戦える気がする・・・と思いたい(かなり厳しいだろうが)
そもそも今更GUIで戦えるとは思えない > JVMファミリ全般
MSのWPFですら誰も使ってないのに、JavaFXとかw
RIAは既に死に体だしね。結局ビデオプレーヤー以上の需要は無かった。
Silverlightとかまだ生けてるのけ? それはそうと、Grailsの新しめの日本語チュートリアルって見つからないね。 ということで最近Grailsの勉強がてらメモをとってるから、今年中に簡単なWebアプリのチュートリアルをQiitaにでもあげる予定。
まあその辺りが主戦場になるよなぁ。 個人的にGrailsで偉いと思うのはGSP。 結構凝った整形処理もGroovyでコンパクトに書いてそのままGSPに埋め込めるので便利。
でもQiita以外で簡単にMarkdownでブログっぽくかける所無いからな〜。
しかしこのスレ2004年からあるんだね。9年か。
>>888 でもある通りちょっとGroovyの人気も上がってきた事だし自分もなにか貢献したいな。
909 :
デフォルトの名無しさん :2013/10/29(火) 07:59:43.73
grailsでwebアプリガリガリ書いてる身としては 今更seasar2とかstruts2でシコシコ書いてる 石頭はアボガドバナナ
910 :
デフォルトの名無しさん :2013/10/29(火) 08:04:27.56
次スレは'Grails'も入れて星井。
>>909 面倒見てるアプリにログイン機能ある?
今SpringSecurityCoreを調査中だけど、これって一般ユーザ向けのフロントエンドと、管理者向けのバックエンド
双方にログイン機能が必要な場合、同じドメインでユーザ管理しないとダメっぽいんだよね。
別にロールとかもあるから良いっちゃ良いんだけどちょっと気持ち悪いなと。
scaffoldでCRUD画面が簡単に作れるって話しは至る所にあるけど認証周りがあまり日本語の情報が無いよね。
次スレは
【JVM】プログラミング言語 Groovy #2【Grails】
とか?
テンプレもドキュメント系へのリンクあった方が良いのかね。
開発環境としてSTSとかGGTSとかもリンクにあげた方が良いのかな。 でも最近IntelliJを使い始めたけれどもGrailsの型推論の打率の良さに泣ける・・・
>>914 xmlはマークアップ言語でプログラミング言語じゃないからね。
条件分岐やループさせようとすると多大な労力が必要になる。 ant、maven、ivyの
資源がそのまま使えるGradleは移住先としては悪くないんだよ。
いきなり解説し始めるやつw
Gradleまだ使ったことがないんだけど、groovy製なのにデフォルトでgroovyのプロジェクトは扱えないってマジ?
gvm良いねコレ。 Windowsだとcygwin必須らしいけど。
GradleはJavaがデフォで使えるのは知ってるけど Groovyの場合は結構いじらないと使えるようにならないというのは聞いたことがある そもそもGradleがGroovyに特に依存しないというスタンスらしいから
MavenにせよGradleにせよビルド環境や実行環境にJDKやJREはあらかじめインストール されていてそれをそのまま使うという前提だと思う。 なので依存性としてJREを指定したりすることは無いよね。 でもGroovyに関しては特に実行環境に関してはGroovyはインストールされていない 可能性も高い。なのでまずgroovy-allを依存性として追加する必要がある。 すると今度はその依存性をどこから引っ張ってくるのかという問題になる。 Gradleに同梱されているGroovyを引っ張ってこれば良いじゃんという話もあるけれども 異なるバージョンのGradleには異なるバージョンのGroovyが入っているかもしれない わけで、ビルド環境毎に異なるバージョンの依存性が入るのは気持ちが悪い。 となるとバージョンを明示してリポジトリから引っ張るのが妥当となる。 結果的にrepositoriesにmavenCentral等を指定する必要が出てくる。 でもrepositories{mavenCentral()}はGroovyに限らず指定することが多いよね。 「結構いじる」と言ってもこの程度じゃないのかな。dependeciesにgroovy-all、 無ければリポジトリ指定、最後にapply plugin:'groovy'。 上にも書いたとおり、この手間はJREとGroovyのインストール率の差から来ると思う。
>>911 恐れ巣すまんです。
仰るとおりで、自分もsecurity調べてたら同じ悩みにぶつかりました。
ドメインクラス共通だと気持ち的になんか・・、ですね。
フロント無しの業務アプリだったら行けるんですけど。
ドメインはフロントユーザ/管理者で分けてますねえ。
ほんとはWARを分けて、service/domainはプラグインにして両方から
アクセスできるようにしたいんだが・・。
SpringSecurityに関してはspringスレの住人さんが詳しいかな?
security-uiプラグイン見てみたけど、これローカライズできると
素晴らしいですね。
うひょー!gvmコマンドでサクっとインストールしてみたぜ! @Logアノテーションが気になる。どうやって使うのかしら? groovyshが何か向上したぜ!って書いてるけど具体的に何が変わったのか一覧とかある? とりあえずエラーメッセージがちょっと丸くなったみたいだけど。 ここから2.2 Groovy Shell (2.2.0, JVM: 1.7.0_04-ea) Type 'help' or '\h' for help. -------------------------------------------------------- groovy:000> def a = "a" ===> a groovy:000> a Unknown property: a groovy:000> ここから2.1 Groovy Shell (2.1.9, JVM: 1.7.0_04-ea) Type 'help' or '\h' for help. --------------------------------------------------------- groovy:000> def a = "a" ===> a groovy:000> a ERROR groovy.lang.MissingPropertyException: No such property: a for class: groovysh_evaluate at groovysh_evaluate.run (groovysh_evaluate:2) ... groovy:000>
Groovyはスクリプトみたいに使えるらしいですが コルーチンのような仕組みはあるのでしょうか?
>>924 もうリリースかぁ
もうちょっとかかるかと思ってたけど結構早い
>>929 ありがと〜、日本語があって助かりました
予めいくつかの決まった識別子(キー)を持たせたMapを都度取得したいのですが その方法としてGroovy的なやり方ってあるのでしょうか? 例えば、staticなファクトリメソッドでMap生成していくつかのキーを加えて返す、とかです。 別ファイルに定義しておいて読み込む、Configパース(?)というのも考えてるものに近いと感じました
すみません
>>931 じゃ日本語でおkっぽいので追記です
くだけて言いますと、クラスを作る際にフィールドを定義するような感覚で
Mapのキーをあらかじめ決めておきたいということです。
>>927 で話題に上がったコルーチンだけど、知識が無いもんで今一コルーチンと言う物が分からない・・・
コード書いてみたけどこんなイメージ??
def corutine = {
def num = 0
def index = -1
// ココに順番に処理していきたい内容をクロージャとして記述
def closures = [
{num += 1; num;},
{num *= 10; num;}
]
return {
index++;
index < closures.size() ? closures[index]() : "END";
}
}
def co1 = corutine()
def co2 = corutine()
assert 1 == co1()
assert 10 == co1()
assert "END" == co1()
assert 1 == co2()
assert 10 == co2()
assert "END" == co2()
>>932 Clojureにはそんな機能があったなー
少なくとも自分の知る限りではGroovyに同じような機能は無いと思う。
Javaと違って1ファイル1クラスじゃ無くてもOKだから素直にクラスにするか、もしくは以下のような感じはどうだろう?
def createMap() {
["a":123, "b":456].asImmutable()
}
def map = createMap()
assert map == ["a":123, "b":456]
//map.put("b", 111) UnsupportedOperationException
map = map + ["b":1]
assert map == ["a":123, "b":1]
Mapをimmutableにしておけば、基本的には書き換えられないから、Mapが生成された時点のキーが存在する事が保証させれる。
ただし、Groovyの場合は変数自体はfinalに出来ないから、Map#plus()で新しい要素を追加した新Mapを生成して同じ変数に入れ直すと、
結果的にそのMapの値を書き換える事が出来ちゃう。
>>932 // こんなんどう?
Map map = [:]
map.with{
a = ""
b = ""
c = ""
}
println map
936 :
931 :2013/11/20(水) 16:30:50.80
他の方の質問が流れると申し訳ないですけど、お礼レスさせてください
>>934 >>935 ありがとうございます。
asImmutable見てきました。Unmodifible系にラップしてくれるってことなんですね
逆にGroovyの強みを活かすなら、Groovyは後からクラスに変更を加えまくっても余裕なので、
素直にクラスで定義しておくってのも良いかもしれないのですね
NetbeansのGradleも1.2.8にアップデートしてた 調べてみるか
むーん Grailsで開発してると、アクションコントローラの追加をしても反映されずに、アクセスすると404になる事が時々ある。 そんな時は一旦stop-appして再度run-appすれば良いんだけど、コレが結構面倒くさい・・・ 多分キャッシュ系が原因だと思うんだけど。 MacのiTerm上でgrailsのインタラクティブモード走らせてるんだけど、Windowsだとこんな事ないの?
>>938 Groovyは基本的にJavaと同じでコンパイラ言語だしな
コードを書き換えて動作させるとということはメモリ上とはいえ
再度コンパイルしなおして動作させるということになるから
WindowsだろうがMacだろうが動作としては変わらないと思うよ
>>938 キャッシュとかクラスのリロードに使っているSpring系の何かの問題だと思う。
開発スタート時点では動的にコントローラー等を追加してもきちんとリロードされて
サクサク開発出来るのだけど、アプリが複雑になるにつれて動作が怪しくなる感じ。
クラスの更新が怪しくなった場合は掃除のために.grails下の.slcacheを削除すると
改善することもある。
>>939 >>940 遅れたけどありがとう!
Play framework2.0が出た時にScalaでチュートリアルやってみた時には、本当にサックサクコンパイル&リロードされてたから
Grailsでもなんとかあの感覚に近づけないかなと思って・・・
オープンソースだからちょっと自分でも仕組みを追ってみようかな
Gparsが結構難しい それにライブラリにかなり色々入ってるから 把握するだけでも一苦労 でもGParsPoolとかはマジでありがたいから もうちょっと使いこなせるようになりたいな
>>942 いいなぁ!勉強の過程とか是非どっかにまとめてください!
自分はとりあえずGORMの簡単なチュートリアルみたいなのを今勉強しつつ用意してて、近いうちに公開する予定。
皆でいろんなチュートリアルとか書いていけばもっと便利だし絶対楽しくなるよ!
TIOBEで47位まで降格か なんでこんなに上がったり下がったり変動したんかなぁ・・・
>>942 自分も解釈がむずくて、一通り文書読んだけど、
はて、これをいかに実際のアプリケーションに生かそうかというところで
アイディアがあまり浮かばん。
ちょうど初心者がプログラミング文法を一通りマスターしたときに思う、
「で、これ使って何やるの?」の感覚に似ている。
仰るとおり並列コレクションは直感的でいいですね。
次に使いやすいのはAgentとDataFlowかな・・。
前者はActor機能の一部だという印象。後者はoperator/selectorまで
行っちゃうとほんとに「どこに適用するの?」って感じ。
私はWeb/業務系メインなのでこの分野の想像力に乏しいが、
組込/グラフィック/ゲーム畑のひとにはピンと来るのかもしれない。
いろいろ書いちゃったが、GPars、やはりGroovy記法の恩恵は凄いね。
javaだと可読性/メンテの観点で却下しちゃうけど、このライブラリだと
並列にできるところはなるだけそうしようという動機付けが得られる。
長文スマソ。
946 :
デフォルトの名無しさん :2013/12/17(火) 09:37:11.61
ライブラリは充実してきてるけどなにか足りない感じがする 何が必要なんだろう?
超有名企業の事例
>>946 世界的に?日本的に?
個人的に物足りなさを感じるのは、チュートリアルとか、入門記事の少なさだな〜。
上の方で出てるGparsにしてもやっぱり日本語でのブログとかチュートリアルとかはそんなに多くないと思う。
日本語での言語のリファレンスがあればと思うことはあるけど 翻訳するのは地獄だろうし 地道に英語を読んでいくしか無いか
>>946 >何が必要なんだろう?
軽快さ。
速度だけではなく、起動の速さと言った使い勝手での小回りの良さ。
Grailsで開発していてもちょっとしたワンライナーはRubyで書いてしまう。
小道具としては使いにくい。
JVMファミリーの宿命ではあるけど・・・確かにそれは言えるな〜。
>>946 拡張子の短さ。
ちょっとしたスクリプトなのになんとか.groovyって長い。
.gでいいよ.gで。
確かに拡張子が長いのはちょっと面倒だな
954 :
デフォルトの名無しさん :2013/12/20(金) 02:57:52.74
grailsいいFWだと思うけどなー。Windowsだとコンソール周りがかなりウンコだけど。 PlayFW(javaソース)はだめ。ソースが増えるとガンガン重くなる。 scalaだとこんなことないんだろうか。
ソースを変更した後に自動でコンパイルするのはPlayの方に軍配が上がるな〜。あれって中身はsbtなのかな? Grailsは何かそこの当りがもっさりしてる。 gvmもWindowsはcygwin入れとかないとダメだし、なんだか最近の開発環境はドンドンLinux/Unix系統 に偏ってきてるね〜。 特にWeb界隈の人たちのMac浸透率が半端じゃない。 ちなみにWindows7で、コマンドプロンプトからGrailsを起動すると java.lang.NumberFormatException: For input string: "1B" って例外が出力されて全く反応しなくなる。 IntelliJから起動すると大丈夫なんだけどかなりストレス。
Grailには確かに色々悩みがあるなぁ
Gradleで実行可能なJarを作るのが難しい mainになってるクラスがJavaなら問題ないみたいだが Groovyだと例外が出る build.gradleも弄ってみたが何かが足りない
959 :
デフォルトの名無しさん :2013/12/25(水) 22:27:07.99
GradleはJava向け Java系スクリプト言語向けの処理はおまけ
コンパイル言語として使用するGroovyから、Groovyスクリプトファイルを呼び出したい場合、 Javaから呼び出す時と同じようにGroovyShellやScriptエンジンなどを用いるのでしょうか? それとも、GroovyスクリプトからGroovyスクリプトを呼び出す時と同じように 直接スクリプトファイル内の関数を呼んだり、インポートしたりしていいのでしょうか?
>>960 Groovyクラスと一緒
ほぼ同じように扱える
動的型だとコード補完が働かないような状況でのコーディングが多くなると思うんですが 快適にコードを書くためのコツや、スペルミスをしない工夫などありますでしょうか?
>>963 Intellijを使う!
基本的に型の宣言をするくせをつけておくといいのかな〜
特にメソッドとかクロージャの引数には。
GGTSよりずっと補完の打率が良いよね > IntelliJ Grails開発時にGSPファイルの中でも補完が効くのが快適すぎる。
IntelliJでGrailsのサポートを有効にするには有償版を買わなきゃいけないけど、他の言語やフレームワークにも抜群の開発効率の高さを発揮してくれるしね。 こんな便利なツールにはもっとお金を払いたい!っていうレベル。 素のIntelliJなら環境によるけどGroovyConsole起動より早いかも?
Netbeansでももうちょっとサポート強化してくれたらなぁ・・・
TIOBEでの転落が凄まじかったな 上がるときも早かったけど落ちるときも早かった
お前らさ、なんでエヴァンジェリストを差し置いてGroovyの話してるわけ? まず俺のところに話持ってこいや!
ちょっと質問!
Serviceのメソッドの中で意図的にロールバックを発生させたい場合。
@Transactional
class MyService {
def hoge() {
// 何かいろいろ更新とか処理
// でもエラーが発生したから例外を投げてロールバックさせる。
throw new RuntimeException("hogehoge")
}
}
hoge()をコントローラのアクションメソッドから実行する場合、そのアクションメソッドに@Transactionを追加する必要がある。
RuntimeExceptionが起きるとちゃんとロールバックされる。
で、その例外はcatchできるんだけど、そのままビューの表示とかしようとすると
org.springframework.transaction.UnexpectedRollbackException
という例外が発生する。
どうにかこの例外をハンドリングできないかな?
というのは単純にロールバックしたよーというメッセージを画面に表示したいなと。
おそらく以下のstackoverflowがドンピシャな内容だと思うけどまだ良く理解できない。
http://stackoverflow.com/questions/13482103/grails-unexpectedrollbackexception-occurred-not-sure-why
withTransactionで手でロールバックして、そのときにフラグを立てるとか…?
indyって2.0のときは特別なオプションが必要だったけど 2.1からは標準で使われるようになってるんでしょうか?
>>972 ありがとう!
withTransactionが良く分かってないんだけど、イメージ的にはwithTransactionに渡すクロージャ自体が、Serviceのメソッドに該当する、っていうイメージで良いのかな?
でもこいつってドメイン自体のメソッドだよね?
そうなると、例えば
ADomain.withTransaction{
new BDomain().save()
aDomainObject.hoge = "hoge"
aDomainObject.save()
}
見たいな感じになるのかな?
これだとなんでADomainの為のwithTransactionにBDomainの処理が入ってるんだよっていう感じでちょっと気持ち悪いかも・・・
>withTransactionに渡すクロージャ自体が、Serviceのメソッドに該当 なるほど、つまりローンパターンになってるという事か
976 :
971 :2014/01/11(土) 03:34:29.53
やったあああ!解決できた!
>>972 の助言どおり、withTransactionを使ってみても同じ状態だった。
こいつは何かおかしいぞ?ということでいろいろ試していた。
1.createコマンドでシンプルなコントローラとサービスを生成
2.そのサービスの中身は、
>>971 時点のものと同じ処理を記述
3.今回作ったコントローラからそのサービスのメソッドを叩き、正常時、ロールバック時ともに意図した動作が出来た。
つまり、ロールバックさせるために、サービス内で意図的にthrow new RuntimeExcepton()して、コントローラでその例外をキャッチして、それ以降の処理を自分で制御できた。
>>971 の時でもコントローラでキャッチできたけど、キャッチ後に何をやろうとしても絶対に
org.springframework.transaction.UnexpectedRollbackException
がスローされてた。
この事から、どうやら問題はコントローラにあるぞ、ということが予想できた。
問題のコントローラには、@Transactional(readOnly = true)がクラス自体に宣言されていた。
そのコントローラは、SpringSecurityCoreが生成したのユーザ用ドメインから、Grailsのgenerate-allで生成したもの。
generate-allで生成されたコントローラには@Transactional(readOnly = true)が自動的に付けられるのね。
で、
>>971 の時には、クラス自体の@Transactional(readOnly = true)は残しつつ、アクションメソッドに@Transactionを付与していた状態。
問題のコントローラから全アノテーションを削除して、cleanしてから再度実行してみるとちゃんと動作した。
アノテーション削除とcleanを続けて実行してから確認してしまったので、アノテーションのみの問題だったのか、cleanでそれ以外の何か変なキャッシュが消えたのかが判然としないが・・・
ググってもそれっぽい物が全くヒットしなかったので特殊な状態だとは思うけど、もし同じような状態に嵌ってしまう人が居た時の為にご報告!
GroovyでAndroidアプリって開発出来ないの?
GroovyのスクリプトファイルってInputStreamから直接実行できないのでしょうか? 一度メモリ上でStringに置き換えないとダメですか?
980 :
979 :2014/01/23(木) 23:12:55.77
すみません、Reader見落としてました。余裕ですね!
981 :
デフォルトの名無しさん :2014/02/01(土) 00:52:52.57
うちの会社でも、取引先のアイツでもいいからさっさとgroovy/grails導入しろやー。 javaだとダルいって何年も前から言っとるやろがー。
982 :
デフォルトの名無しさん :2014/02/01(土) 16:50:37.31
こんな過疎スレで981とっちゃってまあw もうお別れだね(ニコ
983 :
デフォルトの名無しさん :2014/02/01(土) 16:51:24.06
ってかそんなカスみたいレスでスレ落とそうとしたのかよ 恐ろしいわw
ん?どういうこと?
GGTS, STSも入れておけば?
Groovy/Grails Tool Suite (Groovy/Grails統合開発環境・Eclipseプラグイン)
http://spring.io/tools/ggts 個人的にはGGTSからIntelliJに移行したけど・・・
あれ?980過ぎても落ちないのかここ
最近仕様が変わったらしいよ
次スレの立て時が難しいぜ
いやもう立てていいだろ いるなら
10年越しの次スレか胸圧。
あれから10年も、この先10年も
995 :
デフォルトの名無しさん :2014/02/12(水) 15:39:42.62
だったらうめてやんぜ〜 だったらうめてやんぜ〜 だったらうめてやんぜ〜 ずっつったらったたったたたら
996 :
デフォルトの名無しさん :2014/02/12(水) 15:40:22.29
980過ぎても落ちない〜 980過ぎても落ちない〜 980過ぎても落ちない〜 新時代突入〜 ずっつっちゃらったた
997 :
デフォルトの名無しさん :2014/02/12(水) 15:41:41.38
1000とりの価値をなくして 990後半でさまようスレ達 そんな哀れなスレを〜 ずんずんちゃらちゃっちゃっ!
998 :
デフォルトの名無しさん :2014/02/12(水) 15:42:18.59
だったらうめてやんぜ〜 だったらうめてやんぜ〜 だったらうめてやんぜ〜 う〜め〜て〜や〜〜〜〜んん〜〜〜〜〜ぜ〜〜〜〜
999 :
デフォルトの名無しさん :2014/02/12(水) 18:47:46.72
ふぃりぃんぐるぅぶぃ〜 だらら ら〜ら〜ら〜ら〜 ふぃりぃんぐるぅぶぃ〜^^
1000!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。