Asynchronous Programming: From F# to Python


I woke up to a nice email from Shahrokh Mortazavi today. I’ll quote it, I don’t think he’ll mind

From: Shahrokh Mortazavi
Sent: 24 March 2013 08:08
To: Don Syme
Subject: dino’s talk at pycon                            

This was basically inspired by your work  :-)

http://pyvideo.org/video/1762/using-futures-for-async-gui-programming-in-python

Guido came by our booth & talked a good 20 mins about async… His talk gave lots of credit to .NET async – not sure if he knew that it came from F#.

s

Emails like this really do make my day – partly because they aren’t “part of the job” – they are just being thoughtful – thanks Shahrokh.

Two additional comments:

  • Tracing the threads of influence and idea-propagation that underlie the history of programming languages is in some ways simple (F# async –> C# async –> Python async) but to do it properly is a difficult task. Those of us in the thick of it get a partial persepctive. On the one hand, I know for a fact that async programming in C#/.NET (and thus C++, Python, ….) would never have happened in such a timely way without F#’s influence, and perhaps not at all.
     
  • On the other hand, I am also very aware that there is much more to the story and that my perspective is partial (and biased :)). For asynchronous programming, F# is just one part of a much larger historical influence graph incorporating continuation-based programming, state machines, monadic programming, asynchronous I/O libraries, iterators, task libraries and much more. We captured some of it in our paper The F# Asynchronous Programming Model, but there is much more to tell. One day I want to work with others to do a proper history of this.

Don

 

 

Comments (1)

  1. Alexander Pritchard says:

    Given the nature of F# and its support for async, would it be suitable as a web server ala Node.JS?

    Not just server apps.  (ex:  MVC)