What a fantastic year it’s been. We’ve seen F# go first from a research project to a real language in Visual Studio 2010, and then to Microsoft’s first fully supported open source language. We’ve seen the F# team work hard to bring us full XNA, Windows Phone 7 and Silverlight support. We’ve even seen F# user groups and events start to spring up all over the world.
Best of all, we’ve been active participants in the rise of a new class of uber-geek in the Microsoft world: the F# user. With the power of types we go forth writing tiny snippets of rock solid code that leave pages upon pages of C# obsolete. Even the most stalwart C++ user must be envious.
I can’t wait to see what’s in store for us next year!
News
2010: A Year of Peerless Accomplishment
“From its inception in 1991, Microsoft Research has hewed to a remarkably unwavering mission. Its tenets are threefold: to invest in basic research to advance the state of the art in computer science, to transfer technologies into Microsoft products when appropriate, and to collaborate openly with the scientific community.”
Interested in F# in the Washington DC area?
“I’ve had some contacts from interested F# users in DC about the possibility of setting up a user group in the area.”
F#/Functional job with the Health Sciences team at Microsoft
“The health sciences team at Microsoft, in collaboration with Microsoft Research, is looking for a key designer/engineer on our team, responsible for significant architecture investments in a challenging and creative environment.”
Audio and Video
Haim Michael’s Collections in F# PRO
“I have just completed to develop the 4th topic (of my on going F# Fundamentals course) that covers the usage of collections in F#.”
Tools
WebSharper 2.0 Beta Bundle
“It’s never been easier to get started with WebSharper 2.0 – now with a single installer that contains six WebSharper project templates for Visual Studio, including integration with ASP.NET, MVC, and Sitelets. Go and grab your installer (renumbered as a bundle, current latest 2.0.21) at the WebSharper Downloads page.”
MonoDevelop is the Third IDE for F#
“MonoDevelop has become the third IDE to support Microsoft’s F# language. With .NET support essentially dead on the Eclipse IDE and WebMatrix being targeted for causal developers, it is likely to be the last IDE to add support for it in the foreseeable future.”
Project templates for F# games, libraries and applications on Windows Phone 7 using XNA
“Johann Deneux and Giuseppe Maggiore have been putting together templates for F# games, libraries and applications for Windows Phone 7 (WP7) XNA. This extends Dan Mohl’s great work on templates for list, panorama and vanilla applications.”
General
Steve Gilham’s Distributed Memory: “Hello, OTP!” from F#
“This is all building on the original work done elsewhere Integrating .NET and Erlang using OTP.NET and Integrating F# and Erlang Using OTP.NET, as a little bit of a five-finger exercise using the OTP framework as now explained in Erlang and OTP in Action.”
Steve Gilham’s “Hello, OTP!” from F# revisited
“That previous F# code was just too ugly to leave as it was; so after a little bit of work, I’ve factored out a general purpose wrapper to convert the Otp.Erlang types into values of a discriminated union on the F# side of the fence.”
Steve Gilham’s F# GUI plumbing with reactive Events
“My most recent “Aha!” moment with the language is to finally wrap my head around the standard Event module — a sort of lightweight subset of the Reactive Extensions for .net”
Mauricio Scheffer’s Zipping with applicative functors in F#
“In my last post I briefly described functors from a F# perspective. Now it’s the turn of applicative functors. Since there were few to none concrete examples in my previous post, this time I’ll start with an example.”
Mauricio Scheffer’s Notes on Haskell functors and F#
“I’ve been learning a bit of Haskell lately, and I wanted to share some of what I have learned so far, from a F# perspective.”
Steffen Forkmann’s Compute Fib(n) in O(log n)
“Today I learned a neat way to compute the n.th Fibonacci number in O(log n) time. The idea is that we can compute the Fibonacci Q-Matrix in O(log n) by using recursive powering”
Joh’s Interactive game development with FSI and XNA
“I recently looked at a presentation by Don Syme about the future of F# and type providers. The entire demo was conducted using F# interactive and a Windows Forms. The same can be done for XNA. First, you need to get the code sample that shows how to embed XNA into a Windows Forms control. It’s available in the education catalog on the App hub.”
Joh’s How to make a visual studio project template
“Here is the simple 14-step procedure to build a template for F# projects targeting exotic platforms.”
Jon Harrop’s Performance-related features in F# and C#
“Many people expect the performance of F# to be comparable to the performance of C# “because they both compile to the same intermediate language (CIL)”. Although the VM obviously places the same ceiling on the performance of both F# and C# there are some features that affect performance differently between the two language implementations.”
Adam Granicz’s Visual Studio book with F# chapter
“The book covers a great deal about .NET 4 and Visual Studio 2010, and has a ~75 page F# chapter at the end for your reading pleasure (this is the part I wrote). As with any book, there may be errors and omissions, if you find any we kindly ask you to send your errata to Wrox.”
F#, xUnit theories and InlineData
“Anyway, just a short heads up to save people some time: in the xUnit extensions, there is a Theory attribute which in combination with the InlineData attribute lets you specify a parameterized xUnit test.”
Exact Cover In Solving Sudokus
“I would finally understand how the Sudoku – solving technique works, and found an article on the Exact Cover problem in relation to Sudoku, a Sudoku solver in F # version and a version of Haskell .”
Guide to F#
“F# is the only language to be added to Visual Studio for a very long time. What makes it so special?”
Community
StackExchange: Real world pitfalls of introducing F# into a large codebase and engineering team
“I’m CTO of a software firm with a large existing codebase (all C#) and a sizable engineering team. I can see how certain parts of the code would be far easier to write in F#, resulting in faster development time, fewer bugs, easier parallel implementations, etc., basically overall productivity gains for my team. However, I can also see several productivity pitfalls of introducing F#, namely:”
The Code Project: Optimize references in closures in F#
“This quick tip shows how to encode a closure as a class in the F# programming language. The advantage is that references are stored as mutable fields in the class, thus removing a level of indirection.”
FsSnip: Break sequence into n-element subsequences
“I’m working on parallel computations and I thought it would be useful to break work into chunks, especially when processing each element asynchronously is too expensive.”