SlideShare a Scribd company logo
1 of 35
A Language
       made for
      Java Developers



             (c) 2012 itemis AG
About me
@szarnekow
IDEs, Tools,...
IDEs, Tools,...




Open-Source
IDEs, Tools,...




Open-Source




              Community
IDEs, Tools,...




Open-Source                     Standard Library




              Community
IDEs, Tools,...

   Should we really throw all those assets away?

Open-Source                            Standard Library




                   Community
IDEs, Tools,...

  Should we really throw all those assets away?

   How about just fixing the
Open-Source                Standard Library
            problematic bits?
                  Community
Java’s Type System & Libraries
Java’s Type System & Libraries
       Java’s IDE Support
Java’s Type System & Libraries
       Java’s IDE Support
   Functional Programming
Java’s Type System & Libraries
       Java’s IDE Support
   Functional Programming
      Extension Methods
Java’s Type System & Libraries
       Java’s IDE Support
   Functional Programming
      Extension Methods
  Exceptional DSL Support
A clean, fast and
statically typed Groovy
A simpler Scala, with
100% Java interoperability
CoffeeScript for Java
Demo
Exceptional DSL Support
Exceptional DSL Support
      Annotations
      on
 Steroids
Java’s Annotation Processing Tool (apt):


   apt is a [..] utility for annotation processing. It includes a set
   of reflective APIs [..] to process program annotations[..].
   These [..] APIs provide a build-time, source-based, read-only
   view of program structure. They [..] model the Java™
   programming language's type system[..].
   [..] annotation processors [..] can produce new source code
   and other files. [..]


                                http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html
Java’s Annotation Processing Tool (apt):


   apt is a [..] utility for annotation processing. It includes a set
   of reflective APIs [..] to process program annotations[..].
   These [..] APIs provide a build-time, source-based, read-only
   view of program structure. They [..] model the Java™
   programming language's type system[..].
   [..] annotation processors [..] can produce new source code
   and other files. [..]


                                http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html
Java’s Annotation Processing Tool (apt):


   apt is a [..] utility for annotation processing. It includes a set
   of reflective APIs [..] to process program annotations[..].
   These [..] APIs provide a build-time, source-based, read-only
   view of program structure. They [..] model the Java™
   programming language's type system[..].
   [..] annotation processors [..] can produce new source code
   and other files. [..]


                                http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html
Java’s Annotation Processing Tool (apt):


   apt is a [..] utility for annotation processing. It includes a set
   of reflective APIs [..] to process program annotations[..].
   These [..] APIs provide a build-time, source-based, read-only
   view of program structure. They [..] model the Java™
   programming language's type system[..].
   [..] annotation processors [..] can produce new source code
   and other files. [..]


                                http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html
Java’s Annotation Processing Tool (apt):


   apt is a [..] utility for annotation processing. It includes a set
   of reflective APIs [..] to process program annotations[..].
   These [..] APIs provide a build-time, source-based, read-only
   view of program structure. They [..] model the Java™
   programming language's type system[..].
   [..] annotation processors [..] can produce new source code
   and other files. [..]


                                http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html
Active Annotations
Active Annotations

Participate in Compilation
Active Annotations

Participate in Compilation
Enhance Derived Java Code
Active Annotations

    Participate in Compilation
   Enhance Derived Java Code
Apply Domain-Specific Constraints
Demo

More Related Content

What's hot

What's hot (20)

Core java introduction
Core java introductionCore java introduction
Core java introduction
 
Building Your Own DSL with Xtext
Building Your Own DSL with XtextBuilding Your Own DSL with Xtext
Building Your Own DSL with Xtext
 
Top 10 Java Interview Questions and Answers 2014
Top 10 Java Interview Questions and Answers 2014 Top 10 Java Interview Questions and Answers 2014
Top 10 Java Interview Questions and Answers 2014
 
Core Java
Core JavaCore Java
Core Java
 
Core java programming tutorial - Brainsmartlabs
Core java programming tutorial - BrainsmartlabsCore java programming tutorial - Brainsmartlabs
Core java programming tutorial - Brainsmartlabs
 
Let's start with Java- Basic Concepts
Let's start with Java- Basic ConceptsLet's start with Java- Basic Concepts
Let's start with Java- Basic Concepts
 
Core java online training
Core java online trainingCore java online training
Core java online training
 
