Trying F#

I’ve previously mentioned a passing interest in F# because it was sufficiently different from languages I knew and had many concepts that sounded immediately useful. It took me almost 2 years to take the plunge and implement a non-trivial app in F#. It took 3 tries to get something that felt usable and idiomatic. This the first part of my journal of lessons learned. Starting out I didn’t buy any books or take any classes, but I did read every bit of literature online before writing anything at all.

Vision is the hardest

I started off my career thinking that coding was the hardest thing I had to do every day. That fixing bugs, building features, and writing documentation was the toughest part of building software. It’s what I spent all my time studying in school, so I figured that once I knew how to code well enough to make things work, the rest of the job would be easy. I heard “The first programing language is the hardest”, so I expected to struggle with the basics.


A Reintroduction I’m moving my content from tumblr to here. I only used tumblr before because it was resonably public and seperate from other blogging and social networks that I already had established. Now I have a dedicated site serves that same purpose (with a higher cost to me of course). Tumblr had fine formatting tools and tagging, but since I didn’t visit it often or interact with anyone on the site I figured I might as well just make my own island for this stuff.


Recently, I’ve been lucky enough to find more personal blogs with a similar theme to this blog: A programmer trying new things and jotting down what they think about the technology without the technical details. What I’ve found so far has been a pretty consistent body of knowledge. Everyone appears to agree on the same basic tenets but takes their own personal spin based on their needs and origins. These aren’t persuasion pieces, there’s generally no central argument or consistent theme.

The Simplest Tool for the Job

When given the choice between using a library or adopting a framework to accomplish a task, the choice is often between the power and usability. Libraries often focus on simplifying a task by providing a layer of abstraction, where frameworks focus on making categories of tasks easy. For integrating with existing applications, it’s more difficult to use multiple frameworks than it is to use multiple libraries. But when starting a new application, it’s often easier to pick a framework and then select libraries that can easily inter-operate where the framework doesn’t provide a solution.

The Small Internet

tl;dr Use Bing I’ve been using Bing as my default search engine at work for 6 months, and in that time I’ve gotten about $30 of Amazon gift cards and other rewards with no downside. I don’t understand everyone’s obsession or devotion to Google search. The search results aren’t that different between major search engines for specific queries. Most of the time I’m using a search engine because I don’t want to type in the exact url, or dig through a long tail of bookmarks.