While PHP isn’t my favorite language by any means, it’s one that I’ve used throughout my career at various points. This fact was recently brought to my attention during a conversation with a colleague about my past experiences. I wouldn’t label myself a dedicated PHP developer, but my history with the language stretches back to my college days, when I even completed my senior project using PHP. After college, PHP continued to play a part in my professional life.
I’ve never been great at keeping up with blogging, but I believe it’s important, especially as a software engineer as it exercises our ability to document and write things down. I typically blog when I have free time and my mind isn’t focusing on other things. As I’ve taken a vacation day today, I figured it would be a good time to dust off my blog and talk about what’s been keeping me from posting, but also things that continue to interest me with the hope that it can spark some excitement for new postings.
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.