Hello World

Benjamin Garrett
Math Camp Engineering
2 min readMar 15, 2016

At Math Camp, we believe that the choice of development language has far reaching effects.

From defining aspects such as type safety and the use of pointers vs. references down to the small and stylistic details such as supporting only a single public class per file, the language utilized affects not just the end product but also how the programmer thinks and talks about it, what is possible, and who can understand the system.

As discussed by Paul Graham [1], languages also vary in power. You will end up with a much different program by starting out in Assembly vs. Lisp. The Assembly program requires the programmer to think about how the processor works on an instruction level. In Lisp, the low level concerns have been abstracted away, freeing the programmer to consider the problem at hand more deeply.

As a startup focused on mobile applications, we want to pick languages that are native to our core platforms but are also as powerful as possible. Most importantly, we want to be immersed in modern languages to grow as engineers and find elegant and reusable solutions to old problems.

We’ve built plenty of mobile applications in Java and Objective-C using a Model View Controller design. MVC was designed nearly 50 years ago when computing and user interfaces were much simpler. We want to use languages that make it easy to try new approaches such as functional reactive and unidirectional data flow-based user interfaces.

Therefore, we’ve chosen to use Swift on iOS, Kotlin on Android, and Go on the server. The following posts on this blog will go into greater detail about how we’re using these languages and what approaches we land on. We hope to update frequently and also open source interesting projects we build along the way. Thanks for joining us on this journey.

[1] Paul Graham: Beating the Averages
http://www.paulgraham.com/avg.html

--

--