【JVM】プログラミング言語Groovy #2.0.1【Grails】

1デフォルトの名無しさん2014/09/22(月) 21:31:08.39ID:/O0Zr8/c
本文 :
「Groovy」
http://groovy.codehaus.org/
http://groovy.codehaus.org/Japanese+Home

「Grails」Webフレームワーク
http://grails.org/
http://grails.jp/

「Gradle」Groovy製ビルドツール
http://www.gradle.org/

「gvm」Groovy関連のパッケージ管理ツール
http://gvmtool.net/

「Geb」Webテストツール
http://www.gebish.org/

「GPars 」並列処理ライブラリ
http://gpars.codehaus.org/

「Griffon」デストップアプリ用フレームワーク
http://griffon.codehaus.org/

■過去ログ
【JVM】プログラミング言語 Groovy #2【Grails】
http://toro.2ch.net/test/read.cgi/tech/1393057575/
Java系スクリプト言語Groovy
http://toro.2ch.net/test/read.cgi/tech/1080052050/

2デフォルトの名無しさん2014/09/22(月) 21:33:02.13ID:/O0Zr8/c
※過疎スレであることは仕様です。

3デフォルトの名無しさん2014/09/22(月) 22:17:34.52ID:6PbuDchW
>>1
スレ立て乙
とりあえず1の独り言とやらに期待している

4新宿イカレポンチ ◆xXSpiNKZsA 2014/09/22(月) 22:22:54.00ID:/O0Zr8/c
GParsで並列処理はシンプルに書けるけど、cronみたいな定期実行機能のあるライブラリは
あまり活発ではないよね。需要がないのかしら?
仕方なくjavaのconcurrent機能やQuartz Schedulerで代用してるけどもっと簡潔に書きたいねえ。

5新宿イカレポンチ ◆xXSpiNKZsA 2014/09/22(月) 22:27:29.36ID:/O0Zr8/c
>>3 ども!今夜はもうお寝んねの時間なので明日からぼちぼち書いていくわ。
このスレでは実験的にコテハンで通してみるわ。

6新宿イカレポンチ ◆xXSpiNKZsA 2014/09/23(火) 03:08:20.81ID:S4dKh41p
中途覚醒しちまった・・。ま、いいか。
とりまgroovy-jdkとかで「ほえー」と思ったメソッドとか
grailsで「ほほーぅ」と感じたものとか小出しで書いていこうかな。・・では。


○ java.util.List
 リストの最後の要素を取るにはlast()や負のインデックス(-1)が便利だね。

def list = [8,3,4]
assert list.last() == list[-1] && list[-1] == 4

javaで書くなら get(list.size()-1)とかDeque実装のLinkedList使うとかか?


○ java.util.List
 属性によってグループ分けしたいときってあるよなあ。
 例えばPerson.gender(=男or女)の集まりで男女別に分けるには?
 値としては変だけど簡易にするため m:男, f:女 とするわ。条件は'm'で始まるかどうか。

def list = ['m2','f3','f2','m1','f1']
assert [ ['m2', 'm1'], ['f3', 'f2', 'f1'] ] == list.split { it[0] == 'm' }

// んでもってそれぞれ番号順にソートしたいときもあるだろな。collect()の出番やねー。
assert [ ['m1', 'm2'], ['f1', 'f2', 'f3'] ] ==
                   list.split { it[0] == 'm' }.collect { it.sort() }

別のアプローチもあると思うんで、いろいろ教えてくだせえ。

7新宿イカレポンチ ◆xXSpiNKZsA 2014/09/23(火) 05:26:41.42ID:S4dKh41p
○バリデーションとかで最大文字列検査で便利だにゃー。
 文字列のインデックスも簡単にアクセスできて幸せです。

assert 'a' * 10 == 'aaaaaaaaaa'
assert ('a' * 10).size() == 10

assert 'abc'[2] == 'c' && 'abc'[-1] == 'c'


○2の4乗

assert 2**4 == 16


○Grailsのmailプラグイン
私Velocity時代を知ってるおっさんなんで、この記述はサイコーっすね。

def mailService

 mailService.sendMail {
   to foo@xxxxxxx.com
   from bar@yyyyyyyy.com
   subject "${username}様、お買い上げthx!"
   body """ ${username} 様
このたびは当店のご利用、誠にありがとうございます。
本日${date_of_shipment}に発送しました。 .... うんちゃらかんちゃら
"""
 }

