Live data from Hacker News

Fighting spam with Haskell at Meta (2015)

engineering.fb.com

71–80 of 85 posts

Re: Fighting spam with Haskell at Meta (2015)

#71
post #27

I worked on this project for a week during the FB team matching process. I had previous Haskell experience, but what struck me was how irrelevant that was. To their immense credit, they had managed to use Haskell to write an entirely entreprise focused, "boring" business rule backend serving millions of QPS, and people who were not Haskell fans could easily use its sensible DSL to accomplish their goals. Way too many…

Haskell could be a great practical language if some constraints were introduced, e.g. limiting the language extensions used. https://www.simplehaskell.org attempted to do this and, currently, https://neohaskell.org is going in the same direction. After all, Haskell '98 is not that hard. Personally, I think Haskell, or something like Haskell, is going to be reasonably popular in the near future. Functional programming…

Haskell even on a bad day is radically more sane then all of these languages doing this bizarre obsession with foo.bar() instead of bar(foo), because they only allow overloading on the first arg. semantic indenting. type inference. automatic laziness. it's just another level.

Re: Fighting spam with Haskell at Meta (2015)

#72
post #27

Earlier quoted context omitted.

Haskell could be a great practical language if some constraints were introduced, e.g. limiting the language extensions used. https://www.simplehaskell.org attempted to do this and, currently, https://neohaskell.org is going in the same direction. After all, Haskell '98 is not that hard. Personally, I think Haskell, or something like Haskell, is going to be reasonably popular in the near future. Functional programming…

I'm not fully convinced. FP is such a different paradigm than the leading imperative/OO design that most are comfortable with. Other languages that are too different like lisp, forth, Apl, Haskell, and Prolog are just too different for the average person IMO. I've given Haskell/OCaml/F# a go a few times and enjoy learning new paradigms and it certainly didn't click for me. I have a feeling it'll be even harder with m…

no, it's just a trivial minor semantic difference.

https://clayshentrup.medium.com/oop-vs-fp-182475457a01

if you want the oop style you can just change "foo bar baz" to "bar `foo` baz" which is effectively the same thing as doing bar.foo(baz), because for some reason people are obsessed with passing an argument by putting a dot after it.

Re: Fighting spam with Haskell at Meta (2015)

#73

Earlier quoted context omitted.

you're not solid, by what you've just written here and in above threads.

Care to point out something specific?

The fact that you say that haskell has operators and that you look for a distinction in syntax for functions and reduced values in the expression-driven language would be enough to say that you opine too strongly about things you don't have a solid understanding of. The same applies to your critique of Nix. If you ever tried recursive overrides of declarative definitions in, as you recommended, a subset of Python, you'd never claim that Nix is a footgun-laden language.

Re: Fighting spam with Haskell at Meta (2015)

#74

Earlier quoted context omitted.

> For starters, you compared Nix the ecosystem to Starlark No I compared the Nix language to Starlark. > but it seems like you don't know which part of Nix you are even referring to. Incorrect. I was referring to the Nix language, as was hamandcheese. He literally said it explicitly. I don't know how you could miss that. > I fully admit that Nix has a steep learning curve. Very steep. But I don't think you know enoug…

