案件評判
Groovyを理解する!初心者でも分かる歴史、特徴、基礎知識などを簡単に解説!

Groovyを理解する!初心者でも分かる歴史、特徴、基礎知識などを簡単に解説!

最終更新:2021/07/09 投稿:2021/07/07
Groovyを理解する!初心者でも分かる歴史、特徴、基礎知識などを簡単に解説!

GroovyはJVM上で動作するJavaから派生したプログラミング言語です。2003年に登場した比較的新しい言語ですが年々プログラマー界隈で注目を集めており2021年2月には『TIOBEインデックス』では12位を記録しております。この記事ではGroovyを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説していきます。

Groovyとは

GroovyとはJavaプラットフォーム上で動作するJavaから派生したプログラミング言語です。Rubyからの影響も受けており、機能や概念はRubyライクとなっております。RubyライクなJava版スクリプト言語というのがしっくりきます。Groovyは動的プログラミング言語ですので直接スクリプトを実行することができます。Javaの文法を大きく簡易化しているためJavaユーザーは学習コストを抑えて習得することができるでしょう。特徴として『JVMで動作する』『高度なJava補完機能』『文法が簡単』などが挙げられます。Groovyは「Google」「Netfilx」「Walmart」といった様々な有名企業に採用されております。

『Groovyの基本情報』
▼誕生時期
2013年
▼開発者
ジェームス・ストラチャン氏
▼設計者
Java コミュニティ プロセス
▼種別
動的プログラミング言語
▼特徴
①JVMで動作する
②高度なJava補完機能
③文法が簡単

Groovyの公式サイトはこちら>>

Groovyの読み方・名前の由来

Groovyの読み方は『グルーヴィー』です。名前の由来は調査したところ出てきておりませんが、英語でGroovyは仲間言葉として使用されているようです。高揚感を表す際に使用される言葉ということなのでそのような意味が込められているのかもしれません。

Groovyの誕生と歴史

Groovyはジェームス・ストラチャン氏、ボブ・マックワーター氏二人の開発者が中心となり2003年8月にJVM上で動作する動的プログラミング言語として誕生しました。言語の仕様はJavaベースとなっているため、これまでJavaを利用したきたユーザーにも親しみやすい言語として認知されております。また開発者であるジェームス氏も公言しているようにRubyライクな言語として機能や概念は大きな影響を受けております。その後、幾らかの時が過ぎギヨーム・ラフォージ氏、ジェレミー・レイナー氏等が開発の主体を引き継ぐ形になります。
また2015年までスポンサー企業として『Pivotal』の元に開発が行われておりましたが、同年3月末を持って『Apacheソフトウェア財団』へ管理が移行する形となりました。簡単に以下の年表にまとめておりますのでご覧ください。

年代 内容
2003年 「Groovy」誕生
2007年 「Groovy 1.0」リリース
2012年 「Groovy 2.0.0」リリース
2015年 Apacheソフトウェア財団へ管理移行
2020年 「Groovy 3.0.0」リリース

Groovyの人気推移

