News for hackers. Stuff that matters.
Re:David Chang’s Unified Theory of Deliciousness by chubot on Friday July 22, 2016 @11:56AM (#12144314)
Ha, he actually used the word "isomorphism" correctly, in contrast to recent JavaScript terminology :)

I don't really think he used the concept of "strange loop" correctly, because there is no self-reference involved in his examples. It's more of a "paradox" (something that's undersalted and oversalted at the same time)

Re:David Chang’s Unified Theory of Deliciousness by harveywi on Friday July 22, 2016 @12:15PM (#12144457)
I just searched for the JavaScript isomorphism conundrum and did a facepalm. JavaScript seems to be a breeding ground for getting all kinds of things wrong. Just the other day on HN [1] - a JavaScript developer had misused the term "predicate," someone provided a correction, and then a whole host of responses emerged to defend the botched definition in a variety of manipulative ways(appeals to emotion, shame, "it's just like your opinion man," etc.).

[1] https://news.ycombinator.com/item?id=12107737

Re:David Chang’s Unified Theory of Deliciousness by dllthomas on Friday July 22, 2016 @01:13PM (#12144946)
Following your link, I do not see a single defense of the botched definition. The contention seems to be entirely over whether it is bad form to point out an incorrect definition without providing the correct one.
Re:David Chang’s Unified Theory of Deliciousness by XaspR8d on Friday July 22, 2016 @01:25PM (#12145064)
While I agree the ensuing argument was excessive, I'll provide a defense of the "botched" definition.

The top definition for "predicate", that most people are familiar with, and that was omitted from the dictionary quote, is:

> 1. (grammar) The part of the sentence (or clause) which states something about the subject or the object of the sentence.

And in that context, it was a perfectly valid use of predicate, effectively synonymous with "unary function".

Sure, someone could & should have pointed out that the term was confusing because it has a more specific meaning in a computer science context, but all of the responses were simply "you're wrong" and creating in-group/out-group boundaries[1] rather than trying to understand the communication mismatch.

[1] It's usually a bad sign when someone comes in and says "serious programmers should know [...]". :P

Re:David Chang’s Unified Theory of Deliciousness by ssalazar on Friday July 22, 2016 @02:26PM (#12145614)
I am making serious mental contortions to try to figure out how a grammatical term about the structure of sentences can be synonymous with a unary function and I just can't do it. It seems pretty clear that the instance of the word that inspired that discussion took the computer science definition and mistakenly expanded its definition.
Re:David Chang’s Unified Theory of Deliciousness by XaspR8d on Friday July 22, 2016 @02:56PM (#12145839)
Perhaps I was particularly sensitive to it because it matched my internal models. Here's the way I break it down:

In classical/antiquated grammar, most sentences can be divided into a subject and a predicate. The predicate indicates what the subject does/is. While there are issues with agreement and semantics, on a broad syntactic level, the subject is arbitrary and can be replaced with another valid subject:

    The angry dog  // jumped over the fence.
    My grandmother // jumped over the fence.
    Twelve apples  // jumped over the fence.
Since the predicate encodes the action, to me it makes sense to think of this relationship as a predicate function taking a subject argument. Even if the subject is plural or conceptual it is still just a single subject object, hence unary.

Then, in the OP's js context of Object.map we have a situation like this:

    import map from 'just-map-object';
    function jumpedOverTheFence(subj) { \\ impl };
    var things = ['The angry dog', 'My grandmother', 'Twelve apples'];

    map(things, jumpedOverTheFence);
Obviously I'm doing some weird things for brevity like conflating strings and objects there, but hopefully gets the point across.

IMO the analogy actually extends fairly well too. Agreement is a good match for typing (A singular typed predicate "walks" can't take a plural typed subject "Some dogs" => "Some dogs walks" fails at the syntax level), and semantics match internal expectations of functions (The "12 apples jumped..." breaks internal, but untyped expectation that the subject would have agency or control over its actions, like a "chooseTo" method or a "consciousness" property.)

Re:David Chang’s Unified Theory of Deliciousness by dllthomas on Friday July 22, 2016 @01:44PM (#12145236)
shrug That's not crazy.

My concern was not the particular question, but the tremendous mischaracterisation of the entire linked discussion.

Re:David Chang’s Unified Theory of Deliciousness by nommm-nommm on Friday July 22, 2016 @05:00PM (#12146726)
>a whole host of responses emerged to defend the botched definition in a variety of manipulative ways(appeals to emotion, shame, "it's just like your opinion man," etc.).

Did you link to the correct comment? Because I see absolutely none of what you described.

Re:David Chang’s Unified Theory of Deliciousness by dimal on Friday July 22, 2016 @06:21PM (#12147189)
It seems that disparaging JavaScript is sort of an HN Godwin's law. As an HN discussion grows longer, the probability of disparaging JavaScript approaches 1. Is it really necessary here?
Re:David Chang’s Unified Theory of Deliciousness by afarrell on Friday July 22, 2016 @06:30PM (#12147236)
As an X discussion grows longer, the probability of mentioning Y approaches 1 for all values of X and Y.
Re:David Chang’s Unified Theory of Deliciousness by dimal on Friday July 22, 2016 @08:11PM (#12147671)
True. I guess Godwin's law should be updated to take into account how long it takes to reach a probability of 1 for a given topic in a given context.
Re:David Chang’s Unified Theory of Deliciousness by XaspR8d on Friday July 22, 2016 @01:18PM (#12144994)
Is the use of "isomorphic" in "isomorphic javascript" that far off? You're mapping [program, output] pairs from one environment (client) to another (server), ideally creating the same structure. Isn't that an isomorphism? Sure to be mathematically rigorous you'd have to jump through lots of hoops, but the context is closer to Hofstadter's use than abstract algebra.

I'd argue that usage is more "technically" correct than David Chang, who's referring to the _entities_ as the isomorphisms rather than the relationships between them. (Though I understand his usage and find no problem with it in the given context.)

Re:David Chang’s Unified Theory of Deliciousness by mpjme on Friday July 22, 2016 @03:49PM (#12146284)
I think it seems like a sensible name to me:

"The term isomorphism literally means sameness (iso) of form (morphism)." https://en.wikipedia.org/wiki/Isomorphism_(Gestalt_psycholog...

Perhaps the knowledgable people here (that unfortunately so far have preferred to be flippant and condescending instead of educating) could provide an explanation of showing us why "Isomorphic JavaScript" is a misnomer?

Re:David Chang’s Unified Theory of Deliciousness by tmzt on Friday July 22, 2016 @05:35PM (#12146936)
The grandparent's explanation seems correct.

I think the problem stems from considering the running on server and client as the entities, rather than the representation produced on the server and reinstantiated on the client as something that can be manipulated.

Re:David Chang’s Unified Theory of Deliciousness by Phemist on Friday July 22, 2016 @01:06PM (#12144892)
But the Liar's Paradox leads to the essence of Godel Incompleteness (Hofstadter starts off with that paradox in GEB as well, to build up a repertoire of modes of thought in the reader). I think the oversalted and undersalted paradox should be seen in the same light, because the point about dishes does seem beautifully isomorphic to godel sentences. The interesting dishes are their own dish, but also a different dish, depending on the system (the taster) in which they are interpreted.
Re:David Chang’s Unified Theory of Deliciousness by chubot on Friday July 22, 2016 @01:20PM (#12145011)
The essence of the Liar's paradox ("this sentence is false") is that the sentence refers to itself -- it's a "strange loop". Godel's incompleteness proof shares this property of self-reference.

There is no self-reference in the paradox of something having 2 properties at once (e.g. undersalted and oversalted).

It is a paradox, but it's not a Liar's paradox or a strange loop. In other words, not all paradoxes are the Liar's paradox.

Re:David Chang’s Unified Theory of Deliciousness by beat on Friday July 22, 2016 @03:33PM (#12146161)
I don't think it has to be a fully-qualified Strange Loop to be influenced by Hofstadter's thinking.

In order to grok strange loops, one must learn to accept rather than reject paradox. "Logic" doesn't like paradox, and tries to get rid of them when they are encountered. But once you've read GEB, you're sensitized to accept paradox.

I agree that all strange loops are paradoxical, but not all paradoxes are strange loops. Where I don't agree is that just because an idea isn't a strange loop doesn't mean it wasn't inspired by an awareness of strange loops. Without Hofstadter's idea, Chang would never have had this breakthrough on his own.

Re:David Chang’s Unified Theory of Deliciousness by Phemist on Friday July 22, 2016 @01:33PM (#12145143)
That's fair, I'll have to clarify myself a bit further. I didn't think of the undersalted/oversalted thing as having two properties at the same time (basically means it is inconsistent, the dish might be both, but you can't taste both). I think it can be likened to the Shepard Tone[1], in the sense that the means a dish can be feeling to get saltier and saltier, and suddenly it's undersalted, without a very strong negative delta.

[1] https://en.m.wikipedia.org/wiki/Shepard_tone

Re:David Chang’s Unified Theory of Deliciousness by Isamu on Friday July 22, 2016 @01:41PM (#12145213)
Well, "isomorphic" JavaScript is not technically incorrect. They just didn't want to use the word "same".

It's the same code on the server side and client side.

So the client and server are isomorphic, because an object is trivially isomorphic to itself.

It's a fine idea to run the same code on the client and server. No problem there. The word choice may be confusing because you expect there to be some deeper concept you are missing.

Re:David Chang’s Unified Theory of Deliciousness by thret on Sunday July 24, 2016 @02:27AM (#12152454)
I think it was more like cognitive dissonance, but with taste. Gustatory dissonance? I don't know that I get it with food as such but I can certainly relate the sensation to wine tasting.
Re:David Chang’s Unified Theory of Deliciousness by sesquipedalian on Friday July 22, 2016 @03:58PM (#12146340)
1) Tastes bland. 2) Think about how it tastes. 3) Tastes salty now. 4) Think again about how it tastes. 5) Goto 1.

Hence the "strange loop".