News for hackers. Stuff that matters.
[dead]
Re:Monads and GATs in Nightly Rust by mrkeen on Friday December 11, 2020 @01:39PM (#25389049)
> Look through Knuth, Dijkstra, Turing, etc.

Why even name-drop academics though? Shouldn't you be dismissing them as irrelevant and praising Gates, Jobs and Gosford instead? You know, real INDUSTRY figures?

> find an example of FP--you can't.

Programming with functions... programming with functions... programming with functions. Sure.

> Dijkstra

Here is Dijkstra protesting the replacement of Haskell with Java https://www.cs.utexas.edu/users/EWD/transcriptions/OtherDocs...

> Turing

Turing and Church were contemporaries. The Turing Machine was a landmark achievement useful for reasoning about the limits of computation, but where is it today? Have you tried building anything out of a Turing machine (assuming you had infinite tape)? It's basically Brainfuck. Church's Lambda Calculus predates it and is still useful.

Re:Monads and GATs in Nightly Rust by Twisol on Friday December 11, 2020 @02:34PM (#25389789)
>> etc

John Backus, who can hardly be considered lesser than any of the others on this cherry-picked list, used his Turing Award lecture to rally for functional programming:

http://www.thocp.net/biographies/papers/backus_turingaward_l...

Re:Monads and GATs in Nightly Rust by alquemist on Friday December 11, 2020 @04:22PM (#25391195)
'FP' covers 2 meanings:

A. Pure functions + immutable data structures.

B. Expressive type systems, all the way to compile-time metaprogramming and dependently typed proofs.

Writing programs in style A. is tremendously valuable. Expending too much effort in the fine points of the type system, which invariably is simultaneously both under-expressive and over-expressive, is a complete waste of time. Some critical projects require high defect-free confidence, and for those it's legitimate to go full in formal proofs and take the 10x-100x productivity slowdown. For mere mortals, documenting the structure of the data (json) manipulated by the respective functions suffices.

Re:Monads and GATs in Nightly Rust by dan-robertson on Friday December 11, 2020 @12:31PM (#25388266)
Turing had about as much to do with real world programming as Alonzo Church so I think that’s equal if you really want to keep score. But there are other famous names in the history of computer science who did support functional programming, eg McCarthy or Backus. And there are “real world” programmers like John Carmack who advocate applying FP techniques to their programs.

But this is a stupid thing to argue about and not relevant to this thread.

Re:Monads and GATs in Nightly Rust by karmakaze on Friday December 11, 2020 @12:29PM (#25388243)
I would say that it has a lot to do with CS. Basically there's two equivalent ways to look at computing: as Turing machines or lambda calculus. The first is far more popular as early machines and even our current day hardware is close to this. As machines have become more powerful we can do more useful work using formulation based on function composition. If anything this is a trend. What we don't yet have is common sense/knowledge on how to use it judiciously.
Re:Monads and GATs in Nightly Rust by patrec on Friday December 11, 2020 @12:39PM (#25388356)
I'm writing this on a system with an FP package manager and anyone programming in any popular language these days will be exposed to a heavy dose of FP constructs and concepts, and as far as Knuth is concerned McIllroy famously burried his grand imperative efforts with a one line functional program 36 years ago. Having said that, your unkind remarks about academic programing language researchers do not strike me as unfounded in all cases.
Re:Monads and GATs in Nightly Rust by cbarrick on Friday December 11, 2020 @12:28PM (#25388239)
> not even much to do with computer science

That is very debatable.

Lambda calculus is a BFD in the subfield of programming languages, which is the topic at hand.

Re:Monads and GATs in Nightly Rust by zelly on Friday December 11, 2020 @12:44PM (#25388423)
> Lambda calculus is a BFD in the subfield of programming languages

This is a good example of abusing the vocabulary of mathematics as is common in the FP world. A programming language is not an object in abstract algebra. You can't add, subtract, or factorize a programming language. It's just software.

Re:Monads and GATs in Nightly Rust by Twisol on Friday December 11, 2020 @02:36PM (#25389824)
"BFD" here means "big f#$%ing deal", not "b??? factorization domain".
Re:Monads and GATs in Nightly Rust by tome on Saturday December 12, 2020 @08:58AM (#25398243)
"Bounded Factorization Domain" apparently

https://en.wikipedia.org/wiki/Atomic_domain#Special_cases

This is a pretty hilarious misinterpretation

> "Lambda calculus is a bounded factorization domain in the subfield of programming languages. What's the problem?"