Now, we know you can do that for scripting languages, but what do we do about Java? With the proper context (some kind of framework responsible for instantiating classes), it is possible to emulate many of those same capabilities, by applying a simple set of code transformations at runtime. In this session you’ll learn about meta-programming and how it can apply to traditional Java. You’ll learn about the techniques needed to transform classes at runtime, adding new behaviors and addressing cross-cutting concerns. The presentation will discuss a new framework, plastic, designed for this specific purpose, but also draw examples from the Apache Tapestry web framework, which itself is rich in meta-programming constructs.
by Erik Onnen
Programming server-side Java can still be concise, effective and iterative but doing so requires changing long-standing assumptions about how Java should be written. For Java to continue to compete for developer mindshare, Java idioms need to be informed by frameworks like Sinatra and languages like Scala and Erlang.
This talk will cover techniques for writing Java applications that are highly performant and operate at scale while keeping maintenance and operational impedance low. The talk will challenge long held beliefs about Object Oriented programming, IoC and ORM frameworks and techniques for building HTTP services. The talk will attempt to demonstrate that by using simplified idioms while leveraging the power of Java tooling (such as IDEs), Java is still one of the best programming languages for the JVM and the best for deploying high performance applications on the JVM.
Twitter is increasingly relying on services written in either Java or Scala and running on the JVM. While JVM gives us a world-class runtime in terms of operational stability, performance, and manageability, it is still not trivial to achieve the desired performance characteristics of the programs being run on it, especially when you're dealing with services that need lots of memory, or have very low latency requirements, or both. In this talk, we'll present examples of performance problems we encountered while operating JVM-based services and the ways we solved them.
14th–18th November 2011