Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gaming Platform Case Study

  • Yasuaki Takebe GREE Inc
September 22, 2013 3:55 - 4:15 PM


Functional programming is already an established technology is many areas. However, the lack of skilled developers has been a challenging hurdle in the adoption of such languages. It is easy for an inexperienced programmer to fall into the many traps of functional programming, resulting in a loss of productivity and bad software quality. Resource leaks caused by Haskell's lazy evaluation, for instance, are only the tip of the iceberg. Knowledge sharing and a mature tool-assisted development process are ways to avoid such pitfalls. At GREE, one of the largest mobile gaming companies, we use Haskell and Scala to develop major components of our platform, such as a distributed NoSQL solution, or an image storage infrastructure. However, only 11 programmers use functional programming on their daily task. In this talk, we will describe some unexpected functional programming issues we ran into, how we solved them and how we hope to avoid them in the future. We have developed a system testing framework to enhance regression testing, spent lots of time documenting pitfalls and introduced technical reviews. Recently, we even started holding lunchtime presentations about functional programming in order to attract beginners and prevent them from falling into the same traps.

Yasuaki Takebe

obtained MS degree in computer science from the University of Tokyo in 1997. He was a researcher at Hitachi Ltd from 2004 to 2011 and researched model-based software engineering. He has been an engineer at GREE, Inc. since 2011. Currently, he develops server-side middleware for mobile gaming platform using Haskell.