Live data from Hacker News

The Untouched Goldmine of F#

rm4n0s.github.io

11–20 of 58 posts

Re: The Untouched Goldmine of F#

#11
post #8

> It may not have the information on the filename or the line of code like the ordinary stack traces, but these are useless information anyway. That is the weirdest and most crazy thing I've read in years.

Yeah, that's also my main problem with the article. Otherwise great to prmote TSTs.

I think the TSTs should also contain the stacktrace. Not or X or Y, but both X and Y.

Re: The Untouched Goldmine of F#

#12
post #8

> It may not have the information on the filename or the line of code like the ordinary stack traces, but these are useless information anyway. That is the weirdest and most crazy thing I've read in years.

No doubt it’s harder to write structured code and assertions against a string stacktrace, but as a human reading it, the information is immensely valuable.

Re: The Untouched Goldmine of F#

#13
post #4

> only Odin, F#, OCaml and Zig have [Tagged Unions or Discriminated Unions] The good old missing sum type story. Don't Rust, Haskell, Elm, Kotlin (with sealed classes), etc also have them?

I got to this part of the article and concluded it wasn’t worth my time, nor probably anyone else’s

1. Absurd claim that file names aren’t important in a stack trace 2. Claims they’re sharing a feature of F# that is never used, then later reveals they’ve been studying F# for 3 months 3. Then this statement about tagged unions

Re: The Untouched Goldmine of F#

#14
post #2

F# secret superpower that no one has discovered for 30 years, and it will change its popularity in enterprise software.

it's secret superpower it to allow you to give up on trying your code to compile and then just to shim against some C# bindings

Re: The Untouched Goldmine of F#

#15
post #8

> It may not have the information on the filename or the line of code like the ordinary stack traces, but these are useless information anyway. That is the weirdest and most crazy thing I've read in years.

The whole post feels like it came from a parallel universe. People adopted microservices because stack traces are too long! Exposing the implementation details of a function in its type signature is good! The most meaningful way to specify a function is by how it can fail (this one is fun, though)!

Re: The Untouched Goldmine of F#

#16
> The question is: Why companies moved from monolithic to microservices? What do they try to avoid?

One of the main reasons why companies move from monoliths to microservices is to promote ownership and accountability in large codebases.

In a monolith where everyone owns the code, developers can break each other's code.

With microservices, each team becomes responsible for one part, and (as long as they keep their SLAs) they can't break each other's code.

When something fails it's easier to identify who needs to fix what.

Microservices don't make much sense for small teams if they don't need or don't have the headcount to split responsibilities.

Re: The Untouched Goldmine of F#

#17

> The question is: Why companies moved from monolithic to microservices? What do they try to avoid? One of the main reasons why companies move from monoliths to microservices is to promote ownership and accountability in large codebases. In a monolith where everyone owns the code, developers can break each other's code. With microservices, each team becomes responsible for one part, and (as long as they keep their SL…

Sounds like extra bureaucracy.

Re: The Untouched Goldmine of F#

#18
post #7
post #3

I really like F#, but I really miss having a full fledged f#-native ORM

No you dont. Sorry for the blunt answer. ORMs are a bad idea, even when using OO langs: they make the simple queries slightly simpler (`Users.getById(id: Long)`), they do not help you for hard queries (ORM-using codebases of size usually have hard-SQL-queries "in strings"). Most users of FP langs know this and hence will not even try to implement ORMs. Look into jOOQ, LINQ-method-syntax (or whatever it is called, wit…

I like the idea of F# type providers but last time I tried (two years ago) they were pretty shit compared to any mainstream ORM/alternative - has that improved ?

Also ORM for simple row selects is a straw-man - their use case is deserializing, updating relationship graphs where they hide away a bunch of code. Should that code be hidden is a different question - but pretending it's there to save you from typing SELECT * FROM foo is kind of disingenuous. Editing graph data structures in most FP languages is just not compatible with OOP approach hence no ORM.

Re: The Untouched Goldmine of F#

#19
post #4

> only Odin, F#, OCaml and Zig have [Tagged Unions or Discriminated Unions] The good old missing sum type story. Don't Rust, Haskell, Elm, Kotlin (with sealed classes), etc also have them?

I got to this part of the article and concluded it wasn’t worth my time, nor probably anyone else’s 1. Absurd claim that file names aren’t important in a stack trace 2. Claims they’re sharing a feature of F# that is never used, then later reveals they’ve been studying F# for 3 months 3. Then this statement about tagged unions

bit of a weird article to find on the top of HN, to be sure..

But I felt similarly when I picked up Haskell coming from Ruby and Java, so I can understand the attitude. :D

Re: The Untouched Goldmine of F#

#20
post #4

> only Odin, F#, OCaml and Zig have [Tagged Unions or Discriminated Unions] The good old missing sum type story. Don't Rust, Haskell, Elm, Kotlin (with sealed classes), etc also have them?

I got to this part of the article and concluded it wasn’t worth my time, nor probably anyone else’s 1. Absurd claim that file names aren’t important in a stack trace 2. Claims they’re sharing a feature of F# that is never used, then later reveals they’ve been studying F# for 3 months 3. Then this statement about tagged unions

3 months, and he's already deep in acronym soup touting DDD, CDD, TDD, and TST. I'm getting major architecture astronaut vibes.
Post reply on HN