Full Stack F# – Teaser

The JavasScript in South Africa conference (JSInSA 2014) is nearly upon us (Saturday 31 May is the big day), and I will be presenting on Full Stack F# – From the Server to the Browser with Strongly-Typed Functional Programming. Here is the blurb from the conference website:

Read more ...

Full Stack F# – The Long Version (Part 1)

First off, I apologise for posting this later than I said I would. I didn't realise quite how tired I would be after JSInSA. JSInSA has been and gone, and to give conference attendees (as well as those that couldn’t attend) something to refer back to, here is the long version of my Full Stack F# talk, with a step by step code sample. The demo app can be found here.

Read more ...

Using MongoDB from F#

Let me start off by saying that I have read many arguments against using MongoDB (or in fact any other NoSQL database), typically from the SQL diehards (and have heard those same people call the users of NoSQL databases inexperienced and / or stupid). Some of the arguments are valid criticisms of the general use NoSQL databases, whereas some of them seem like ad-hominem attacks based purely on a lack of knowledge. I don’t consider myself to be inexperienced as I have been developing software that works in a variety of industries for quite a few years now, using all manner of SQL databases (Paradox / BDE, SQL Server, MySQL and Postgres to name a few) and I am familiar with the benefits of these databases, but I also have my own share of complaints about them. Personally however I feel that those that are completely against NoSQL databases such as MongoDB tend to throw out the baby with the bathwater. While the benefits of ACID transactions are not in doubt, I find that there is a certain beauty in the way MongoDB works, particularly in terms of the schema-less design. When combined with F#, MongoDB allows for extremely rapid iterations. I can’t claim to be familiar enough with MongoDB to run it in a production environment, nor have I run into all of the issues that many of the people who have complained about it mentioned. However, for prototyping MongoDB gives me iteration cycles and feedback loops that are at least an order of magnitude faster than I would have were I to be using a traditional SQL database. This decrease in feedback time has lead to me be able to create a system in about a 10th of the time that it would have taken with a traditional relational database, as well as saved me a good number of grey hairs that tend to come about because of schema versioning issues.

Read more ...