Live data from Hacker News

Did Functional Programming get it wrong?

medium.com

11–18 of 18 posts

Re: Did Functional Programming get it wrong?

#11

> For example, why don’t operating systems support native JSON or SQL by now? Because the job of the OS is to manage computer hardware resources. 'JSON' and 'SQL' (whatever that means) are not hardware resources. Next stupid article, please. This one is broken.

WinFS[0] was the code name for a canceled data storage and management system project based on relational databases...

[0] https://en.wikipedia.org/wiki/WinFS

Re: Did Functional Programming get it wrong?

#13
post #4

Despite traces of interesting ideas -- spreadsheets are underappreciated, so is Multics -- this article is full of hot air. It implicitly equates Haskell with functional programming. It hypes HOTT but doesn't explain. It bashes West Coast programming culture for being short sighted and money hungry, while praising the finance industry. (Who are never short sighted or money hungry?) Worst of all, it name-checks a bunc…

Right, so technically there is no reason to deal with monads directly. Andrej Bauer's Eff, is an experimental language, which feels a lot like Standard ML, but incorporates the power of monads (really, algebra effects and handlers) under the hood. There's really no reason to conflate "monads" (the idea) with "monads" (the hairy syntactic overhead), and believe me, it gets hairy.

Re: Did Functional Programming get it wrong?

#14
post #4

Despite traces of interesting ideas -- spreadsheets are underappreciated, so is Multics -- this article is full of hot air. It implicitly equates Haskell with functional programming. It hypes HOTT but doesn't explain. It bashes West Coast programming culture for being short sighted and money hungry, while praising the finance industry. (Who are never short sighted or money hungry?) Worst of all, it name-checks a bunc…

The reason that monads don't need to explicitly show up in an article about monads is because they are the same manifold as the subject line. For the same reason, people don't use the suffix "set" or "collection" when designing a relational database schema. If you are already in the manifold, it makes no sense to call it out separately (e.g. Russell's paradox)

Re: Did Functional Programming get it wrong?

#15
post #5
post #3

This rather scattered and jargon-laden article seems to be pointing out the differences between the lambda calculus (stateless) and the Turing machine (stateful), which, while computationally equivalent, are not formally equivalent (pardon me if I get the verbiage wrong as I am not a mathematician). While the hardware architecture is essentially a Turing machine and thus stateful, the lambda calculus cannot be mapped…

The other thing this article seems to miss is the level of abstraction at which FP applications need to live. At the OS level, where state is being managed, using FP would be insane. I don't think anyone really would want to do that. The UNIX philosophy of piping along a stream, while it may have something in common with FP, it still exists at a higher level of abstraction than the kernel, which is still a giant, com…

The top-level FP CLI is unsafe for exactly that reason http://okmij.org/ftp/Computation/monadic-shell.html

Re: Did Functional Programming get it wrong?

#16

> For example, why don’t operating systems support native JSON or SQL by now? Because the job of the OS is to manage computer hardware resources. 'JSON' and 'SQL' (whatever that means) are not hardware resources. Next stupid article, please. This one is broken.

Managing for whom? Is that a resource optimization problem? What if I use a control monad that does the same thing? If TF finds the shortest path for a computation does that make it an OS according to your definition ?

JSON and SQL are closer to preimages of data and computation manifolds respectively that are projected (or fibrated) via Kan

Re: Did Functional Programming get it wrong?

#17
post #6

I don't understand what this article is trying to say. The snippets of category theory just seem to be technobabble: While they are all "mathematically true" (upto a generous reading), they don't really "make sense". It reads like the output of a well trained statistical/neural language model on the #haskell IRC channel. For example: > The act of “unbundling” functions (lambdas) from their traditional containers is r…

- If you are confused, it is probably because FP languages are really only half the story of CT

- Adjoints are all about joining things hence the name; much like chasing dependencies (arrows) between cells in a spreadsheet and then going back to the relational database where the sheet was extracted from. You have seamlessly jumped from algebraic morphisms to geometry without even thinking about it

- Homotopy is about finding "paths" between things and therefore imply some relative naming (coordinate) scheme is possible. The segments of a path arise due to torsors. Hence homotopy is associated with paths. UNIX paths and URLs come to mind

Re: Did Functional Programming get it wrong?

#18
post #17
post #6

I don't understand what this article is trying to say. The snippets of category theory just seem to be technobabble: While they are all "mathematically true" (upto a generous reading), they don't really "make sense". It reads like the output of a well trained statistical/neural language model on the #haskell IRC channel. For example: > The act of “unbundling” functions (lambdas) from their traditional containers is r…

- If you are confused, it is probably because FP languages are really only half the story of CT - Adjoints are all about joining things hence the name; much like chasing dependencies (arrows) between cells in a spreadsheet and then going back to the relational database where the sheet was extracted from. You have seamlessly jumped from algebraic morphisms to geometry without even thinking about it - Homotopy is about…

- Adjoints as far as I understand are not about joining things, adjoints are about a generalization of inverses. Can you formally (and I mean mathematically) define what this intuition you have about adjoints ~= "joining things"? Also, the word "adjoint" does not come from "join". It comes from "adjoint" in the theory of complex operators: https://en.wikipedia.org/wiki/Adjoint_functors

- Homotopy is not about finding paths, it is an equvalence relation _between paths_. a path is _homotopic_ to another. Homotopy is also a _continuous object_, unlike torsors, which are discrete objects (a continuous torsor is an affine space).

So, while UNIX paths and URLs are "paths" in the sense of torsors, they have _nothing_ to do with homotopy (as it is classically defined). Unless you are using some weakened notion of homotopy that I am unaware of, in which case I'd love links.

Post reply on HN