As Java continues to age, many developers ask how a language for general purpose & business computing would look if designed today. The result is Ceylon - a prototype language for the JVM which attempts to combine the strengths of Java with the power of higher order functions and declarative programming. This talk from QCon Beijing 2011, Gavin King introduces Ceylon for the first time.
Danny Coward talks on how Oracle intends to maintain Java in the front line by investing in two features that are trendy today: support for multiple JVM languages and parallel programming.
Ola Bini offers advice to those interested in using the JVM with languages other than Java, talking about language interoperability, polyglot patterns, build tools, tweaking the JVM, and JVM tools.
Guy Steele, Douglas Crockford, Josh Bloch, Alex Payne, Bruce Tate, and Ted Neward (moderator) hold a discussion on the future of programming. Topics included: the future beyond functional, running JVM/CLR on many cores, what is the future of type checking and type systems, languages for education, comparing DSLs and ubiquitous languages, proving code correctness, functional and parallelism.
Alex Buckley presents some of the challenges for JVM to become a universal virtual machine, serving the needs of Java and non-Java languages, being useful both to statically and dynamically-typed languages, and supporting an ever growing number of languages and their features targeting the platform.
Mark Thomas explains what are the common OutOfMemoryError failures that could appear when running Java applications, showing how to diagnose such errors. He also discusses the JVM and tc Server configuration parameters affecting memory settings.
Tom Enebo explains reasons for choosing JRuby: Hotspot optimizations, JVM Garbage Collectors, tools like profilers. Also: how JRuby helps to write cleaner, more expressive code with Java libraries.
In this presentation from the JVM Language Summit 2009, Allison Randal discusses what it means for a language to be dynamic, the spectrum between static and dynamic languages, dynamic typing, dynamic dispatch, introspection, dynamic compilation, dynamic loading, and a summary of the main differences between static and dynamic.
In this presentation from the JVM Languages Summit 2009, Cliff Click discusses the Von Neumann architecture, CISC vs RISC, the rise of multicore, Instruction-Level Parallelism (ILP), pipelining, out-of-order dispatch, static vs dynamic ILP, performance impact of cache misses, memory performance, memory vs CPU caching, examples of memory/CPU cache interaction, and tips for improving performance.
Jonas Bonér talks about Scala: using OO and the type system to create reusable components, using closures, high-order functions, immutability to create coherent and deterministic code, using Actors to create concurrent and event-driven systems, and using ORM, AOP, DI and Testing with Scala.
Erlang is built on 3 components: language, OTP, and VM. Francesco Cesarini explains the role played by each component in order to ensure Erlang’s highly successful concurrency model which has been used in communication systems for more than 15 years. The presentation is accompanied by live demos and many questions are taken from the audience.
In this presentation recorded at QCon London 2009, after a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed in front of the audience.