scripting languages in java andrey duka , system architect andrey.duka@exigenservices
DESCRIPTION
Scripting languages in Java Andrey Duka , System Architect [email protected]. Java != Java platform. Agile Web Development with Java. Хорошее определение. “A scripting language is a form of programming language that is usually interpreted rather than compiled” - whatis.com. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/1.jpg)
Scripting languages in Java
Andrey Duka, System [email protected]
Scripting languages in Java
Andrey Duka, System [email protected]
![Page 2: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/2.jpg)
2
Java != Java platform
![Page 3: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/3.jpg)
3
Agile Web Development with Java
![Page 4: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/4.jpg)
4
Хорошее определениеХорошее определение
“A scripting language is a form of programming language that is usually
interpreted rather than compiled”
- whatis.com
![Page 5: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/5.jpg)
5
Groovy, Ruby, Python, PHP
![Page 6: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/6.jpg)
6
Немного исторической информации Немного исторической информации
1997 - Jim Hugunin created Jython
2000 - «BeanShell and Dynamic Java» Patrick Niemeyer
2001 - Jan Arne Petersen created JRuby
2004 - JSR 241: Groovy programming language
2005 - Sun releases alpha of Coyote
2006 - JSR 223: Scripting for the JavaTM Platform
2007 - Groovy 1.0
2008 - Grails 1.0
![Page 7: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/7.jpg)
7
Небольшой список языковНебольшой список языков
BeanShell Frink Groovy Hecl
Jacl JavaScript Jelly
Joy Jruby Judoscript Jython
JavaFX Script ObjectScript Pnuts Scala
Sleep V Yoix
![Page 8: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/8.jpg)
8
Чудесная цитатаЧудесная цитата
“All configuration files eventually become programming languages…”
- James Gosling
![Page 9: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/9.jpg)
9
XML примерXML пример
groovy.xml.MarkupBuilder def myXMLDoc = new MarkupBuilder() myXMLDoc.workbook { worksheet(caption:"Employees") { row(fname:"John", lname:"McDoe") row(fname:"Nancy", lname:"Davolio") } worksheet(caption:"Products") { row(name:"Veeblefeetzer", id:"sku34510") row(name:"Prune Unit Zappa", id:"sku3a550") } } println myXMLDocuages
![Page 10: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/10.jpg)
10
Нельзя не упомянутьНельзя не упомянуть
DSL
![Page 11: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/11.jpg)
11
Ещё одно определениеЕщё одно определение
“A Domain Specific Language (DSL) is a computer programming language of limited
expressiveness focused on a particular domain.”
- Martin Fowler
![Page 12: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/12.jpg)
12
DSL пример / красотаDSL пример / красота
write 'readme.txt'.contents()
![Page 13: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/13.jpg)
13
DSL пример (продолжение)DSL пример (продолжение)
String.metaClass.contents = {this.class.getResourceAsStream(delegate).getText()
}
def write = { file ->println file
}
write 'readme.txt'.contents()
![Page 14: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/14.jpg)
14
Примеры повседневного использованияПримеры повседневного использования
• BEA Weblogic – wslt• IBM WebSphere – wsadmin• Eclipse – GroovyMonkey• JavaFX - JavaFX Script
![Page 15: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/15.jpg)
15
Web разработка & GRailsWeb разработка & GRails
“For me, Grails is the natural next step for Java EE developers. If Spring
and Hibernate provided an abstraction over Java EE and simplified
development, then Grails is an abstraction over Spring, Hibernate,
and Java EE that can take you, the developer, to the next level.”
- Christopher M. Judd, Judd Solutions
![Page 16: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/16.jpg)
16
Сколько строчек кода?Сколько строчек кода?
Вопрос: сколько строчек кода/конфигурционных файлов нужно чтобы сделать on-line менеджер списка задач?
50, 100, 500 ?
![Page 17: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/17.jpg)
17
ОтветОтвет
38
![Page 18: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/18.jpg)
18
Очень полезные ссылкиОчень полезные ссылки
PROS vs. CONS
![Page 19: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/19.jpg)
19
ПомнитеПомните
![Page 20: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/20.jpg)
20
Очень полезные ссылкиОчень полезные ссылки
• https://scripting.dev.java.net/• JSR 223: Scripting for the JavaTM Platform• JSR 241: The Groovy Programming Language• Bean Scripting Framework• http://grails.org• http://groovy.codehaus.org• http://jruby.codehaus.org
![Page 21: Scripting languages in Java Andrey Duka , System Architect andrey.duka@exigenservices](https://reader035.vdocuments.site/reader035/viewer/2022081503/56814df7550346895dbb6322/html5/thumbnails/21.jpg)
21