5 ms·
From my biased perspective, it could be OCaml thru Reason. The .NET/Microsoft ecosystem is a no-go for a lot of people, and F# doesn't have functors. Being a s
by jasim 8y ago
From my biased perspective, it could be OCaml thru Reason.
The .NET/Microsoft ecosystem is a no-go for a lot of people, and F# doesn't have functors. Being a statically typed language, you don't have something like Ruby's mixins to share code, nor do you have OO's interface inheritance. Functors fill this gap by allowing you to mint new modules out of existing modules, and is a powerful way of achieving modularity. Simon Peyton Jones critiques that while OCaml's modules are very powerful, the power/cost ratio is not very favourable. And it is true - there is a bit of learning curve, but I think it can be eased as the community grows.
For good or for bad, Javascript is the lingua-franca of computing today if adoption is any measure, and anything that goes against its norms face strong downdraft (try getting Ruby+Opal mainstream adoption). But the updraft can be useful (I'm probably the only person on the internet who don't understand React Hooks yet which was announced just a few weeks ago). Reason is Javascript++: the syntax is very close, and it compiles to vanilla JS with great interop with npm. The promise of gradual adoption I think is a good marketing lever. We'll see in a few years.
There is also Elm, which is just so good for building rich web applications on the browser. It is a language with wonderful aesthetics, clear long-term vision, and avoids importing the complexity of academic research, which is often the case in other typed functional languages.
But you don't really need to pick a language more than you pick Typed FP. F#, Haskell, and PureScript are great as well - each has different tradeoffs. But once you understand the set of features underpinning Typed FP you can move around languages with relative ease, and that's what I think matters most.
- plinkplonk 8y ago"For good or for bad, Javascript is the lingua-franca of computing today " a very strong claim. There is a lot of 'computing' outside the browser. lingua franca of front end web dev, I grant you, (almost by definition 'front end web dev' is mostly javascript).
- jasim 8y agoYes you're right. I thought Javascript had become the most popular language out there, but TIOBE claims otherwise.
- oblio 8y ago> The .NET/Microsoft ecosystem is a no-go for a lot of people Why? It's not 2005 - 2009 anymore, when there was this Mono push in Linux-land (remember Banshee? :) ).
- Bizarro 8y agoThe Facebook ecosystem is a no-go for a lot of people. Reason seems interesting and I'm glad they shed some of the OCaml syntactic baggage to make it more programmer ergonomic, but it's very unlikely that it'll ever take off. Typescript already has the statically-typed JS market share, and that won't change. Once Web assembly becomes a mainstream, viable thing, I think we'll see a couple new languages come out that don't have the baggage of legacy like OCaml or Javascript, and could possibly flourish.
- pjmlp 8y agoLanguages need a reason (OS SDK, framework, use case) to flourish. Mainstream picks languages based on use cases, not the other way around.
- int_19h 8y ago> Being a statically typed language, you don't have something like Ruby's mixins to share code, nor do you have OO's interface inheritance. But you do, though. You have open object types, and you can write generic functions in terms of those types, which effectively serves as interfaces (or traits) in other languages.
- pjmlp 8y agoFunctors can be implemented via classes, interfaces and generics. It is 100% the same? No, but it is pretty close for practical purposes.