SlideShare a Scribd company logo
Code Generation
for the New Generation
Introductions
Tome Gramatikov
Singular
Dejan Jankov
Seavus
Risto Kavalinovski
Polar Cape
Motivation for this discussion
● What is code generation?
And what is Meta programming?
● Good or Bad
● Past present and future aspects
Twitter questions: #PolarTalks
We all did it..
● Do you know you use it?
● Frameworks, Libraries
● Dynamic languages
○ Ruby, Python, etc.
● SOAP / REST / JPA / AOP
○ GraphQL, Hibernate, Swagger, Apache Thrift
● BPM
● IDEs to bootstrap applications
Benefits
● We gain:
○ Productivity
○ Simplification
○ Portability
○ Consistency
● BoilerHate :)
● Software manufacturing
● Clone yourself
Code generation sucks?
● Introduces
○ Complex not optimized code
○ Difficulty during maintenance
● Problems we had in the past,
○ why is it not good?
● Has code gen helped you or not?
● Is it worth to generate one time job?
How dynamic is Java
● late binding / method overrides
● Class loading at runtime
● Reflection API
● invokedynamic
Future of code generation
● Model driven design .. or business driven?
○ Goal driven?
● Hardware is becoming faster cheaper,
○ how about our languages/ coding?
● (When) Are we finally going
to create apps without coding?
● Should the software modify / build itself?
Final Thoughts
for the New Generation

More Related Content

PDF
Java User Groups in Austria (2013)
PDF
GDCR15 in Las Palmas, Gran Canaria
PDF
Pair Programming (2015)
PPTX
Componentize! by Lancer Kind XP Conference 2016
PDF
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
PDF
Coding Dojo: Mars Rover (2014)
PPTX
Jak aspekty uporządkują twój kod.
ODP
Java interfaces design perspective
Java User Groups in Austria (2013)
GDCR15 in Las Palmas, Gran Canaria
Pair Programming (2015)
Componentize! by Lancer Kind XP Conference 2016
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Coding Dojo: Mars Rover (2014)
Jak aspekty uporządkują twój kod.
Java interfaces design perspective

What's hot (20)

PPTX
How aspects clean your code
PDF
TDC2016POA | Trilha DevOps - DevOps Anti-Patterns
PDF
Coding Dojo: Functional Calisthenics (2016)
PDF
Coding Dojo: Bank OCR Outside-In (2015)
PDF
TDD and more than 9000 tries to sell it to a customer
PPTX
Futuristic programing language
PDF
Deliberate Practice (Agile Slovenia 2015)
PDF
Code Retreat Venice (2016)
PDF
Coding Dojo: Asynchronous Clock-In (2016)
PDF
How Google Said - Ninja Code Review With Gerrit
PDF
Refactoring the Tennis Kata (2013)
PDF
DevOps Anti-Patterns
PDF
Coding Dojo: Bank OCR (2014)
PDF
Brutal Coding Constraints (ITAKE 2017)
PPTX
Api NodeJS con PureScript
PDF
Mob Programming (2016)
PDF
Coding Dojo Object Calisthenics (2016)
PDF
Clean Readable Specifications (ETC 2016)
PDF
Coding Dojo: Baby Steps Push Challenge (2021)
PDF
Designing Test Cases for the Gilded Rose Kata v3 (2016)
How aspects clean your code
TDC2016POA | Trilha DevOps - DevOps Anti-Patterns
Coding Dojo: Functional Calisthenics (2016)
Coding Dojo: Bank OCR Outside-In (2015)
TDD and more than 9000 tries to sell it to a customer
Futuristic programing language
Deliberate Practice (Agile Slovenia 2015)
Code Retreat Venice (2016)
Coding Dojo: Asynchronous Clock-In (2016)
How Google Said - Ninja Code Review With Gerrit
Refactoring the Tennis Kata (2013)
DevOps Anti-Patterns
Coding Dojo: Bank OCR (2014)
Brutal Coding Constraints (ITAKE 2017)
Api NodeJS con PureScript
Mob Programming (2016)
Coding Dojo Object Calisthenics (2016)
Clean Readable Specifications (ETC 2016)
Coding Dojo: Baby Steps Push Challenge (2021)
Designing Test Cases for the Gilded Rose Kata v3 (2016)
Ad

Similar to Polar talks: code generation (20)

