Top Banner
1 DSLs with Groovy Saager Mhatre
58

1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre [email protected] thinkaround.blogspot.com @dexterous.

Mar 26, 2015

Download

Documents

Gabrielle Cox
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

1

DSLs with Groovy

Saager Mhatre

Page 2: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

2

github.com/dexterous

code.google.com/u/saager.mhatre

[email protected]

thinkaround.blogspot.com

@dexterous

Page 3: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

3

Page 4: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

4

The basic idea of a

domain specific languageis…

Page 5: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

5

…a computer languagethat's targeted to a particular kind of problem,

rather than a general purpose languagethat's aimed at any kind of software problem.

Martin Fowlerhttp://www.martinfowler.com/bliki/DomainSpecificLanguage.html

Page 6: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

6

… a computer programming languageof limited expressiveness

focused on a particular domain.Martin Fowler

Domain Specific Languages

Page 7: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

7

Chaar Banarasi Masala

Zardaa lagaa ke, Katri supaari

Tamaakhu jyaada, Gulkand kam

Page 8: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

8

Page 9: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

9

Page 10: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

10

http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html#enhance

Page 11: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

11

Excerpted from org.hamcrest.examples.junit4.ExampleWithAssertThat.java

Excerpted from http://code.google.com/p/logicalpractice-collections/wiki/GettingStarted

Page 12: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

12

the

popularity of DSLsis a result of…

Page 13: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

13

improved

developerproductivity

Page 14: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

14

better

domain-expertinteraction

Page 15: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

15

Page 16: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

16

Page 17: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

17

Page 18: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

18

Page 19: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

19

Page 20: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

20

Page 21: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

21

Page 22: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

22

Page 23: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

23

Page 24: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

24

Page 25: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

25

If a tree falls in a forest and no one is around to hear it, does it make a sound?

Page 26: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

26

If a Groovy enthusiast talks DSL in a conference and no one is interested in it,

does it help the software community?

Page 27: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

27

Page 28: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

28

If a Groovy enthusiast talks DSL in a conference and no one is interested in it,

does it help the software community?

Page 29: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

29

Page 30: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

30

Page 31: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

31

Page 32: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

32

Page 33: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

33

Page 34: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

34

Page 35: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

35

Page 36: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

36

Page 37: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

37

Page 38: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

38

Page 39: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

39

Page 40: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

40

Page 41: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

41

Page 42: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

42

Page 43: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

43

Page 44: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

44

Page 45: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

45

Page 46: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

46

Page 47: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

47

Page 48: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

48

Page 49: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

49

Page 50: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

50

Page 51: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

51

Page 52: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

52

Page 53: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

53

Page 54: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

54

Page 55: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

55

Page 56: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

56

Page 57: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

57

Page 58: 1 DSLs with Groovy Saager Mhatre. 2 github.com/dexterous code.google.com/u/saager.mhatre saager.mhatre@gmail.com thinkaround.blogspot.com @dexterous.

58

github.com/dexterous

code.google.com/u/saager.mhatre

[email protected]

thinkaround.blogspot.com

@dexterous