Hacker News new | ask | show | jobs
by pjmlp 639 days ago
- Stuff like LINQ and Expression Trees are to be found in Lisps, Smalltalk and ML derived languages

- Kind of true on this one, although Active Objects, and various flavours of co-routines predate its use in Midori, which eventually lead to async/await design

- Already present in Eiffel and Delphi

- Eiffel among possible others

- Special case of languages that allow for generalised call operators, and Delphi and C++ Builder did partial before

F# currently is so relevant that apparently has zero content to show up on .NET 9 release notes.

2 comments

Currently posted .NET 9 articles talk mostly about platform-wide features and improvements, pretty much all of which equally benefit F#. Probably even more so when it comes to performance - I expect devirtualization and escape analysis improvements to impact F# to a greater extent than C#.

Language-specific articles are usually posted closer to the release date. Example: https://devblogs.microsoft.com/dotnet/announcing-fsharp-8/

Except that they haven't been shy about C# 13.

https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/cs...

The efforts on F# are a tragedy, instead of providing proper content, forward to blog posts that we all know eventually disappear from Microsoft blog history.

https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fs...

That's just how F# team does things. There's no "single direction and decision" behind this - much less people work on F#, it's a much more community-driven language.

Personally, I see nothing wrong with it, because what matters most is how practical the language is when applied to solving a particular task, how well it integrates with the rest of the ecosystem, etc. On this front, I think F# does better than Scala or Clojure, or even Kotlin.

What it does need, I think, is better marketing around data science and machine learning domains - F# is a language which very well fits into this use case, and already has small but nice set of libraries like Diffsharp, and is being used by research labs in pharma sector (albeit on top of Fable, which I'm not a fan of).

You also need to remember that many C# features stabilize very late into release cycle. On one hand, posting about development early and actively brings more feedback, which is good, but it also may give a wrong impression, especially if a casual reader misses "this is early/experimental" disclaimers.

Scala, Clojure, and Kotlin are much more taken care of than F# will ever be.

In tooling, books, conferences, critical applications used in large scale across the industry.

Meanwhile Microsoft keeps behaving as if it was a management mistake to have added it to VS 2010.

Kotlin? For sure, it's the Android language after all, so it is looked after, sure. Does it integrate better? That's up to debate. For example, F# 9 integrates C# NRTs in the form of T | null unions, which is elegant and idiomatic approach that brings together nullness knowledge between the two. For now, this is not the case with Kotlin.

I encourage you to look at the state of Clojure and its usability within larger Java ecosystem. Quantity of material, as usual, is not everything.

> Meanwhile Microsoft keeps behaving as if it was a management mistake to have added it to VS 2010.

Do you have anything to back up this assumption with?

Clojure Datatomic powers Nubank business, just for one example.

Scala still powers a lot of big data and distributed computing frameworks in Java ecosystem. In .NET, the counterparts which only exist for Akka really, are written in C#.

.NET has hardly any big product that is relevant for big data folks, and the ones that exist are equally written in C#.

The only well known flagship product was JET.com, meanwhile acquired by Walmart, which by now was rewriten most of it.

The lack of exposure in .NET ecosystem, not keeping to the story how to sell F#, first companion class libraries, then Web development, maybe type provideders with the World Bank example demoed to exhaustion, maybe machine learning (while Microsoft actually hires Guido and alongside Facebook brings performance improvements and JIT support), only C# and VB are default for Windows desktop workloads, nowadays in what concerns .NET 9, who knows what the theme is.

In Visual Studio 2024 full installation, how many C# workloads also support F# as an option?

It is basically CLI, class libraries, and those old Web projects from the "F# is great for Web" marketing phase.

> I encourage you to look at the state of Clojure and its usability within larger Java ecosystem. Quantity of material, as usual, is not everything.

For what it's worth, I have been a newcomer to both languages the past few years. Clojure has been way more usable than F# and it's not even close.

Clojure is firmly in the quality not quantity category. Good books, novel libraries, a very active slack. Things usually "just work."

F#? Broken type providers, scaffolding that doesn't work past .NET 6.0, a genuine lack of books. Sometimes things work great, they often don't, and the typed nature makes a lot of these things hurt more.

I don’t think C# has introduced any never-seen-before features. Usually they have been tried out in an experimental language before.

I belive Linq was prototyped in Haskell or at least based on experiments in Haskell.