8 ms·
Is a 'Stack' the Best Way to Understand Everything? (2017)
- AllegedAlec 8y agoBetteridge's law of headlines strikes again.
- 3xblah 8y agoThe 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 8y agoThat'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 8y agoPeople 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.
- taneq 8y agoVirtualBox would like a word with you.
- indigochill 8y agoLet's say you have an Ubuntu OS in Virtualbox, and an application is running "on top" of Ubuntu. Now try swapping out the Ubuntu OS for Windows without affecting the application. It's nonsense, because an application only works when there's an OS to provide an abstraction layer for talking to hardware. Of course, there are applications that run on bare metal without that abstraction layer, but the point I'm making is that in stacks with an OS, an application "on top" of that OS is not independent of the OS even with virtualization.
- taneq 8y agoIt's not independent of the OS that it's expecting, obviously. But anything below that OS can be swapped out via virtualisation.
- np_tedious 8y agoIt still necessitates a restart, at the very least
- astrobe_ 8y agoThe 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 8y ago> 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 )
- agumonkey 8y agonot prior ? I've read that stack were brought to solve recursive functions, I'm not sure it was tied to assembly or brought in a more theoretical manner
- hderms 8y agostack-based memory allocation is the proper way to model data local to procedures in a call stack.
- tonyedgecombe 8y agoThat's almost a tautology.
- agumonkey 8y agoI'd say almost a bitautology stack => memory allocation :- local variables on call stack
- arethuza 8y agoDidn't Alan Turing come up with what was effectively a call stack for subroutines with "bury" and "disinter" for the ACE? I think that probably predates assembly language programming!
- mcguire 8y agoThere's a "stack" data structure. There's also a "stack", a layered architecture. Don't confuse the two. They're unrelated.
- taneq 8y agoIt'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 8y agoIt'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 8y agoIt'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.
- oblib 8y agoI nominate "mush" for the next buzzword. It works perfectly the way you've used it here and I'm sure I'll find it handy in a similar context.
- jdormit 8y agoInteresting 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.
- adgasf 8y agoPeople use the word "stack" in multiple ways. So... ?
- deleted 8y ago[deleted]
- logicchains 8y agoI initially thought the title was in reference to the wonderful https://stacks.math.columbia.edu/about https://stacks.math.columbia.edu/about.
- GuB-42 8y agoStack: 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 8y agoI 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.
- scroot 8y agoHow is there not a single mention of Hypercard?
- imglorp 8y agoWhich term I never understood. The actual structure of cards is a DAG.
- booleandilemma 8y agoI 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 8y agoThe 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 8y agoIn what world do you live in where RMS is a mainstream figure? Or LAMP stack is a mainstream term?
- philipov 8y agoThat'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 8y agoI'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).
- tellak 8y agoHeh maybe you’re too young? LAMP stack is probably at this point so old nobody cares. But having worked with decisionmakers in corporations with large IT needs most were quite aware of LAMP-I mean it was in many ways the killer app of Linux. Also this notion that stack was invented in tech is ridiculous. Stack ups have been referred to in manufacturing and medicine for years prior.
- otabdeveloper1 8y ago> Is a 'X' the Best Way to Understand Everything? No. Next question.
- pklee 8y agoI 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 8y agoYea, but sometimes one persons ravioli tastes like lasagna or spaghetti.
- mfoy_ 8y agoIt'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...
- throw_away 8y agoFlip out of the metaphor and into literal pasta dishes and I like where you're going with this
- kieckerjan 8y agoIt 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.)
- seeker61 8y agoAt my old company, one spiky-haired genius explained it to the simple minded as "monolithic architecture is like a wedding cake. Microservices are like cupcakes." This was after he compared it to Ben and Jerry's versus FroYo. I sure hope the refrigeration doesn't go out, they'll have a real mess on their hands then.
- floren 8y ago
- mcguire 8y agoOnce 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 8y agoDo you have a source for that? Would be funny and interesting to read into that.
- bitwize 8y agoWhen Reggie Watts broke things down in terms of stacks, it helped me understand a lot more: https://youtu.be/CJQU22Ttpwc https://youtu.be/CJQU22Ttpwc
- wernercd 8y agoThere are 10 ways to understand everything: 1) A stack 10) a queue
- disqard 8y agoI 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 8y agoIf you can present it in AR/VR then I'll take two!
- trhway 8y agoDefinitely. Tough sometimes one have to allow for an abstraction leak : https://c1.neweggimages.com/NeweggImage/ProductImage/A1S7_1_20170516537927113.jpg https://c1.neweggimages.com/NeweggImage/ProductImage/A1S7_1_...