"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"
Brian Leek, Data Analyst, May 2022
Why does Java need a partner?
Who are the major players?: Jython, JRuby, Groovy, Groovy, Grails, SpringSource, VMWare.
Groovy support in Eclipse, NetBeans and IntelliJ IDEA.
Groovy support in IntelliJ IDEA is currently the best, but Eclipse support is not far behind. Support for Groovy in NetBeans had been lagging behind quite badly but has recently had a large impetus.
Static typing, overloading.
Dynamic typing, polymorphic programming.
Duck typing.
EAFP: easier to ask forgiveness than permission.
The core issue here is the different way programmers have to think about type and typing in languages such as Groovy, Python, and Ruby compared to Java and Scala. The knock-on effect is the different way of handling polymorphic programming in static languages such as C++ and Java; polymorphism is usually handled by overloading.
Dynamic languages handle this very differently, duck typing.
Writing scripts instead of classes.
Writing classes as usual.
Java, indeed the JVM, requires all code to be contained within a class. Java has no facility for having code outside of a class. Groovy can be used to create classes, but it also has a script capability. Groovy scripts are still classes but the programmer sees a script and the Groovy system handles all the necessary infrastructure issues.
The crucial difference between statically-typed and dynamically-typed languages is that the latter generally have a met-object protocol; a way of redefining features of the language at program runtime. This completely changes the way problems are solved. Python, Perl, Ruby and Groovy all share this approach that was first worked out in Lisp and then Smalltalk.
Builders and domain-specific languages.
Using the meta object protocol to define language at runtime.
Constructing Swing/AWT interfaces the easy way.
Relationship to JavaFX.
Writing scripts instead of classes.
Writing classes as usual.
Java, indeed the JVM, requires all code to be contained within a class. Java has no facility for having code outside of a class. Groovy can be used to create classes, but it also has a script capability. Groovy scripts are still classes but the programmer sees a script and the Groovy system handles all the necessary infrastructure issues.
The crucial difference between statically-typed and dynamically-typed languages is that the latter generally have a met-object protocol; a way of redefining features of the language at program runtime. This
completely changes the way problems are solved. Python, Perl, Ruby and Groovy all share this approach that was first worked out in Lisp and then Smalltalk.
Builders and domain-specific languages.
Using the meta object protocol to define language at runtime.
Constructing Swing/AWT interfaces the easy way.
Relationship to JavaFX.
Reading, writing and processing XML.
Showing how Java makes this hard, and Groovy makes this easy.
Relationship with SAX, W3C DOM, JDOM and Dom4J.
Dynamic methods and GPath: who needs XPath?
AntBuilder: Groovy's interface to the Ant tasks.
Gant: a lightweight Groovy Ant task scripting framework.
Gradle: a Groovy Ivy-based build framework.
Gmaven: making Maven Groovy.
Groovy doesn't have explicit syntax for handling concurrency and parallelism, although it does makes using the Java standard library very easy. On the other hand . . .
High-Level Concurrency and Parallelism using GPars
Groovy now comes with the GPars package as standard. GPars provides APIs for actors, dataflows, concurrency sequential processes (CSP), data parallelism, and software transactional memory (STM). These models for concurrency and parallelism are to be preferred to using shared-memory multi-threading.
When to use Java, when to use Groovy.
How to make sure the integration is good and the problems few.
"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"
Brian Leek, Data Analyst, May 2022
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022
Sign up for the JBI Training newsletter to stay updated with world-class technology training opportunities, including Analytics, AI, ML, DevOps, Web, Backend and Security. Our Power BI Training Course is especially popular. Gain new skills, useful tips, and validate your expertise with an industry-leading organisation, all tailored to your schedule and learning preferences.
Our Groovy training course provides an overview of Groovy architecture, and intensive hands-on experience in the development and implementation of Groovy applications. Groovy is a dynamic object-oriented programming language, with some similarities to Python, Perl, and Ruby. Groovy is a dynamic programming language which is compiled to Java Virtual Machine bytecodes and works seamlessly with other Java code and libraries.
CONTACT
+44 (0)20 8446 7555
Copyright © 2023 JBI Training. All Rights Reserved.
JB International Training Ltd - Company Registration Number: 08458005
Registered Address: Wohl Enterprise Hub, 2B Redbourne Avenue, London, N3 2BS
Modern Slavery Statement & Corporate Policies | Terms & Conditions | Contact Us