3 ms·
> C# is picking up a lot of small things that make it incrementally better than it was before agree. C# is kind of morphing into F# with new features like reco
by MangoCoffee 5y ago
> C# is picking up a lot of small things that make it incrementally better than it was before
agree. C# is kind of morphing into F# with new features like record.
- corysama 5y agoC# is Microsoft Research’s multi-decade play to convince Java programmers to become Ocaml programmers so slowly that they don’t notice.
- pjmlp 5y agoGiven that Java was Sun's attempt to bring C++ developers half way to Lisp, and C# was born out of a lawsuit due to stuff like adding Forms, COM, events and P/Invoke to Java, maybe not.
- the_only_law 5y agoI can’t remember if it was a joke or serious, but I recall some comment on HN a while back trying to explain why Java was an ML.
- Zababa 5y agoIs it this one? https://news.ycombinator.com/item?id=26366665 https://news.ycombinator.com/item?id=26366665 The comment itself makes sense, though I don't know how is the adoption of new features in the ecosystem.
- xupybd 5y agoC# is OO by default, F# is functional by default. Both support either but it's easier to use the tool dedicated to the style you want to program in.
- ddek 5y agoI see this take a lot, and vehemently disagree. An OO language with record types and pattern matching expressions, plus a vague hint of union types in the future; is not a functional language. Depending on who you ask, it's either a quasi-functional OO language or a bloated OO language. I used to be in the first camp, now I lean towards the latter. Over time, projects morph into the average of their framework. If you started off badly, if it survives long enough eventually someone will refactor it into something acceptable. If you start off using FP features, eventually they will be eroded away; through friction with external dependencies, or later developers being less invested in the paradigm. In both cases you're usually left with an inconsistent codebase. When people say that C# is morphing into F#, my usual thought is 'have you ever seen an FP project?' Take some time and read some FP codebases, and compare them with a typical C# codebase. (side-note: one of the most widely used FP language for web development is elixir. There are a few good open-source elixir projects you can read to get a feel for the structure. Almost all elixir projects follow the same structure, and it's about as anti OO/SOLID as possible, yet still conforming to a vague onion architecture.)