We are ceaselessly reminded of life’s fragility as we watch every cell, body, and star expire, disintegrate, and fade. An unending confusion attends our senses as they helplessly seek agency in a senseless void. And the brevity of this nasty brutishness is its cruelest irony. We must conclude that life is a fragile, confusing, and brief glimpse of an incomprehensibly beautiful yet ultimately indifferent universe.
The universe contains one countervailing force, however, that can fortify fragility, blow back the fog of confusion, and buy us at least one more sunset with a lover, one more bedtime story with our children, one more proud moment with a venerated elder.
Xamarin Insights is an app monitoring service that reports crashes and analyzes user behavior for apps built with Xamarin Platform. When we designed Insights, we wanted to render the most useful and beautiful stacktraces of any similar service. I’d like to explain the surprisingly sophisticated technology we deployed to render deceptively simple stacktraces.
A monad is a fancy word for a generic type of the form MyMonad<T>
(a generic type of arity 1).
A monad is special because it adds ‘special powers’ to the T
that it wraps.
These ‘special powers’ won’t sound very special to an imperative programmer, so you have to squint to see them but bear with me.
F# is a functional programming language designed with an emphasis on data science, that can also be used to build native iOS and Android apps with Xamarin. In my experience, when people discuss F#, someone inevitably asks “F# is great for analysis, but is it good for creating user interfaces?” I created a simple Tinder clone for iOS to show that F# is actually awesome for creating UIs, and for building apps in general.