News for hackers. Stuff that matters.
Re:Rich Programmer Food (2007) by falsedan on Monday May 23, 2016 @01:21PM (#11755284)
Executive summary:

  If you don't know how compilers work, then you don't know
  how computers work. If you're not 100% sure whether you
  know how compilers work, then you don't know how they work.
Why does he say that? I don't have the time to read 5495 myself to find out.
Re:Rich Programmer Food (2007) by xigency on Monday May 23, 2016 @01:51PM (#11755527)
Well, it's not actually true.

Imagine a world where all software were written in assembly language, or even better, machine code. There would be no use for compilers. 'Portable code' would be machine code that was frantically re-written (by hand) from one platform to another platform. And we wouldn't have a number of JIT technologies and other languages (by definition) as well. Here, without compilers, there would be many people who understand computers.

The fact is in the world we live in, code is on a higher plane than hardware instructions, and it's something that impacts software engineers' lives proportionally. Practical computers work with machine instructions, but idealized computers operate on programs which can be abstracted as code in another language. The practical constraint is that program code must be transformed to be used, so the compiler becomes an essential tool.

The fact that compilers as we know them are so complex leads to the assertion that "if you're not 100% sure you know how they work, then you don't know how they work." Because face it, if you're working on a monolithic, complex piece of software that automates a large volume of menial work, and there is no certainty that it performs as expected or does the right task, then it won't function at all.

You don't need to know how computers work (in this semantic argument) to be a computer programmer, but you absolutely must know how computers work to be a compiler writer. And like the transition from machine instructions to programs written in high level languages, the journey from programmer to compiler writer is a quantum leap, but one that gives someone advantages as a programmer.

Re:Rich Programmer Food (2007) by falsedan on Monday May 23, 2016 @05:57PM (#11757375)

  > you absolutely must know how computers work to be a compiler writer
Ah, OK.
Re:Rich Programmer Food (2007) by jaggederest on Monday May 23, 2016 @01:44PM (#11755460)
To TL;DR the post, any time you transform a stream of symbols into another stream of symbols, it's compilation, and we do that all the time in computing, so if you don't understand how that process works, then you don't understand the fundamental systems of computing.

Unix pipeline commands, for example. If you've ever used sed, it's apparently a compiler by his definition.

Re:Rich Programmer Food (2007) by khedoros on Monday May 23, 2016 @02:40PM (#11755869)
First of all, you need to understand so many other CS concepts to understand a compiler, so we can take the reverse statement: If you understand how compilers work, then you've got to have a pretty good grasp of how computers work in general. Second, when it comes down to it, everything that you do is built on compiled software, and you've got a series of abstractions starting with physics, transistors, logic gates, processor architecture, the OS, user-space software, etc. Essentially, the compiler provides that abstracting links between the hardware and the software, and when it comes down to it, if you don't know how an abstraction is implemented, then you don't really know how it works.
Re:Rich Programmer Food (2007) by mywittyname on Monday May 23, 2016 @02:31PM (#11755811)
Well, he doesn't say that.

He says that compiler theory gives programmers the tools to solve problems with complex input. Building a parser for a Polish notation calculator can be tackled by a first-year CS student. But building an (correct) XML/JSON parser requires an understanding of AST.

So a programmer without an understanding of compiler theory cannot hope to process input that is not structured in the most trivial manner. The bulk of programming beyond CRUD apps require handing complex input, thus benefit from an understanding of compiler theory.

Re:Rich Programmer Food (2007) by falsedan on Monday May 23, 2016 @05:58PM (#11757385)
> Well, he doesn't say that.

I copied-and-pasted the fourth para from the article.

Re:Rich Programmer Food (2007) by mywittyname on Tuesday May 24, 2016 @10:29AM (#11761803)
Well this is painfully embarrassing.
Re:Rich Programmer Food (2007) by laxatives on Monday May 23, 2016 @01:28PM (#11755347)
He doesn't really elaborate on that point, except that 95% of developers, including PhD's don't really understand compilers (even though his summary isn't that far off from the explanations he hears).

This is going to be unpopular, but I don't think you're missing much. IMO its a long, drunken rant fueled by a massive ego.

Re:Rich Programmer Food (2007) by dionidium on Monday May 23, 2016 @01:54PM (#11755550)
IMO its a long, drunken rant fueled by a massive ego.

I get the opposite feeling from Steve. I think he's a guy who, like most of us, realized that he didn't know something that it's pretty important to know and, like most of us, that realization made him feel pretty bad about himself.

Unlike most of us, he recognized that the way to make that bad feeling go away is to get out there and learn the damn thing you feel bad for not knowing.

If that's ego, then we're all fucked.

Re:Rich Programmer Food (2007) by falsedan on Monday May 23, 2016 @05:56PM (#11757371)
*5495 words