Solved

F# - Good, Bad, or No one know yet...

Posted on 2010-11-21
8
674 Views
Last Modified: 2013-11-26
Hi, I'm about to upgrade to VS 2010 and I was reviewing the some of the new features. I see that F# is now offered with VS2010. - What are your basic thoughts about the language and why would I want to use F# over say C# or VB...or perhaps C++?

Thanks for your help,
Fulano
0
Comment
Question by:Mr_Fulano
  • 4
  • 2
  • 2
8 Comments
 
LVL 3

Accepted Solution

by:
kraiven earned 250 total points
ID: 34186644
Hi Fulano,

F# is a primarily functional language but with OO features which allow it to easily integrate into the .Net environment and seamlessly interoperate with other .Net languages. Functional languages are centred around immutability and functions as first class language features. Functional language features, and functional language thinking, are increasingly being incorporated into OO mainstream languages, for example: lambda expressions,  Linq, type-inference.
Functional languages are ideally suited to certain types of problem, particularly mathematical/finance and multi-tasking problems. In the first case the very nature of these languages allow them to closely transcribe mathematical functions, in the second, immutability of values negates the need for locking in threaded applications.
F# is a hybrid language. It can be written in the style of purely functional languages; but additionally F# is also a fully fledged OO language so it is perfectly possible to write complete Web and Windows applications entirely within F# - although at this point in time there is no UI designer for F# - alternatively a solution can contain C#/VB .Net UI projects alongside an F# business layer. This is what we do.
So, I personally would recommend investigating F# (but then I love the language so I would say that). For more information take a look at these web sites:
Nine reasons to use F#
Hub FS
MS F# developer centre
A F# guru's blog

Welcome to the club!
0
 
LVL 18

Assisted Solution

by:Richard Lee
Richard Lee earned 250 total points
ID: 34187119
F# as a language is not bad. It lends itself to certain problems quite effectively as highlighted above, mathematical, finance and multi-tasking problems. When deciding on whether a language is good or bad I tend to look at more features that simply what problems the language lends itself to more easily. For instance:

1. How well is this language known within the industry?
2. What is the current adoption and future adoption for this language?
3. Do I have problems that this language will better help me address?
4. What is the uptime for me & possibly a team getting started using this language effectively?
5. Is their enough skill within the organisation to take advantage or even keep its head above the water if this technology is adapted?

I am sure there are many more questions but these are things to consider. On the back of those questions I would say F# outside the financial industry is not good. Even within the financial  industry there still needs to be other considerations before adopting the language.

Within a smaller team or with just an individual I would say go for it. It will definitely open your eyes up to functional programming, enhance your resume/cv, improve your programming ability, etc.

DaTribe
0
 

Author Comment

by:Mr_Fulano
ID: 34194127
Kraiven, thank you for the links and the overview. Your contribution will be very helpful in my assessment of the language.

Fulano
0
 

Author Comment

by:Mr_Fulano
ID: 34194130
DaTribe, thank for your thoughts. I can see right off the bat that you have in-depth experience in the business world and are pointing things out that the average person doesn't see on the onset. --- Very in-depth perspective. Thank you!

Fulano
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 18

Expert Comment

by:Richard Lee
ID: 34195210
Great feedback Fulano!

I am not sure how much more I could add except that during my years of growing as a developer and within the computing industry I was, and still am faced with the problem of wading through all the new programming & otherwise tools, methodologies, and concepts. I quickly realised that considered selection of what to delve into deeply was needed otherwise becoming a "Jack of all trade, master of none" would be highly likely. This is not to say learning F# should not be on the cards since as you know to be a star developer you will have to know a lot of things.

I guess my point is here, does learning F# take you in the direction you want to go? Does it contribute to becoming a better developer and how can you leverage it?

DaTribe

0
 

Author Comment

by:Mr_Fulano
ID: 34202805
Hi DaTribe, very good points indeed...my interest in F# was purely based on curiosity. I know how powerful some of the other languages currently are and was curious as - why would I want to code in F# instead of another language. In other words, does it provide better access to hardware than perhaps C++, etc. I do however appreciate your thoughts on the matter and will at least look at it as a possible future personal challenge...

Thanks,
Fulano
0
 
LVL 3

Expert Comment

by:kraiven
ID: 34203741
F# is a .Net language, so everything you write ultimately compiles down to IL the same as any other .Net language - there are some optimizations in the F# IL, for example, tail recursion (recursion is the standard looping paradigm in functional languages) but otherwise anything you can do in F# you can do in C#. it's the expressiveness of the language which is important, and whether you use F# for real apps or not I firmly believe that understanding the functional language paradigm is certain to improve your code in your work-a-day language.
0
 

Author Closing Comment

by:Mr_Fulano
ID: 34272344
Both of your answers were very helpful. Thank you for the amount of information you bioth provided.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

This document covers how to connect to SQL Server and browse its contents.  It is meant for those new to Visual Studio and/or working with Microsoft SQL Server.  It is not a guide to building SQL Server database connections in your code.  This is mo…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
The viewer will learn how to synchronize PHP projects with a remote server in NetBeans IDE 8.0 for Windows.
The viewer will learn how to use and create new code templates in NetBeans IDE 8.0 for Windows.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now