InfoQ Homepage JVM Languages Content on InfoQ
-
Clojure: The Art of Abstraction
Alex Miller presents some of the abstractions that make Clojure a great language: Collections, Sequence and Higher Order Functions, Multimethods, Protocols, Atoms, Macros, and others.
-
Introducing the Ceylon Project
Gavin King introduces Ceylon, a prototype language for the Java Virtual Machine which attempts to combine the strengths of Java with the power of higher order functions and declarative programming.
-
Perception and Action: An Introduction to Clojure's Time Model
Stuart Halloway discusses how we use a total control time model, proposing a different one that represents the world more accurately helping to solve some of the concurrency and parallelism problems.
-
Monads Made Easy
Jim Duey demystifies monads through code examples written in Clojure, explaining what monads are, how they are used and how to write one.
-
Code Generation on the JVM: Writing Code that Writes Code
Hamlet D`Arcy demonstrates some of the Groovy tools useful to increase productivity by generating code at compile time: Project Lombok and AST Transforms.
-
Groovy for Java Programmers
Jeff Brown introduces Groovy to Java developers, outlining the conciseness and expressivity of the language and covering various topics: GStrings, Closures, collections, builders, beans, etc.
-
DSL Evolution for Groovy Developers
Peter Bell explains DSLs, how to approach writing one, and especially how to evolve one over time using "fixing the API", "backwards compatibility", "versioning" and "automated evolution/checking”.
-
Groovy.DSLs (from: beginner, to: expert)
Paul King and Guillaume Laforge present Groovy’s capabilities to build DSLs through several concrete examples meant to highlight the language’s good support for creating internal DSLs.
-
JRuby: Apples and Oranges
Thomas Enebo explains the basics of JRuby, showing what’s different from Java, how Java and JRuby interact with each other, and some examples demonstrating the usefulness of a complementary language.
-
Advanced GORM - Performance, Customization and Monitoring
Burt Beckwith discusses potential performance problems using mapped collections and Hibernate 2nd-level cache in GORM, along with strategies for avoiding such performance penalties.
-
Clojure-Java Interop: A Better Java than Java
Stuart Dabbs Halloway reviews Clojure’s syntax and explains how Clojure-Java interop works. He then talks about simplicity, attempting to prove that Clojure is a simpler and better language than Java.
-
Groovy Update: To Infinity and Beyond!
Guillaume Laforge reviews the main Groovy 1.6 and 1.7 features, and what’s coming in Groovy 1.8: closures, modularization, Java 7 support, DSL, AST templates, better performance.