> Incorrect. I was referring to the Nix language, as was hamandcheese. I am hamandcheese. I replied to your comment. You didn't describe a single aspect of Nix-the-language. You wrote this: > What does setting `foo: true` do? You can't go-to-definition on it. You can only hope it is well documented (it isn't) or try to find the place that reads that key ... somewhere... in all of Nix... Good luck. It's appears (despi…

> I am hamandcheese.

Ah yes :D

> Either way, not a language feature.

The language feature I am talking about is that it is completely declarative. You can argue semantics if you want but Nix chose to use a completely declarative language for configuration and that was IMO a bad decision.

Re: Fighting spam with Haskell at Meta (2015)

#75

Earlier quoted context omitted.

Care to point out something specific?

The fact that you say that haskell has operators and that you look for a distinction in syntax for functions and reduced values in the expression-driven language would be enough to say that you opine too strongly about things you don't have a solid understanding of. The same applies to your critique of Nix. If you ever tried recursive overrides of declarative definitions in, as you recommended, a subset of Python, yo…

> The fact that you say that haskell has operators

Oh you mean the things that look like operator, behave like operators, and are commonly referred to as operators by Haskell programmers - even in the Haskell Wiki? Those operators?

https://tech.fpcomplete.com/haskell/tutorial/operators/

https://github.com/haskellcats/haskell-operators

https://wiki.haskell.org/index.php?title=Infix_operator

What exactly do you think an operator is?

Re: Fighting spam with Haskell at Meta (2015)

#76

Earlier quoted context omitted.

The fact that you say that haskell has operators and that you look for a distinction in syntax for functions and reduced values in the expression-driven language would be enough to say that you opine too strongly about things you don't have a solid understanding of. The same applies to your critique of Nix. If you ever tried recursive overrides of declarative definitions in, as you recommended, a subset of Python, yo…

> The fact that you say that haskell has operators Oh you mean the things that look like operator, behave like operators, and are commonly referred to as operators by Haskell programmers - even in the Haskell Wiki? Those operators? https://tech.fpcomplete.com/haskell/tutorial/operators/ https://github.com/haskellcats/haskell-operators https://wiki.haskell.org/index.php?title=Infix_operator What exactly do you think a…

> https://tech.fpcomplete.com/haskell/tutorial/operators/

You're a prime example of a person who reads a page on the Internet and takes it at a face value without understanding the meaning and the context behind the words:

> One of the most common operators, and source of initial confusion, is the $ operator. All this does is apply a function.

Did you miss the part that says "All this does is apply a function"?

Here's how you define (+) among other things: https://hackage.haskell.org/package/ghc-internal-9.1201.0/do...

    instance Num Int where
        I# x + I# y = I# (x +# y)
whereas (+#) is defined as a bridge from unboxed ints provided by the runtime to their efficient low-level machine representation, accomodating all instances of a data type defined as `Int = I# Int#` (the left-hand side is the name of the type, the right-hand side is the name of a constructor that accepts a single value of type Int# - the low-level primitive provided by the GHC implementation).

The (+) in `I# x + I# y =` is a function definition in infix form. That's the same form you can use for any other infix function if you wish so:

    ghci> a `iAmHelping` b = a b + b 

    ghci> :t iAmHelping
    iAmHelping :: Num a => (a -> a) -> a -> a 
> Oh you mean the things that look like operator, behave like operators

Let me see your regular operators do the following, then we talk:

     plus = (+)
     a  = (2 +)
     c  = (2 `plus`)
     c' = plus 2
     d  = (+) 2
     d' = (+ 2)
     e  = 2 `plus` 2
     f  = 2 + 2

I'm glad that's the only thing you object to, though.

Re: Fighting spam with Haskell at Meta (2015)

#77

Earlier quoted context omitted.

> The fact that you say that haskell has operators Oh you mean the things that look like operator, behave like operators, and are commonly referred to as operators by Haskell programmers - even in the Haskell Wiki? Those operators? https://tech.fpcomplete.com/haskell/tutorial/operators/ https://github.com/haskellcats/haskell-operators https://wiki.haskell.org/index.php?title=Infix_operator What exactly do you think a…

> https://tech.fpcomplete.com/haskell/tutorial/operators/ You're a prime example of a person who reads a page on the Internet and takes it at a face value without understanding the meaning and the context behind the words: > One of the most common operators, and source of initial confusion, is the $ operator. All this does is apply a function. Did you miss the part that says "All this does is apply a function"? Here'…

> Did you miss the part that says "All this does is apply a function"?

Did you miss the part where it's called an "operator"? Your claim was that Haskell doesn't have operators.

I guess you're a prime example of someone that can't remember what the debate is.

Re: Fighting spam with Haskell at Meta (2015)

#78

Earlier quoted context omitted.

> https://tech.fpcomplete.com/haskell/tutorial/operators/ You're a prime example of a person who reads a page on the Internet and takes it at a face value without understanding the meaning and the context behind the words: > One of the most common operators, and source of initial confusion, is the $ operator. All this does is apply a function. Did you miss the part that says "All this does is apply a function"? Here'…

> Did you miss the part that says "All this does is apply a function"? Did you miss the part where it's called an "operator"? Your claim was that Haskell doesn't have operators. I guess you're a prime example of someone that can't remember what the debate is.

Ahah, if someone calls an infix function an operator it must be it, right? Do you also believe that Haskell functions return values because random articles on the Internet say that the functions return values via `return` "keyword"? Years of catering the invalid (but "familiar") terminology to outsiders so that they can land into the language must've done their job.

> I guess you're a prime example of someone that can't remember what the debate is.

There's no debate, you asked me why I said that you weren't solid. And I show you that you don't have a solid foundation in the tool that you opine on. You refuse the ground truth presented to you in code, and you opt to someone's verbal description of an infix function being an operator. You use a second-hand opinion to form your mental model about a thing, and then you opine on the thing with that invalid foundation that was made for you (by some believing individuals claiming it's the best approach), so that you don't feel intimidated from the get-go. No wonder you don't know why there's no distinctive difference between functions and reduced values in syntax. And that's not only Haskell, you also don't know Nix enough to understand how silly your take is about a subset of Python being better than a specialized language for the problem of cascading graph changes in build systems.

Re: Fighting spam with Haskell at Meta (2015)

#79

Earlier quoted context omitted.

> Did you miss the part that says "All this does is apply a function"? Did you miss the part where it's called an "operator"? Your claim was that Haskell doesn't have operators. I guess you're a prime example of someone that can't remember what the debate is.

Ahah, if someone calls an infix function an operator it must be it, right? Do you also believe that Haskell functions return values because random articles on the Internet say that the functions return values via `return` "keyword"? Years of catering the invalid (but "familiar") terminology to outsiders so that they can land into the language must've done their job. > I guess you're a prime example of someone that ca…

https://en.wikipedia.org/wiki/Operator_(computer_programming...

Search for Haskell.

Good to know you didn't have any real reasons to think I'm not a solid programmer anyway. Bye.

Re: Fighting spam with Haskell at Meta (2015)

#80

Earlier quoted context omitted.

Ahah, if someone calls an infix function an operator it must be it, right? Do you also believe that Haskell functions return values because random articles on the Internet say that the functions return values via `return` "keyword"? Years of catering the invalid (but "familiar") terminology to outsiders so that they can land into the language must've done their job. > I guess you're a prime example of someone that ca…

https://en.wikipedia.org/wiki/Operator_(computer_programming... Search for Haskell. Good to know you didn't have any real reasons to think I'm not a solid programmer anyway. Bye.

Wikipedia keyword search is the last resort of a mediocre engineer, thanks for confirming my words.

> Good to know you didn't have any real reasons to think I'm not a solid programmer anyway.

I'd easily demonstrate more reasons why you're not solid, I will probably do it in the future if I see more of your silly opinions on the things you don't know. But thankfully, in the context of Haskell the comments have already shown your true lack of any substantial knowledge. I hope you will at least obstain from commenting on Haskell and Nix in the future, don't embarrass yourself.

Post reply on HN