Hacker Newsnew | past | comments | ask | show | jobs | submit | MyThoughts100's commentslogin

This has to be one of the most thoughtless comments I've read on the thread. You don't know about the lives of other commentors but are happy to make huge generalizations about them and in the process commit the same thinking error that you're accusing them of making. Do you not see the irony in that?


This comment makes it seem like the video does not contain rational arguments. It very much does. If you're skeptical about them, why not address them.


Carmack falls into the old fallacy of "This is my experience so it must be everyone elses experience too". Just because obsession is fulfilling for him and he manages to make it work, it doesn't mean it's fulfilling to others. And yes a lot of people don't care about their work, that is the reality of the world. Most people aren't priviledged enough to have the opportunity to work on their passions. The average person needs more free time to themselves, to recharge, to self actualize, it's not about being "lazy", different people have different values and society would be better off respecting that fact. It's easy to give your life to work if you have ownership of that work like Carmack does...


Sometimes it's conversation that brings out the deeper thoughts that may not be well formed or put into words. OP may have not been able to clearly articulate their ideas without being prompted into it by yourself


The periodic table is a human construct. So is the concept of an identifier.


I’d wager that nonhuman intelligences out there in the universe have analogous tables to the periodic table.

And I suspect it would be possible for us to JOIN our periodic table onto theirs by matching on the atomic number field to create a mapping between, say, our names for the elements and theirs.

That seems unlikely to be something we would be able to do with literally any other dataset that an alien civilization has. Their star catalog will contain many of the same objects ours does - but there won’t be an obvious key that lets us join them up.

I guess there’s a few mathematical objects that would work - the list of Platonic solids maybe, or the symmetry groups… but in terms of real world physical things? Atomic numbers might be the only truly natural key there is.


The periodic table groups atoms by the number of protons they have and ignores other differences. Uranium 235 and Uranium 238 have the same "natural key" according to the periodic table. The periodic table is useful for solving a lot of problems, and for other problems where it doesn't work to treat U-235 and U-238 as the same, we (and other intelligences) use other ways of categorizing atoms.


Right, but there’s a reason we call them ‘isotopes of Uranium’ rather than saying U-238, Np-238 and Pu-238 are isotopes in the ‘family of atoms with atomic mass 238’.

Things with 92 protons in them behave chemically in similar ways. They form the same crystals and molecules.

If you were building a table of isotopes you’d put a column for ‘proton count’, and you’d find lots of the properties of the isotopes depend on the proton count not the atomic mass. So you could normalize that table structure out and create another table with the atomic number as the key, and put all the properties that are common to all isotopes of a given element in that table.

You would have made a table of elements and it would have the same primary key as the periodic table.

That’s what a natural key is. One that emerges naturally when you normalize data you have collected.

I suppose similarly ‘electrons in outer shell’ might emerge as a natural key by that process.


I don't think that's what people mean when they say "natural key." People say "natural key" when they're talking about a unique identifier (that's the "key" part) that is part of the domain model of an object (the "natural" part.)

If we drop the "unique identifier" aspect of a key, and we can distinguish between different objects that share the same value according to one key by using a different key, then anything can be a key. The number of pages in a book could be a "natural key." This conversation wouldn't exist if that's what people meant by "natural key," because the answer would be trivial.


> If we drop the "unique identifier" aspect of a key, and we can distinguish between different objects that share the same value according to one key by using a different key, then anything can be a key.

And the point the article is making, and that I was trying to emphasize further in my top-level comment, is that there are no perfectly unique identifiers. There are no UIDs in nature. UIDs do exist in human-designed systems, but they are only as good as the actual implementation of the system is, including its evolution over time.

Your own surrogate keys are the most reliable UIDs, because while you can still screw those up, it's in your power to avoid the mistake, and it's also in your power to fix any problem. Once you start using as keys "UIDs" that aren't owned by you, you lose both the ability to prevent bugs and to fix them.

For example, if you're making a library system and use a surrogate ID as a key, duplicates may happen - but they're always indicative of someone screwing up data entry, and can be trivially corrected by assigning a new ID for the entry. If you're using ISBN, or EAN-13, or some unholy hash of author/title/publication year, you're going to get a lot of corner cases, and you won't be able to fix them (you can't exactly change the barcode on everyone's copy of a printed book, just to undo the problems caused by the publisher playing funny games with SKUs).

> People say "natural key" when they're talking about a unique identifier (that's the "key" part) that is part of the domain model of an object (the "natural" part.)

