# Microsoft embraces functional programming

**URL:** <https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834>\
**Category:** Miscellaneous and Personal Stuff I Must Share\
**Created:** [November 9, 2007, 9:49pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834 "2007-11-09T21:49:23Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [November 9, 2007, 9:49pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/1 "2007-11-09T21:49:23Z")

</div>

From [here](http://www.eweek.com/article2/0,1759,2212215,00.asp):

> [@](#):
>
> Microsoft is putting the “F” in functional programming with its F# language.
> 
> F#—pronounced “F sharp”—is a functional programming language out of Microsoft Research that the company will productize to target developers dealing with concurrency and those in the financial, scientific and technical, and academic arenas.

This is interesting. My experience with functional languages is pretty limited, but it’s not hard to imagine how they’re useful in the fields mentioned above. I like the idea of “what not how” programming, so I’ll be interested to see where this goes.

---

<div class="post-metadata">

**Author:** ![FordPrefect](https://avatars.discourse-cdn.com/v4/letter/f/e99b99/32.png) [@FordPrefect](https://boards.straightdope.com/u/FordPrefect)\
**Post date:** [November 9, 2007, 11:27pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/2 "2007-11-09T23:27:11Z")

</div>

That’s funny, I don’t know how prevalent it is used, but around these parts F-sharp is a euphemism for “fuck”.

---

<div class="post-metadata">

**Author:** ![Morbo](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/morbo/32/389_2.png) [@Morbo](https://boards.straightdope.com/u/Morbo)\
**Post date:** [November 9, 2007, 11:46pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/3 "2007-11-09T23:46:24Z")

</div>

[QUOTE=FordPrefect]  
That’s funny, I don’t know how prevalent it is used, but around these parts F-sharp is a euphemism for “fuck”.  
[/QUOTE]

Oh, rest assured that hasn’t gone unnoticed internally. 🙂

---

<div class="post-metadata">

**Author:** ![Hostile\_Dialect](https://avatars.discourse-cdn.com/v4/letter/h/e495f1/32.png) [@Hostile\_Dialect](https://boards.straightdope.com/u/Hostile_Dialect)\
**Post date:** [November 10, 2007, 12:26am UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/4 "2007-11-10T00:26:55Z")

</div>

_Productize?_

I’m probably the most vocal descriptivist on this board, but excuse me while I go scoop out my eyes with a spoon and then set myself on fire.

---

<div class="post-metadata">

**Author:** ![ratatoskK](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ratatoskk/32/2987_2.png) [@ratatoskK](https://boards.straightdope.com/u/ratatoskK)\
**Post date:** [November 10, 2007, 12:33am UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/5 "2007-11-10T00:33:35Z")

</div>

Maybe I’m overly skeptical, but if Microsoft is promoting F# then it must be that they’re selling software that requires an F# interface and is incompatible with anything that’s not also written by Microsoft’s proprietary version of F#.

---

<div class="post-metadata">

**Author:** ![thirdname](https://avatars.discourse-cdn.com/v4/letter/t/d07c76/32.png) [@thirdname](https://boards.straightdope.com/u/thirdname)\
**Post date:** [November 10, 2007, 12:36am UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/6 "2007-11-10T00:36:57Z")

</div>

This is a big change; up until now Microsoft has always specialized in non-functional programming.

---

<div class="post-metadata">

**Author:** ![Ximenean](https://avatars.discourse-cdn.com/v4/letter/x/aca169/32.png) [@Ximenean](https://boards.straightdope.com/u/Ximenean)\
**Post date:** [November 10, 2007, 12:57am UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/7 "2007-11-10T00:57:58Z")

</div>

You mean it it isn’t “F#.net”? Microsoft promised me 72 virgins in a future life if I referred to everything as \<whatever\>.net .

---

<div class="post-metadata">

**Author:** ![GuanoLad](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/guanolad/32/42_2.png) [@GuanoLad](https://boards.straightdope.com/u/GuanoLad)\
**Post date:** [November 10, 2007, 1:21am UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/8 "2007-11-10T01:21:13Z")

</div>

[QUOTE=Usram]  
You mean it it isn’t “F#.net”? Microsoft promised me 72 virgins in a future life if I referred to everything as \<whatever\>.net .  
[/QUOTE]

Be thankful it wasn’t from Apple, as “i-F#” just sounds stupid.

---

<div class="post-metadata">

**Author:** ![MsWhatsit](https://avatars.discourse-cdn.com/v4/letter/m/eb8c5e/32.png) [@MsWhatsit](https://boards.straightdope.com/u/MsWhatsit)\
**Post date:** [November 10, 2007, 1:29am UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/9 "2007-11-10T01:29:59Z")

</div>

[QUOTE=Usram]  
You mean it it isn’t “F#.net”? Microsoft promised me 72 virgins in a future life if I referred to everything as \<whatever\>.net .  
[/QUOTE]

There are Microsoft-brand black helicopters en route to your location as we speak to mete out your punishment for not correctly capitalizing \<whatever\>.NET.

---

<div class="post-metadata">

**Author:** ![Baron\_Greenback](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/baron_greenback/32/48_2.png) [@Baron\_Greenback](https://boards.straightdope.com/u/Baron_Greenback)\
**Post date:** [November 10, 2007, 1:49am UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/10 "2007-11-10T01:49:09Z")

</div>

[QUOTE=ratatoskK]  
Maybe I’m overly skeptical, but if Microsoft is promoting F# then it must be that they’re selling software that requires an F# interface and is incompatible with anything that’s not also written by Microsoft’s proprietary version of F#.  
[/QUOTE]

Are you sure about this? :rolleyes:

---

<div class="post-metadata">

**Author:** ![Derleth](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@Derleth](https://boards.straightdope.com/u/Derleth)\
**Post date:** [November 10, 2007, 10:36am UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/11 "2007-11-10T10:36:24Z")

</div>

Great. Now get people to _use it_.

Of course, there is no reason whatsoever to invent a new programming language. We already have plenty of good ones in the pure functional sphere alone, and all of them have good compilers and plenty of experience behind optimizing them on unfriendly hardware.\* Inventing a new programming language is way down on the list of useful things Microsoft could be doing with what it has.

\*(The languages you think must be dogs are actually pretty good. People much smarter than you worked long and hard making Smalltalk and Lisp and Prolog and Haskell go fast on real hardware. It’s the C and C++ compilers that can’t optimize much because the language doesn’t hide anything.)

---

<div class="post-metadata">

**Author:** ![Morbo](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/morbo/32/389_2.png) [@Morbo](https://boards.straightdope.com/u/Morbo)\
**Post date:** [November 10, 2007, 1:18pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/12 "2007-11-10T13:18:47Z")

</div>

> [@ratatoskK](#):
>
> Maybe I’m overly skeptical, but if Microsoft is promoting F# then it must be that they’re selling software that requires an F# interface and is incompatible with anything that’s not also written by Microsoft’s proprietary version of F#.

Yeah. It must be.

[QUOTE=Derleth]  
Inventing a new programming language is way down on the list of useful things Microsoft could be doing with what it has.  
[/QUOTE]

Can you expand upon that? What do you think MSFT is doing that you consider un-useful? And what exactly do you define as “what it has”?

---

<div class="post-metadata">

**Author:** ![PharmBoy](https://avatars.discourse-cdn.com/v4/letter/p/74df32/32.png) [@PharmBoy](https://boards.straightdope.com/u/PharmBoy)\
**Post date:** [November 10, 2007, 2:30pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/13 "2007-11-10T14:30:45Z")

</div>

At this point I raise a question: What is “functional programming”?

---

<div class="post-metadata">

**Author:** ![Liberal](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@Liberal](https://boards.straightdope.com/u/Liberal)\
**Post date:** [November 10, 2007, 2:52pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/14 "2007-11-10T14:52:19Z")

</div>

[QUOTE=fetus]  
_Productize?_

I’m probably the most vocal descriptivist on this board, but excuse me while I go scoop out my eyes with a spoon and then set myself on fire.  
[/QUOTE]  
It’s only just beginningizing.

---

<div class="post-metadata">

**Author:** ![Hostile\_Dialect](https://avatars.discourse-cdn.com/v4/letter/h/e495f1/32.png) [@Hostile\_Dialect](https://boards.straightdope.com/u/Hostile_Dialect)\
**Post date:** [November 10, 2007, 7:51pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/15 "2007-11-10T19:51:34Z")

</div>

[QUOTE=Liberal]  
It’s only just beginningizing.  
[/QUOTE]

Thanks.

That was so helpful, my only possible response is to go run a cheese grater up and down the entire length of my arm for 36 hours.

---

<div class="post-metadata">

**Author:** ![Nava](https://avatars.discourse-cdn.com/v4/letter/n/da6949/32.png) [@Nava](https://boards.straightdope.com/u/Nava)\
**Post date:** [November 10, 2007, 8:30pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/16 "2007-11-10T20:30:39Z")

</div>

[QUOTE=PharmBoy]  
At this point I raise a question: What is “functional programming”?  
[/QUOTE]

Yeah, and we’re assuming it doesn’t mean “programming that works”!

Inquiring minds want to know.

---

<div class="post-metadata">

**Author:** ![UncleRojelio](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/unclerojelio/32/3160_2.png) [@UncleRojelio](https://boards.straightdope.com/u/UncleRojelio)\
**Post date:** [November 10, 2007, 8:32pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/17 "2007-11-10T20:32:53Z")

</div>

[QUOTE=PharmBoy]  
At this point I raise a question: What is “functional programming”?  
[/QUOTE]

Not that this is going to help but,

> **[Functional programming](https://en.wikipedia.org/wiki/Functional_programming)**
>
> In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program. In functional programming, functions are treated as first-class entities, meaning that they can be bound to names (including local identifi...

---

<div class="post-metadata">

**Author:** ![Nava](https://avatars.discourse-cdn.com/v4/letter/n/da6949/32.png) [@Nava](https://boards.straightdope.com/u/Nava)\
**Post date:** [November 10, 2007, 8:35pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/18 "2007-11-10T20:35:30Z")

</div>

You’re absolutely right, **Uncle**.

Now in English for Dummies?

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [November 10, 2007, 9:35pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/19 "2007-11-10T21:35:47Z")

</div>

Pure functional programming is programming with no side effects. You can replace any statement with its return value and you won’t change the behavior of the program. It’s really popular in the academic community, and taking off with other people who do technical programming.

---

<div class="post-metadata">

**Author:** ![UncleRojelio](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/unclerojelio/32/3160_2.png) [@UncleRojelio](https://boards.straightdope.com/u/UncleRojelio)\
**Post date:** [November 10, 2007, 9:46pm UTC](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834/20 "2007-11-10T21:46:39Z")

</div>

[QUOTE=Nava]  
You’re absolutely right, **Uncle**.

Now in English for Dummies?  
[/QUOTE]

I’ve got a degree in Computer Science and I still can’t explain it so that it makes sense. I’ve taken classes in functional programming and have read entire books on its theory and practice, but sit me down in front of a computer and tell me to write a program in Haskell and I still choke. Functional programming haunts me like Moby haunted Ahab. Please excuse me, I’ll be weeping in the corner.

[Next page](https://boards.straightdope.com/t/microsoft-embraces-functional-programming/425834.md?page=2)
