4 ms·
Yes, if it's true, it is (it's PG's assessment). But since they wrote an interpreter for Lisp in C++, they couldn't have been that afraid, at least not all of t
by lambda_cube 15y ago
Yes, if it's true, it is (it's PG's assessment). But since they wrote an interpreter for Lisp in C++, they couldn't have been that afraid, at least not all of them. I guess that's what they "gained", that only a few adventurous of the engineers at Yahoo "had" to learn Lisp and the rest could continue program in C++.
- pg 15y agoOnly the RTML page templates were left as Lisp. That was very simple code. Plus they pretty much had no choice about leaving at least that much of the program in Lisp: individual users had created their own custom templates (through an easy template editor that generated Lisp on the back end), which means porting the templates would have meant testing not just the default templates but each user's custom templates as well. http://help.yahoo.com/l/us/yahoo/smallbusiness/store/edit/advanced/advanced-09.html http://help.yahoo.com/l/us/yahoo/smallbusiness/store/edit/ad...
- lambda_cube 15y agoHi Paul. Since you are, maybe you can shed some light on how the rewrite actually happened? Was it the comb-over syndrome that raganwald described in a sibbling comment to yours or was it a more conscious decision?
- pg 15y agoIt was done in one big rewrite.
- SoftwareMaven 15y agoThe two are not mutually exclusive. Most people don't realize they are implementing a lisp interpreter in their massive rewrite, yet after the fact, to anybody who is familiar, it shows up right away.
- raganwald 15y agoBut since they wrote an interpreter for Lisp in C++, they couldn't have been that afraid, at least not all of them Another interpretation is that this is like the “comb-over” syndrome. How does a middle-aged man end up with a comb-over, given that everybody knows it’s a lame look? The answer is that it creeps up on him day by day, there is no one moment in time when he asks himself, “Should I comb my hair over?” Likewise, whenever you see a Greenspunned[1] system, there is rarely a moment in time when some bright and ambitious person decided that the right thing to do was to sit down and implement half of Common Lisp. Instead, they make a series of small daily decisions (add this, change that, add such-and-such a feature, whoops, to fix that bug we need to do this...) that end up accreting into an interpreter for Lisp. I don’t know the whole story, perhaps they did decide to write such an interpreter right from the start. But it could be that they initially decided to write something very small and specific, but wound up with a comb-over. [1]: https://secure.wikimedia.org/wikipedia/en/wiki/Greenspun%27s_Tenth_Rule https://secure.wikimedia.org/wikipedia/en/wiki/Greenspun%27s...
- statictype 15y agoNice explanation. I have to ask though: Is Greenspunning such a bad thing? It seems like this would be true of any non-trivial software system (successful or not). What's the variant of the 10th rule - something like: 'Every complex system contains an ad-hoc informally specified implementation of Common Lisp. Including Common Lisp'
- arohner 15y ago> I have to ask though: Is Greenspunning such a bad thing? Yes, because if you knew you needed Common Lisp, you'd just use CL, rather than an ad-hoc informally specified implementation of CL. In general, the half implementation has half the value of the 'real' implementation.