Monday, February 12, 2018

Groovy: Historical Background

Groovy as a language was announced in August 2003 with a post by James Strachan on his blog. In it he described a desire to create a dynamically typed scripting language that built upon the Java Virtual Machine / Java Runtime Engine instead of being a separate language with a separate runtime.
When investigating how to begin the language, Strachan looked at Jython, Beanshell and Rhino; and, while finding them close, he asserted that their implementation was language first, then integration with the JVM second.  This resulted in languages that, according to him, “don’t quite sit nicely in a Java (platform and language) developer’s toolkit”.  With those issues in mind, Strachan and other developers began to build what is now the Groovy language.
Given that the team creating Groovy was smaller than the engineering team behind Java, one of the key drivers was to let Java do what it does well and let Groovy fill in the gaps.  To quote Dr. Paul King: “Don’t do all things but do the things you do well.” [2]  In addition to using key elements of Java, they borrowed heavily from other languages, including, but not limited to the following:
  • Metaprogramming capabilities and range data type were borrowed from Ruby
  • The list/map literal notation and the syntax for default parameters were borrowed from Python
  • The collection processing methods, collect and inject, followed Smalltalk’s naming scheme
  • Closures came from the world of functional programming
Key Milestones (pulled from the following sources: Wikipedia, Java Community Process, and the links below):
  • August 2003: Groovy Language announced via blog post
  • March 2004: Groovy was submitted to the Java Community Process as JSR (Java Specification Request) 241
  • January 2007: Groovy version 1.0 is released
  • 2007: G2One was formed to provide training and support for the language, including the then leaders of the Groovy project
  • 2007: Jonathan Strachan leaves the project, though date is uncertain as his departure was never formally announced.
  • December 2007: Groovy version 1.5 is released
  • November 2008: SpringSource acquired Groovy and the Grails company
  • August 2009: SpringSource is acquired by VMware
  • July 2, 2012: Groovy version 2.0 is released
  • 2013: The Groovy language is moved to the Pivotal Software
  • April 2015: Moved to Apache Software Foundation (ASF) incubator
  • November 2015: Moved to top level project in ASF
While the Groovy language was not targeted at a specific industry or vertical sector of the programming language market, like ADA for example, it has been embraced in web development circles, including the Grails web application development framework.  It also provides the core language for Samsung’s SmartThings home automation platform.

No comments: