Programming F# – Official Cover
Edit 8/19: You might notice, the cover is no longer a jellyfish. While I know this is a slight disapointment for some - including myself - trust me when I say I have a plan to remedy this. Stay tuned!
So as it turns out my petition for a kickass cover was ultimately unsuccessful. But the good news is that I’m not suck with something neither cute nor cuddly. Instead I got a Jellyfish, after spending some time thinking about it is pretty good. (Though certainly not as awesome as a hydra.)
Jellyfish Facts
- Jellyfish can be found in every ocean. Therefore, in the time if trouble they can call on the nine pirate lords for help. Much like F# being able to use nine different programming paradigms and styles:
- functional, imperative, object-oriented, metaprogramming, scripting, concurrent, reactive, declaritive, and awesome. (Yes, ‘awesome’ is a programming paradigm… and Haskell doesn’t support it.)
- Jellyfish do not have a brain or central nervous system. Just like F#… umm… you don’t need a nervous system to write world-class applications? Let me get back to you on this one…
- The real reason I’m excited about having a Jellyfish on the cover is that they can Sting and Kill you. Like F#, Jellyfish are deadly.
So anyways, this October be on the lookout for Jellyfish Book!
Comments
Anonymous
May 13, 2009
PingBack from http://asp-net-hosting.simplynetdev.com/programming-f-%e2%80%93-official-cover/Anonymous
May 13, 2009
Thank you for submitting this cool story - Trackback from DotNetShoutoutAnonymous
May 13, 2009
The comment has been removedAnonymous
May 14, 2009
Your sly "awesome" comment is a bit immature and only hurts the F# community. I like both F# and haskell but it seems as though you don't quite comprehend the awesomeness of Haskell's type system.Anonymous
May 14, 2009
I'm well aware of Haskell's awesome type system, but I needed a programming language to beat on. "C# doesn't have it" doesn't work because there are already a lot of things C# doesn't have that F# does - function values, algebraic data types, etc. "Java doesn't have it" doesn't work for more obvious reasons than C#. The same is true for PHP, C++, and others. Perhaps Python would have been a better choice; though I have empirical evidence that Python does in fact support 'awesome' http://www.xkcd.com/353/ I appreciate your comment. But I assure you that I in no way am trying to criticize Haskell.Anonymous
May 14, 2009
Hey Chris, you mentioned meta-programming in F#. How does that work? I've been programming in Common Lisp lately so I've gained a new appreciation for it -- can F# compete or is Clisp the leatherback turtle? :P -DanAnonymous
May 14, 2009
I should point out, I mean can F#'s meta programming facilities compete with Common Lisp's macros. Don't want to start a language holy war. I read up a bit on the "F# quotation" business and it looks really awkward compared to Clisp's... still curious to read your take on it.Anonymous
May 14, 2009
F# doesn't support CLisp macros, but rather enables metaprogramming through two mechanisms. Quotations Quotations allow you to write F# code and by getting the quoted form of that code reason about it. You can analyze the code, for example in Expert F# quotations are used to analyze floating point operations to calculate the loss of precision. Very cool. You can also use F# quotations to dynamically create code, for example in my book I have a sample where given a mathematical function quotations are used to generate the derivative of that function symbolically. Reflection The other way F# can do meta programming is through reflection - dynamically loading and invoking types, inspecting attributes, etc. These methods of 'metaprogramming' may be disappointing to some who are used to CLisp macros or even some of the mind-bending things you can do with C++ templates. However, F# is a very young language. We might be able to add more capabilities in the next release. (Post Visual Studio 2010.)Anonymous
May 17, 2009
Every time I look at the picture I go FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU Maybe that's the intention?Anonymous
May 17, 2009
Yeah, the cover kind of grosses me out to look at.Anonymous
May 17, 2009
Totally, it really grossed me out as well... but that's why I like it. If it were like a toad or cat or something it wouldn't be memorable. You see a giant, gangly jellyfish - that thing is burned into your brain :)Anonymous
May 17, 2009
That's not a jellyfish. Any fool can see it's Chthulu, fresh from his aeons-long wait in R'lyeh. I leave it to the reader to draw his or her own conclusions about the editorial direction at O'Reilly...Anonymous
May 19, 2009
How does F# compare to Mathematica?Anonymous
May 21, 2009
The comment has been removedAnonymous
May 27, 2009
So, actually, it was a serious question: is anyone familiar with both the programming environments of F# and Mathematica and, if so, what are the comparisons that come to mind?Anonymous
May 27, 2009
I used Mathematica a bit in college but definitely don't consider myself an expert. From what I recall F# and Mathematica are two very different tools for solving very different problems. Mathematica can be though of as an interactive tool for exploring mathematical-style problems, which happens to support programming. F# is a general purpose programming language, that happens to support data exploration. While the FSI window feels in many ways like a limited Mathematica session, it doesn't support saving 'state'. That is if you introduce several values in an FSI session, you cannot save that session and load it at a later time like you can in Mathematica. However, while you can write applications that have UIs, connect to databases, do file IO etc in Mathematica F# provides a much better experience. Both at the library level - from .NET - and at the programming language level. (Since F# was 'built' for that.) If you want to do math / physics, stick with Mathematica. If you want to write programs, check out F#. Does that help any?Anonymous
May 28, 2009
Yes indeed it does. Many thanks!Anonymous
June 03, 2009
You did so well with that question, here is another. Are there any examples of using MSMQ from F#? I am trying to get my feet wet by doing something familiar, eventually ramping up to doing new things with the language.Anonymous
June 03, 2009
Unfortunately, I haven't seen any MSMQ + F# examples out there, but it shouldn't be difficult to write one. But porting a C# MSMQ sample to F# should be a straight forward process.Anonymous
June 09, 2009
Those wack invertebrates will sting you! Old school!Anonymous
June 28, 2009
That's clearly the FSM. Flying Spaghetti or F#, you be the judge.Anonymous
July 04, 2009
I set this as my MSN picture, and my friends were perplexed as to what a musical note has to do with programming, and what programming has to do with jellyfish.