Programming F# Like A Stupid Person

This adventure started when I visited my friends Bob and James. I was going to show them my favorite programming language, F#. Bob and James are both coding experts, although they have little experience with F#. We were going to make a series of videos introducing people to the language.

It didn’t go so well. I’m a tech coach and programmer, but I’m not a language teacher. I help people who already know programming languages rock-and-roll. So I just sat back and watched the guys take a run at F#. These guys were the experts — just not in FP or F#. There was a lot of thrashing around.

Why was that? The question bugged me. I loved F# and had fun with it doing useful stuff every time I played with it, but here my friends seemed to have instincts that kept leading them down paths to nowhere. What was it about the way I thought about coding in F# that was different than them?

I decided to think on it a while.

Months later, Bob emailed me that the videos were out. The community started looking at them — and were disappointed.

I decided this might be a good time to start writing on my experiences in F#. What do I think about while coding? Why do I code one way instead another? If nothing else, these essays along with the videos might start some really good conversations. I also decided if I had a dozen or more of these things in me? It might be worth making a small book. I’ve already written a book on organizing project information. After all, coding is just another form of information organization. It’s not like I haven’t already thought through all of these issues at the meta level. I’m enjoying myself and having fun. Why can’t others?

I wrote a couple of articles about general F# tips, then somebody asked me about options and I decided to start a series on putting together programs and modifying them as the requirements change. “Programming F# Like A Stupid Person” was born.

Dang it, programming should be fun. I have fun coding in F# and I write code that works. If you focus on just a few important themes, the other stuff should come naturally. I don’t have the answer to life, the universe, and everything, but I can ask you guys to join along while we kick around some code. That might be fun.

Failure Is Not An Option (In F#) – The best use of options is protecting your types.

Failure Is Not An Option, The Sequel – Getting an F# program to do something useful before you do anything else.

Failure Is Not An Option, Revenge Of The Nerds – Refactoring

Programming In F# Like A Stupid Person – The thesis of the series: if you have your heart and head in the right spot, you can have fun, get along with people, and still write great code.

Will it Play in Peoria? (F# as a plain vanilla CGI app) Part 1 – Taking a console app and making it run as a CGI app. The reason it might be important and the initial pain.

But Will It Play In Peoria? Part 2 (Running F# as a Plain Vanilla CGI app) – getting it all to work on linux.

Taking Json to the SPA 1 – What would it take to move what we have to a Single-Page Application?

Taking Json to the SPA 2– We continue our journey to SPA-land with an adventure in shell scripting, Newtonsfot customizing, and .NET Console irregularities.

Taking Json to the SPA 3 – We finish up the last of our “silly” apps with a Vue.js web harness for what we’ve coded.