I know how confounded I was by CI before I got into it, and how straightforward it seems now, so I thought I’d write down my experiences for anyone following in my footsteps.
In this post, I will speak about how I implemented Gitlab Continuous integration (CI), and then sped up execution time dramatically by setting the right options. My project is Haskell-centric, but many of the takeaways can be applied to any language.
I use Michael Snoyman’s excellent stack build tool for my Haskell projects. Amongst many features that generally improve my quality of life as a developer, stack…
The unofficial motto of Haskell, the predominant lazy functional language, has long been:
“Avoid success at all costs.”
This seems an odd statement. What’s wrong with a bit of success?
The exact meaning of this statement is controversial. Simon Marlow, another major Haskell figure, quotes SPJ that this statement (expression?) should not be bracketed
(avoid success) at all costs, i.e. …
If you try to research this question, you might come up with confusing and contradictory answers, strongly-stated opinions, and loads of technical jargon.
The answer depends which perspective the questioner is coming from, and what assumptions, expectations and preconceived notions they bring with them.
Haskell is a high-level language — a tool used to write programs with a goal of avoiding the programmer having to specify implementation details, as far as practical. This is typically the most productive way of writing most software, where performance must be ‘adequate’ rather than optimum.
In this space, developers typically reach for dynamically typed…
A developer interested in Haskell and functional programming