CINXE.COM

The Apache Groovy programming language

<!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'/><title>The Apache Groovy programming language</title><link href='img/xfavicon.ico.pagespeed.ic.5MuYua7ZOt.png' type='image/x-ico' rel='icon'/><link rel='stylesheet' type='text/css' href='css/A.bootstrap.css+font-awesome.min.css,Mcc.wNYYnhgHoF.css.pagespeed.cf.4sybb4EKeG.css'/><link rel='stylesheet' type='text/css' href='css/A.style.css.pagespeed.cf.8ltgaxBLeE.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/xhorizontal-github-ribbon.png.pagespeed.ic.Xn2L3BtWF6.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='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='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='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://www.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='learn.html'>Learn</a></li><li class=''><a href='documentation.html'>Documentation</a></li><li class=''><a href='https://groovy.apache.org/download.html'>Download</a></li><li class=''><a href='support.html'>Support</a></li><li class=''><a href='https://groovy.apache.org/'>Contribute</a></li><li class=''><a href='ecosystem.html'>Ecosystem</a></li><li class=''><a href='https://groovy.apache.org/blog'>Blog posts</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='band' class='band'></div><div id='content'> <section class="row colset-2-its"> <h1>A flexible and extensible Java-like language for the JVM</h1> <p> Apache Groovy is a multi-faceted language for the JVM. It aims to provide a <strong>Java-like feel and syntax</strong>, but with <strong>added productivity</strong> features. It supports OO and functional paradigms, and offers both static and dynamic natures for strong yet flexible typing. It supports the creation of powerful scripts and elegant Domain-Specific Languages. It offers bidirectional interoperability with Java classes and libraries, and supports language extensions through in-language macros, AST transformations and meta-programming. </p> <div class="col1"> <article> <div class="icon icon-1"></div> <h1>Flat learning curve</h1> <p>Concise, readable and expressive syntax, easy to learn for Java developers, flexible typing makes it more friendly for Python programmers or data scientists</p> </article> <article> <div class="icon icon-2"></div> <h1>Smooth Java integration</h1> <p> Seamlessly and transparently integrates and interoperates with Java and any third-party libraries </p> </article> <article> <div class="icon icon-6"></div> <h1>Vibrant and rich ecosystem</h1> <p> Web development, reactive applications, concurrency / asynchronous / parallelism library, test frameworks, build tools, code analysis, GUI building </p> </article> </div> <div class="col2"> <article> <div class="icon icon-4"></div> <h1>Powerful features</h1> <p> Closures, builders, traits, runtime &amp; compile-time meta-programming, functional programming, type inference, and static compilation </p> </article> <article> <div class="icon icon-5"></div> <h1>Domain-Specific Languages</h1> <p> Flexible &amp; malleable syntax, advanced integration &amp; customization mechanisms, to integrate readable business rules in your applications </p> </article> <article> <div class="icon icon-3"></div> <h1>Scripting and testing glue</h1> <p> Great for writing concise and maintainable tests, and for all your build and automation tasks </p> </article> </div> </section> <hr class="row"/> <section class='row colset-3-article first-event-row'><h1><strong>Apache Groovy events you shouldn't miss!</strong></h1><article><div class='content'><div class='event-img' style='background-image:url(img/confs/xcoc2024.png.pagespeed.ic.LF1LwjuzNI.png)'></div><h1><a href='https://communityovercode.org/'><strong>Community over Code NA</strong><br/><em>Minneapolis, Minnesota</em></a></h1><time>September 11-14, 2025</time><br/> <p> The latest innovations from dozens of Apache projects and their communities in a collaborative, vendor-neutral environment. </p> </div></article></section><section class='row last-event-row'><p class='text-center'>For more events see the <a href='events.html'><strong>Events</strong></a> page</p></section></div><div id="they-use-groovy" class="orange-band"> <div class="row"> <div class="item"> <h1><strong>They all use Apache Groovy!</strong></h1> <div id='logos-holder'> <div class='logo' style='background-image:url(img/logos/netflix.png.pagespeed.ce.waguTf5Mzv.png)'></div> <div class='logo' style='background-image:url(img/logos/amadeus.png.pagespeed.ce.ut_s2__MUV.png)'></div> <div class='logo' style='background-image:url(img/logos/bestbuy.png.pagespeed.ce.iV6iJlEMIB.png)'></div> <div class='logo' style='background-image:url(img/logos/carfax.png.pagespeed.ce.KbWc4M3TnF.png)'></div> <div class='logo' style='background-image:url(img/logos/carriots.png.pagespeed.ce.Ow8nk1eSaE.png)'></div> <div class='logo' style='background-image:url(img/logos/cisco.png.pagespeed.ce.dQvndfsn86.png)'></div> <div class='logo' style='background-image:url(img/logos/credit-suisse.png.pagespeed.ce.eoY4834VeH.png)'></div> <div class='logo' style='background-image:url(img/logos/airbusgroup.png.pagespeed.ce.w6OlxmRLQ0.png)'></div> <div class='logo' style='background-image:url(img/logos/energy-transfer.png.pagespeed.ce.LDvwpPRMnK.png)'></div> <div class='logo' style='background-image:url(img/logos/epo.png.pagespeed.ce.xlo_1hh34x.png)'></div> <div class='logo' style='background-image:url(img/logos/fanniemae.png.pagespeed.ce.eP1gzWO8uE.png)'></div> <div class='logo' style='background-image:url(img/logos/google.png.pagespeed.ce.H9aBV1HmAs.png)'></div> <div class='logo' style='background-image:url(img/logos/hypoport.png.pagespeed.ce.1R70Q-1yS-.png)'></div> <div class='logo' style='background-image:url(img/logos/ibm.png.pagespeed.ce.m4jCJ9JpJh.png)'></div> <div class='logo' style='background-image:url(img/logos/jpmorganchase.png.pagespeed.ce.ps17OevBCR.png)'></div> <div class='logo' style='background-image:url(img/logos/linkedin.png.pagespeed.ce.La_EPgcs1D.png)'></div> <div class='logo' style='background-image:url(img/logos/mastercard.png.pagespeed.ce.Dey3Esks1p.png)'></div> <div class='logo' style='background-image:url(img/logos/mtv.png.pagespeed.ce.d0_9sGcEmK.png)'></div> <div class='logo' style='background-image:url(img/logos/commerzbank.png.pagespeed.ce.Tx6WN1DkyB.png)'></div> <div class='logo' style='background-image:url(img/logos/national-cancer-institute.png.pagespeed.ce.GvIZ2Yd5y6.png)'></div> <div class='logo' style='background-image:url(img/logos/nestle.png.pagespeed.ce.dMnp7w9sST.png)'></div> <div class='logo' style='background-image:url(img/logos/xnielsen.png.pagespeed.ic.G9i8kJ-Cje.png)'></div> <div class='logo' style='background-image:url(img/logos/oracle.png.pagespeed.ce.chZ9ri2M9I.png)'></div> <div class='logo' style='background-image:url(img/logos/paterson-cancer-institute.png.pagespeed.ce.Iy4Slpz2Ps.png)'></div> <div class='logo' style='background-image:url(img/logos/roche.png.pagespeed.ce.CSDgkMJQv9.png)'></div> <div class='logo' style='background-image:url(img/logos/sas.png.pagespeed.ce._1Q2yfnlrR.png)'></div> <div class='logo' style='background-image:url(img/logos/sky.png.pagespeed.ce.bJ4XuXiZFA.png)'></div> <div class='logo' style='background-image:url(img/logos/sony.png.pagespeed.ce.4tJC_gX0oI.png)'></div> <div class='logo' style='background-image:url(img/logos/xsmartthings.png.pagespeed.ic.8jQigAwWbi.png)'></div> <div class='logo' style='background-image:url(img/logos/target.png.pagespeed.ce.8X3NdsSV5i.png)'></div> <div class='logo' style='background-image:url(img/logos/thales.png.pagespeed.ce.Aw7LrjQYzc.png)'></div> <div class='logo' style='background-image:url(img/logos/ubs.png.pagespeed.ce.QaZVCTYyvB.png)'></div> <div class='logo' style='background-image:url(img/logos/vodafone.png.pagespeed.ce.sjnbgyOxmO.png)'></div> <div class='logo' style='background-image:url(img/logos/voyages-sncf.png.pagespeed.ce.WPcn5t5lus.png)'></div> <div class='logo' style='background-image:url(img/logos/walmart.png.pagespeed.ce.jOxQJvHI7k.png)'></div> <div class='logo' style='background-image:url(img/logos/wells-fargo.png.pagespeed.ce.xIjF8rAhnj.png)'></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='learn.html'>Learn</a></li><li><a href='documentation.html'>Documentation</a></li><li><a href='https://groovy.apache.org/download.html'>Download</a></li><li><a href='support.html'>Support</a></li><li><a href='https://groovy.apache.org/'>Contribute</a></li><li><a href='ecosystem.html'>Ecosystem</a></li><li><a href='https://groovy.apache.org/blog'>Blog posts</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='security.html'>Security</a></li><li><a href='learn.html#books'>Books</a></li><li><a href='thanks.html'>Thanks</a></li><li><a href='http://www.apache.org/foundation/sponsorship.html'>Sponsorship</a></li><li><a href='faq.html'>FAQ</a></li><li><a href='search.html'>Search</a></li> </ul> </div><div class='col-3'> <h1>Socialize</h1><ul> <li><a href='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='events.html'>Events and conferences</a></li><li><a href='https://github.com/apache/groovy'>Source code on GitHub</a></li><li><a href='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://www.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/xasf_logo.png.pagespeed.ic.oYGxdP6oSc.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-2025 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.pagespeed.jm.ZzSiN_5Whq.js' defer></script><script defer>//<![CDATA[ (function(e){function a(h){return new RegExp("(^|\\s+)"+h+"(\\s+|$)")}var d,f,g;if("classList"in document.documentElement){d=function(h,i){return h.classList.contains(i)};f=function(h,i){h.classList.add(i)};g=function(h,i){h.classList.remove(i)}}else{d=function(h,i){return a(i).test(h.className)};f=function(h,i){if(!d(h,i)){h.className=h.className+" "+i}};g=function(h,i){h.className=h.className.replace(a(i)," ")}}function b(i,j){var h=d(i,j)?g:f;h(i,j)}var c={hasClass:d,addClass:f,removeClass:g,toggleClass:b,has:d,add:f,remove:g,toggle:b};if(typeof define==="function"&&define.amd){define(c)}else{e.classie=c}})(window); //]]></script><script src='js/vendor/bootstrap.js.pagespeed.jm.2qfM2oohG3.js' defer></script><script src='js/vendor/sidebarEffects.js.pagespeed.ce.qR2PnBxvrx.js' defer></script><script src='js/vendor/modernizr-2.6.2.min.js.pagespeed.jm.HFGCZXAk6a.js' defer></script><script defer>//<![CDATA[ (function(){var e;var d=function(){};var b=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"];var c=b.length;var a=(window.console=window.console||{});while(c--){e=b[c];if(!a[e]){a[e]=d}}}()); //]]></script> </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10