F# in Education & Concurrency with Agents
November was quite a busy month for me. First, I traveled to Cambridge (the "new one" in Massachusetts :-)) to present my work on the F# plugin for MonoDevelop at the F# in Education workshop. Shortly after getting back to London, I started working on a presentation about Concurrent Programming with Agents at the F#unctional Londoners meeting.
Now that both of the events are over, I'd like to write a short summary and also finally publish my slides and demos. In addition, both of the events were recorded (thanks to External Research group at MSR and SkillsMatter), so if you missed them, you can watch the recording...
Both of the events were really great and I had a chance to meet quite a few interesting people. One of the things that make F# great is the community around it. I think that one unique aspect of the F# community is its diversity. The same language is appealing to high school teachers, academics and researchers as well as software developers and technical directors from the industry. This combination is really valuable for both sides. It helps to transfer ideas from research to practice it gives researchers clear picture of problems in the industry that deserve their attention.
Concurrent programming with agents
My talk at the F#unctional Londoners meeting focused
on creating concurrent and reactive applications using the message-passing programming model based
on agents using the
MailboxProcessor<T> type in F#. This is a very attractive
model that can be used to write applications that need to handle multiple inputs coming from various
sources and efficiently process them. Although I'm not an expert in the field, I can imagine it
could be great tool for writing trading systems. Here are some resources from the talk:
- View the recording at SkillsMatter (my talk starts at 43:00, but Phil's talk about BDD is also worth watching!)
- Get slides from the talk (PPTX) and samples and demos (ZIP)
- Browse the latest version of sildes demos in my GitHub repository.
- Join the F#unctional Londoners user group and come to our next meeting. There are some interesting ideas already!
In the talk, I first introduced the
MailboxProcessor<T> type and then used it to
implement a simple chat room. Then I used the
HttpListener type to expose the chat room on web
using a simple HTTP web server (in a Node.js style). Next we looked at more complicated agents for buffering
incoming Twitter messages and agent for creating buffers in a pipeline processing of images.
Going cross-platform with F# in MonoDevelop
The main purpose of my F# in Education Workshop talk was to present the F# plugin for MonoDevelop. However, I also used to talk to explain how F# (and the MonoDevelop plugin) can be used in the academia. The three possible uses that I talked about are teaching (functional) programming, data processing as part of research work and language research based on the open source F# stack. Here are materials from the talk:
- View the recording at Microsoft Research Web site (my talk is the first in the "Implementations of F#" group)
- Get slides from the talk (PDF) and samples and demos (ZIP)
- Browse the latest version of slides demos in my GitHub repository.
For more information about the F# plugin visit the project homepage. If you're interested in using open source version of F# or contributing to the MonoDevelop plugin then you can also join our mailing list.