Your current filters are…
by Neal Ford
Learning the syntax of a new language is easy, but learning to think under a different paradigm is hard. This session helps you transition from a Java writing imperative programmer to a functional programmer, using Java, Clojure and Scala for examples. This session takes common topics from imperative languages and looks at alternative ways of solving those problems in functional languages. As a Java developer, you know how to achieve code-reuse via mechanisms like inheritance and polymorphism. Code reuse is possible in functional languages as well, using high-order functions, composition, and multi-methods. I take a variety of common practices in OOP languages and show the corresponding mechanisms in functional languages. Expect your mind to be bent, but you’ll leave with a much better understanding of both the syntax and semantics of functional languages.
Since Chloe works with any language, we’ll start off by showing how to integrate it with Java, Ruby, and Python apps. Next we’ll look at the various use cases of the realtime web and see how Chloe’s API will support you in all of them. We’ll then go into the performance and security characteristics of Chloe. Finally, we’ll talk about the operations side of Chloe. By the time you leave, you’ll know how to deploy, monitor, and most importantly, use Chloe like a pro.
We present a new statically typed JVM-targeted programming language developed by JetBrains and intended for industrial use.
The main design goals behind this project are to create a Java-compatible language, make it compile as fast as Java, make it safer than Java, i.e. statically check for common pitfalls such as null pointer dereference, make it more concise than Java by supporting local type-inference, first-class functions (closures), extension functions, mixins and first-class delegation, etc; and, keeping the useful level of expressiveness (see above), make it way simpler than the most mature competitor — Scala.
The compiler is being developed alongside with an IntelliJ IDEA integration, so the users will get IDE support as soon as they get the compiler (first public version is planned for the end of 2011).
by Yoko Harada
If you are a JVM language lover, this presentation is for you because you know you can mix multiple JVM languages in a single code. If you have JRuby in your toolbox, Ruby and RubyGems are friends of your favorite JVM languages. Even famous RubyGems, Rails, is, for example. Isn’t it nice? You can get a lot of help from RubyGems without writing Ruby code. Magic is RedBridge. RedBridge is Java API to hook Ruby code up, easily.
But, wait. Why didn’t JRuby simply implement JSR223? Off course, JRuby has a JSR223 engine; however, it is, unfortunately, short for JRuby. Important methods and ideas are missing. That’s why JRuby had RedBridge, which is really JRuby friendly. For example, below is a list of the ideas/methods added to RedBridge:
Now, we know you can do that for scripting languages, but what do we do about Java? With the proper context, 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 for this specific purpose, but also draw examples from the Apache Tapestry web framework, which itself is rich in meta-programming constructs.
18th–20th September 2011