What is the most underestimated programming language?

Everyone outside of tech has heard of JavaScript, Java, Python, Ruby and even .Net, but few if any have heard of F#. However, F# may be one of the world’s most underestimated (and underrepresented) languages today, if developer surveys and web chatter are anything to go by.

StackOverflow’s 2018 developer survey revealed the startling fact that F# is the world’s most highly paid language, and the 8th highest paid language in the US. Is this because F# is the most sought-after language? Not exactly…

https://medium.com/skills-matter/what-is-the-most-underrated-programming-language-fafe164a8cd1

This thread was posted by one of our members via one of our news source trackers.

1 Like

Corresponding tweet for this thread:

Share link for this tweet.

1 Like

Coming from Elixir, I’ve found the F# in the book Domain Modeling Made Functional almost absurdly easy to read. The book was recommended by a friend to help with thinking about a project in Elixir and Phoenix.

But I have a question: how much stuff other than F# do you need to learn in order to really use F#? Do you need to learn the whole .Net universe, and do you need a good grasp of C# to actually use F# in a real project? How tough is that stuff?

4 Likes

Not sure if this is any help to you @malloryerik - but spotted it and thought of you :smiley:

2 Likes

Sadly my personal life struggles and work load have made me severely reduce my exploratory walks on the internet for such an underrated pieces of tech.

But from some months ago I still remember The Unison language. Having the language itself find and cache common sub-structures inside it as content-addressable DB definitely sounds like the future to me.

Plus the older I get the more cranky I get about “language X is best! no, language Y is better!” stuff. Fact is, I haven’t found an excellent language, ever, and believe me I tried.

Another thought while we’re on this: I believe in the near future language syntax and runtime implementation will get separated. One example in how this is already happening are all languages that use LLVM for their compiler backend – Rust, Gerbil Scheme, and many others.

So if there’s an underrated language / tech out there, it should emphasize on a few key elements – mostly ability to mutate the code easily with tooling.

Classic programming will die in the next few decades. There’s a huge pressure to be able to issue commands like “remove this route” or “add this REST API endpoint” or “add a property test for module X with limitations A, B and C”. And I’d love to work on that but hey, nobody is paying for it so for now it’s just a hobby… hobby for which I scarcely have the time. sigh

4 Likes

Language aside, did you find this book helpful in the context of Elixir?

3 Likes

Another language that is underestimated is Fortran (I mean modern Fortran 2003 and up). Despite its age Fortran is really powerful language and if used well quite modern - it has modules, pure functions, interfaces, OOP, operator overloading, direct interoperability with C, native multidimensional array operations (like Matlab or NumPy). Also speed, for numerical calculations nothing beats Fortran.

2 Likes

So far parts of Domain Modeling Made Functional have been quite useful, yes.

I’ve been confused about how to structure an app, and Scott Wlaschin’s book helped a good deal with thinking about how to organize contexts, modules, how to think about them communicating with each other.

Unlike Elixir, F# is statically typed, and Domain Modeling Made Functional turns the custom types knob up to 11 to match the way non-programming stakeholders in a project might think and talk (no strings or ints or floats). It’s awesome, actually. I’m guessing that similar moves might possibly work in Elixir with embedded Ecto schemas or module structs made just so. But I haven’t tried anything there yet, but it certainly helps to have in my mind while I’m setting up a schema for example.

5 Likes

Thanks for the detailed response. I’ll have to give it a go!

1 Like

You might like this Paul:

:smiley:

3 Likes

@malloryerik I’m definitely looking forward to reading this book because I’m interested in applying domain modeling to my Elixir applications. Thanks for sharing your experience.

3 Likes

I really like the idea of elm, but it really lacks most support that makes it a really convenient language.

3 Likes

That was primarily because of no memory aliasing in the older versions (and hence why most BLAS libs are made in it). Other languages with no aliasing issues either, like rust, can theoretically compile to the same speed as fortran for pure number work (these are often the cases when rust outperforms C/C++ for otherwise identical code).


F# is quite nice, basically it’s just a .NET OCaml (you can even copy/paste most OCaml code in and it will just work, that don’t use higher typed modules that is, it bugs me that F# lacks those as they are so crazy useful, instead F# going the .NET style of ugly dynamic dispatch instead) with extra features on top since then too (F# moves faster than OCaml, though it is also less uniformly designed than OCaml, some questionable things added, where OCaml drills it to pieces before they add in something new to make sure it’s the best it can be nowadays).

3 Likes

im waiting for their 0.20, which is kinda off-putting

3 Likes

In my opinion, F#. I wish there were much resources on it as there are on React.

2 Likes

There are no clues when it is going to release next version, though. lol

3 Likes