Paul King has broad experience in both technical and managerial roles across the telecommunications and information technology industries. He has a passion for innovation and often assists organizations in bringing new technologies or processes into their development practices. He has been contributing to open source projects for more than fifteen years, has contributed to international standards, has won prizes for his research, and is a frequent speaker at international conferences. His special interest areas are Java, Java EE, lightweight frameworks such as Spring, agile development, open source testing tools, XML and Web services, and dynamic languages such as Ruby and Groovy.
Developer practices for traditional and agile Java development are well understood and documented. But dynamic languages—Groovy, Ruby, and others—change the ground rules. Many of the common practices, refactoring techniques, and design patterns we have been taught either no longer apply or should be applied differently and some new techniques also come into play. In this talk, techniques for agile development with dynamic languages are discussed. How should we apply design patterns? How should we better apply refactoring techniques? What new aspects do we need to think about?
This talk looks at using Groovy for multi-threaded, concurrent and grid computing. The talk covers everything from using processes, multiple threads, the concurrency libraries ear-marked for Java 7, functional programming/actors and grid computing frameworks with Groovy. Briefly covered is also testing multi-threaded programs.
Groovy is an open source dynamic language which runs on the JVM. Its goal is to bring lightweight, agile, and dynamic programming to the Java world. It encompasses powerful features from Ruby, Python, PERL and Smalltalk in an expressive and intuitive syntax while keeping the view and perspective of a Java programmer. Its seamless integration with Java makes it a perfect solution for enhancing your current Java projects with dynamic behavior. This tutorial takes you through all of the basics of programming with Groovy then examines common programming tasks like file processing, XML procesing, SQL processing. Finally, it touches upon some of the fun stuff like builders, closures, metaprogramming and more. Where appropriate Apache technologies will be used when illustrating Groovy examples.
Groovy provides excellent facilities for parsing and creating XML. As well as providing syntactic sugar on top of traditional Java-based parsing approaches (e.g. SAX, DOM, StAX), it has its own XmlParser and XmlSlurper libraries which support XPath-like expressions at the object level (akin to LINQ in the .Net world). It also integrates nicely with XPath, XQuery, XSLT as well as with popular XML libraries. Groovy's markup builders provide an elegant and efficient way to create and modify XML. All these features can work with Apache Xerces or with native XML support on 1.4 through to 1.7 JVMs. In addition to its base XML capabilities, Groovy modules exist for doing XML-RPC, REST and SOAP Web Services including RSS, ATOM and other popular XML dialects. Groovy-WS is based on Apache CXF and provides a simple and elegant way to create Web Services without the need for worrying about stubs.