San Francisco, California
London, United Kingdom
Join us on August 23rd for the second GOTO Night in Chicago with Erik Meijer and Rich Hickey. The agenda for the evening will start with food and drinks from 5:15 - 6:00 PM and the presentations will begin at 6:00PM.
Fundamentalist Functional Programming - Erik Meijer Designer of MS LINQ and FP Expert
In 1984, John Hughes wrote a seminal paper titled, “Why Functional Programming Matters,” in which he eloquently explained the value of pure and lazy functional programming. Due to the increasing importance of the Web and the advent of many-core machines, in the quarter of a century since the paper was written, the problems associated with imperative languages and their side effects have become increasingly evident.
This talk argues that fundamentalist functional programming-that is, radically eliminating all side effects from programming languages, including strict evaluation-is what it takes to conquer the concurrency and parallelism dragon. Programmers must embrace pure, lazy functional programming “all the way”-with all effects apparent in the type system of the host language using monads.
A radical paradigm shift is the answer, but does that mean that all current programmers will be lost along the way? Fortunately not! By design, LINQ is based on monadic principles, and the success of LINQ proves that the world does not fear the monads.
The Database as a Value - Rich Hickey Designer of Clojure and Datomic
Proponents of functional programming tout its many benefits, most of which are available only within a particular process, or afforded by a particular programming language feature. Anything outside of that is considered I/O, dangerous and difficult to reason about. But real systems almost always cross process and language boundaries, and most require, crucially, a very gnarly bit of shared state - a database. In this talk we will examine how Datomic renders the database into that most prized and easy-to-reason-about construct, a value, and makes it available to multiple processes in multiple languages, functional and not.
Along the way, we'll discuss the importance of immutability and time in representing information, the reification of process, and the mechanisms of durable persistent data structures. No knowledge of functional programming is required.
Erik Meijer is an accomplished programming-language designer who has worked on a wide range of languages, including Haskell, Mondrian, X#, Cω, C#, and Visual Basic. He runs the Cloud Programmability Team at Microsoft, where his primary focus has been to remove the impedance mismatch between databases and programming languages. One of the fruits of these efforts is LINQ, which not only adds a native querying syntax to .NET languages, such as C# and Visual Basic, but also allows developers to query data sources other than tables, such as objects or XML. Most recently, Erik has been working on democratizing the Cloud using Volta and preaching the virtues of fundamentalist functional programming in the new age of concurrency and many-core. Some people might recognize him from his brief stint as the "Head in the Box" on Microsoft VBTV.
Rich Hickey, the author of Clojure, is an independent software designer, consultant and application architect with over 20 years of experience in all facets of software development. Rich has worked on scheduling systems, broadcast automation, audio analysis and fingerprinting, database design, yield management, exit poll systems, and machine listening.
Special thanks to our GOTO Night Sponsors, DRW Trading Group and DevMynd.
When & Where
GOTO Chicago 2015
GOTO Nights are designed for developers who want to stay up to date with the latest tools, technologies, processes and practices in the software industry. GOTO Nights provide you with an opportunity to hear world-class speakers, share your experience and expertise with others, connect with the global software community and learn something or meet someone new! GOTO Conferences will be running the third annual GOTO Chicago Conference and Trainings May 11-14, 2015, for more information about the conference: http://gotocon.com/chicago-2015/
For past events, please visit: http://gotocon.com/chicago-2014/
Videos from the 2014 presentations are online here: http://bit.ly/GOTOChgoVideos