4 ms·
I'm suprised. I thought it was a joke: https://news.ycombinator.com/item?id=5148895 https://news.ycombinator.com/item?id=5148895
by Jabbles 13y ago
I'm suprised. I thought it was a joke:
https://news.ycombinator.com/item?id=5148895 https://news.ycombinator.com/item?id=5148895
- freditup 13y agoI also thought it was satire. Actually, I still think it is for the most part, just with a drop of reality mixed in (like any good satire!)
- shawnz 13y agoI wish I weren't so gullible! When this thread came around the first time, it seemed quite interesting, but the comments totally convinced me it was supposed to be a joke. Now I'll have to wait until 2014! To me the "jump right in to a huge project" approach seems like a great way to learn a language, even if it doesn't necessarily produce high quality results (or even functioning results). Nevertheless OP is entitled to their opinion.
- tptacek 13y agoIt's a great approach to learn a language, but you have to be careful what kind of "huge" you're dealing with. There's "huge" in the sense of technical ambition, and there's "huge" in the sense of "large number of implicated functional areas" and there's "huge" in the sense of "sprawling requirements that capture many different people's needs". A C++ compiler is all three; it's challenging, like any compiler for a real language is; it's functionally dense (preprocessing, parsing, evaluating, code generation), and it's one of the most sprawling language specifications there is. Building a native-code-generating Lisp would not be an unreasonable learn- a- new- language project.
- betterunix 13y ago"Building a native-code-generating Lisp would not be an unreasonable learn- a- new- language project." Eh, I do not think it is terribly hard if optimizations are not a concern. Yeah, CLtL2 is rather lengthy, but the bulk of it can be implemented with macros and functions if you just want something that will work. I suppose implementing those macros/functions might teach you the language, but I think you would learn a whole lot more implementing something else (say, an email client).