PDF
Odessa .NET User Group - 10.11.2011 - Applied Code Generation
PDF
NetWork - 15.10.2011 - Applied code generation in .NET
PPTX
Swagger APIs for Humans and Robots (Gluecon)
PPTX
Exploring metaprogramming using Ruby language
PDF
Shaping the Future of Automatic Programming
PDF
Model driven software engineering in practice book - Chapter 9 - Model to tex...
ODP
Java compilation
PDF
Eclipse Florence Day: Modeling in the Italian Industry
PDF
Working with Developers
PPTX
SCA in an Agile World | June 2010
PPT
Introduction to Agile Software Development & Python
PDF
Sogeti labs developer-today-v1.1
PDF
Swagger 2.0: Latest and Greatest
PPTX
software engineering history2.pptx
PPT
Automatic Code Generation
PPTX
Clean code chpt_1
ODP
Software Engineering and Social media
PDF
history of software engineering .pdf
PDF
Legacy code - Taming The Beast
PDF
Metaprogramming with javascript
Odessa .NET User Group - 10.11.2011 - Applied Code Generation
NetWork - 15.10.2011 - Applied code generation in .NET
Swagger APIs for Humans and Robots (Gluecon)
Exploring metaprogramming using Ruby language
Shaping the Future of Automatic Programming
Model driven software engineering in practice book - Chapter 9 - Model to tex...
Java compilation
Eclipse Florence Day: Modeling in the Italian Industry
Working with Developers
SCA in an Agile World | June 2010
Introduction to Agile Software Development & Python
Sogeti labs developer-today-v1.1
Swagger 2.0: Latest and Greatest
software engineering history2.pptx
Automatic Code Generation
Clean code chpt_1
Software Engineering and Social media
history of software engineering .pdf
Legacy code - Taming The Beast
Metaprogramming with javascript
Ad

More from Stojan Peshov (6)

PPTX
Post agile 2
PPTX
Confessions of a Senior Mind
PPTX
Post agile confessions
PPTX
Post-Agile Methodologies and all that Jazz
PPTX
Testerone: Test Automation and ATTD using RobotFramework Libraries
PPTX
20 Years of Java - Story of HER life
Post agile 2
Confessions of a Senior Mind
Post agile confessions
Post-Agile Methodologies and all that Jazz
Testerone: Test Automation and ATTD using RobotFramework Libraries
20 Years of Java - Story of HER life

Recently uploaded (20)

PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
PDF
Website Design Services for Small Businesses.pdf
PDF
AutoCAD Professional Crack 2025 With License Key
PPTX
history of c programming in notes for students .pptx
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PPTX
assetexplorer- product-overview - presentation
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Autodesk AutoCAD Crack Free Download 2025
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Patient Appointment Booking in Odoo with online payment
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PDF
iTop VPN Crack Latest Version Full Key 2025
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
17 Powerful Integrations Your Next-Gen MLM Software Needs
PDF
Nekopoi APK 2025 free lastest update
Advanced SystemCare Ultimate Crack + Portable (2025)
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
Website Design Services for Small Businesses.pdf
AutoCAD Professional Crack 2025 With License Key
history of c programming in notes for students .pptx
Design an Analysis of Algorithms I-SECS-1021-03
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
assetexplorer- product-overview - presentation
Digital Systems & Binary Numbers (comprehensive )
Autodesk AutoCAD Crack Free Download 2025
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
Operating system designcfffgfgggggggvggggggggg
Patient Appointment Booking in Odoo with online payment
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
iTop VPN Crack Latest Version Full Key 2025
Odoo Companies in India – Driving Business Transformation.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
17 Powerful Integrations Your Next-Gen MLM Software Needs
Nekopoi APK 2025 free lastest update

Polar talks: code generation

  • 1. Code Generation for the New Generation
  • 3. Motivation for this discussion ● What is code generation? And what is Meta programming? ● Good or Bad ● Past present and future aspects Twitter questions: #PolarTalks
  • 4. We all did it.. ● Do you know you use it? ● Frameworks, Libraries ● Dynamic languages ○ Ruby, Python, etc. ● SOAP / REST / JPA / AOP ○ GraphQL, Hibernate, Swagger, Apache Thrift ● BPM ● IDEs to bootstrap applications
  • 5. Benefits ● We gain: ○ Productivity ○ Simplification ○ Portability ○ Consistency ● BoilerHate :) ● Software manufacturing ● Clone yourself
  • 6. Code generation sucks? ● Introduces ○ Complex not optimized code ○ Difficulty during maintenance ● Problems we had in the past, ○ why is it not good? ● Has code gen helped you or not? ● Is it worth to generate one time job?
  • 7. How dynamic is Java ● late binding / method overrides ● Class loading at runtime ● Reflection API ● invokedynamic
  • 8. Future of code generation ● Model driven design .. or business driven? ○ Goal driven? ● Hardware is becoming faster cheaper, ○ how about our languages/ coding? ● (When) Are we finally going to create apps without coding? ● Should the software modify / build itself?
  • 9. Final Thoughts for the New Generation

Editor's Notes

  • #4: A Guide to Code Generation - https://tomassetti.me/code-generation/ Code vs Data (Metaprogramming) - Computerphile - https://www.youtube.com/watch?v=dw-y3vNDRWk Raymond Hettinger - Dataclasses: The code generator to end all code generators (first few minutes only) - https://www.youtube.com/watch?v=T-TwcmT6Rcw A Practical Guide to Metaprogramming - https://www.youtube.com/watch?v=lZfv4H-9ato
  • #5: Tip of the iceberg: what it looks like when we use tools and frameworks, but what’s under the hood?
  • #6: How close are we to start manufacturing the apps, repro materials on input, use recipe and deliver a product as output? Can we clone part of ourselves that write code using the code generators, automate repetitive tasks?
  • #9: Model driven design only generates the classes and relationships, not behaviors which we actually need? It is sometimes forgotten that the framework that allows elimination of traditional programming (code-gen) in an area is a system or library that has been designed, programmed, and tested in the traditional way.