As I sit next to a gas store in Vermont, I once again have a hard copy book with me to read on vacation. This time it’s “Learning ClojureScript” by Andrew Meredith, and just like Clojure For the Brave and True it’s another free book that can easily be downloaded and read from any fancy gizmos. Unlike my trip to Italy, I have no fear of misplacing or having a piece of technology stolen because we are staying in one place for this trip.
As I continue my journey with learning functional programming, I have started to explore deeper into the languages that I enjoy and do some experimenting with interesting parts of those languages. This has led me to defmulti and defmethod, enabling you to create methods that deal with different implementations that are selected by a dispatch function. This is certainly easier to see in code, but it allows you to create a function based on the return of the dispatch function that will send the parameters to another function.
I’m still on my journey with exploring F# but I want to look at something with the .Net Core platform itself, so this will apply to both C# and F#. Ahead-Of-Time (AOT) compilation isn’t a new concept. Languages like C and C++ need to be compiled before (or ahead of) execution time. The JVM and CLR took a different approach, creating “virtual machines” or runtimes that could run your code, giving us the promise of “write once, run anywhere” or anywhere that has a virtual machine at least.
For this first topic of showing off parts of F# I want to use a code challenge I have used for interviewing candidates at a couple different companies. This challenge is simple to solve but is left open ended to allow the candidate to discuss and debate the decisions they have made. The main point of the challenge isn’t the coding, but it does provide us with an example to show off optional types and pipe operator in F#.
As I’m sure, so many other people have also found their lives disrupted due to the pandemic and other world events; I’m just getting to the point where I can think about blogging again due to getting a sense of normality back. One of the things I have been doing is continuing my journey with functional programming languages by looking into F#. I’m not entirely sure why but there’s something alluring about F# that appeals to my style of development.
Clojure seems to be coming up a lot in postings, books, and social media. Some most notable mentions are by Gene Kim in a couple of different instances, Love Letter To Clojure being the biggest but also in his book The Unicorn Project where Clojure is a beloved language by Maxine the main protagonist hero of the story. Another well-known name that has talked about Clojure on his blog is Robert Martin (aka Uncle Bob) with his posting Why Clojure?
This time of year, I always find it interesting the number of articles telling you the top languages you should learn. Yes, there’s a steady stream of these types of articles throughout the year but right at the end when a new year is about to start is when I’ve seen them the most. Titles typically include something along the lines of “Top Five languages to learn in 2020”, “Languages to improve your developer life”, “Programming Languages that you need to know in 2020”.
In my last posting, I talked about bringing a book on my trip to Italy and nothing about the technology that I brought. This was a clever (not really) way to be able to talk about Clojure and “Clojure for the Brave and True” but being who I am, I did bring some technology with me on my trip. I would like to talk about one of them that I feel is a real timesaver and a huge advantage when I travel, and that is Google Fi.
In my last post, I said I was in Italy on vacation and you may be thinking to yourself (most likely not, but just go with it) “what high tech gizmos did he bring with him on his travels?” and I would happily reply “A book!”, yes a paper book. Being a software developer, I have access to tons of technology, more so when it comes to paper book replacements but there is just something about a real book that makes reading and learning for me better than using a computer, tablet, or doohickey.
As I sit here in Venice on my vacation, I figure this would be a great time to dust off my blog. I haven’t put much time into it lately, I find myself wanting to write when I have a good balance with work and life with some learning on the side. Sadly, this balance has been missing for a bit, which leads us into a bit of a back story, the details are not important but the overall experiences that I gained are.