Scripting languages in Java
Andrey Duka, System [email protected]
Scripting languages in Java
Andrey Duka, System [email protected]
2
Java != Java platform
3
Agile Web Development with Java
4
Хорошее определениеХорошее определение
“A scripting language is a form of programming language that is usually
interpreted rather than compiled”
- whatis.com
5
Groovy, Ruby, Python, PHP
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
7
Небольшой список языковНебольшой список языков
BeanShell Frink Groovy Hecl
Jacl JavaScript Jelly
Joy Jruby Judoscript Jython
JavaFX Script ObjectScript Pnuts Scala
Sleep V Yoix
8
Чудесная цитатаЧудесная цитата
“All configuration files eventually become programming languages…”
- James Gosling
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
10
Нельзя не упомянутьНельзя не упомянуть
DSL
11
Ещё одно определениеЕщё одно определение
“A Domain Specific Language (DSL) is a computer programming language of limited
expressiveness focused on a particular domain.”
- Martin Fowler
12
DSL пример / красотаDSL пример / красота
write 'readme.txt'.contents()
13
DSL пример (продолжение)DSL пример (продолжение)
String.metaClass.contents = {this.class.getResourceAsStream(delegate).getText()
}
def write = { file ->println file
}
write 'readme.txt'.contents()
14
Примеры повседневного использованияПримеры повседневного использования
• BEA Weblogic – wslt• IBM WebSphere – wsadmin• Eclipse – GroovyMonkey• JavaFX - JavaFX Script
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
16
Сколько строчек кода?Сколько строчек кода?
Вопрос: сколько строчек кода/конфигурционных файлов нужно чтобы сделать on-line менеджер списка задач?
50, 100, 500 ?
17
ОтветОтвет
38
18
Очень полезные ссылкиОчень полезные ссылки
PROS vs. CONS
19
ПомнитеПомните
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
21