7 ms·
Functional programming is not just the FAD of the day. This is evident by the strong presence of functional programming in Rust, an imperative language. Functio
by nouveaux 4y ago
Functional programming is not just the FAD of the day. This is evident by the strong presence of functional programming in Rust, an imperative language. Functional programming is also the foundational idea behind React. As with most things in life, extreme ends of the spectrum rarely pan out. Pure functional programming languages are harder to work with but functional programming has a ton of merit. It's here to stay.
Regarding Ocaml, the functional aspect of the language is not hard. I have trained several junior programmers to write code in it (ReasonML). It is not a pure functional language. The biggest challenge for most people is dealing with types.
Ocaml's standard library is a huge sore point. It also lacks a lot of proper tooling. The biggest problem with Ocaml/ReasonML is that they are unable to rally everyone to a unifying vision to gain traction.
- Kototama 4y agoThe alternative Base/Core from Jane Streets looks good though. Of course it splits the community but the work done on it is very good.
- occamrazor 4y agoThey’re great, but Base is new(ish) and not complete and Core is Linux only (maybe it work on OS X too?)
- rbjorklin 4y agoThe Unix bits were broken out of core earlier this year, it’s now multi-platform. https://discuss.ocaml.org/t/ann-v0-15-release-of-jane-street-packages/9612 https://discuss.ocaml.org/t/ann-v0-15-release-of-jane-street...
- occamrazor 4y agoThat’s great to hear, I missed that update (still on 0.14).
- deleted 4y ago[deleted]
- mm007emko 4y agoI dare to disagree - I still think that functional programming is a FAD of the day right now. Like object oriented was the FAD of the day in the 1990s and many then procedural languages saw OOP extensions on top of them (Perl where you need a bless() to work with an object? :-D ) and some even were like "yeah everything is an object so let's wrap every procedure into a class and use Command Pattern instead of closures and build a Kingdom of Nouns where people will name their classes after design patterns and everything will be perfect with a cup of hot Java"). Nowadays C++ has closures. What will become the FAD of the day in 10 years? Will wee see embedded Prolog in C# 12 or C++31? Who knows? Like OOP has been with us since 1968? and hasn't disappeared anywhere, functional programming features will not disappear from mainstream languages. But the "cool new shiny silver bullet" will be something else. Like Simula-68 and Smalltalk-80 paved way for OOP, Haskell and OCaml (et. al.) have been paving way for functional programming and Prolog and Datalog have been paving way for logical programming. They won't become mainstream when logical programming becomes the FAD of the day. BTW you mentioned you taught a couple of junior programmers an ML-ish language. That's awesome! We all (programming community) need more legends like you.
- wk_end 4y agoJust a heads up: the word "fad" isn't an acronym, there's no need to capitalize it (and it looks strange to) the way both you and the person you're replying to are.
- mm007emko 4y agoThanks. English is not my native language.
- Hedepig 4y agoWhen you say "fad", do you also mean over-hyped?
- mm007emko 4y agoIn this case, yes.
- Zababa 4y ago> Ocaml's standard library is a huge sore point. I think this is a bit overstated. It's roughly the same size of JavaScript, missing regexes but having some stuff that JS lacks. And in lots of languages with large standard libraries, people tend to use standard library replacements. Considering that htere are also not a lot of people working on OCaml, the core team time is better spent on stuff like multicore rather than HTTP servers and clients. The standard library is also open to contributions. For example, in OCaml 4.14, 44 functions were added in the module Seq https://v2.ocaml.org/api/Seq.html https://v2.ocaml.org/api/Seq.html. String also had a lot of utility functions for integer decoding in 4.13 https://v2.ocaml.org/api/String.html https://v2.ocaml.org/api/String.html.
- cassepipe 4y agoNit : From what I remember and most unintuitively Reason is the language/alternative Ocaml syntax and ReasonML is its umbrella project.