Java 101 intro to programming with java
Java 101  intro to programming with javaJava 101  intro to programming with java
Java 101 intro to programming with java
 
Implementing Refactorings in IntelliJ IDEA
Implementing Refactorings in IntelliJ IDEAImplementing Refactorings in IntelliJ IDEA
Implementing Refactorings in IntelliJ IDEA
 
When Sightly Meets Slice by Tomasz Niedźwiedź
When Sightly Meets Slice by Tomasz NiedźwiedźWhen Sightly Meets Slice by Tomasz Niedźwiedź
When Sightly Meets Slice by Tomasz Niedźwiedź
 
Functional programming with Xtend
Functional programming with XtendFunctional programming with Xtend
Functional programming with Xtend
 
Java 8 features
Java 8 featuresJava 8 features
Java 8 features
 
java token
java tokenjava token
java token
 
Language Engineering With Xtext
Language Engineering With XtextLanguage Engineering With Xtext
Language Engineering With Xtext
 
Elixir in a nutshell - Ecosystem (session 1)
Elixir in a nutshell - Ecosystem (session 1)Elixir in a nutshell - Ecosystem (session 1)
Elixir in a nutshell - Ecosystem (session 1)
 
Core java slides
Core java slidesCore java slides
Core java slides
 
Introduction to Core Java Programming
Introduction to Core Java ProgrammingIntroduction to Core Java Programming
Introduction to Core Java Programming
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Smart Migration to JDK 8
Smart Migration to JDK 8Smart Migration to JDK 8
Smart Migration to JDK 8
 
Java 201 Intro to Test Driven Development in Java
Java 201   Intro to Test Driven Development in JavaJava 201   Intro to Test Driven Development in Java
Java 201 Intro to Test Driven Development in Java
 

Viewers also liked

Eclipse DemoCamp in Paris: Language Development with Xtext
Eclipse DemoCamp in Paris: Language Development with XtextEclipse DemoCamp in Paris: Language Development with Xtext
Eclipse DemoCamp in Paris: Language Development with Xtext
Sebastian Zarnekow
 
ARText - Driving Developments with Xtext
ARText - Driving Developments with XtextARText - Driving Developments with Xtext
ARText - Driving Developments with Xtext
Sebastian Benz
 

Viewers also liked (20)

Java Performance MythBusters
Java Performance MythBustersJava Performance MythBusters
Java Performance MythBusters
 
Xtext Best Practices
Xtext Best PracticesXtext Best Practices
Xtext Best Practices
 
Scoping Tips and Tricks
Scoping Tips and TricksScoping Tips and Tricks
Scoping Tips and Tricks
 
Future of Xtext
Future of XtextFuture of Xtext
Future of Xtext
 
Parsing Expression With Xtext
Parsing Expression With XtextParsing Expression With Xtext
Parsing Expression With Xtext
 
Extending the Xbase Typesystem
Extending the Xbase TypesystemExtending the Xbase Typesystem
Extending the Xbase Typesystem
 
Recipes to build Code Generators for Non-Xtext Models with Xtend
Recipes to build Code Generators for Non-Xtext Models with XtendRecipes to build Code Generators for Non-Xtext Models with Xtend
Recipes to build Code Generators for Non-Xtext Models with Xtend
 
The Xtext Grammar Language
The Xtext Grammar LanguageThe Xtext Grammar Language
The Xtext Grammar Language
 
EMF - Beyond The Basics
EMF - Beyond The BasicsEMF - Beyond The Basics
EMF - Beyond The Basics
 
EMF Tips n Tricks
EMF Tips n TricksEMF Tips n Tricks
EMF Tips n Tricks
 
Serializing EMF models with Xtext
Serializing EMF models with XtextSerializing EMF models with Xtext
Serializing EMF models with Xtext
 
DSLs for Java Developers
DSLs for Java DevelopersDSLs for Java Developers
DSLs for Java Developers
 
Graphical Views For Xtext With FXDiagram
Graphical Views For Xtext With FXDiagramGraphical Views For Xtext With FXDiagram
Graphical Views For Xtext With FXDiagram
 
Jazoon 2010 - Building DSLs with Eclipse
Jazoon 2010 - Building DSLs with EclipseJazoon 2010 - Building DSLs with Eclipse
Jazoon 2010 - Building DSLs with Eclipse
 
