4 ms·
> I'm not a talented developer > [uses F#] That has to be humblebragging. The average .net developer is terrified of or doesn't even know about F#.
by tokinonagare 4y ago
> I'm not a talented developer
> [uses F#]
That has to be humblebragging. The average .net developer is terrified of or doesn't even know about F#.
- Eji1700 4y agoIt's really not. I'm quite terrible from any industry perspective. F# isn't hard, it's just different. Hell in many ways i'd argue it's much much easier once you get used to it. It doesn't have the support C# does so often you're stuck with a library that WILL work but doesn't have documentation for doing it in F#, and that can lead to struggles, but that's not really a sign of being a good coder. Most dotnet developers could probably code circles around me in F# if they knew it existed/gave it a chance. Personally I stuck with it because it had the low code look of python with strong typing. It took a bit to wrap my head around some functional stuff (basically map/iter = foreach and if you want to update something on each loop you probably want a fold, or more likely a built in function), but once I got over that hurdle it was pretty smooth sailing. The irony is that by far the hardest part is the library thing, which your average dotnet dev would handle WAAAAY better than me.
- bmitc 4y agoIt's an interesting phenomenon because F# is far easier to learn than C#.
- tokinonagare 4y agoI don't agree, because learning F# is essentially learning two very different languages at the same time: first OCaml from which it was initially an implementation, then C# for all the object/CLR layer. It's easy for people with functional programming knowledge, or who had OCaml as their first programming experience like I did at university, but for people without those exposures I can understand the difficulty.
- bazoom42 4y agoPerhaps if you already know C#, otherwise I doubt it. Of course it depends on ones prior experience, but F# is functional but still requires you to understand OO in order to interact with the framework.
- Eji1700 4y agoI think it's harder if you already know C# or some other OO language. I really think it would be easier, or about the same, to teach a raw beginner the basics of F# vs C#. The only reason F# winds up feeling harder isn't so much how F# works, but simply because the entire dotnet environment was built for C# first, so you do need to know how to handle the C# style. I do think that if you could just pick one and then suddenly have every library support it's styles, F# would probably be easier overall because it's just got a lot of nice features built in that make updating your code so much easier.
- bazoom42 4y agoF# has two ways to invoke functions, ‘f a b’ and ‘f(a,b)’. You need to know when to use what. There is no way this is simpler to beginners compared to having one consistent way. C# is not a simple language, but F# has basically all the complexity of C# with OCaml on top. Either C# or OCaml would be simpler to learn, although the combination is powerful.
- nequo 4y agoI don't know F# but the reference only mentions the `f a b` syntax.[1] `f(a, b)` looks like a call to a function that takes a single tuple as its argument. So I would expect `f` to have the type signature `A * B -> C` instead of `A -> B -> C`. Is my intuition wrong? If it is, then what does F# use the parenthetical syntax for? [1] https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/functions/#calling-a-function https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref...
- bazoom42 4y ago
- nickpeterson 4y agoI’ve encountered the same thing. I’m a terrible programmer but find f# way clearer than most C#/java. But I work with tons of great developers who would rather cut off their finger than learn f#, it bothers me because it exposes some fundamental difference between us I dont like to believe exists.
- politician 4y agoJob vs craft. Or, maybe, they just don’t want to pollute the codebase with a new thing that breaks. Consistency is a virtue in old codebases.
- OOPMan 4y ago> I'm a terrible programmer Oh? Did you win some award? I'm curious as to how you're determining this?
- nickpeterson 4y agoNot a humblebrag. I’ve noticed I struggle with tracking lots of variables and states compared to many fellow developers. I’ve sort of tried to turn this weakness into a strength, by making code simpler, but sometimes I make it too terse because I like code golfing.
- ModernMech 4y agoIs the average .net developer terrified of F# because they're not talented enough, or because it's different?
- Eji1700 4y agoIt's 100% the latter. I get "ok we don't want to mix codebases" and that's fine, but if you can code in C# you can probably get up and running in F# in a week, maybe a month if you struggle with some of the concepts. One major issue I do see coming from the C# side is "well how do I do this then?!", which often the answer is "you don't, because you don't need to" or "well what if it's more performant to do it mutably!" well then thankfully F# can absolutely do that. If you keep an open mind it's really a very clean and simple language, but in an age where half of development is importing 8 well known libraries, not being the main supported language is a major weakness.
- pyjarrett 4y agoI normally write C++, but I've also written in Rust, Python, Ruby and bunch of other languages. I've never had trouble with a programming language until Haskell, and had to accept that I'm just probably just not smart enough to do it. However, I wrote my first thing a port of a small C# tool of a couple hundred lines, to F# in about an hour. It's been about a week now, and things are considerably smoothing out. To be considered niche, the F# tooling has been great. Also, having the .NET libraries available adds a lot of built-in capability.
- JackMorgan 4y agoIn my experience most developers remember how hard it was to learn their first language, and worry that the second will be just as hard