logoalt Hacker News

z4listoday at 2:57 PM1 replyview on HN

You must not mix up technical mathematical words with softer prose words. For instance, "Yon's data model is categorical. A world is a category, a semantic site;"

So if you want to define a world, I expect you to tell me how to supply objects + morphisms + the composition law + the site structure. I don't know what a "semantic site" is, just what a "site" is. You'd need to define it. Anyway, we then get to our first examples of declaring worlds:

  world Currency { Code is EUR, USD }
  world Status { State is on, off }
This maybe gives me the first bit of data we need for a site. Definitely not the rest. Then we hit this

  world Sub subset of Currency  

Two issues with this. One is stylistic. Why on earth would you call it a "subset"? It's not a set! "subworld" is the obvious choice... But the real issue is that like the initial definition, this doesn't tell me how to build `Sub`. I need to know which objects and morphisms of Currency to include into the category Sub? What's the site structure?

So now I think, "OK, maybe you just declare part of the structure and fill it in later, before you actually use it..."

But then your example disproves that notion! You have

  world Shop { Code is X }

  place Account in Shop {
    balance number
    owner String
  }

with no mention of Account when you declared Shop, I'm still not sure what Code or X are, and then you give what is seemingly supposed to be some working code

  fun main(): number {
    be a holds new Account { balance 40 owner "ada" }
    be _p holds String.print(a.owner)
    return a.balance + 2
  }

So your motivating example really kills off the interest from your two main communities that would use this thing: 1) category theorists have no idea what you're talking about, because nothing here looks like categories - there are no morphisms, no site structure 2) computer/software folks look at your example and think "why on earth would I learn topos theory to do something that sure looks like OOP"

I think a "topos inspired programming language" would be kind of cool if you could pull it off, but I think you really need to figure out how to sell it in the docs to at least one of the two communities above.


Replies

leecommamichaeltoday at 3:31 PM

Hmm. Only responder taking this seriously and the account is created minutes ago.

show 2 replies