日本でもG*系使う人もっと増えたらええね。
本家フォーラムは結構な盛り上がりなんだがなぁ。

8新宿イカレポンチ ◆xXSpiNKZsA 2014/09/23(火) 13:36:11.20ID:S4dKh41p
grailsの多言語サポートがウンコ過ぎると思うのはオラだけ?
ルールがわかりにくい。この辺Springのdoc参照しないと厳しい。

9デフォルトの名無しさん2014/09/26(金) 16:32:35.99ID:TbsD84QQ
アイちゃんお気に入りスレ

10新宿イカレポンチ ◆xXSpiNKZsA 2014/09/26(金) 17:43:57.57ID:lwXORlZ5
grails2.3 -> 2.4 で resources -> asset-pipeline
とかこんな大きな変更マイナーでよくやるわw

一括置換で8割方対処できたが、これ進度の速いFWならではのリスクやね。
resourcesよりかは管理しやすい印象だが追加予算無しの稼働中システムで
これやられたら変更はほぼ不可。
2.3系にセキュリティホール発見されてサポート対象外されてたら終了。
grailsに限らずだがアフォなPMにはこういうリスクを勘定に入れないんだよな。

11デフォルトの名無しさん2014/09/26(金) 18:05:04.35ID:fTKEl0JO
だからこそ今までずっとマイナーだったんじゃないのかな。
逆に言うとマイナーだからこそできる冒険でもあるな。

12新宿イカレポンチ ◆xXSpiNKZsA 2014/09/26(金) 19:42:23.42ID:lwXORlZ5
>>11
なるほどそういう見方もありますなぁ。

3.0が来年リリース予定だけどしばらくは2系もサポートするだろう。
2系は2.4.xで終了、と明言されてるからしばらくは安心やね。

3ではコマンドラインのベースになってるGant捨ててGradleにしちゃうとか
インテグレーションテスト捨てるとか、コンバータ・コーデック・サーブレットフィルタ
部分を刷新するとか↓ 英語聴き取るの苦手だから聴き落としあるけどソースはこれの40:00あたり。
http://greach.es/speakers/graeme-rocher-road-to-grails-3-0/

1系→2系のときもしばらくgdgdしてた感があるから3系リリースされても
1年弱くらいは2系で行くことなるか?3.1になったくらいが移行のタイミングかね?

13デフォルトの名無しさん2014/11/12(水) 19:41:13.45ID:hGWwq86R
Groovy 2.4のgroovyshでは、defが効くようになった。 - uehaj's blog
http://uehaj.hatenablog.com/entry/2014/07/29/224235

これ試してみたんだけど、import を使うとおかしくならない?
:set interpreterMode true を設定すると
import後にこんなかんじでエラーが出る。

groovy:000> import java.util.regex.Matcher;
===> java.util.regex.Matcher
groovy:000> Matcher matcher;
ERROR org.codehaus.groovy.control.MultipleCompilationErrorsException:
startup failed:
script14157860088001148686185.groovy: 1: unable to resolve class Matcher
@ line 1, column 9.
Matcher matcher;
^

1 error

at java_lang_Runnable$run.call (Unknown Source)

14デフォルトの名無しさん2014/11/14(金) 01:35:22.86ID:1e83vrDQ
groovyshはまともじゃないよな。
もともとワンライナーしか書けないんだから。
それじゃあんまりだと interpreterMode を用意したんだろうけれど、
こんどはimport文が使えないのか。
対話環境としては Pythonや Ruby(irb)は愚か、php -a より下だと思う。

ちなみに前スレでこれを書いたのは俺。
http://toro.2ch.net/test/read.cgi/tech/1393057575/3

結局うまく行かなくて、今日久々に試してみたら
こんなのが出るようになった。

$ groovyserver
ERROR: your platform not supported: windows_amd64
Sorry, please build by yourself. See http://kobo.github.io/groovyserv/howtobuild.html

開発者は自分が使いたいだけで普及させる気は無さそうだと思った。

15デフォルトの名無しさん2015/01/20(火) 01:17:06.70ID:p+4PLtFU
うぉぉ、大丈夫なのか Groovy
これで開発が止まったりされると困るな

