3 ms·
On one hand: Yes, this is an extremely cool hack. Hats off. On the other hand: It probably seems particularly impressive because its building blocks don't happ
by meredydd 10y ago
On one hand: Yes, this is an extremely cool hack. Hats off.
On the other hand: It probably seems particularly impressive because its building blocks don't happen to be in your skill set. A rule of thumb: Something is impressive in proportion to how many times you think "How did they do that?!".
In this case, if you're not already familiar with disassembly, binary instrumentation, how caches work, etc, then every step along this way sounds magical. But to a low-level/systems programmer, this sort of thing is their bread and butter. So their reaction wouldn't be "OMG how did he even...?" - it's probably more like "Niiiiiiice".
(If you are, eg, a web developer, you probably have an equivalently ridiculous level of background knowledge about the internals of 5+ levels of the web stack, and how each goes wrong. I have seen systems guys - people who would jump on this project in a heartbeat - take one look at modern web dev and flee with their head in their hands, asking "how do they know all that stuff?!")
- bronxbomber92 10y agoHeh, not the best example to make your point [in this context] because the presenter also manages a group that writes/maintains the companies web tools, which consists of 340,000 lines of Javascript and 500,000 lines of C++ server-side code.. :) https://deplinenoise.files.wordpress.com/2017/03/webtoolspostmortem.pdf https://deplinenoise.files.wordpress.com/2017/03/webtoolspos... My experience has been that people who are good at the bottom layers of the stack are good with the top layers of the stack, too. And if they're unfamiliar, they can ramp very up quickly.
- meredydd 10y ago[Update - Holy Moses, that presentation is amazing! It's a perfect illustration of what happens when you don't have the background of experience that web devs do, and just throw a bunch of smart but inexperienced C++ devs at a huge Javascript project. They walked into every rake in that grass, and I get a distinct subtext of "holy crap, I would never have believed the tooling was this bad..."] My comment addresses the perception that "OMG programmers today know nothing; this is what a Real Man looks like". Someone learning web development has spent a lot of brain-space on learning a level of in-depth knowledge that also looks magical to someone who hadn't. As it happens, I too think that the things you learn lower down the stack tend to make you a better engineer, whereas what you learn higher up the stack is too often an unedifying schlep. High-level systems spend a lot of complexity solving problems created by the layer underneath. (This goes 10x for web frameworks.) Low-level systems are more tightly constrained by the boundaries of the possible, so they spend their complexity on more fundamental problems. The same amount of time and intelligence spent learning the ins and outs of Angular yields less transferable skills than learning how compilers work. But if you need to build a web startup, compiler expertise on its own won't help you. It's like learning physics vs biology. Sure, physics is more fundamental, and a physicist learning biology usually has an easier time than the other way round. But a research biologist has also spent their time acquiring an immense amount of expertise, and fundamentally we need medical advances more directly than we need confirmation of the Higgs boson.