GOTO Amsterdam (June 17-19, 2015) is a vendor independent international software development conference with more that 50 top speakers and 500 attendees. The conference covers topics such as AngularJS, Disruption, Docker, Drones, Elasticsearch, Hadoop, Microservices & Scrum.

GOTO Night: Functional Thinking

Host: Neal Ford & Eelco Visser

When: 17. Nov 2014 at 18:00 - 22:00

Where: Trifork, Rijnsburgstraat 9-11, 1059 AT Amsterdam


Venue/Host Trifork
Costs Free of charge
Speaker Neal Ford & Eelco Visser
Pizza & refreshments included

18:00 Registration & Pizza
18:30 Short Intro
18:35 Eelco Visser
19:30 Short break
19:45 Neal Ford
20:45 Ending with beers

"Interactive Language Design with the Spoofax Language Workbench" by Eelco Visser

The Spoofax language workbench is a platform for the development of textual software languages with state-of-the-art IDE support. Spoofax provides a comprehensive environment that integrates syntax definition, name binding, program transformation, code generation, and declarative specification of IDE components. It supports agile development of languages by allowing incremental, iterative development of languages and showing editors for the language under development alongside its definition.

This talk presents principles and techniques for the design and implementation of software languages in Spoofax. These techniques are explained using Spoofax's high-level DSLs for language engineering. Spoofax's testing language enables test-driven language engineering. The syntax definition formalism SDF supports modular definition of (composite) languages. The name binding language NaBL enables declarative definitions of name binding and scope rules of software languages. The Stratego transformation language unifies model transformation and code generation. The use of concrete object syntax allows structured transformation patterns to be phrased in the syntax of the source language.

Eelco Visser is Antoni van Leeuwenhoek Professor of Computer Science at Delft University of Technology. He received a master's and doctorate in computer science from the University of Amsterdam in 1993 and 1997, respectively. Previously he served as postdoc at the Oregon Graduate Institute, as Assistant Professor at Utrecht University, and as Associate Professor at TU Delft.

His research interests include programming languages, software language engineering, domain-specific programming languages, program transformation, software security, and interaction design. With his students he has designed and implemented the Spoofax language workbench, as well as many domain-specific languages, including DSLs for syntax definition (SDF), program transformation (Stratego), software deployment (Nix), web application development (WebDSL), and mobile phone applications (mobl). He is the lead developer of the researchr bibliography management system and the WebLab learning management system.

Twitter: @EelcoVisser

"Functional Thinking in Java 8, Clojure, Groovy, and Scala" 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 show examples from my book Functional Thinking of shifting your perspective on problems, ceding messy details to the language, working smarter, not harder, and how to deal with multiparadigm languages.

Neal Ford is Director, Software Architect, and Meme Wrangler at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery. He is also the designer and developer of applications, magazine articles, video/DVD presentations, and author and/or editor of eight books spanning a variety of subjects and technologies, including the most recent Presentation Patterns and Functional Thinking. He focuses on designing and building of large-scale enterprise applications. He is also an internationally acclaimed speaker, speaking at over 300 developer conferences worldwide, delivering more than 2000 presentations. Check out his web site at He welcomes feedback and can be reached at

Twitter: @neal4d

Download Slides [PDF]

If you have questions or must cancel your registration, please don't hesitate to contact Andy Knobel at


We're sorry, registration is closed