Scheme Is Love
msdn.microsoft.com
msdn.microsoft.com
I know this sounds cranky. It's because I started my professional programming life in this dark forest and it took years to find my way out. And I think it's a shame that they dominated the industry for as long as they did, because they wrought such damage on the level of ideas.
There's a certain type of smart-but-ignorant programmer who is infatuated with his own IQ, doesn't want to learn from anybody who knows more, and just cranks out reams of code (often filled with pseudo-abstractions that make it a lot worse than plain old bad code). I think of MS as the corporate equivalent of this type.
Edit: I should add that not everybody at MS is like this, of course. But the exceptions are people who grew up outside that culture.
Despite the numerous critique I partially agree with, Microsoft showed the continuous commitment to improve their software, and I personally still think that staying with them, as a profesional developer, is not a bad choice.
No, our industry is slow on the uptake.
Microsoft makes products. They don't make languages to be cool or expressive or powerful, but as products to sell.
Edit: Also, a telltale question: do you think he ever actually built anything with Lisp or Scheme? I'll bet he went straight to "improving" on it.
Edit 2: moved irrelevant bit to a different comment.
This melding of code and data is central to all dialects of Lisp, and is fundamental to the way Microsoft is integrating multiple expression languages (most notably SQL) in future versions of the Microsoft .NET Framework.
http://en.wikipedia.org/wiki/C_Sharp_(programming_language)#Features_of_C.23_3.0 http://en.wikipedia.org/wiki/Language_Integrated_Query
The fundamental thing to understand here is that Microsoft is a very large company which has has evolved into many subcultures over time. DevDiv, or the Developer Division, is by far the most progressive of these. It's the old "Raymond Chen vs MSDN Magazine" thing (Google it). C#, however, is just so great because of people like Heijlsberg, Erik Meijer, Mads Torgersen, Eric Lippert, and many many others who are brilliant, bring outside ideas, but still operate within the very successful mindset of DevDiv which birthed Visual Basic and Visual Studio.
Side note: I've noticed that I've become a little bit of a Microsoft apologist on HN lately. Receiving a paycheck from them has a little bit to do with it, but the truth of the matter is that I am trying to understand why they are so successful and where they fail. If you keep your eyes open and ears tuned, you can learn a lot about software and business at Microsoft. I'm also trying to share this knowledge a bit, because HN is a place where the knowledge is appreciated. Slashdot? Not so much.
Hmm? cond appears to exist in R5RS also.
Also, these two forms are not equivalent:
(define s (lambda (y) (+ y 1)))
Converter<int,int> s = delegate(int y){ return y + 1; };
Notice that Scheme doesn't require y to be an integer.If you introduce several different people to the same ingenious and perfect thing, only very few of them are really able to see the perfection (and to open/change their mind accordingly).
And -- on the other side -- many of them will stay the same, or change their opinion only marginally...
So, it's not enough to expose someone to something perfect -- one has also to be so gifted to actually recognize it (and to have the courage to actually change the mind -- and this is work).