Explore the disconnect between the dire outcomes for dynamic language programs predicted by advocates of static typing, versus the near absence of type errors in real world systems built in Python, Ruby and Clojure and the many successful systems built in dynamic languages.
Some programming language theorists would have us believe that the one true path to working systems lies in powerful and expressive type systems which allow us to encode rich constraints into programs at the time they are created. If these academic computer scientists would get out more, they would soon discover an increasing incidence of software developed in languages such a Python, Ruby and Clojure which use dynamic, albeit strong, type systems. They would probably be surprised to find that much of this software—in spite of their well-founded type-theoretic hubris—actually works, and is indeed reliable out of all proportion to their expectations.
This talk—given by an experienced polyglot programmer who once implemented Hindley Milner static type inference for “fun”, but who now builds large and successful systems in Python—explores the disconnect between the dire outcomes predicted by advocates of static typing versus the near absence of type errors in real world systems built with dynamic languages: Does diligent unit testing more than make up for the lack of static typing? Does the nature of the type system have only a low-order effect on reliability compared to the functional or imperative programming paradigm in use? How often is the dynamism of the type system used anyway? How much type information can JITs exploit at runtime? Does the unwarranted success of dynamically typed languages get up the nose of people who write Haskell? For the answers to these important questions, and more, don’t miss this session.
Robert Smallshire
Robert has worked in senior technical and management roles for several software companies providing tools in the energy sector for dealing with the masses of information flowing from today’s digital oil fields. He has dealt daily with understanding, designing, advocating and implementing effective architectures for sophisticated scientific and engineering software in Python, C++, C# and F#. He suspects there’s might be something profoundly “right” about Haskell, but keeps making stuff that “just works” in Python anyway. Robert is a regular speaker at conferences, meetups and corporate software events and can be found speaking about topics as diverse as behavioural microeconomics in software architecture to implementing web services on 8-bit microcontrollers. He is organiser of the Oslo Python group and holds a Ph.D. in a natural science. Robert has recently founded Sixty North, a software product and consulting business operating throughout Europe and based in Norway.