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.
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 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.
GPG stands for GNU Privacy Guard, it’s a public-key cryptography that can be used to digitally sign items like commits in Git. GPG provides a lot more functionality, but let’s go into why you would want to digitally sign your Git commits. Git does not have any way to validate the author of a commit. When setting up a Git client on your system you are able to use any email address you desire.