We are passionate about the tools we use. Gambit developers keep up-to-date with new technologies and new programming methods. We have a proactive approach to using novel tools where they suit our needs.
The mix of languages at Gambit is always evolving but our current favourites are Erlang and Python.
Most of our systems are written in the general purpose high-level language Python. Its straightforward syntax makes it excellent for rapid prototyping.
The core of our system is written in Erlang. Erlang has excellent concurrency features which were developed for its original application in large telephony systems. This concurrency framework is based on an actor model with immutable data. It's massively scalable and excellent for large real-time systems such as ours. Erlang is quite an esoteric language which many programmers have heard of in an academic context but few people have used commercially. Most new recruits don't know Erlang prior to joining Gambit and learn it here as and when they need to know it.
Many of our projects include a web-based component. We have some public-facing products which deploy to the web and we also use private websites as interfaces for our internal projects. We use Django, WebSockets, AngularJS, CherryPy and React to build our frontends. The backends are mostly written in Python and communicate with our core Erlang system using TCP sockets.
Gambit statisticians make good use of modern open source data analysis technologies. The core of our analytic work is done using the R statistical computing environment and the Python data ecosystem (IPython notebook and pandas) but our analysts are free to use the tools that make them most productive. Recently we've found a lot of value in Julia and F# as well as fast Monte Carlo simulations written in C.
Gambit believes that open source software is better software. Our system is built on open source wherever possible and when we fix problems in open source projects we push our changes back to the world. Projects the team has contributed to include Psycopg, PyPy, Tulip and AngularJS.
Although our existing system is largely written in Python and Erlang we are not committed to using those languages for all projects. Smaller components of our system have been written in a large variety of languages, including C, C++, Go, and Java.