F# updates

What is object oriented programming really all about?

People often ask me what functional programming is all about and why is it useful. In an attempt to answer this question in a way that is relevant to object oriented programmers it struck me it might be useful to look at what people find useful in modern object oriented programming. Once we know what programmers like about OOP, specifically what problems it helps them solve that structured programming didn’t, we can look again at FP and look at how it approaches these problems. While we could fall back on a traditional definition of what OOP is all about,...

My Talks in London: The F# User Group & At Progressive.NET

I’ve been in London for the past few days. I arrived Tuesday afternoon and gave at talk at “The F#unctional Londoners Meetup Group” on the Tuesday evening. The talk was entitled “Using Language Oriented Programming to Execute Computations on the GPU” and thanks to the efficiency of the good folks at Skills Matter the talk is already available on line. The event was very well attended, with around 50 people turning up. The talk covers more the Language Oriented Programming aspects than the knitty gritty details for detailing with the GPU and the audience seemed to enjoy it. It was...

Strings and F# Immutable Lists

In .NET strings are immutable. I think most .NET programmers agree that this is a good thing, as it generally makes code that works with strings safer and more predictable. However, operations that involve large amounts of string manipulation perform poorly because each time a string concatenation occurs then both strings must be copied. His often leads people to believe that all immutable objects will perform poorly. The aim of the article is to show that this is not the case, or at least it’s not as black and white as you may think. Specifically we’re going to compare how.NET...

#Develop, F# and Google Summer of Code

A few days ago Chris Wille, the man behind #Develop contacted me to say that #Develop had been accepted on the Google summer of code scheme. Essentially Google summer of code means that Google will pay CS students to spend their summer writing code for open source projects. Chris told me one area they are interested in extending is the F# integration into #Develop; particularly they’d like to get the auto-completion working. So if you’re a CS student on the lookout for a summer job, you could end up being paid by Google to work on F#! Contact me if you...

Beginning F# Workshop and Progressive.Net

I’ll in London on the 10th/11th May giving a two day course entitle “Beginning F# Workshop” in conjunction with the lovely folks at Skills Matter. I think I give a fairly good description of the course on the workshop webpage, so I wanted to use this blog post to talk about why you would want to attend. I believe, as I stated in my book, that functional programming will be the next big wave in programming, and that F# will be one of the languages at the forefront of this functional programming renaissance. I don’t believe this will be sole...

My Talk with Don and Adam at TechDays 2010

It was TechDays this week and I was lucky enough to be invited to speak with Don Syme and Adam Granicz. Don gave a short introduction to mailboxes/agent programming in F# and Adam gave an introduction to IntelliFactory’s WebSharper project.   My section of the talk was on using F# with Microsoft Accelerator. Accelerator is an interesting product, it allows you to take advance of the GPU of your PC. Even the most basic PCs have a specialized graphics chip and for most of the tasks you perform on your PC it just sits there doing nothing. GPU are very good at...

FunctionalNHibernate: RCed and now with added build server

I’m very happy to announce that FunctionalNHibernate has now been updated to work with the recently released Visual Studio 2010 release candidate. Also, it has now been setup to run on the codebetter build server. You can create a log on and download the latest binaries from here (you need an account but it’s very simple to create one).   A huge thanks to Steffen Forkmann, who did the work to get this set up.

Functional Programming eXchange: The Videos

I’ve recently noticed that talks from Functional Programming eXchange, that I organized and spoke at, are now online. This is a great resource for people looking for some more advanced material on Functional Programming. So here are the videos:   SADEK DROBI: Computation Abstraction http://skillsmatter.com/podcast/cloud-grid/computation-abstraction   MATTHEW SACKMAN: Supercharged Rabbit: Resource Management at High Speed in Erlang http://skillsmatter.com/podcast/cloud-grid/supercharged-rabbit-resource-management-at-high-speed-in-erlang   ANTON SCHWAIGHOFER: F# and Units-of-measure for Technical Computing http://skillsmatter.com/podcast/cloud-grid/f-and-units-of-measure-for-technical-computing   GANESH SITTAMPALAM: Functional Programming for Quantitative Modeling at Credit Suisse http://skillsmatter.com/podcast/cloud-grid/functional-programming-for-quantitative-modelling-at-credit-suisse   DUNCAN COUTTS: Strong Types and Pure Functions http://skillsmatter.com/podcast/cloud-grid/strong-types-and-pure-functions   ROBERT PICKERING: Combinators, DSLs, HTML and F# http://skillsmatter.com/podcast/design-architecture/using-combinators-to-tackle-the-html-rendering-problem

Update about FunctionalNHibernate

I’ve been working quite a lot on the FunctionalNHibernate project recently. I’ve implemented the following features: - Save records with native F# lists. - Create one-to-many and many-to-many relations - Generate identities automatically   We can now do just about everything you the FluentNHibernate first example project does, although admittedly this is just a very small subset of what one can do with FluentNHibernate  and NHibernate itself.     In the future I’ll be looking at how to broadening what you can do with FunctionalNHibernate ClassMap descriptions and improve data access by integrating Linq like features.   In terms of usability, it’s still early days but I think it’s...

Introducing FunctionalNHibernate

It’s already fairly well documented that F# doesn’t play too well with NHibernate and Fluent NHibernate, although you can make it play a littler nice with a bit of effort. However there are a few fundamental problems with this approach. The first is F# class’ are not really designed to be data containers because that’s what its record type is for. The second is that F# class’ do not put too much emphasis on virtual methods as in functional programming we tend to using pass functions as values as a way to achieve polymorphism rather than virtual methods. Third and finally...

Full F# updates Archive