views:

314

answers:

2

I recently downloaded Visual Studio 2010 and would like to know if this multi-paradigm programming language is the right language for what I what I want to accomplish.. I don't have any experience with OOP, rather I'm an ole school procedural language programmer. I also downloaded an eval version of RADvolution Designer. My goal is to convert a char-based app I designed/developed 20 years ago with INFORMIX-SQL to a GUI front end with an SQL engine.

If you have time, please visit www.frankcomputer.com to view a video-demo of the app. CAVEAT: The website and video is in Spanish, but you can use Google translate to get a more-or-less idea of what my app does. At the video's 2 minute mark, you can get a better feel for the functionality. If you need further explanation, I will be happy to explain.

REOPEN THIS QUESTION!.. I've seen worse questions than this one remain open. there seems to be a biased double standard when it comes to deciding whose questions get closed and which ones aren't!

+4  A: 

Define "worth learning".

If you are or want to be a good software engineer, you should probably learn as many paradigms as you can, and if you are coming from a .NET background, then F# is a good way to learn functional programming. However, there are a lot of other languages that are functional - Haskell, Lisp, and Scheme come to mind. Learning different paradigms will help you think about problems differently and come up with better solutions.

However, just because it's new and different doesn't mean that you should run out and play with it. It sounds like you have a particular problem that you are trying to solve. You should sit down with your requirements and take a look at what features F# has to see what it can buy you. Maybe it'll make solving some of your problems easy, maybe it won't. A good thing about F#, though, is that it plays nice with the other .NET languages like C# and VB.NET - even if F# can't solve all your problems, it might be possible to use F# to solve some of your problem and other .NET tools to solve others.

In the end, though, it's all about delivering a high-quality product to the customer or end user on time and budget. That might mean learning a new technology or it might mean going with the tried and true that you know.

A problem that I see right now, though, is that if you are getting paid to solve this problem, then it might not be the best time to learn something new. You probably aren't getting paid to spent time to learn a new language - you are getting paid to design and implement a solution. If that's the case, keep F# in the back of your head for when you do have time to learn it - see my first point about learning new paradigms.

Thomas Owens
+1 - For "sit down with requirements ... "
James Black
In the end, it's all about meeting those requirements, shipping the product, and meeting the needs of all of the stakeholders to the best of your abilities. They (usually) don't care what tools you use to solve the problem - they just want a solution.
Thomas Owens
Based of my limited knowledge of the OP, I would say F# will incur a rather large start-up cost for the project.
ChaosPandion
@Thomas: FWIW, I have a 20 yr old pawnshop app written with INFORMIX-SQL and I need to modernize the app with a GUI-front end, but keep the same functionality. My app is very robust and has some incredible features which my users are very happy with. Only obstacle which is keeping me from effectively acheiving market penetration is, believe it, my app is char-based and I would like to duplicate the same functionality with a GUI. My feeling is that its quicker for a user to process a transaction with my char-based app vs. having to focus a cursor with a mouse, but cosmetics is hurting me!
Frank Computer
A: 

"char-based app I designed/developed 20 years ago with INFORMIX-SQL to a GUI front end with an SQL engine."

Sounds like CRUD, which means C# to me. If you have mathematical analysis aspects, those may well fit F# well; you should be able to plug in F# pretty easy in VS 2010 I believe.

Paul Nathan
It really isn't fair to say F# will not fit into a CRUD application.
ChaosPandion
please explain why "CRUD" means C#?
rockinthesixstring
@rockinthesixstring: Most of the CRUD code I've written is highly sequential and imperative. Functional languages simply don't map well onto that sort of concept.
Paul Nathan
@Paul Nathan: CRUD = C# ??.. Perhaps you say that because you are most comfortable with C#, but I only know procedural languages, not OOP's. I just got back into programming after a 15-year hiatus because I was too busy trying to run my pawnshop business.
Frank Computer
@Frank: Well,I was thinking in the Visual Studio frame of reference. :) Certainly there are many other languages which do CRUD well.
Paul Nathan