4 ms·
I believe that it is good for any programmer to at some point in their development create a simple language and write an interpreter for it. First, you learn p
by derekp7 13y ago
I believe that it is good for any programmer to at some point in their development create a simple language and write an interpreter for it. First, you learn parsing, then you learn what actually makes a language tick. Then you learn what goes into the design process, when you realize you've designed yourself into a corner. Then you start reading up on language design, stumble across sites like Lambda-the-Ultimate.org, and find out that there is a lot more than imperative / OO programming. Then you start getting into the Lisp literature, and reach a zen-like state. Then you snap back to reality, and become a slightly better programmer, who is a bit more humble.
- lignuist 13y agoYes, but there is a difference between writing a lisp interpreter, and expecting that the world will use your lisp interpreter for actual projects. :) I would also recommend writing a game to any developer. This includes graphics, UI, performance optimization, maybe graph algorithms and more, but like with languages, the result will in most cases not be able to compete with professional games that are already out there.
- alcari 13y agoRepeat several times to become a much better programmer, but possibly lose the humbleness.
- rfnslyr 13y agoFinal step: Co-exist as one with John Carmack and all other ascended souls.
- argv_empty 13y agoFirst, you learn parsing, then you learn what actually makes a language tick. Then you learn what goes into the design process, when you realize you've designed yourself into a corner. Then you start reading up on language design, stumble across sites like Lambda-the-Ultimate.org, and find out that there is a lot more than imperative / OO programming. Then you start getting into the Lisp literature, and reach a zen-like state. Then you snap back to reality, and become a slightly better programmer, who is a bit more humble. Or (more likely, in my experience) you throw together a parser and then expand into a rudimentary interpreter/compiler and continue along your merry way having essentially reinvented some language you already knew with a few superficial differences.