こんにちは!なるーらぼです!
わたしがシステムエンジニアをしていたころからお世話になっているプログラミング言語がいくつかありまして、本サイトではそうしたものもご紹介しつつ「便利なものがあるんですよ」というお話しもしたいと思っています。
しかし、わたしがお世話になってきたものは日本では利用者が多くなくてGoogleなどの検索でもあまり日本語の情報がヒットしないということが多々あります。
そういうわけで、拙著をお買い求めいただいている方もいらっしゃるということではありますが。
Groovy
先月からApache Groovyの入門講座を公開しました。
人気のあるGitBucketに比較して、驚くほど人気がありません…
これは検索性のよくない名称だからかもしれません。
まずApacheというのがもともとは世界的に利用されているウェブサーバーの名称でもありますし、Groovyって…音楽やアートなどでも頻繁に利用されるキーワードです。
ここへ「Programming language」などとキーワードを付加して検索される方がどれくらいいらっしゃるでしょうか?
GroovyはJavaで記述、開発されたプログラミング言語であり、スクリプトとして即時実行することもできる優れたものです。コンパイルは必須ではありませんし、いろんなツールの糊(のり)の役目も果たしています。
しかし現状で最も有名なものがGradle(ぐれいどる)であり、まだAndroidアプリのビルドに使われ始めたくらいの印象しかありません。
書籍についてもGradleは大きな書籍が出版されましたが、本体のGroovyは日本語ではおそらく1種類しかありません。
利用するようになった経緯
わたしがGroovyを利用するようになった経緯をご参考までにお話しします。
わたしが勤務していたところでは、ウェブ、アプリケーション、データベースなどのサーバーにおいてインストールされている実行環境があるものが次のいずれかしかありませんでした。
- C言語
- Python
- Java
上記のうち、C言語をスクリプトのように実行することができませんので残り2つからの選択となりました。Pythonについてはスクリプト実行することができるのですが、バージョンが古くあまり使い勝手のよいものではありませんでした。さらに、データベース接続のライブラリが導入できなかった(ポリシー上の課題)ため、選択肢から消去せざるを得ませんでした(注意:それ以外の用途には非常に便利です!!!)。
そして最後に残ったのがJavaだったのですが…RubyやPythonで数十行もあればできる内容のことが回りくどく、つらかったことしか記憶にありません(これは力量不足のところがありますね…)。
そこでさらにJavaの実行環境で動作する以下の条件のものを選択しました。
- スクリプトとして実行できる
- 動的型付けできる
- ファイル操作が容易である
- データベース接続にライブラリの導入が手軽である
こうした理由から選択肢にあがったのが次のものです。
- Scala
- JRuby
- Groovy
きっと2016年現在ならKotlin(ことりん)やClojure(くろーじゃ)なども候補に挙がったと思いますし、なにより別の方法を採用したかもしれません。
Scalaは関数型プログラミング言語でもあり、非常にパワフルなのですがメンバーが学習するハードルの高さと(注:メンバーは全員プログラマではありませんでした!)スクリプト起動の遅さに耐えかねて選択肢から除外しました。
次に有力な候補でいくつかツールやバッチ処理をつくったのがJRubyです。これはRubyを既に利用していたわたしのチームではとっつきやすく便利だったのですが、これまた課題が多く…日本語を扱うことが多かったこともあって文字コード問題、スクリプト起動の遅さゆえ徐々に利用しなくなってしまいました。
最後に残ったのがGroovyでした。非常にほかの選択肢と比較して見劣りしていたのですが、実際に利用してみるとスクリプトとしての起動も意外と早く、動的にも静的にも型付けができる、さらにファイル操作も容易でありドライバのjarファイルさえあれば非常に便利な機能もあるのでデータベース操作もばっちり、ということでかなり活躍してくれました。
プリペアードステートメントを使わずにスクリプト実行すると「危ないよ」と警告が表示されるのもとてもいい感じでした!
最後に
rubyを利用されている場合はGroovyを利用してみてはいかがでしょうか?
Javaほど固くなく、しかし緩すぎないという点が非常に便利です。
とはいえ、rubyを利用している方からすると面倒なことはいくつもあると思います。
「だいたい、rails使えないでしょ」
と言われそうですが…「Grails」というフルスタックフレームワークがありますよ!
日本語の書籍も古いですが1冊あります!
考え方はrailsと似ているはずですので(もうrailsをどう使うか忘れましたが)、きっと楽しくプログラミングできるんじゃないかと思います。
0コメント