?
Solved

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

Posted on 2010-11-21
8
Medium Priority
?
732 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 1000 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 1000 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
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 

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
 
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

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
The viewer will learn how to use NetBeans IDE 8.0 for Windows to connect to a MySQL database. Open Services Panel: Create a new connection using New Connection Wizard: Create a test database called eetutorial: Create a new test tabel called ee…
The viewer will learn how to synchronize PHP projects with a remote server in NetBeans IDE 8.0 for Windows.
Suggested Courses
Course of the Month16 days, 16 hours left to enroll

862 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