blob: b3893e9535a54f34c061e80fdf6b959b3d10981a [file] [log] [blame]
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--><head>
<meta charset='utf-8'/><meta http-equiv='X-UA-Compatible' content='IE=edge'/><meta name='viewport' content='width=device-width, initial-scale=1'/><meta name='keywords' content='groovy, 2022, apachecon'/><meta name='description' content='This post looks back at some highlights for Groovy in 2022.'/><title>The Apache Groovy programming language - Blogs - Apache Groovy 2022 Year In Review</title><link href='../img/favicon.ico' type='image/x-ico' rel='icon'/><link rel='stylesheet' type='text/css' href='../css/bootstrap.css'/><link rel='stylesheet' type='text/css' href='../css/font-awesome.min.css'/><link rel='stylesheet' type='text/css' href='../css/style.css'/><link rel='stylesheet' type='text/css' href='https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.css'/>
</head><body>
<div id='fork-me'>
<a href='https://github.com/apache/groovy'>
<img style='position: fixed; top: 20px; right: -58px; border: 0; z-index: 100; transform: rotate(45deg);' src='/img/horizontal-github-ribbon.png'/>
</a>
</div><div id='st-container' class='st-container st-effect-9'>
<nav class='st-menu st-effect-9' id='menu-12'>
<h2 class='icon icon-lab'>Socialize</h2><ul>
<li>
<a href='http://groovy-lang.org/mailing-lists.html' class='icon'><span class='fa fa-envelope'></span> Discuss on the mailing-list</a>
</li><li>
<a href='https://twitter.com/ApacheGroovy' class='icon'><span class='fa fa-twitter'></span> Groovy on Twitter</a>
</li><li>
<a href='http://groovy-lang.org/events.html' class='icon'><span class='fa fa-calendar'></span> Events and conferences</a>
</li><li>
<a href='https://github.com/apache/groovy' class='icon'><span class='fa fa-github'></span> Source code on GitHub</a>
</li><li>
<a href='http://groovy-lang.org/reporting-issues.html' class='icon'><span class='fa fa-bug'></span> Report issues in Jira</a>
</li><li>
<a href='http://stackoverflow.com/questions/tagged/groovy' class='icon'><span class='fa fa-stack-overflow'></span> Stack Overflow questions</a>
</li><li>
<a href='http://groovycommunity.com/' class='icon'><span class='fa fa-slack'></span> Slack Community</a>
</li>
</ul>
</nav><div class='st-pusher'>
<div class='st-content'>
<div class='st-content-inner'>
<!--[if lt IE 7]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]--><div><div class='navbar navbar-default navbar-static-top' role='navigation'>
<div class='container'>
<div class='navbar-header'>
<button type='button' class='navbar-toggle' data-toggle='collapse' data-target='.navbar-collapse'>
<span class='sr-only'></span><span class='icon-bar'></span><span class='icon-bar'></span><span class='icon-bar'></span>
</button><a class='navbar-brand' href='../index.html'>
<i class='fa fa-star'></i> Apache Groovy
</a>
</div><div class='navbar-collapse collapse'>
<ul class='nav navbar-nav navbar-right'>
<li class=''><a href='http://groovy-lang.org/learn.html'>Learn</a></li><li class=''><a href='http://groovy-lang.org/documentation.html'>Documentation</a></li><li class=''><a href='/download.html'>Download</a></li><li class=''><a href='http://groovy-lang.org/support.html'>Support</a></li><li class=''><a href='/'>Contribute</a></li><li class=''><a href='http://groovy-lang.org/ecosystem.html'>Ecosystem</a></li><li class=''><a href='/blogs'>Blog posts</a></li><li class=''><a href='https://groovy.apache.org/events.html'></a></li><li>
<a data-effect='st-effect-9' class='st-trigger' href='#'>Socialize</a>
</li><li class=''>
<a href='../search.html'>
<i class='fa fa-search'></i>
</a>
</li>
</ul>
</div>
</div>
</div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Apache Groovy 2022 Year In Review</a></li><li><a href='#_releases_contributions' class='anchor-link'>Releases &amp; Contributions</a></li><li><a href='#_downloads' class='anchor-link'>Downloads</a></li><li><a href='#_blogs' class='anchor-link'>Blogs</a></li><li><a href='#_apachecon' class='anchor-link'>ApacheCon</a></li></ul></div><div class='col-lg-8 col-lg-pull-0'><a name='doc'></a><h1>Apache Groovy 2022 Year In Review</h1><p><span>Author: <i>Paul King</i></span><br/><span>Published: 2022-12-29 02:28PM</span></p><hr/><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>The year 2022 has been a reasonably good one for the Groovy Programming Language.
Here are just a few of the highlights.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_releases_contributions">Releases &amp; Contributions</h2>
<div class="sectionbody">
<div class="paragraph">
<p>In 2022, Groovy had 18 releases starting with Groovy 4 in January:</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="img/groovy4_release_tweet.png" alt="Groovy 4 release tweet"></span></p>
</div>
<div class="paragraph">
<p>The latest release of Groovy 4 is 4.0.7 which includes over 300 improvements
and bug fixes since 4.0.0. For more details about Groovy 4, you can read the
<a href="https://groovy-lang.org/releasenotes/groovy-4.0.html">release notes</a>.
There have also been bug fix releases for earlier Groovy versions.</p>
</div>
<div class="paragraph">
<p>For our main branch of our main source code repo, there were 820 commits from 28
contributors. This is the branch which corresponds to Groovy 5 but many fixes
were also back-ported to earlier Groovy versions.</p>
</div>
<div class="paragraph">
<p>Just on Groovy 5, we expect to have alpha versions available for review in the
first quarter of 2023. Also, while discussing commit counts, we should note that
<a href="https://github.com/eric-milles">Eric Milles</a> became the 5th person to overtake James
Strachan (the original founder of Groovy) in numbers of commits to the project.
Congrats Eric!</p>
</div>
<div class="paragraph">
<p>There were also many contributions outside those code commits.
<em>We thank all those involved in contributing to or promoting Groovy in 2022</em>!</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_downloads">Downloads</h2>
<div class="sectionbody">
<div class="paragraph">
<p>In early 2021, Groovy surpassed the 1 billion artifacts downloaded mark.
This is downloads of artifacts from repositories like Maven Central and
(at least until recently) Bintray. We now only collect stats from Maven Central.
We don&#8217;t collect stats on downloads of the zip releases nor attempt to account
for the many downloads where Groovy is bundled within other products, so
the stats are no doubt much higher. Well, the good news is that the rate of
downloads is still increasing, so interest in Groovy remains high.
While the figures for December are not yet finalised, it looks like
<strong><em>2022 will be the first year Groovy surpasses 1 Billion downloads in a single calendar year</em></strong>!</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="img/downloads_until_2022.png" alt="Groovy download stats"></span></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_blogs">Blogs</h2>
<div class="sectionbody">
<div class="paragraph">
<p>We also started increasing the number of posts in the
<a href="https://groovy.apache.org/blog">Groovy project blog</a>.
There were nearly 30 posts for you to peruse from this year.
We try to show off Groovy features and also have some fun.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="img/blog_collage_2022.jpg" alt="collage of blog post images"></span></p>
</div>
<div class="paragraph">
<p>You might also like to check out the <a href="https://www.javaadvent.com/2022/12/groovy-and-data-science.html">Groovy and Data Science blog post</a> from
the <a href="https://www.javaadvent.com/">JVM Advent</a> folks. It summarises a handful of the above-mentioned blog posts.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_apachecon">ApacheCon</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Several folks from the project and many friends of Groovy participated in the sold out
ApacheCon conference in New Orleans in October. We thank the conference organisers,
speakers and attendees for the wonderful conference.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="img/apachecon_collage_2022.jpg" alt="Some photos from ApacheCon 2022"></span></p>
</div>
<div class="paragraph">
<p>We have plenty more in store for 2023. We invite you to come on the journey with us!</p>
</div>
<div class="paragraph">
<p>Social media: <a href="https://twitter.com/ApacheGroovy">@ApacheGroovy</a>
<a href="https://fosstodon.org/@ApacheGroovy">@<a href="mailto:ApacheGroovy@fosstodon.org">ApacheGroovy@fosstodon.org</a></a></p>
</div>
</div>
</div></div></div></div></div><footer id='footer'>
<div class='row'>
<div class='colset-3-footer'>
<div class='col-1'>
<h1>Groovy</h1><ul>
<li><a href='http://groovy-lang.org/learn.html'>Learn</a></li><li><a href='http://groovy-lang.org/documentation.html'>Documentation</a></li><li><a href='/download.html'>Download</a></li><li><a href='http://groovy-lang.org/support.html'>Support</a></li><li><a href='/'>Contribute</a></li><li><a href='http://groovy-lang.org/ecosystem.html'>Ecosystem</a></li><li><a href='/blogs'>Blog posts</a></li><li><a href='https://groovy.apache.org/events.html'></a></li>
</ul>
</div><div class='col-2'>
<h1>About</h1><ul>
<li><a href='https://github.com/apache/groovy'>Source code</a></li><li><a href='http://groovy-lang.org/security.html'>Security</a></li><li><a href='http://groovy-lang.org/learn.html#books'>Books</a></li><li><a href='http://groovy-lang.org/thanks.html'>Thanks</a></li><li><a href='http://www.apache.org/foundation/sponsorship.html'>Sponsorship</a></li><li><a href='http://groovy-lang.org/faq.html'>FAQ</a></li><li><a href='http://groovy-lang.org/search.html'>Search</a></li>
</ul>
</div><div class='col-3'>
<h1>Socialize</h1><ul>
<li><a href='http://groovy-lang.org/mailing-lists.html'>Discuss on the mailing-list</a></li><li><a href='https://twitter.com/ApacheGroovy'>Groovy on Twitter</a></li><li><a href='http://groovy-lang.org/events.html'>Events and conferences</a></li><li><a href='https://github.com/apache/groovy'>Source code on GitHub</a></li><li><a href='http://groovy-lang.org/reporting-issues.html'>Report issues in Jira</a></li><li><a href='http://stackoverflow.com/questions/tagged/groovy'>Stack Overflow questions</a></li><li><a href='http://groovycommunity.com/'>Slack Community</a></li>
</ul>
</div><div class='col-right'>
<p>
The Groovy programming language is supported by the <a href='http://www.apache.org'>Apache Software Foundation</a> and the Groovy community.
</p><div text-align='right'>
<img src='../img/asf_logo.png' title='The Apache Software Foundation' alt='The Apache Software Foundation' style='width:60%'/>
</div><p>Apache&reg; and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p>
</div>
</div><div class='clearfix'>&copy; 2003-2023 the Apache Groovy project &mdash; Groovy is Open Source: <a href='http://www.apache.org/licenses/LICENSE-2.0.html' alt='Apache 2 License'>license</a>, <a href='https://privacy.apache.org/policies/privacy-policy-public.html'>privacy policy</a>.</div>
</div>
</footer></div>
</div>
</div>
</div>
</div><script src='../js/vendor/jquery-1.10.2.min.js' defer></script><script src='../js/vendor/classie.js' defer></script><script src='../js/vendor/bootstrap.js' defer></script><script src='../js/vendor/sidebarEffects.js' defer></script><script src='../js/vendor/modernizr-2.6.2.min.js' defer></script><script src='../js/plugins.js' defer></script><script src='https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js'></script><script>document.addEventListener('DOMContentLoaded',prettyPrint)</script><script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-257558-10', 'auto');
ga('send', 'pageview');
</script>
</body></html>