Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Will F# ever be a mainstream language like C# is? Or will it remain a niche language? [closed]

Tags:

f#

Will F# ever be a mainstream language like C# is? Or will it remain a niche language? Do you foresee any clients coming to you with projects executed in F#?
Will a professional programmer be able to make a living from F#. What sort of demand do you predict for F# programmers?

Kind regards,

like image 834
SharePoint Newbie Avatar asked May 12 '09 09:05

SharePoint Newbie


People also ask

Where is Will Ferrell from?

Ferrell was born on July 16, 1967, in Irvine, California, to Betty Kay (née Overman; born 1940), a teacher who taught at Old Mill School elementary school and Santa Ana College, and Roy Lee Ferrell Jr.


5 Answers

There are people making a living out of functional programming today. For examples, see the commercial users of functional programming workshop which is being held each year.

For the first version of F#, Microsoft is targetting engineering, mathematical, financial and data-processing applications (if I remember correctly). Whether that is a niche or not depends on your perspective :) but it seems like a reasonable market.

Thanks to F#'s excellent .NET integration you can, to a large extent, choose to make your projects using F#. What should your client care. If you get a competitive advantage from that with respect to C# programmers, maybe you'd better hope F# does not hit the mainstream...

Lastly, certainly F# (and Scala) are indicators that at least functional programming will become "more mainstream". But when is a language considered mainstream? I wouldn't be surprised if there are many many more lines of code in C and COBOL out there than C#,VB and Java combined. So from a C programmer's perspective, C# is a niche language. I think programming languages, thanks to virtual machines, are becoming more diversified in general (think also Ruby, Python and Haskell, for example, not taking into account all the smaller languages like Clojure, Ioke,...).

like image 78
Kurt Schelfthout Avatar answered Oct 31 '22 14:10

Kurt Schelfthout


I can't answer this for sure. Certainly it's highly subjective. We can just wait and see what happens. But one thing is for sure. Even if F# remains a minority language, ideas and functional style of programming will be further added to other languages gradually. You can't say C# 3.0 is the same as C# 1.0. It's just a matter of name similarity.

like image 26
mmx Avatar answered Oct 31 '22 16:10

mmx


I don't think that F# will ever reach the popularity of C# or other imperative languages because most applications are designed imperatively and most programmers think in this way.

But F# provides many very interesting features like LOP, compiler compilers, computation expressions (async workflows), quotations, units of measure.

Many problems can be formulated much better and more concise in a functional programming language (look at those F# examples using async {} or seq {}) and because F# is a bit more mainstream than e.g. Haskell (it has got the .NET framework that simplifies many tasks and is not purely functional!), it will be easier for many programmers to get into functional programming and learn it's advantages.

In addition, it's harder to write wrong code in F# than e.g. in C because you have good type checking, many strong types infered by the compiler and immutable values - You can intuitively prove the correctness of a functional algorithm which is often hard in an imperative one. Just think of this code which should count the number of zeros in an array:

int countZeros;
for (int i = 1; i <= length; i++) {
  if (data[i] = 0) {
   countZeros++;
 }
}

This all are factors that will bring people to use F#. The rest is marketing (Microsoft should have a F# Express Edition in VS2010!!)

like image 22
Dario Avatar answered Oct 31 '22 14:10

Dario


I can't see functional languages as a whole becoming mainstream. Ultimately anything that is alien to a mere mortal human way of thinking is never going to be mainstream.

Functional programming will however be more than niche. Its benefits in terms of expressing a problem that can be solved over multiple processors is compelling. What I see is F# libraries for specific purposes and/or F# concepts migrating to C#.

like image 20
AnthonyWJones Avatar answered Oct 31 '22 16:10

AnthonyWJones


I'm not the expert but I think one of the advantages of functional programming is the relatively painless approach to parallelism and multicore processing. Therefore in a view of the recent Microsoft announcement in this area, namely Axum http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx which is an another approach to parallel programming, I really doubt that F# will ever go mainstream. If Axum is adopted, it will be probably integrated with C# (like Code Contracts moved from Lab to C# 4.0) and F# will be used only in very specific domains.

like image 26
Karol Kolenda Avatar answered Oct 31 '22 15:10

Karol Kolenda