Graphical Views For Xtext
Graphical Views For XtextGraphical Views For Xtext
Graphical Views For Xtext
 
Eclipse DemoCamp in Paris: Language Development with Xtext
Eclipse DemoCamp in Paris: Language Development with XtextEclipse DemoCamp in Paris: Language Development with Xtext
Eclipse DemoCamp in Paris: Language Development with Xtext
 
Enhancing Xtext for General Purpose Languages
Enhancing Xtext for General Purpose LanguagesEnhancing Xtext for General Purpose Languages
Enhancing Xtext for General Purpose Languages
 
From Stairway to Heaven onto the Highway to Hell with Xtext
From Stairway to Heaven onto the Highway to Hell with XtextFrom Stairway to Heaven onto the Highway to Hell with Xtext
From Stairway to Heaven onto the Highway to Hell with Xtext
 
ARText - Driving Developments with Xtext
ARText - Driving Developments with XtextARText - Driving Developments with Xtext
ARText - Driving Developments with Xtext
 
Xtext, diagrams and ux
Xtext, diagrams and uxXtext, diagrams and ux
Xtext, diagrams and ux
 

Similar to Xtend - A Language Made for Java Developers

Java and Related Technologies
Java and Related TechnologiesJava and Related Technologies
Java and Related Technologies
Qualys
 
Java compilation
Java compilationJava compilation
Java compilation
Mike Kucera
 
Practices and tools for building better APIs
Practices and tools for building better APIsPractices and tools for building better APIs
Practices and tools for building better APIs
NLJUG
 

Similar to Xtend - A Language Made for Java Developers (20)

Java and Related Technologies
Java and Related TechnologiesJava and Related Technologies
Java and Related Technologies
 
Gwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing APIGwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing API
 
Infinum Android Talks #02 - How to write an annotation processor in Android
Infinum Android Talks #02 - How to write an annotation processor in AndroidInfinum Android Talks #02 - How to write an annotation processor in Android
Infinum Android Talks #02 - How to write an annotation processor in Android
 
What is-java
What is-javaWhat is-java
What is-java
 
Intoduction to java
Intoduction to javaIntoduction to java
Intoduction to java
 
Dr. Rajeshree Khande :Intoduction to java
Dr. Rajeshree Khande :Intoduction to javaDr. Rajeshree Khande :Intoduction to java
Dr. Rajeshree Khande :Intoduction to java
 
Top 10 Important Core Java Interview questions and answers.pdf
Top 10 Important Core Java Interview questions and answers.pdfTop 10 Important Core Java Interview questions and answers.pdf
Top 10 Important Core Java Interview questions and answers.pdf
 
Jasper report dependencies [santi caltabiano]
Jasper report dependencies [santi caltabiano]Jasper report dependencies [santi caltabiano]
Jasper report dependencies [santi caltabiano]
 
JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...
JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...
JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...
 
J introtojava1-pdf
J introtojava1-pdfJ introtojava1-pdf
J introtojava1-pdf
 
Jasper report dependencies [by sc]
Jasper report dependencies [by sc]Jasper report dependencies [by sc]
Jasper report dependencies [by sc]
 
What is Java
What is JavaWhat is Java
What is Java
 
Xtend @ EclipseCon 2012
Xtend @ EclipseCon 2012Xtend @ EclipseCon 2012
Xtend @ EclipseCon 2012
 
Unit1 introduction to Java
Unit1 introduction to JavaUnit1 introduction to Java
Unit1 introduction to Java
 
Java compilation
Java compilationJava compilation
Java compilation
 
Java basic
Java basicJava basic
Java basic
 
JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...
JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...
JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...
 
Java course in Chandigarh.pdf
Java course in Chandigarh.pdfJava course in Chandigarh.pdf
Java course in Chandigarh.pdf
 
JRE , JDK and platform independent nature of JAVA
JRE , JDK and platform independent nature of JAVAJRE , JDK and platform independent nature of JAVA
JRE , JDK and platform independent nature of JAVA
 
Practices and tools for building better APIs
Practices and tools for building better APIsPractices and tools for building better APIs
Practices and tools for building better APIs
 

Recently uploaded

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Xtend - A Language Made for Java Developers

  • 1. A Language made for Java Developers (c) 2012 itemis AG
  • 3.
  • 4.
  • 5.
  • 6.
  • 10. IDEs, Tools,... Open-Source Standard Library Community
  • 11. IDEs, Tools,... Should we really throw all those assets away? Open-Source Standard Library Community
  • 12. IDEs, Tools,... Should we really throw all those assets away? How about just fixing the Open-Source Standard Library problematic bits? Community
  • 13.
  • 14. Java’s Type System & Libraries
  • 15. Java’s Type System & Libraries Java’s IDE Support
  • 16. Java’s Type System & Libraries Java’s IDE Support Functional Programming
  • 17. Java’s Type System & Libraries Java’s IDE Support Functional Programming Extension Methods
  • 18. Java’s Type System & Libraries Java’s IDE Support Functional Programming Extension Methods Exceptional DSL Support
  • 19. A clean, fast and statically typed Groovy
  • 20. A simpler Scala, with 100% Java interoperability
  • 22. Demo
  • 24. Exceptional DSL Support Annotations on
  • 26. Java’s Annotation Processing Tool (apt): apt is a [..] utility for annotation processing. It includes a set of reflective APIs [..] to process program annotations[..]. These [..] APIs provide a build-time, source-based, read-only view of program structure. They [..] model the Java™ programming language's type system[..]. [..] annotation processors [..] can produce new source code and other files. [..] http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html
  • 27. Java’s Annotation Processing Tool (apt): apt is a [..] utility for annotation processing. It includes a set of reflective APIs [..] to process program annotations[..]. These [..] APIs provide a build-time, source-based, read-only view of program structure. They [..] model the Java™ programming language's type system[..]. [..] annotation processors [..] can produce new source code and other files. [..] http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html
  • 28. Java’s Annotation Processing Tool (apt): apt is a [..] utility for annotation processing. It includes a set of reflective APIs [..] to process program annotations[..]. These [..] APIs provide a build-time, source-based, read-only view of program structure. They [..] model the Java™ programming language's type system[..]. [..] annotation processors [..] can produce new source code and other files. [..] http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html
  • 29. Java’s Annotation Processing Tool (apt): apt is a [..] utility for annotation processing. It includes a set of reflective APIs [..] to process program annotations[..]. These [..] APIs provide a build-time, source-based, read-only view of program structure. They [..] model the Java™ programming language's type system[..]. [..] annotation processors [..] can produce new source code and other files. [..] http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html
  • 30. Java’s Annotation Processing Tool (apt): apt is a [..] utility for annotation processing. It includes a set of reflective APIs [..] to process program annotations[..]. These [..] APIs provide a build-time, source-based, read-only view of program structure. They [..] model the Java™ programming language's type system[..]. [..] annotation processors [..] can produce new source code and other files. [..] http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html
  • 33. Active Annotations Participate in Compilation Enhance Derived Java Code
  • 34. Active Annotations Participate in Compilation Enhance Derived Java Code Apply Domain-Specific Constraints
  • 35. Demo
  • 36. xtend-lang.org @xtendlang @szarnekow Thank you! (c) 2012 itemis AG

Editor's Notes

  1. - A statically typed, functional programming language for the JVM\n- Developed at Eclipse.org and provides a couple of very interesting and unique Features.\n
  2. \n
  3. \n
  4. \n
  5. \n
  6. - Eclipse JDT, IntelliJ and Netbeans are the best IDEs in the world for any language\n- Findbugs, Profilers, JRebel\n\n- huge amount of open-source projects. There’s something for everything!\n- well supported by a nice community\n- consisting of almost 10 mio developes\n
  7. - Eclipse JDT, IntelliJ and Netbeans are the best IDEs in the world for any language\n- Findbugs, Profilers, JRebel\n\n- huge amount of open-source projects. There’s something for everything!\n- well supported by a nice community\n- consisting of almost 10 mio developes\n
  8. - Eclipse JDT, IntelliJ and Netbeans are the best IDEs in the world for any language\n- Findbugs, Profilers, JRebel\n\n- huge amount of open-source projects. There’s something for everything!\n- well supported by a nice community\n- consisting of almost 10 mio developes\n
  9. - Eclipse JDT, IntelliJ and Netbeans are the best IDEs in the world for any language\n- Findbugs, Profilers, JRebel\n\n- huge amount of open-source projects. There’s something for everything!\n- well supported by a nice community\n- consisting of almost 10 mio developes\n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n