Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 221269
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T19:01:03+00:00 2026-05-11T19:01:03+00:00

I am wondering if I should continue to learn OCaml or switch to F#

  • 0

I am wondering if I should continue to learn OCaml or switch to F# or Haskell.

Here are the criteria I am most interested in:

  • Longevity

    • Which language will last longer? I don’t want to learn something that might be abandoned in a couple years by users and developers.
    • Will Inria, Microsoft, University of Glasgow continue to support their respective compilers for the long run?
  • Practicality

    • Articles like this make me afraid to use Haskell. A hash table is the best structure for fast retrieval. Haskell proponents in there suggest using Data.Map which is a binary tree.
    • I don’t like being tied to a bulky .NET framework unless the benefits are large.
    • I want to be able to develop more than just parsers and math programs.
  • Well Designed

    • I like my languages to be consistent.

Please support your opinion with logical arguments and citations from articles. Thank you.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T19:01:03+00:00Added an answer on May 11, 2026 at 7:01 pm

    Longevity

    • Haskell is de facto the dominant language of functional-programming research. Haskell 98 will last for many more years in stable form, and something called Haskell may last 10 to 30 years—although the language will continue to evolve. The community has a major investment in Haskell and even if the main GHC developers are hit by a bus tomorrow (the famous “bus error in Cambridge” problem), there are plenty of others who can step up to the plate. There are also other, less elaborate compilers.

    • Caml is controlled by a small group at INRIA, the French national laboratory. They also have a significant investment, Others are also invested in Caml, and the code is open source, and the compiler is not too complicated, so that too will be maintained for a long time. I predict Caml will be much more stable than Haskell, as the INRIA folks appear no longer to be using it as a vehicle for exploring new language ideas (or at least they are doing so at a smaller rate than in the past).

    • Who knows what a company will do? If F# is successful, Microsoft could support it for 20 years. If it is not successful, they could pull the plug in 2012. I can’t guess and won’t try.

    Practicality

    A hash table is the best structure for fast retrieval. Haskell proponents in there suggest using Data.Map which is a binary tree.

    It depends on what you are searching. When your keys are strings, ternary search trees are often faster than hash tables. When your keys are integers, Okasaki and Gill’s binary Patricia trees are competitive with hashing. If you really want to, you can build a hash table in Haskell using the IO monad, but it’s rare to need to.

    I think there will always be a performance penalty for lazy evaluation. But “practical” is not the same as “as fast as possible”. The following are true about performance:

    • It is easiest to predict the time and space behavior of a Caml program.

    • F# is in the middle (who really knows what .NET and the JIT will do?).

    • It is hardest to predict the time and space behavior of Haskell programs.

    • Haskell has the best profiling tools, and in the long run, this is what yields the best performance.

    I want to be able to develop more than just parsers and math programs.

    For an idea of the range of what’s possible in Haskell, check out the xmonad window manager and the vast array ofpackages at hackage.haskell.org.

    I don’t like being tied to a bulky .NET framework unless the benefits are large.

    I can’t comment:

    Well Designed

    I like my languages to be consistent.

    Some points on which to evaluate consistency:

    • Haskell’s concrete syntax is extremely well designed; I’m continually impressed at the good job done by the Haskell committee. OCaml syntax is OK but suffers by comparison. F# started from Caml core syntax and has many similarities.

    • Haskell and OCaml both have very consistent stories about operator overloading. Haskell has a consistent and powerful mechanism you can extend yourself. OCaml has no overloading of any kind.

    • OCaml has the simplest type system, especially if you don’t write objects and functors (which many Caml programmers don’t, although it seems crazy to me not to write functors if you’re writing ML). Haskell’s type system is ambitious and powerful, but it is continually being improved, which means there is some inconsistency as a result of history. F# essentially uses the .NET type system, plus ML-like Hindley-Milner polymorphism (See question “What is Hindley-Milner”.)

    • OCaml is not quite consistent on whether it thinks variants should be statically typed or dynamically typed, so it provides both (“algebraic data types” and “polymorphic variants”). The resulting language has a lot of expressive power, which is great for experts, but which construct to use is not always obvious to the amateur.

    • OCaml’s order of evaluation is officially undefined, which is a poor design choice in a language with side effects. Worse, the implementations are inconsistent: the bytecoded virtual machine uses one order and the native-code compiler uses the other.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am wondering how should I be grouping my repositories? Like from the examples
I was wondering how should I proceed to debug while working with frameworks. Like
I'm wondering if I should be using a Backbone.Collection called ExerciseList for my exercises
I'm wondering whether I should create extension methods that apply on the object level
I'm wondering if I should use OpenId for my website. My first exposure to
I am wondering how I should structure a FAQ to keep the semantic meaning
I'm wondering if I should change the software architecture of one of my projects.
I am wondering what rights should be given to sql server user for asp.net
(I'm a cocoa beginner and ) I'm wondering why we should do: NSLog(@this is
This is a security best practice and I'm wondering if I should even be

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.