Skip to content

erlang

These are the stories that have been posted to the erlang category.

Code Camp 12: Boston – Why F#?


Published to Rick Minerich's Development Wonderland by Richard Minerich October 16, 2009 15:18

A couple of months ago I was talking to Lou Franco, the head of our Software Engineering department and fellow functional programming enthusiast, about the possibility of using F# for projects in the future.  Being business minded, he replied that he would need a compelling reason to bring F# on board.  This presentation is dedicated to him and others who have functional programming on their radar but haven’t yet found a compelling reason to bring it in to their company.

I acknowledge that, as for now, it’s difficult to suggest anyone do more than play with F#.  I have been anxiously awaiting the stabilization of the F# API which will come along with the release of VS2010.  With the recent changes breaking backwards compatibility, maintaining my old F# samples has become quite a nightmare.  Indeed, not a single code sample I have from a year ago works out of the box with the current release.

However, VS2010 is only a few months away.  Now is the time to start learning about F# and the paradigms which make it so powerful.  Functional programming has amazing benefits in terms of parallelization, code compression and overall code robustness.  

At Code Camp 12 Boston, I will talk about the soon-to-be-realized world where programmers are divided into groups which each use different types of languages to build different kinds of things.  This is easy to predict as it is already occurring.  UI, data processing and data storage programmers are already diversifying both in working knowledge and tools.

As is evidenced by WPF, HTML and CSS it seems UI design is moving more and more to a declarative style.  Similarly, the rise of F#, Scala, Erlang and Haskell indicates that algorithmic programmers are migrating to the functional programming languages.  SQL has long been the language of those involved in data storage.  It’s no wonder that this has happened.  When your tool is better designed for your job, the work gets done faster and you end up with a better result.

Where does this leave imperative and object oriented languages?  Languages like Java, VB and C# will be relegated to being used as “glue” for existing systems while abstract languages slowly eat away their market share.  This will happen more and more as the number of cores per processor continues to increase and those with imperative implementations find that they are unable to scale.

When: Oct 16th, 2009 (11:50am)
Where: 201 Jones Rd, 6th Floor, Waltham MA USA (Room TBC)

Slides are available here.

Also, be sure to also check out my fellow F# User Group leader Talbott Crowell’s talk.  It’s right before mine (10:30) in the same room (Thanks Chris!).  You can find out more by heading over to Chris Bowen’s blog and reading his post on Code Camp 12.

F# and You! - New Hampshire User’s Group and Beyond


Published to Rick Minerich's Development Wonderland by Richard Minerich October 26, 2009 16:24

I’ve been working for a while on a new presentation which I was finally able to give last week at the New Hampshire .NET User GroupF# and You! focuses on painting the big picture about F# instead of the off-putting details like having to learn new syntax.

 

functional

For this new presentation I start by discussing the adoption of functional programming on other platforms by using Scala, Erlang and Haskell as examples.  I then continue on to how the algorithmic programmers are moving to functional languages while UI developers are moving towards declarative.

This then naturally raises the question of why programmers would choose a specific style of programming for a specific task.  The answer, of course, is that when you work close to a domain you can build things more quickly and with a lower error rate.

This then transitions easily into the specific beneficial properties of functional programming (and F#).

 

General Overview:

  • The Separation of UI and Back End
  • What is Functional Programming? (Functional Concepts)
    • Pure functions
    • Immutability
    • Lambda Expressions
    • Higher Order Functions
    • Recursion
  • The Benefits of Functional Programming
    • Code Compression
    • Parallelism
    • Robustness
  • Proof is in the Pudding
    • TrueSkill
    • Grange Insurance Rating Engine
    • MSN adCenter
  • Wrap-up

 

I’ve also found that it is useful to show the latest circulating version of the Ant Colony simulation I wrote over a year ago.  I found a version in Don Syme’s JAOO Talk code samples but am not sure who has been keeping it up to date.  A big thanks to whoever that person is.  It provides some sweet eye candy to dull the bitterness of the technical Functional Concepts section.

 

Planned (and Past) “F# and You!” Locations:

11/10/2009 – CT .NET Developers Group (Farmington, CT)
10/28/2009 – Technology Users Group (Charleston, SC)
10/21/2009 – New Hampshire .NET User Group (Nashua, NH)

See the new Other Events section of our F# User Group site for information on other upcoming F# talks.

 

Downloads:

Latest Slides
VS2008 Code Samples