6 ms·
Kudos to the author of this post - it takes a lot of skill to explain complex concepts like this, let alone in plain enough english that someone not skilled in
by mmastrac 8y ago
Kudos to the author of this post - it takes a lot of skill to explain complex concepts like this, let alone in plain enough english that someone not skilled in the art could follow along.
WebAssembly is one of those technologies where we haven't seen the true extent of its capabilities yet. This is an exciting time to be working in browsers.
- joshmarinacci 8y agoYep. Lin is amazing.
- symboltoproc 8y agoThis definitely deserves praise.
- rayiner 8y agoDon’t get me wrong this is a great article. But I found the analogy with the people and pieces of paper a bit hard to read. (The analogy with the people made me think the author was talking about some sort of prototype delegation chain, https://giamir.com/alternative-patterns-in-JS-OLOO-style https://giamir.com/alternative-patterns-in-JS-OLOO-style, rather than nested function calls.) Who is clicking on this but doesn’t know what a stack frame is?
- sandyarmstrong 8y ago> Who is clicking on this but doesn’t know what a stack frame is? Probably a lot of JavaScript developers who started in web land and are only now starting to be exposed to the underlying architecture.
- kbenson 8y ago> Who is clicking on this but doesn’t know what a stack frame is? JS developers that don't have experience in lower level languages or some CS concepts. In other words, probably a good portion of the expected audience given it's about JS and possible improvements, and is likely to trickle into the news sources to cater to those people.
- btown 8y agoNotably, with the advent of things like Unity that compile to WebAssembly, people could be programming frequent communications between WebAssembly and JS, without ever having learned a low-level language involving pointers (which would be the situation in which one would learn about stack frames).
- tomjakubowski 8y agoIt's funny, I know about stacks, call stacks, and call stack frames. And yet the analogy to a literal stack of papers with information written on each one still gave me something new to chew on. (For some reason, I never actually thought to visualize like... a physical stack of data before.)
- DonHopkins 8y agoI made a visual programming and debugging environment for PostScript, a stack based language, that let you perform "direct stack manipulation" by dragging object up and down and on and off of a "spike" stack that impaled the little tabs sticking out of objects. https://medium.com/@donhopkins/the-shape-of-psiber-space-october-1989-19e2dfa4d91e https://medium.com/@donhopkins/the-shape-of-psiber-space-oct...
- rhencke 8y agoAs someone who spent a few years having to debug PostScript with pstack and GhostScript running in a fixed-size command-prompt window in the 2010-ish timeframe... this looks futuristic even today. Was the idea with the direct stack manipulation dragging you describe to provide visual analogues to PostScript commands like roll/pop/etc?
- DonHopkins 8y agoThat's right -- you could rearrange their vertical order to manipulate their place on the stack, or you could lift them off of the stack and let them float by themselves, just to have a visual reference you can click on, drag and drop into other objects, etc. It was very dangerous since you were editing the live data structures of the window system! The most complicated program I used it to debug was itself. It was integrated with NeWS's multithreaded debugger, so when some process hit a bug or a breakpoint, you could "enter" the process and see what was on its stack, peek and poke at the objects, rearrange the stack and edit the objects, then send it on its way. Since PostScript is homoiconic like Lisp, code and objects are made of arrays and dictionaries, which you could visually browse, edit, and execute. Very much inspired by Smalltalk, but with a twist of Lisp and FORTH!
- Waterluvian 8y agoA _lot_ of developers who have graduated to the next layer, who can focus even more on building stuff without worrying about implementation details.
- irrational 8y ago>Who is clicking on this but doesn’t know what a stack frame is? 99% of all the JS developers I've ever met?
- pteredactyl 8y agoFeeling insecure?
- LandR 8y agoHe's not wrong IME.
- pcwalton 8y ago> Who is clicking on this but doesn’t know what a stack frame is? The primary target audience is Web developers interested in new technologies. I'd wager most of them don't know what a stack frame is and would appreciate the explanation.
- golergka 8y agoI hire C# developers, and most of candidates, even with a couple of years of experience, have no idea about how stack works.
- tracker1 8y agoThe majority of developers who work in scripted or higher level languages like C# or Java. For the most part, you don't have to think about them (even in C#/Java interop with C/C++, it's usually a non-issue).
- zmw 8y agoIMO developers who work in scripted or higher level languages and never inspected a call stack have a serious problem (unless they write perfect code that works on the first attempt 100% of the time and never have to debug). I mean, printf debugging is okay, but at some point, preferably early on, you’re expected to graduate out of that (not throwing it out completely, but rather, learn a better way for more complex situations). Plus the fact that most scripting languages throw stack traces all the time.
- rch 8y agoYeah, I stopped reading when I got to the cartoons. It's interesting to me that it's well received generally though -- I can appreciate that it might be helpful.
- fucking_tragedy 8y agoIt was well written, but throughout the entire article I was hoping I'd learn what this thing was and why it was represented this way[1]. [1] On the right: https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2017/02/02-01-alien03.png https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/fil...
- andhow 8y agoThat came from one of Lin's first posts about WebAssembly: https://hacks.mozilla.org/2017/02/a-crash-course-in-just-in-time-jit-compilers/ https://hacks.mozilla.org/2017/02/a-crash-course-in-just-in-...
- drzaiusx11 8y agoThe "thing" on the right is a reference to the aliens in the movie Arrival where the main character (a linguistics professor) communicates with tentacled smoke beings by holding up white board messages.
- fucking_tragedy 8y agoThanks, the reference went right over my head. Was the movie any good?
- tshepang 8y agovery good
- aaronblohowiak 8y agoAll of Lin's stuff is amazing. https://hacks.mozilla.org/category/code-cartoons/ https://hacks.mozilla.org/category/code-cartoons/