I think we need to adopt a more robust programming language in the future than ruby. Ruby has been great in terms of letting us build things fast up to now. But Ruby falls shorts in speed and robutness.
At the moment we do thinks like:
- Guard for the type of an argument functions, we raise if incorrect
- Use Json.schema to validate hashes
- Check for nils and return nils if nil
- Create unit test that check what would happen when an input is nil
All these things should be unnecessary with a different language.
What I think we should look for:
- Something very fast for data processing
- Something with much better type safety, specifically having nils in Ruby is a big problem for us, as we do cost and financial calculations, nil are something that we need to check everywhere and can be easily forgotten.
- Something that has a fair amount of libraries
I think we should pick a language that has the concept of Maybe
or Option
. Dealing with nil for the work we are doing is very error prone.
My suggestions are Haskell or F# on the back end. Elm on the front end.