No – I am not going to discuss the theoretical pros and cons of Scala and Python. Instead, I am going to talk about the practical issues startup founders like me face in establishing our main language.
The context: The core of ZLemma.com is a mathematical framework involving highly structured data representations and numerical algorithms. The product involves a large relational database and is delivered through a web application. We wanted to move fast with our development, but we also wanted to build for scale and robustness. A compiled language like C++ was not in consideration because dev progress would be too sluggish. On the other hand, a web programming language like PHP was also not in consideration because it simply wouldn’t work for mathematical modeling.
Initial Thoughts: My first thought was Haskell. You say, “Haskell? Are you crazy?” Crazy– You got that right. It’s a very beautiful language and once you start coding in Haskell, you tend to get religious about functional programming. Lately, Haskell has become a fairly pragmatic language and is gaining popularity because of the emergence of functional programming paradigms in mainstream languages. However, people talked me out of it – although I am still considering Haskell as a choice for the future
The next thought was Scala. Scala is inspired by Haskell and is a more pragmatic functional programming language because of its interop with Java. I decided that Scala will be our core language and that we will program in Scala in the “Haskell-style”.