Track: Cool Languages

Friday

10:00-10:50

Have you tried Mirah yet?

Mirah is a pragmatic approach to JVM languages. These days, we have dynamic languages offering higher productivity and fancy web frameworks, functional languages promising to save us from concurrency headaches, and static-typed languages giving us almost infinitely extensible type systems. Mirah is different, delivering a rich set of language features with no runtime dependencies. It borrows Ruby's syntax for clean code, but it is static-typed with optional dynamic typing like C#. It supports macro expansions like C, making it more fluid and extensible. The type system is almost identical to Java, and the compiler can output both class files and Java source files. Come see why Mirah may be your next JVM language.

Have you tried Mirah yet?

Charles Nutter

Charles Oliver Nutter has been co-lead of the JRuby project for the past four years, working on performance and Java integration, and helping to coordinate community efforts. During that time JRuby has become a premier platform for Ruby users, allowing both a gateway to Java-centric organizations as well as an excellent Ruby implementation. Charles hopes to expand JRuby’s success to other JVM languages, building the JVM into the best platform for multi-language development.

11:10-12:00

The top ten things in Clojure that will make you a better developer in any language

Clojure is an exciting new language for the Java and .NET platforms. It is a modern Lisp featuring dynamic meta-programming, transactional memory and cool concurrency concepts that are well suited for the multi-core reality of today. This talk will present some of its key concepts and innovations: You will learn how immutability and persistent collections vastly simplify state management. We will explore its concurrency model with Software Transactional Memory. You wil see how Clojure provides a powerful yet simple programming model by separating out the concerns from the OO class concept. Finally, we will see how its meta-programming features enable us to turn Clojure into just the language you need for your application. No prior Clojure experience is required.

The top ten things in Clojure that will make you a better developer in any language

Martin Jul

Martin Jul is a software developer in Copenhagen, Denmark. A programmer since age 11 and a Clojure developer since 2009, he started the Copenhagen Clojure meet-ups to provide a forum for the Danish Clojure community to share their ideas. He also wrote the Docjure library to provide Excel spreadsheet manipulation in Clojure code small enough to tweet. Over the years he has written software for a number of industries as diverse as military command-and-control systems and dating systems for teletext and SMS. He is currently working with the financial sector building trading systems in C# and Clojure. He lives in Copenhagen, Denmark and is a partner in Ative.

13:00-13:50

Graphical System Design with G

The first vision for G was to do for measurement systems what excel did for accounting. Now the vision is to be the google earth of your development project, letting you go from high level system views down do fine details in FPGA signals. Do you ever create systems abridging the realms of Desktop|Embedded|FPGA ? Picture this: a graphical programing language diagram suitable for designing such a system. You may have written your last line of code. By the way, how else were you going to use that shiny new tablet?

Graphical System Design with G

Marcus Johnson

Marcus is a seasoned system architect, building measurement and control systems for more than a decade. His mission is to bring software industry best practices into the world of industrial and scientific systems, predominately graphically designed. After years of presenting and training, the tables have turned and Marcus is now also a G-Evangelist, presenting the experience of graphically designing advanced real-time systems and FPGAs to the traditional software engineering industry.

14:05-14:55

Haskell

Haskell is now quite widely used, but its most important contributions are the ideas that it embodies. In this talk I will focus on one of these ideas, namely type classes, with a few anecdotes and reflections along the way about the process of developing the language.   Type classes are probably Haskell's most distinctive feature. The original idea is very neat and, better still, it led to a long series of subsequent generalisations and innovations. Indeed, although the language is now nineteen years old, Haskell's type system is still in a state of furious development. For example, I am involved in adding type-level functions to Haskell, as I will briefly describe.   I will explain what type classes are, how they differ from the classes of mainstream object oriented languages, why I think they are so cool, and what the hot topics are. I'll give plenty of examples, so you don't need to already know Haskell.

Haskell

Simon Peyton Jones

Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University, before moving to Microsoft Research (Cambridge) in 1998. His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. He was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.

15:15-16:05

Modeling concurrency in Ruby and beyond

The world of concurrent computation is a complicated one. We have to think about the hardware, the runtime, and even choose between half a dozen different models and primitives: fork/wait, threads, shared memory, message passing, semaphores, and transactions just to name a few. And that's only the beginning.What about "alternative concurrency models"? Can you name any, how are they different, what do they give us? Stop by to learn about CSP, Actor, and other models, in Ruby and beyond.

Modeling concurrency in Ruby and beyond

Ilya Grigorik

Ilya Grigorik is a developer, an open-source and Ruby evangelist, a data-geek, and a proverbial early adopter of all things digital. Now living in the San Francisco Bay Area, Ilya is working on Social Analytics @ Google. Prior to joining the Google Analytics team, Ilya was the founder and CTO of PostRank, a social web analytics company which was acquired by Google in June 2011. In 2008, Ilya was the recipient of the Ruby Hero award for his contributions to the Ruby community.