Live data from Hacker News

Why F# could be the next mainstream programming language (2024)

blog.snork.dev

21–30 of 99 posts

Re: Why F# could be the next mainstream programming language (2024)

#21
post #11

Earlier quoted context omitted.

Nonsense, .NET is one of the best ecosystems available. Your sentiment is one I tend to hear mostly from people who think it's still .NET Framework and Windows only

Not only. I don't want to use Microsoft technologies unless forced to or no better alternatives (GitHub/ vscode)

If you feel forced to use vscode due to "lack of better alternative" but then stop at using .NET, then you're really missing out on tools that lack better alternatives.

.NET has spoiled me so badly with C#, NuGet, and the debugger that I just don't have the patience for any other languages with their half-assed build systems, janky package managers, and after-thought debuggers.

MSBuild and the dotnet CLI tool may not be fancy, but they work and I generally find "fanciness in the build system" to be a gateway drug to "broken-ass builds that invite new layers of new broken-ass build tools on top".

Every .NET project I've worked on in the last 15 years I could pull from the repo and build-and-run immediately. I can't really say that for almost any other platform.

I was onboarding some Python developers into a C# project at work. I walked them through installing the SDK, cloning the repo, and running the app. One of them piped up,

"That's it?"

"Yeah, that's it. What do you mean?"

"What about virtual environments?"

"Uhh, I'm not sure what you're getting at."

"What if I have multiple versions of the SDK for different projects, how do I keep them from clashing?"

"Oh, yeah, don't worry about that. They all can co-exist side-by-side. Which version a project uses is part of its build settings. Venv just isn't a thing in .NET."

Re: Why F# could be the next mainstream programming language (2024)

#23

C# was Microsoft’s response to Java, was F# their response to Scala and Clojure?

It's a research language with legs. Microsoft's explicit strategy with F# is to test functional features they might decide to bring into C#.

IIRC F# was also sort of supposed to be used for their quantum efforts, which later resulted in Q# being spawned.

Re: Why F# could be the next mainstream programming language (2024)

#24
post #12

Earlier quoted context omitted.

Nonsense, .NET is one of the best ecosystems available. Your sentiment is one I tend to hear mostly from people who think it's still .NET Framework and Windows only

Microsoft historically abuses their market position. I think if you're wedding yourself to any MS technology, you need to be able to have a clear divorce strategy. Maybe true for all companies but especially true for Microsoft (perhaps Google, Apple, etc. as well)

That’s right. I wouldn’t chose a Microsoft tech unless there were a clear, independent path forward when they decide to break it.

Re: Why F# could be the next mainstream programming language (2024)

#25

Could be! Depends if MS starts putting some more money behind it, including marketing. They're pretty deep in an AI-everything spiral right now though. I'm a Clojure guy, but the ML family (specifically OCaml and F#) have always interested me as another branch of functional programming. I started out in the before times as a .NET Programmer (VB6 -> VB.NET -> C#) and have toyed with F# a little since then. It's cool,…

I had a thought today, "when is Microsoft and/or Apple going to earnestly search out their next Steve Jobs?"

And I think the answer is that guys like Bill Gates and Tim Cook are too proud, too prideful to admit they are not kickass rockstars of tech, too jealous to find and cultivate their next super-figurehead. Instead they are safe and lame.

Microsoft needs a non-lame, non-MBA, engineer to take control and inject some younger mindset into making themselves cool again, focused back on tech, UI, user experience, and passion. Engineer tooling would be a great approach.

Re: Why F# could be the next mainstream programming language (2024)

#26

I think, we’re not far from the day when LLMs will be spitting out highly optimized ilasm/byte-code (dotnet intermediate language representation). So your programming language will well and truly be a bunch of prompts. That’s it.

What would be the benefit to this versus generating highly optimized c# for example?

Re: Why F# could be the next mainstream programming language (2024)

#27

I think, we’re not far from the day when LLMs will be spitting out highly optimized ilasm/byte-code (dotnet intermediate language representation). So your programming language will well and truly be a bunch of prompts. That’s it.

I think that's unlikely to get widespread traction.

Source code is not for computers, it is a way for human developers to communicate with each other.

Compilers/interpreters are a consumer of that communication.

Without easy communication of ideas, software does not work. That's why very few people write in raw assembly (hardware or bytecode) and why so many people write in programming languages.

LLMs will not remove the human interchange of ideas. At least not the current generation of generative LLMs.

Re: Why F# could be the next mainstream programming language (2024)

#28
F# is a chimera of a language. The functional parts of the language are nicely designed: no nulls, discriminated unions (ADTs), you write simple functions in simple modules and there is nothing that is too clever to understand: it's very pragmatic. Then there is a whole lot of stuff like inheritance, classes, interfaces, nulls mainly there for dotnet interoperability that gets very ugly very fast. There are way too many variants of the same thing: records, classes, struct records, tuples, struct tuples etc, which are mainly there either for compatibility with similar c# stuff or because the default language constructs often result in suboptimal code. At the end I went with Rust because it has one way of doing such stuff. And for those interested in a gc language with functional features there is now Gleam

Re: Why F# could be the next mainstream programming language (2024)

#29

Not having exceptions doesn't seem like an advantage. My experience with either tough me that some infrastructure error are better as exceptions. Kotlin handling of nulls is probably the most elegant. And you do not need. Net. When you want 20 pods in kubernetes you probably want some alpine image instead of windows

F# has exceptions though
Post reply on HN