Hacker News new | past | comments | ask | show | jobs | submit login

> a tree probably doesn't represent the fundamental truth of things

It does. Trees appear in nature all the time. It's the basis of human society, evolution and many things.

Most of programming moves towards practicality rather then fundamental truth. That's why you get languages like golang which are ugly but practical.






A city is not a tree: https://www.patternlanguage.com/archive/cityisnotatree.html

Even trees are not trees: https://en.wikipedia.org/wiki/Anastomosis

Evolution is most definitely not a tree.

Nature also tends towards practicality, even more so than programming. Trees aren’t a fundamental truth, they’re a made-up oversimplified abstraction.


evolution is a tree. Follow the ancestral lines. Even the term inheritance comes from evolution.

Botanical trees appearing in nature don't make them "the fundamental truth of things". And in what way are trees the basis of human society? Thats such a strange claim. Are you talking about family trees? Because they're actually directed acyclic graphs.

Even if you want to claim that trees are a common data structure, that doesn't mean they're appropriate in any specific case. Should we therefore arrange all websites in a tree? Should relational databases be converted to trees, because "they're the basis of human society"? What tosh.

Programming moves toward practicality because software is created to do work. Taxonomies are entirely and completely worthless. The classic Animal -> Mammal -> Cat example for inheritance is a fascinating ontology, and an entirely worthless piece of software.


"Taxonomies are entirely and completely worthless."

Hard disagree. Knowing that AES and Twofish are block ciphers is useful when dealing with cryptography. Many categories of algorithms and objects are naturally taxonomic.

Even HTML+CSS has (messy) inheritance.


I may have overstated the claim in that sentence. More accurately, I think taxonomies aren't, themselves, useful. If they don't help you solve problems, you're just stamp collecting. I've seen that happen way too many times - otherwise smart people thinking they're being productive by writing a whooole lot of useless classes, where a few functions and some if statements would do it.

But don't get me wrong - I'm totally in favour of having common interfaces. They aren't great because they form a taxonomy. They're great because it helps us abstract. Whether its Iterator or different software implementing HTTP, interfaces actually help us solve actual problems.

> Knowing that AES and Twofish are block ciphers is useful when dealing with cryptography.

The useful fact in this example is that they both do a similar thing. They form a type class from their common behaviour. Behaviour they may share with - for example - a compression algorithm. Thats what actually matters here.


I think this is a lumpers/ splitters thing. The problem with a tree structure is that it assumes a very particular shape and you have to distort your understanding of the world to make that fit reality which has no such inherent pattern.

So, the taxonomy isn't useless, but, it's also never sufficient.


fundamental truth of things is probably the wrong word choice.

It's more like there are many fundamental concepts and trees are one such concept. I don't think there is a singular fundamental truth of things.

>Even if you want to claim that trees are a common data structure, that doesn't mean they're appropriate in any specific case. Should we therefore arrange all websites in a tree? Should relational databases be converted to trees, because "they're the basis of human society"? What tosh.

I never made this claim though?

>Programming moves toward practicality because software is created to do work. Taxonomies are entirely and completely worthless. The classic Animal -> Mammal -> Cat example for inheritance is a fascinating ontology, and an entirely worthless piece of software.

I mentioned this because parent poster is talking about fundamental truths. I'm saying trees are fundamental... But they may not be practical.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

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

Search: