<!DOCTYPE html>
<html>

  <head>
	<meta charset="UTF-8">
	<title>Xtend - Community</title>
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta name="description"
		content="Xtend is a statically typed programming language sitting on top of Java.">
	<meta name="author" content="Sven Efftinge">
	<meta name="author" content="Miro Spoenemann">
	<!--  styles -->
	<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
	<!--[if lt IE 9]>
	  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
	<![endif]-->
	
	<!-- Le fav and touch icons -->
	
	<link rel="shortcut icon" href="/xtend/images/favicon.png">
	
	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
	
	<!--[if lt IE 9]>
	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
	<![endif]-->

	<!-- BEGIN Cookie Consent
	<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" />
	<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
	<script>
	window.addEventListener("load", function(){
	window.cookieconsent.initialise({
		"palette": {
		"popup": {
		  "background": "#000"
		},
		"button": {
		  "background": "#f1d600"
		}
		},
		"theme": "edgeless",
		"type": "opt-in",
		onInitialise: function (status) {
		  var type = this.options.type;
		  var didConsent = this.hasConsented();
		  if (type == 'opt-in' && didConsent) {
		    // TODO: enable cookies
		  }
		  if (type == 'opt-out' && !didConsent) {
		    // TODO: disable cookies
		  }
		},
		onStatusChange: function(status, chosenBefore) {
		  var type = this.options.type;
		  var didConsent = this.hasConsented();
		  if (type == 'opt-in' && didConsent) {
		    // TODO: enable cookies
		  }
		  if (type == 'opt-out' && !didConsent) {
		    // TODO: disable cookies
		  }
		}, 
		onRevokeChoice: function() {
		  var type = this.options.type;
		  if (type == 'opt-in') {
		    // TODO: disable cookies
		  }
		  if (type == 'opt-out') {
		    // TODO: enable cookies
		  }
		},
		"content": {
		"href": "http://www.eclipse.org/legal/privacy.php"
		}
	})});
	</script>
	END Cookie Consent -->
</head>


  <body>

    <!-- Navbar -->
  <div class="navbar navbar-fixed-top"
    style="border-bottom: 1px solid #000;">
    <div class="navbar-inner">
      <div class="container">
        <a class="btn btn-navbar" data-toggle="collapse"
          data-target=".nav-collapse"> <span class="icon-bar"></span> <span
          class="icon-bar"></span> <span class="icon-bar"></span>
        </a> <a class="brand" href="/xtend/index.html"></a>
        <div class="nav-collapse collapse" style="height: 0px;">
          <ul class="nav">
            <li ><a href="/xtend/download.html">Download</a></li>
            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
            <li ><a href="/xtend/community.html">Community</a></li>
            <li ><a href="http://xtext.org">Xtext</a></li>
            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
          </ul>
              <!--div class="btn-group pull-right">
                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
              </div-->
        </div>
        <!--/.nav-collapse -->
      </div>
    </div>
  </div>
  <!-- Navbar End -->


    <div id="header_wrapper">
	<div class="container"> 
		<div class="flexslider image-slider">
			<div class="row">
				<div class="span5 team">
					<a href="https://www.eclipse.org/forums/index.php/f/27/" class="anchor-in-div" title="The Eclipse Forum is the first source for getting answers in case you got stuck. The community is very friendly. Please ask any questions clearly and with sufficient information attached."></a>
					<div class="row">
						<div class="span1">
							<img src="/xtend/images/discussion-white.png" alt="image" class="image_left">
							</div>
							<div class="span4">
								<h3>Discussion Group</h3>
							<p></p>
						</div>
					</div>
				</div>
				<div class="span5 team">
					<a href="https://github.com/eclipse/xtext-xtend/issues" class="anchor-in-div" title="Bug reports and enhancement request are tracked on GitHub. Please explain the problem and provide a reduced but reproducable example. Also please explain the concrete use case when requesting enhancements."></a>
					<div class="row">
						<div class="span1">
							<img src="/xtend/images/bug-white.png" width="80" height="80" alt="image" class="image_left">
						</div>
						<div class="span4">
							<h3>Found a Bug?</h3>
						</div>
					</div>
				</div>
			</div>
			<div class="row">
				<div class="span5 team">
					<a href="https://github.com/eclipse/xtext-xtend" class="anchor-in-div" title="The Xtend source code is available on GitHub. You'll find more information on how to contribute to the project in the README.md contained there."></a>
					<div class="row">
						<div class="span1">
							<img src="/xtend/images/github-mark-white.png" alt="image" class="image_left">
						</div>
						<div class="span4">
							<h3>Source Code</h3>
						</div>
					</div>
				</div>
				<div class="span5 team">
					<a href="https://twitter.com/xtendlang" class="anchor-in-div" title="If you are on twitter and want to get notified about Xtend, you should consider following @xtendlang."></a>
					<div class="row">
						<div class="span1">
							<img src="/xtend/images/Twitter-bird-white.png" alt="image" class="image_left">
						</div>
						<div class="span4">
							<h3>Xtend on Twitter</h3>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</div>

