Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

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

Posted on 2010-11-21
8
Medium Priority
?
721 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Visualize your virtual and backup environments

Create well-organized and polished visualizations of your virtual and backup environments when planning VMware vSphere, Microsoft Hyper-V or Veeam deployments. It helps you to gain better visibility and valuable business insights.

 

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

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

The object model of .Net can be overwhelming at times – so overwhelming that quite trivial tasks often take hours of research. In this case, the task at hand was to populate the datagrid from SQL Server database in Visual Studio 2008 Windows applica…
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…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
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…

610 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