3 ms·
Fascinating story. Especially interesting how he still felt compelled to make Microsoft’s apps work without any input from them. If it was important for them yo
by vxNsr 4y ago
Fascinating story. Especially interesting how he still felt compelled to make Microsoft’s apps work without any input from them. If it was important for them you’d think they'd agree to let him have access to the actual source code to debug. Or maybe I’m misunderstanding what pseudo code is in this context.
- bombcar 4y agoI'm sure they would have - but in the heat of the moment you don't have time to learn someone else's code when you can just fiddle some bytes, throw it in the debugger, aha!
- kmeisthax 4y agoEarly versions of Word ran in a custom interpreter Microsoft wrote. Think like Java or WASM bytecode. To debug this properly would require writing a special version of that interpreter with debugging features built-in. Debugging an interpreted program by debugging the emulator it's inside of is a special kind of hell. Even moreso if you don't have debugging symbols for that emulator either. Instead of "step to next instruction", it's "step to next bytecode fetch, step through the interpreter's jump table, step through the implementation of that instruction, figure out what it is, repeat". Each one of those is multiple machine code instructions and you will lose track of things very quickly.
- vxNsr 4y agoWow now that’s interesting I didn’t fully understand what he meant by pseudo code, but this makes it especially interesting!
- jll29 4y ago> the instructions comprising their applications were encoded in pseudo-code to save space, in the tradition of the byte-code interpreters from Xerox, which Charles Simonyi advocated. I never heard of that; Simonyi is usually associated with his "Hungarian style" of prefixing variable names by type indicators (sz_* for pointers to strings implemented as zero-terminated character sequences etc. - https://en.wikipedia.org/wiki/Hungarian_notation https://en.wikipedia.org/wiki/Hungarian_notation ). Writing office in interpreted bytecode must have slowed down things quite a lot, and back then there was not JIT compilation available. Does anyone have specifics on that VM (e.g. opcode table)?