The Groovy project is looking for a new home -- Guillaume Laforge's Blog
http://glaforge.appspot.com/article/the-groovy-project-is-looking-for-a-new-home

16デフォルトの名無しさん2015/01/20(火) 22:18:23.03ID:I7vdbWvG
えらく久しぶりに書き込みがあったと思ったら、不景気な内容だな…。
正直、仕方がないと思う。
今やGroovyは新規案件のプロダクトコードの実装言語には選ばれないだろう。
進化したJavaの仕様や流儀と整合性が取れなくなってきたから。

・ラムダとクロージャの混在
・ジェネリクスは無視されるだけ
・safe-accessorがあるけれどOptionalを使ったほうが堅牢

今後はGradleなどのニッチ市場で生き延びていくのかな。

個人的にはPython3みたいに、過去互換性を切り捨てて
今のJavaとの互換性を高めてほしいんだけど、まあ無理よね。

17デフォルトの名無しさん2015/01/21(水) 14:37:54.30ID:IUp1NB6W
Android Studio で Gradle が使われてることだし、
Google 辺りがなんとかしてほしい

18デフォルトの名無しさん2015/01/23(金) 12:28:28.27ID:N25H9fR6
>>15
そうだみかかの中の人に頼もう

19デフォルトの名無しさん2015/01/23(金) 12:58:23.00ID:N25H9fR6
楽観的にとらえると、これスポンサーになりゃ売名できるじゃん

んーしかしsmall teamといえど何名くらいなのかね?あと年俸は?
軽く年間1億円以上投資できる法人じゃないと無理そうだな

sponsorship@groovy-lang.org
で聞けばいい話なんだろうが、冷やかしになるだけなのでやめとく

合弁でもいいんで援助してくれるとこ見つかるといいね

20デフォルトの名無しさん2015/01/23(金) 14:30:26.57ID:N25H9fR6
JIMさん買い取ってくれんかな

Let's talk with Jim-san. Part32
http://pele.bbspink.com/test/read.cgi/erobbs/1409350924/

21デフォルトの名無しさん2015/01/28(水) 22:48:19.88ID:D4DppUD9
これだけJVM上で動く言語が出てきてるんだからもう斜陽だろ
お疲れさんって感じ

22デフォルトの名無しさん2015/01/29(木) 10:29:52.98ID:X/g0jDeU
とはいえjavaな人→jvmランタイムな別言語で
乗り換え易いのはgroovyなんだよなあ
あくまで俺の場合だけどこれ知っちゃうと今更javaで書きたくない
案件無いからjavaで生活してるけどさ・・

23デフォルトの名無しさん2015/01/31(土) 15:55:28.95ID:+cGIrLPk
先日、Jenkinsのカンファレンス見てきてこれからGroovyやってみようと
意気込んでたんだけどなぁ・・・

24デフォルトの名無しさん2015/02/01(日) 03:16:47.40ID:eYAGu5+W
おれはわりと楽観的に見てるな
開発止まったら困るサービス沢山あるだろうし

25デフォルトの名無しさん2015/02/01(日) 06:30:54.41ID:35r8iA0d
Gradle始めるからついでに覚えようかと思ったが微妙になってきたのか
Googleが引き取るのはありだな

26デフォルトの名無しさん2015/02/01(日) 07:42:57.58ID:Rluj7UaD
名前が似てるしな!

27デフォルトの名無しさん2015/02/01(日) 08:11:00.49ID:ZOxRyOPO
登場当時の勢いがないのは確か
web界隈でもあまり取り上げられてないし

28デフォルトの名無しさん2015/02/02(月) 15:30:59.78ID:3eUmmy+n
ブームを過ぎたくらいで冷めてクソ不味いと思うなら最初からクソだ 選ぶな

29デフォルトの名無しさん2015/02/04(水) 23:10:16.32ID:eDH1KiDW
Gebに公式ロゴができたらしいぞ
https://twitter.com/GebFramework/status/562911757820497921

30デフォルトの名無しさん2015/03/01(日) 22:01:05.75ID:YPGv4zkT
名前が似てるGoが出てきた時点で終わっていた。

31デフォルトの名無しさん2015/03/03(火) 04:38:19.31ID:u62QjjgW

