Hello world
What is this blog about.
My name is François Brodeur and I’m from Montreal, Quebec, Canada. My interest for programming came late, in the middle of my electric engineering bachelor, so in my early 20s. It quickly became a passion for me and also the domain I chose to work in from then on. Since I wanted to further my knowledge in software, I decided to start a master in software engineering, that I’m about to finish.
I had a class for my master related to maintenance. Since this is a master-level class, it mostly covered the nature of a proper maintenance process within an organisation. The class made me wonder, could a programming language be more maintainable than another? From that point, I studied a lot of programming languages. While most of them boasted a fast development time, none of them ever mentioned maintainability as a their core feature. Surprising when you consider that the maintenance phase consider on average 60% of the cost of a project. This is how I got started with functional programming.
I think one of the hardest thing for a new comer to functional programming is understanding how to solve small problems in an idiomatic way. If you use a language like Haskell, you are pretty much forced into using those patterns since the language does not allow you to easily use an imperative code style. This was my first functional programming language, this is how I got introduced to the concept of functional programming but also to more math-y concepts such as functors, applicative functors and monads. While I learned the former with the excellent learn you a haskell, I only began to understand the latter with these helpful representations of these concepts via pictures.
After a few months of looking into Haskell, I was fortunate enough to find a local job posting offering a position as a functional programming developer, using Microsoft’s F#. Unlike Haskell, F# allows the users to program in an imperative way. After using it however, it quickly becomes evident that this is not the idiomatic way. Being surrounded by very competent people not only helped my understanding of previous concepts that I barely understood but it also helped me understand how to properly apply those concepts to solve programs in a more elegant and maintainable way.
Goal of this blog : I will try to document what I discover. Those discoveries will be related to maintainability and most likely, functional programming. This will be done while I am working on my master’s project, which has a tentative title of : Analysis of the maintainability support offered by different programming paradigms.
Email me when Francois Brodeur publishes or recommends stories