<div class="inner">
	<div class="container clearfix">
		<h2>Videos of Presentations</h2>
		<hr>
		<div class="row">
			<div class="span12">
				<table class="table table-striped">
					<tr><td>Video</td><td><h2><a href="https://youtu.be/rCtAlTmaztU">Cool kids' way of generating code (EclipseCon 2018, Ludwigsburg)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://youtu.be/pS3QueML09s">EMF + Xtend = BOEM - An Xtend library to build good-looking EMF models (EclipseCon 2018, Toulouse)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://youtu.be/xKq-lZo0LEs">Large Scale Model Transformations with Xtend (EclipseCon 2017, Ludwigsburg)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://youtu.be/q9aOeCYzVvU">Unconference Xtend (EclipseCon 2017, Ludwigsburg)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://youtu.be/teOULtQ81-U">Recipes to build Code Generators for Non-Xtext Models with Xtend (EclipseCon 2016, Ludwigsburg)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://youtu.be/jqu4W7AeXGk">Xtend API and DSL Design Patterns (EclipseCon 2016, Ludwigsburg)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://youtu.be/Jq4H5pL4wq0">Code Generation for Professionals (EclipseCon 2016, Ludwigsburg)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://youtu.be/fTkwFJy3EeM">Testing Xtext Languages (EclipseCon 2015, Ludwigsburg)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://youtu.be/n7LUgXX_3cE">10 Java Idioms Stomped with Xtend (EclipseCon 2015, Ludwigsburg)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://youtu.be/jCgPfxaY8XQ">Write cool scalable enterprise application tests with Xtend (EclipseCon 2014, Ludwigsburg)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="http://jdk.io/index.php/program/enterprise-java/20-xtend-in-action">Eclipse Xtend: A Language Made for Java Developers (JDK.IO 2014, Kobenhavn)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://www.youtube.com/watch?v=EzH5MPd13iI">Eclipse Xtend: A Language Made for Java Developers (JavaOne 2012, SF)</a></h2></td></tr>
					<tr><td>Video</td><td><h2><a href="https://skillsmatter.com/skillscasts/2917-xtend-xtest">Eclipse Xtend: A Language Made for Java Developers (Skills Matter 2012, London)</a></h2></td></tr>
				</table>
			</div>
		</div>
	</div>
	<div>
		<div class="inner">
			<div class="container clearfix">
				<h2>Articles and Blog Posts</h2>
				<hr>
				<div class="row">
					<div class="span12">
						<table class="table table-striped">
							<tr><td>Talk Proposal</td><td><h2><a href="https://www.eclipsecon.org/europe2019/sessions/what-xtend-can-do-you">What Xtend can do for you</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="https://blogs.itemis.com/en/from-the-intern-to-xtend-commit-in-14-days">From the intern to Xtend Commit in 14 days</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="https://blogs.itemis.com/en/model-transformations-for-mbse-with-cameo-and-xtend">Model transformations for MBSE with Cameo and Xtend</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="https://blogs.itemis.com/en/xtend-2-14-unnecessary-modifiers-validation">Xtend 2.14 - Unnecessary modifiers validation</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="https://blogs.itemis.com/en/implementing-junit-test-cases-in-xtend">Implementing JUnit Test Cases in Xtend</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="https://blogs.itemis.com/en/building-domain-specific-languages-with-xtext-and-xtend">Building Domain-specific Languages with Xtext and Xtend</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="https://blogs.itemis.com/en/autosar-ocl-xtend-oaw-for-validation">AUTOSAR: OCL, Xtend, oAW for validation</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://futurice.com/blog/android-development-has-its-own-swift">Android Development has its own Swift</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://the-dusty-deck.blogspot.de/2014/06/xtend-gentle-and-functional-java.html">Xtend, the Gentle and Functional Java</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://www.infoq.com/articles/unusual-ways-to-create-a-mobile-app">Android and Xtend</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://jnario.org/org/jnario/jnario/documentation/20FactsAboutXtendSpec.html">20 Facts about Xtend</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://www.sebastianbenz.de/5-Things-that-make-Xtend-a-great-Language-for-Java-developers">5 things that make Xtend a great language</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://www.javacodegeeks.com/2013/02/building-vaadin-ui-with-xtend.html">Building Vaadin UIs with Xtend</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/12/java-8-vs-xtend.html">Java 8 vs. Xtend</a></h2></td></tr>
							<tr><td>Article</td><td><h2><a href="https://pragprog.com/magazines/2011-12/extending-java">Extending Java - Xtend a New Language for Java Developers</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://tomsondev.bestsolution.at/2012/04/11/javafx-xtend-a-perfect-match/">JavaFX & Xtend - A Perfect Match</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://tomsondev.bestsolution.at/2012/04/11/javafx-xtend-a-sensational-perfect-match/">JavaFX & Xtend - A Sensational Perfect Match</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://tomsondev.bestsolution.at/2012/05/29/javafx-xtend-an-ongoing-love/">JavaFX & Xtend - An Ongoing Love</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://tomsondev.bestsolution.at/2012/06/19/xtend-javafx-properties-and-operator-overloading/">Xtend, JavaFX-Properties and Operator Overloading</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.moritz.eysholdt.de/2011/12/building-swt-user-interfaces-with-xtend.html">Building SWT User Interfaces with Xtend</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/06/vertx-and-xtend.html">Vert.x & Xtend</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/05/distance-time-speed.html">Distance / Time = Speed - A Post on Operator Overloading in Xtend</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/04/xtend-examples-used-at-eclipsecon-2012.html">Xtend Example Screencasts</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/04/xtend-example-working-with-distances.html">Working With Distances using Xtend (Operator Overloading Applied)</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/01/i-like-free-beer.html">I Like Free Beer (99 Bottles in Xtend)</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2011/12/groovy-scala-java-xtend-stupid.html">Groovy, Scala, Java, Xtend - A Stupid Comparism</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2011/12/groovy-scala-java-xtend-updated-stupid.html">Groovy, Scala, Java, Xtend - An UPDATED Stupid Comparism</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2011/12/writing-android-uis-with-xtend.html">Writing Android Apps with Xtend</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2011/11/whats-so-special-about-xtends-extension.html">What's so special about Xtend's extension methods</a></h2></td></tr>
							<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2011/10/xtend-21-type-safe-groovy-style-builder.html">Xtend - Type-safe Groovy-style Builder APIs</a></h2></td></tr>
						</table>
					</div>
				</div>
			</div>
		</div>
	</div>
</div>

    
    <footer class="site-footer">
  <div id="extra">
    <div class="container inner-footer">
      <div class="row">
        <div class="span6">
          <h3 class="footer-links-header">Quick Links</h3>
          <ul class="footer-links clearfix">
            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
          </ul>
          <ul class="footer-links clearfix">
            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
          </ul>
        </div>
        <div class="span6">
            <!-- Social Media Links -->
            <h3 class="footer-links-header"">Social Media</h3>
            <ul class="footer-links clearfix">
              <li>
                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
              </li>
            </ul>
          </div>

      </div>
    </div>
  </div>
  <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
  <!-- Le javascript
      ================================================== -->
  <!-- Placed at the end of the document so the pages load faster -->
  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
  
  <!-- include pretty-print files -->
  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
  
  <!-- Include the plug-in -->
  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
  <script src="/xtend/js/custom.js" type="text/javascript"></script>
  <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
  <!--script type="text/javascript">
    var _gaq = _gaq || [];  
      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
    _gaq.push([ '_trackPageview' ]);
    (function() {
      var ga = document.createElement('script');
      ga.type = 'text/javascript';
      ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl'
          : 'http://www')
          + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(ga, s);
    })();
  </script-->
</footer>

  </body>

</html>