32デフォルトの名無しさん2015/03/05(木) 03:46:21.05ID:FI2Yk/6y

33デフォルトの名無しさん2015/03/05(木) 21:39:30.43ID:FKg8ufzR
OSSの墓場じゃないですかー! やだー!

34デフォルトの名無しさん2015/03/07(土) 22:54:59.43ID:vo0Qsfsg
>>30
rubyにも似てたしな

35デフォルトの名無しさん2015/03/07(土) 22:57:11.06ID:vo0Qsfsg
Apacheか!これで勝つる!
っていう時代もありましたっけ

36デフォルトの名無しさん2015/04/22(水) 23:50:10.40ID:X+xw77WS
かつて不評だった実行速度も改善された今,Groovy の最大の弱点は,センスに疑問があるその長い名前です。 今までの歴史によれば,長い名前のプログラミング言語が成功するには,その分野に競合する言語がないなどの幸運が必要です。 

引用
http://www.oki-osk.jp/esc/groovy/

37デフォルトの名無しさん2015/04/26(日) 22:56:43.58ID:ZsLO9OA1
名前が長いのはJavaScriptとかCoffeeScriptとか色々あるので、まだしも、拡張子が.goovyとか頭おかしい。

38デフォルトの名無しさん2015/05/31(日) 18:29:18.55ID:5hL43X2f
Grailsもオワコンだし。今Groovy使う理由は皆無だな。結局Railsが実務でギリ使えるレベル

39デフォルトの名無しさん2015/06/08(月) 21:43:47.20ID:Dd+fA4Tw
Geb用言語

40デフォルトの名無しさん2015/06/14(日) 12:55:55.78ID:k5YgUExC
>>39
アリだよね

41デフォルトの名無しさん2015/06/14(日) 13:05:19.98ID:4ZqbF1kO
"Groovy" という単語がプログラミング言語の名前としてふさわしいかどうかは自明ではないが,もしも君が Java 言語とその標準クラス・ライブラリの設計の一様性の欠如にうんざりしていたならば
(そして言語の互換性の観点から,その状況が改善されないだろうと絶望していたならば),
Groovy のこの側面を知ったとき,思わず "Groovy!" とつぶやいたとしても無理からぬことだろう。

引用
http://www.oki-osk.jp/esc/groovy/

42デフォルトの名無しさん2015/06/14(日) 16:37:01.67ID:rVxTAyta
>>37
拡張子が.groovyなら
まだしも、拡張子が.goovyとか頭おかしい。

43デフォルトの名無しさん2015/07/17(金) 23:09:16.84ID:iFnyVoAW
Apache域になった時点で不安な気配がするな
まあある程度普及した開発言語というのは
そう簡単には死なないものだけど

44デフォルトの名無しさん2015/07/18(土) 10:10:21.93ID:wCqzYPuy
Gradle死んだら困る人おおそう。他はともかく。

45デフォルトの名無しさん2015/11/18(水) 13:41:56.40ID:2kEsrdQ9
3ヶ月書き込みなくても困らない程度には困るのでは

46デフォルトの名無しさん2015/11/18(水) 13:42:23.52ID:2kEsrdQ9
すいません4ヶ月でしたここ大事なとこ

47デフォルトの名無しさん2015/11/19(木) 18:20:06.34ID:gvsb8JZI
こんな過疎スレの書き込み頻度で計られましても

48デフォルトの名無しさん2016/09/14(水) 03:42:33.41ID:qEtlSZku
>>47
過疎板にもお前のようなハイエナがいるだろ
そんなに自虐すんなよ

49デフォルトの名無しさん2016/11/02(水) 21:30:45.15ID:do3gWQgQ
>>47
ここには人がいないけど
使ってる人は世界中にたくさんいるぞっていいたいのか
ふっっううううう〜〜〜ぅぅぅうん( 4_ゝ`)

50デフォルトの名無しさん2016/11/03(木) 02:01:54.73ID:TDi/4+oI
WEB+DB vol.94 が出た

特集は、Scala, Groovy の対抗馬となる、JVM上で動く、Android用言語、Kotlin。
静的 : Scala > Java > Kotlin > Groovy : 動的

JS/HTML/CSSで、デスクトップアプリを作る、Electron

新着レスの表示
レスを投稿する