
Is a 'Stack' the Best Way to Understand Everything? (2017) - bilifuduo
https://www.nytimes.com/2017/04/11/magazine/new-technology-is-built-on-a-stack-is-that-the-best-way-to-understand-everything-else-too.html
======
jdormit
Interesting take, but it misses the fundamental point of the stack metaphor:
each layer has to depend on the existence of the previous layer. An operating
system can't exist without hardware to run on; an application can't exist
outside the context of an operating system. The author seems to think that any
system with multiple components can be called a "stack" \- at that point, you
truly have reduced the term to a buzzword.

------
booleandilemma
I got the impression that the author of this article doesn’t understand what a
stack is. The examples he gives are all over the place.

The article was generally cringey but this sentence stood out:

 _Stack logic is only just finding its footing in the corporate world, and it
hasn’t spilled into mainstream conversation just yet._

~~~
nukeop
The term "LAMP stack" is at least 15 years old and even RMS commented on it a
long time ago. That's as mainstream as it gets.

~~~
octo_t
In what world do you live in where RMS is a mainstream figure? Or LAMP stack
is a mainstream term?

~~~
philipov
That's like saying differential equations aren't mainstream just because not
everyone takes university-level math. Stacks are a mainstream technical
concept in a mainstream technical profession. The relevant domain for
determining prevalence is "Programmers." Non-technical people don't count.

~~~
ergothus
I'd actually say the relevant group is "people trying to understand the
domain" (given the question in the headline).

Which, generally, boils down to a group that is largely programmers, and even
those that aren't programmers DO (AFAICT) have familiarity with the "stack"
concept (non-technical Eng Managers, non-technical PMs, etc)

I'm not saying you're wrong in any way, just pointing out that it can be said
in a way that doesn't sound like "programmers are all that matter" (which I
don't think was your intent anyway).

------
taneq
It's the best way to understand cleanly separated hierarchical systems, sure.
So it's great for computers (which are designed this way by humans to keep
their complexity manageable), but it's a poor way to understand biological
systems (for example) which are a mush of innumerable interconnected feedback
loops beyond the capacity of any human mind to fully understand.

~~~
mcguire
It's not necessarily the best way to understand things designed by humans. A
strict view of "the stack" leads one to ignore the direct (side-) effects of
different layers on each other and to invent the imaginary sin of the
"layering violation".

~~~
taneq
It's the best way to understand things designed by humans _to fit in with that
way of understanding_. Some humans can design things which operate without
hierarchies (see The Story of Mel) but normal humans will struggle to
understand them.

------
otabdeveloper1
> Is a 'X' the Best Way to Understand Everything?

No. Next question.

------
mcguire
Once upon a time, Edsger Dijkstra, the inventor of the stack (data structure)
attended a lecture by a prospective faculty member at UT Austin, who discussed
topics related to a (network protocol) stack. Hilarity ensued.

Yeah, that's got nothing to do with the article.

~~~
stendinator
Do you have a source for that? Would be funny and interesting to read into
that.

------
3xblah
The original use of "stack" as a metaphor in programming _should_ trace to
assembly language, but I do not see any mention of that here. I would guess
the people who have transformed the term into a "buzzword" are not well-versed
in assembler.

~~~
taneq
That's not really what they mean by 'stack' in this context, though. That's a
'stack' as a form of memory management, which is just a LIFO queue. In this
sense they mean a "software stack" which is just a bunch of nested software
systems (eg. OS <\--> Web server <\--> Web application).

~~~
np_tedious
People have stretched the concept quite far, but your example IS a stack with
a meaningful concept of up and down.

Can you replace the application while leaving the OS in tact? Of course. Now
try replacing the OS without impacting the other two.

~~~
astrobe_
The OSI model is stack with a top and a bottom, but each layer can be
replaced, in theory.

The processor stack and a software stack really are distinct things, because
the "software stack" has the notion of interfaces at the top and the bottom of
each layer.

The fact that at the implementation level, the call stack sometimes mirrors
the software stack is not really relevant. It's sort of accidental: each layer
could be a process, connected with other layers by a pipe for instance.

~~~
taneq
> but each layer can be replaced, in theory.

That's literally the entire point of the abstraction. Each layer is
independent and can do its thing without considering what other layers are
doing.

Of course, like all abstractions, it's leaky, which leads to things like
Nagle's algorithm causing lag in MMORPGs when devs don't turn it off (no
offense, Animats! :D )

------
GuB-42
Stack: a pile of objects, typically one that is neatly arranged.

Fundamentally, a stack is not about technology. Sure, it is used to represent
a data structure in software, but the same can be said for queues, heaps,
pipelines... And yes, it can also be used when the graphical representation of
something looks like a pile of boxes sitting on top of each other, which is
common in tech (ex: the TCP/IP model).

It may be true that tech popularized the word "stack" but it is just as easy
(in fact easier) to imagine a stack of books rather than anything software
related. Using that as an argument that "software is eating the world" is
circular reasoning.

~~~
Waterluvian
I was at a hospital recently and saw this. In the first waiting area there was
a vertical queue for patients charts. I watched nurses pop off the top and
then manually move every chart up to refill the top of the queue.

Then in another waiting room I saw the same thing, except it was basically a
ring buffer. They used a little magnet to denote the top and I watched them
keep filling below my chart and then back to the top above the other charts.
No need to move every chart every time.

I highly doubt these nurses are thinking tech or programming. They're just
being naturally clever.

------
pklee
I read this someplace.. thought it is fun to share.. we went from spaghetti
(mainframe) code to lasagna (stacks / tiered architecture) to ravioli (micro-
services) :)

~~~
zitterbewegung
Yea, but sometimes one persons ravioli tastes like lasagna or spaghetti.

~~~
mfoy_
It's more about form than flavour. Two different raviolis can have totally
different stuffings, but no reasonable person will confuse a lasagna for a
ravioli... although I suppose you could put a ravioli layer inside a
lasagna...

~~~
kieckerjan
It would take an intrepid determined cook to produce the culinary metaphor of
what a modern microservice landscape looks like: a bucket of ravioli that are
connected to each other by a web of spaghetti. (Does that sound like more
pasta than filling? Yes, it does.)

------
trhway
Definitely. Tough sometimes one have to allow for an abstraction leak :
[https://c1.neweggimages.com/NeweggImage/ProductImage/A1S7_1_...](https://c1.neweggimages.com/NeweggImage/ProductImage/A1S7_1_20170516537927113.jpg)

------
bitwize
When Reggie Watts broke things down in terms of stacks, it helped me
understand a lot more:
[https://youtu.be/CJQU22Ttpwc](https://youtu.be/CJQU22Ttpwc)

------
disqard
I hereby officially coin the next buzzword for 2020: Deep-Stack-Chain

Combining the AGI capabilities of Deep Learning with hyperdimensional system
architectures to create decentralized Cloud infrastructure like never before!

~~~
zach_garwood
If you can present it in AR/VR then I'll take two!

------
adgasf
People use the word "stack" in multiple ways. So... ?

------
logicchains
I initially thought the title was in reference to the wonderful
[https://stacks.math.columbia.edu/about](https://stacks.math.columbia.edu/about).

------
wernercd
There are 10 ways to understand everything:

1) A stack 10) a queue

------
AllegedAlec
Betteridge's law of headlines strikes again.

------
scroot
How is there not a single mention of Hypercard?

~~~
imglorp
Which term I never understood. The actual structure of cards is a DAG.