Groovyの人気推移について見ていきましょう。2003年に登場した比較的歴史の新しい言語ですが、ここ最近の人気推移はどのように変化していったのでしょうか。TIOBEインデックス(https://www.tiobe.com/tiobe-index/)の発表している順位推移をその他のプログラミング言語と比較する形で以下の表にしてみました。

Groovy Java Ruby
2018年 49位 1位 17位
2019年 19位 1位 11位
2020年 31位 2位 13位
2021年 12位 3位 13位

Groovyはスクリプト言語

Groovyはスクリプト言語というプログラミング言語の中でも記述や実行を簡易的に行うことができる言語です。スクリプト言語には厳密な定義は存在していませんが、動的型付け言語をスクリプト言語として呼ぶ場合があります。また多くの場合インタプリタ方式(インタプリタ言語)を採用しているプログラム言語が多いです。代表的なスクリプト言語としてPHP、Ruby、JavaScriptなどが挙げられます。

スクリプト言語のメリットや種類を解説している記事はこちら>>

Groovyの特徴

Groovyの特徴を見ていきましょう。

JVM上で動作

GroovyはJVM上で動作するという特徴が有ります。そのためJavaのライブラリやフレームワークを不自由なく使うことが可能です。JVM上で動作する言語は他にもScalaやKotlinなどが挙げられますがこれらを総じてJVM言語と呼びます。Groovyである理由の一つとしてJVM上で動作する動的スクリプト言語であるということが挙げられます。

JVM(ジェイブイエム)とはJavaプログラムを実行するために必要な仮想マシン

JVMの構成や特徴を解説している記事はこちら>>

高度なJava補完機能

Groovyは高度なJava補完機能を持つという特徴があります。「クロージャ」「ビルダー」「関数型プログラミング」「型推論」「静的コンパイル」など、Javaを補完する高度なプログラミング機能を提供しております。Javaおよびサードパーティライブラリとシームレスかつ透過的に統合および相互運用します。

文法が簡単

Groovyは文法が簡単という特徴があります。Javaの文法を大きく簡易化しているためJavaユーザーは学習コストを抑えて習得することができます。「行末セミコロンを省略できること」や「getter/setter」の自動作成などJavaと比較した際に簡易化されたポイントが数多く存在します。

ドメイン固有言語

Groovyはドメイン固有言語という特徴があります。柔軟で順応性のある構文、高度な統合およびカスタマイズメカニズムによって、読み取り可能なビジネスルールをアプリケーションに統合します。

『ドメイン固有言語とは』
ドメイン固有言語は特定のクラスの問題に対して最適化された、より高いレベルで抽象化されたプログラミング言語

Groovyの基本的な文法

Groovyの基本的な文法を見ていきましょう。

変数の宣言

Groovyの変数宣言では『def』キーワードを使用します。

変数宣言 実行方法
def defキーワードの後に、変数名を記述する
Javaと同じ 「Integer」「Double」「String」を使用

データ型の種類

Groovyではデータ型で使用される基本的な種類は以下の通りです。
(※基本的にJavaと同じ扱いになっております)

変数型 サイズ 範囲
Byte 8bit -128 ~ 127
Short 16bit -32768 ~ 32767
Int 32bit -2147483648 ~ 2147483647
Long 64bit -9223372036854775808 ~ 9223372036854775807
浮動小数点型 サイズ 範囲
Float 32bit 約(-)3.40282347E+38(約6~7桁の精度)
Double 64bit (-)1.79769313486231570E+388(15桁の精度)

演算子

Groovyでは演算子で使用される基本的な種類は以下の通りです。

演算子の種類 概要
算術演算子 足し算や引き算を実行する
関係演算子 演算子の左辺と右辺を比較
論理演算子 理論を判定する際に用いる
ビット演算子 中置記法も利用できる関数
代入演算子 変数に対して何か値を代入する
割当演算子 定の値を検索するためにフィルタで使用する条件を定義

制御文

制御文ではif/else文、switch/case文、while文を覚えておく必要があります。

・if/else文
if/else文は複数の式を実行し条件にあった文のみを実行させることができます。

・switch/case文
switch/case文はif文同様に複数の式を実行し条件にあった文のみを実行させることができます。

・while文
while文は繰り返しの処理を行いたい時に使用します。

Groovyの代表的なフレームワーク

Groovyの代表的なフレームワークを見ていきましょう。

『Groovyフレームワークとは』
GroovyフレームワークとはGroovyにおけるシステム開発のプログラミングを効率的に実施するために汎用的な機能群をまとめ、システムの骨組みとなるテンプレートまで用意してくれる枠組みのこと

Grails

GrailsとはGroovyベースのWebアプリケーションフレームワークです。SpringBootの上に構築されており、Springを利用した依存性注入など、SpringBootの時間節約機能を活用しています。誕生当初は「Groovy on Rails」という名前でしたが『Ruby on Rails』の産みの親であるデイビット氏の改名要求により「Grails」の名となりました。旧名からも分かるとおり『Ruby on Rails』にインスパイアされております。

『Grails 基本情報』
▼開発者
グレアム・ローシェ氏
▼種別
フレームワーク
▼対応言語
Groovy
▼特徴
・Groovyとの高い相乗効果
・生産性が高い
・豊富なプラグイン

Grailsの公式サイトはこちら>>

Groovyが影響を受けたプログラミング言語

Groovyが影響を受けたプログラミング言語を見ていきましょう。

Java

JavaとはOracle社が開発・提供するオブジェクト指向のプログラミング言語です。1995年にサン・マイクロシステムズ(後にOracle社が買収)のジェームス・ゴブリン氏によって開発されリリースとなりました。プログラミング言語の発展に大きな影響をもたらしたC言語を元に開発されたことでも有名です。当時、最も人気を集めていたC言語はオブジェクト指向ではありませんでした。
Javaの登場によってオブジェクト指向が主流の時代が訪れたと言われております。Javaのキャッチコピーは「Write once, run anywhere」で直訳すると「一度書けば、どこでも実行できる」という意味があります。このことからも分かるようにJavaの特徴は『オブジェクト指向の先駆者』で『どこでも動く』ということらが挙げられます。世界中で最もポピュラーで多くのWebアプリケーションで採用されていることで知られております。

『Java基本情報』
▼誕生時期
1995年
▼開発者
サン・マイクロシステムズ(後にOracle社が買収)
▼種別
コンパイラ言語
▼特徴
①オブジェクト指向の先駆者
②どこでも動く

Javaのメリット・デメリットなどの基礎知識についての記事はこちら>>

Rubyとは

Rubyとはまつもとゆきひろ氏によって1995年に開発されたオープンソースでオブジェクト指向のプログラミング言語です。日本人プログラマーのよって開発された言語として初めて国際電気標準会議(IEC)で国際規格に認証されました。2018年には米国において最も稼げる言語はRubyと言われるほど国内外問わず世界的にも注目を集めております。
Rubyというその名称には『Perl(パール)に続ぐ』という意味が込められており6月宝石であるPerlの次月(7月)宝石のRuby(ルビー)という名称を採用することになりました。Rubyの特徴は記述量が少なく、自由度が高い、そして何より『書くことが楽しい』と多くのプログラマーの方が口を揃えております。RubyはWebアプリケーションの開発に最も向いており代表的な開発事例としてGunosy、食べログ、価格.comなどが挙げられます。

『Ruby基本情報』
▼誕生時期
1995年
▼開発者
まつもとゆきひろ氏(通称: Matz)
▼種別
インタプリタ言語
▼特徴
①記述量が少ない
②自由度が高い
③書くことが楽しい

Rubyのメリット・デメリットなどの基礎知識についての記事はこちら>>

まとめ

Groovyを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説させていただきました。Groovyを一言で表すと『JVM上で動作するJavaから派生したプログラミング言語』です。特徴として『JVMで動作する』『高度なJava補完機能』『文法が簡単』などが挙げられます。Groovyについてこの記事に記載されている最低限の内容は理解をしておくようにしましょう。

案件評判
常駐する会社が、実際どんな会社で、どんな案件が動いているか詳しく知りたい。
これは常駐形態で働く方なら誰もが感じていることだと思います。 常駐の働き方をされている方は是非一度「案件評判」で案件についての評判をチェックしてみてください。