Yes; under this phrasing, the point of TFA/my top comment is, your "natural key" is going to be only as good as your domain model of an object is - which, in practice, means it's going to be bad, because if your model defines some property correlated with real world to be unique, it's already broken.

Ultimately, the point is: there are no truly unique keys in the real world. Best you can do is to chose a key that's least likely to be duplicated in data. Perhaps so unlikely that, in non-critical systems, you can get away pretending it's unique.


You seem to be missing the rather important point that chemical elements are a thing. The atomic number uniquely identifies an element. There are not two distinct elements with atomic number 92 - there is one element, which we call Uranium. It has a number of isotopes (as do all elements - you can keep stuffing as many neutrons into a nucleus as your particle accelerator will let you). But Uranium is identifiably Uranium.

Sure, if I’m trying to build a table of atoms I can’t use their atomic number as a key. I would need some sort of UUID scheme. But in among all those atoms I’d find a bunch of them had stuff in common, and that that stuff is 100% correlated to each of those atoms’ atomic number.

See, the challenge here is to build a table of something where everyone can agree there is a single unambiguous natural key we can use for that thing.

And my (and OP’s) proposal is that you can do that with a table of ‘elements’ with ‘atomic number’ as the key.

You can’t do the same normalization trick with books.

Say you build a table of books with ‘title’, ‘author’, ‘publisher’, ‘year’, ‘ISBN’, ‘edition’, ‘page count’.

Are any of these - or combinations of them - actually a natural key of a common entity in disguise?

Maybe author/title/year? No. For one, I’m sure you can find distinct books that share these values. And ‘year’ is, it turns out, a synthetic key for identifying arbitrary Earth orbital cycles - not a ‘natural’ label for a time period at all. And ‘author’ names are a synthetic key too - many authors publish under multiple names (JK Rowling = Robert Galbraith) and names are just arbitrary keys assigned to specific consciousnesses embodied in particular bundles of cells for a period of years. And of course they aren’t unique, so… no good as a key anyway.

Sure you could say ‘well, I want to make “n page books” into an entity and extract that to a table but you wouldn’t find any properties you could extract out to that table - there isn’t anything that all 92 page books have in common that you could tag onto that relation.

Whereas your chemical elements table has LOTS of properties that are common to everything with each atomic number. Electron structure. What molecules it can form. What crystalline structures it forms. Sure, not its half life or its melting point, but still - useful facts that are common to all atoms with the same atomic number.


> You seem to be missing the rather important point that chemical elements are a thing.

I fundamentally disagree with this. Elements are a human-created categorization of atoms (granting that atoms are real) by atomic number.

> Maybe author/title/year? No. For one, I’m sure you can find distinct books that share these values.

Author/title/year is very much like atomic number: extremely useful and sufficient for very many practical purposes. But when dealing with books, sometimes we need more than author/title/year, and when dealing with atoms, sometimes we need more than atomic number.

Atomic number is a natural key to the elements, because it's part of the definition of element.

This is why natural keys don't exist in nature, but can exist for things we invent: because a key uniquely identifies any member of a set. A key makes every possible distinction. When we categorize things, we select some distinctions (such as the number of protons in an atom's nucleus) and throw away others (such as the number of neutrons.) The enumeration and definition of relevant distinctions is necessary for the existence of a key. We defined the elements, and as a result of how we defined them, they have a key. When we define a book table in a database, it has a key as a consequence of how it is defined.

If we don't define the set ourselves, as our invention, it is impossible to anticipate all of the possible distinctions between members, so it is impossible to construct a key.


Most elements are stable, especially most of the ones we deal with, and they fall in clear periods and rows based on chemical valence. This is true for main group elements and mostly true for transition metals.

I think the periodic table was discovered, not invented. My guess is that whenever we communicate with some advanced alien species, the periodic table is going to be one of those things we share.


Periodic table is recording multiple different patterns in atoms. Some better than others. By nature, its a dimensional reduction. There are many alternative renderings of the periodic table (or spiral, or cube, or ...) emphasizing different regularities. The one you refer to is just the most popular rendering.


The concept of an identifier comes with the concept of a bijection (or at least a injection). That is a truly basic concept in Mathematics.

You could argue Mathematics is a human construction. But at that point, isn't every concept a human construction? In that case it is hardly helpful, or meaningful to say a concept is a human construct, since all concepts are.


The problem isn't the concept of a bijective function, it is picking the right function and that is a social problem.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: