[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Y Store now C++

--Michael Vanier wrote:
> > Date: 25 Feb 2003 03:48:49 -0000
> > From: Paul Graham <pg@archub.org>
> > 
> > I should mention that they actually have just done this.  A 
> > rewritten version (C++ and Perl) just launched in Jan.  
> > However,
> > 
> > (a) The reason they rewrote it was entirely that the 
> > current engineers didn't understand Lisp and were too
> > afraid to learn it. 
> > 
> > (b) The resulting program is a new world's record case
> > of Greenspun's Tenth Rule.  The Yahoo Store Editor called
> > compile at runtime on s-expressions made on the fly.
> > To translate this into C++ they literally had to write a
> > Lisp interpreter.
> > 
> This is an interesting state of affairs.  We have engineers that are afraid
> to learn lisp, but are not afraid to use a mock-lisp interpreter written in
> C++.  I'm not sure whether to laugh or to cry.
> Paul, are you just assuming they were afraid to learn lisp, or do you know
> for sure that that was the reason?  I'd guess that another reason was that
> they were afraid they wouldn't be able to find good lisp programmers to
> maintain it.

I believe the pointy-headed bosses were the driving force
in the port.  When I worked at Yahoo, management were nervous
about the software being written in Lisp because they thought
it would be hard to find programmers who knew it.  Not so
much that they couldn't find any, I think, but that because
it was a comparatively rare skill, management would have
less leverage over the hackers.   When skills are not a 
commodity, employees aren't hot-swappable.

A friend of mine (who's probably on this list, actually)
went to interview there in about 2000.  He said they told
him they didn't need Lisp hackers, because they were going
to port the Store Editor to C++.  Why?  Because they didn't
think they'd be able to find Lisp hackers.

BTW, I should add that most Y Store users still probably
use the Lisp version at this point.  They're doing a 
gradual rollout, and you have to explicitly choose to
"upgrade" to the new version.  The feature they had to take
out because of closures is actually a fairly important one,
so I suspect many users never will upgrade.