【JVM】プログラミング言語Groovy #2.0.1【Grails】
■ このスレッドは過去ログ倉庫に格納されています
>>1
スレ立て乙
とりあえず1の独り言とやらに期待している GParsで並列処理はシンプルに書けるけど、cronみたいな定期実行機能のあるライブラリは
あまり活発ではないよね。需要がないのかしら?
仕方なくjavaのconcurrent機能やQuartz Schedulerで代用してるけどもっと簡潔に書きたいねえ。 >>3 ども!今夜はもうお寝んねの時間なので明日からぼちぼち書いていくわ。
このスレでは実験的にコテハンで通してみるわ。 中途覚醒しちまった・・。ま、いいか。
とりま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() }
別のアプローチもあると思うんで、いろいろ教えてくだせえ。 ○バリデーションとかで最大文字列検査で便利だにゃー。
文字列のインデックスも簡単にアクセスできて幸せです。
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*系使う人もっと増えたらええね。
本家フォーラムは結構な盛り上がりなんだがなぁ。 grailsの多言語サポートがウンコ過ぎると思うのはオラだけ?
ルールがわかりにくい。この辺Springのdoc参照しないと厳しい。 grails2.3 -> 2.4 で resources -> asset-pipeline
とかこんな大きな変更マイナーでよくやるわw
一括置換で8割方対処できたが、これ進度の速いFWならではのリスクやね。
resourcesよりかは管理しやすい印象だが追加予算無しの稼働中システムで
これやられたら変更はほぼ不可。
2.3系にセキュリティホール発見されてサポート対象外されてたら終了。
grailsに限らずだがアフォなPMにはこういうリスクを勘定に入れないんだよな。 だからこそ今までずっとマイナーだったんじゃないのかな。
逆に言うとマイナーだからこそできる冒険でもあるな。 >>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になったくらいが移行のタイミングかね? 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) 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
開発者は自分が使いたいだけで普及させる気は無さそうだと思った。 うぉぉ、大丈夫なのか 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 えらく久しぶりに書き込みがあったと思ったら、不景気な内容だな…。
正直、仕方がないと思う。
今やGroovyは新規案件のプロダクトコードの実装言語には選ばれないだろう。
進化したJavaの仕様や流儀と整合性が取れなくなってきたから。
・ラムダとクロージャの混在
・ジェネリクスは無視されるだけ
・safe-accessorがあるけれどOptionalを使ったほうが堅牢
今後はGradleなどのニッチ市場で生き延びていくのかな。
個人的にはPython3みたいに、過去互換性を切り捨てて
今のJavaとの互換性を高めてほしいんだけど、まあ無理よね。 Android Studio で Gradle が使われてることだし、
Google 辺りがなんとかしてほしい 楽観的にとらえると、これスポンサーになりゃ売名できるじゃん
んーしかしsmall teamといえど何名くらいなのかね?あと年俸は?
軽く年間1億円以上投資できる法人じゃないと無理そうだな
sponsorship@groovy-lang.org
で聞けばいい話なんだろうが、冷やかしになるだけなのでやめとく
合弁でもいいんで援助してくれるとこ見つかるといいね これだけJVM上で動く言語が出てきてるんだからもう斜陽だろ
お疲れさんって感じ とはいえjavaな人→jvmランタイムな別言語で
乗り換え易いのはgroovyなんだよなあ
あくまで俺の場合だけどこれ知っちゃうと今更javaで書きたくない
案件無いからjavaで生活してるけどさ・・ 先日、Jenkinsのカンファレンス見てきてこれからGroovyやってみようと
意気込んでたんだけどなぁ・・・ おれはわりと楽観的に見てるな
開発止まったら困るサービス沢山あるだろうし Gradle始めるからついでに覚えようかと思ったが微妙になってきたのか
Googleが引き取るのはありだな 登場当時の勢いがないのは確か
web界隈でもあまり取り上げられてないし ブームを過ぎたくらいで冷めてクソ不味いと思うなら最初からクソだ 選ぶな Apacheか!これで勝つる!
っていう時代もありましたっけ かつて不評だった実行速度も改善された今,Groovy の最大の弱点は,センスに疑問があるその長い名前です。 今までの歴史によれば,長い名前のプログラミング言語が成功するには,その分野に競合する言語がないなどの幸運が必要です。
引用
http://www.oki-osk.jp/esc/groovy/ 名前が長いのはJavaScriptとかCoffeeScriptとか色々あるので、まだしも、拡張子が.goovyとか頭おかしい。 Grailsもオワコンだし。今Groovy使う理由は皆無だな。結局Railsが実務でギリ使えるレベル "Groovy" という単語がプログラミング言語の名前としてふさわしいかどうかは自明ではないが,もしも君が Java 言語とその標準クラス・ライブラリの設計の一様性の欠如にうんざりしていたならば
(そして言語の互換性の観点から,その状況が改善されないだろうと絶望していたならば),
Groovy のこの側面を知ったとき,思わず "Groovy!" とつぶやいたとしても無理からぬことだろう。
引用
http://www.oki-osk.jp/esc/groovy/ >>37
拡張子が.groovyなら
まだしも、拡張子が.goovyとか頭おかしい。 Apache域になった時点で不安な気配がするな
まあある程度普及した開発言語というのは
そう簡単には死なないものだけど Gradle死んだら困る人おおそう。他はともかく。 >>47
過疎板にもお前のようなハイエナがいるだろ
そんなに自虐すんなよ >>47
ここには人がいないけど
使ってる人は世界中にたくさんいるぞっていいたいのか
ふっっううううう〜〜〜ぅぅぅうん( 4_ゝ`) WEB+DB vol.94 が出た
特集は、Scala, Groovy の対抗馬となる、JVM上で動く、Android用言語、Kotlin。
静的 : Scala > Java > Kotlin > Groovy : 動的
JS/HTML/CSSで、デスクトップアプリを作る、Electron groovyを初めてみようとしたら
Collectionの挙動でどうやら躓いたらしい。
def list=[1,2,3,4,5]で初期化したのちに
popで後ろから取り出そうとしたら、一番から
順番に正順に出てくれ。
こんな単純なスタックでもうダメとかね
この言語をこのまま信用して良いのか怪しくなる 信用できなくなったら終わりだ。信用するこが重要なんだ! ×正順に出てくれ
○出てきて困ってる。(誰か助けて) def list=[1,2,3,4,5]
assert list.pop() == 5
assert list == [1,2,3,4]
https://groovyconsole.appspot.com/
このサイトで実行したけど、エラーにならない >>54
色々と突っ込み入れたいな。
自分のPCはどうだったんだよwww
この言語はPopやPushもできないのに信用して
良いのかよ あのさ!!!
Gradle ビルト゛でできたOTL intellgijでgradle buildやると
デバッグする時はなんかコツがいるわ。
じゃないとブレークポイントで止まらん。 intellijからgradleから
groovy文法を使うって大変過ぎ。行き当たりバッタリが
70%は占めるだろうね 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
41DV9 俺はプログラミング修養を
何ヵ月かしてjavascriptからjavaそしてkotlinを
やってきたから、色々と適合性を感じたからGroovyを
迷わずやってるけど
それでも不満だらけだわ。デバッグ環境が貧弱すぎて
javascriptやってる方がマシに思えてくる。立ち上がりが遅いし
直感的に掴みにくい。
動的型付け支持層には理解があるのに、理想を突きすぎた事で、大損こいてる >>54
ある事をすると
すんなり、バグがなく出力されるんだな。 gradleなgradle徹底入門を
買ったけど、内容が多すぎてやりたい事が
マトマないよ。良い本ないんか まだこのスレ生き残ってたんだね
Grooooooopoopovy ■ このスレッドは過去ログ倉庫に格納されています