I would say because functional programming performs some tasks better than object oriented and vice versa. F# attempts to take what each does well and combine it into one easy to use language.

By on 10/15/2008 6:39 AM ()

Hi Esther,

I really like this quote from Eric Meijer writing in the forward to F# Expert, I think it gives good insight into why the language is useful:

"F# is unique amongst both imperative and declarative languages in that it is the golden middle road where these two extremes converge. F# takes the best features of both paradigms and tastefully combines them in a highly productive and elegant language that both scientists and developers identify with. F# makes programmers better mathematicians and mathematicians better programmers."

Cheers,

Robert

By on 10/10/2008 5:49 AM ()

Those comments from Eric are nice, but I want YOUR opinion!

By on 10/10/2008 8:03 AM ()

Why is that? Erik Meijer is an authority on programming languages. In comparison, any developer here will probably tell you F# rocks, just as any developer on a PHP discussion board will tell you PHP rocks.

Perhaps you should title your article, "5 languages with people I managed to coerce into saying they should be on your radar." Simply posting on Internet bulletin boards doesn't seem like a very scientific--or, in fact, journalistic--way of answering the question.

By on 10/11/2008 8:56 AM ()

I fully expect any developer on a &language; board to say that the &language; rocks. They probably wouldn't hang out, helping other people, if they didn't think it was useful.

But that's not the point of this article. It's to tell the bosses -- the people who set policies like "We are a Java shop" or "These are the approved tools" -- what makes each language special, in the eyes of its users. What's *this* one good for? What's it do better than the language(s) already approved for use? What makes developers passionate about it?

So quoting an authority isn't the point here. I want to hear from ordinary developers why they'd like their IT managers to say, "Sure, go ahead and use F#." And that means your stories, your opinions. Not an authority's.

By on 10/12/2008 6:46 AM ()

Hi,
It is of course quite difficult to explain why F# is an interesting language. I'm currently working on a book (mostly) about F# (www.manning.com/petricek), so I spent a long time trying to figure this one out :-).

At a very very high level, F# is important because it encourages the functional immutable style of programming, which is very suitable for writing concurren and distributed programs that can be easily tested. Moreove, it supports the declarative style of proramming. The way I like to talk about declarative style is that it allows you to divide the work between senior programmers that develop some "smart" library for solving problems and junior programmers that use it to solve daily problems. An example of this may be List module in F#, but the LINQ libraires in .NET 3.5 follow the same functional principles.

Another way of looking at F# is to talk about the usual F# development style. When writing some code in F#, you start with the simplest possible way to solve the problem - basic types that F# provides and functional techniques are the best fit for this way of development, together with the F# interactive environment which helps you to test the code interactively as you write it. Once the code grows lager and becomes more mature, you however need to turn it into a real library with a strong logical structure. F# gives you again an excellent way for doing this - you can wrap the code that you already wrote using F# object types and make them look like standar .NET/C# classes. You can also use various .NET testing tools etc. that are definitely valuable in later phase of the project.

This way you can start with simplicity (just as in dynamically typed languages such as Python or Ruby), but end up with a very robust program (just as in C# or Java). The key benefit of F# that the transition is completely fluent without having to do any painful steps in between - in fact, you don't need to rewrite any code that you wrote at the beginning.

BTW: I would be quite interested to hear what other people think about this way of looking at F#!

Tomas

By on 10/12/2008 9:54 AM ()

The article is live -- thanks for your help!

6 Scripting Languages Your Developers Wish You'd Let Them Use
Several up-and-coming scripting languages--some open-source--are gaining popularity among software developers. These dynamic programming languages, including Groovy, Scala, Lua, F#, Clojure and Boo, deserve more attention for your enterprise software development, even if your shop is dedicated to Java or .NET. Here's why.
[link:cio.com]

And for a bonus... I also published this slide show today.

7 Cool, Weird and Useful Computer Keyboards
Not every computer keyboard or input device is a boring hunk of plastic. We look at several ergonomic, wireless, high-tech and just plain fun keyboards to brighten your day and give joy to your fingertips.
[link:www.cio.com]

By on 10/13/2008 3:20 PM ()

I think from a CIO / COO / CEO perspective the two following points are most important.

1) If you use the functional aspects of F# you have a fully testable entity -- in other words you can test this module or that function by itself and know that it will work exactly the same way when it is included in the overall system -- due to the lack of side effects in functional programs.

2) Due to physical limitations we are hitting a speed limit (at least in the near term) with processors -- we haven't seen a real speed increase in about 5 years. So what are the chip makers doing -- they're going parallel with dual / quad / octal cores -- to benefit practically from this you need to add more threads -- with other languages this is expensive and problematic, but, due again to the functional aspects of F# comes very close to being free.

Those are the two arguments I'd use to pitch the commercial acceptance of F#

-- Geoff

By on 10/13/2008 4:02 PM ()

I have been learning F# for a few weeks now, and I have only used the debugger once. Even though I am an experienced C++ developer, I can't manage to write a non-trivial program longer than 500 lines in C++ without spending at least half my time in the debugger.

By on 10/10/2008 9:20 AM ()

I find it difficult to articulate succinctly why I like F# because it’s a combination of a large number differences small rather than anyone killer feature. Here’s my attempt to summarize succinctly what I like:

- In F# all functions are values, this allows you to pass a function to another function as a parameter. This means I can refactor my programs so there’s no repeated code.

- In F# things are immutable by default and F# introduces a number of things that make programming with immutable data structures easier. Specifically in F# everything is an expression, meaning everything returns a value, it also has tuples that allow you to return more than one value from a function and a nice syntax for creating modified copies of data structures rather than mutating them.

- The fact that F# encourages you to work with immutable data structures means the type system does it job better – the type system shows you what values a function takes and what it returns, if your programming in the functional style then this is all you need to consider, you don’t need to worry about side effects.

- F#’s type inference means that the compiler can spot errors in programs yet programs don’t need lots of type annotations, this means F# programs are both sort and safe.

- F# has a rich and flexible type system that allows me to model things in ways that aren’t possibly in other programming languages.

- Pattern matching in F# helps express algorithms more cleanly and succinctly.

- The F# interactive means I can execute parts of my programs dynamically, giving F# the feel of a dynamic language while it retains the performance and safety of a statically typed language.

- Because F# targets the .NET framework I can use any library or tool available for .NET, this gives me a lot of choice!

Cheers,
Rob

By on 10/11/2008 12:35 AM ()
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper