4 ms·
Perlis is just wrong in that way academics so often are. Pike is right.
by mosura 7mo ago
Perlis is just wrong in that way academics so often are.
Pike is right.
- Intermernet 7mo agoHang on, they mostly agree with each other. I've spoken to Rob Pike a few times and I never heard him call out Perlis as being wrong. On this particular point, Perlis and Pike are both extending an existing idea put forward by Fred Brooks.
- mosura 7mo agoPerlis absolutely is not saying the same thing, and as the commenter notes the functional community interpret it in a particularly extreme way. I would guess Pike is simply wise enough not to get involved in such arguments.
- jacquesm 7mo agoPerlis is right in the way that academics so often are and Pike is right in the way that practitioners often are. They also happen to be in rough agreement on this, unsurprisingly so.
- hrmtst93837 7mo ago[flagged]
- AnimalMuppet 7mo agoCould you be more specific?
- mosura 7mo agoPromoting the idea of one data structure with many functions contradicts: “If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident.” And: “Use simple algorithms as well as simple data structures.” A data structure general enough to solve enough problems to be meaningful will either be poorly suited to some problems or have complex algorithms for those problems, or both. There are reasons we don’t all use graph databases or triple stores, and rely on abstractions over our byte arrays.
- AnimalMuppet 7mo agoI think you are badly misinterpreting the statement. Let's say you're working for the DMV on a program for driver's licenses. The idea is to use one structure for driver's license data, as opposed to using one structure for new driver's licenses, a different one for renewals, and yet a third for expired ones, and a fourth one for name changes. It is not saying that you should use byte arrays for driver's license records, so that you can use the same data structure for driver's license data and missile tracks. Generalize within your program, not across all possible programs running on all computers.
- mosura 7mo agoYour admittedly exaggerated example is arguing against the entire concept of relational databases, which is not a winning proposition. You do not write programs with one map of id to thing as you are suggesting here.