20,762 reputation
104877
bio website ericlippert.com
location Seattle, WA
age 42
visits member for 4 years, 5 months
seen Mar 24 at 13:42

Eric Lippert develops C# analyzers at Coverity. During his sixteen years at Microsoft he was a developer of the Visual Basic, VBScript, JScript and C# compilers and a member of the C# language design committee; he is now a C# MVP. He is on Twitter at "@ericlippert" and writes a blog about programming language design and other fabulous adventures in coding at http://ericlippert.com.


Mar
27
awarded  Good Answer
Mar
24
awarded  Nice Answer
Mar
23
comment Why aren't field-like events implemented as a list of delegates?
The problem of creating all of the empty lists can be easily solved with a "null object pattern" -- make a singleton object for each delegate type which is the "null" delegate. But you still have the problem of initializing all those fields to the "null object". That initialization is either potentially expensive, if done automatically, or error-prone, if done manually.
Mar
23
revised Method extraction vs underlying assumptions
added 547 characters in body
Mar
23
answered Method extraction vs underlying assumptions
Mar
9
comment The dream of declarative programming
Well, this question is easily answered. Attempt to implement such a system. What stopped you from doing it successfully? Odds are good that whatever stopped you has stopped everyone else.
Mar
5
awarded  Nice Answer
Mar
2
comment Do you memorize the classes of your frameworks?
It's not that crazy. :-) And I am with you; I certainly do not know anywhere close to the whole .NET framework.
Feb
26
comment Is it worth even checking to see if Guid.NewGuid() is Guid.Empty?
@ArturoTorresSánchez: For the answer to your question and many more fun facts about GUIDs, see my series of articles which begins here. ericlippert.com/2012/04/24/guid-guide-part-one I note that Luke already linked to part three for your convenience. Short answer: Version 4 GUIDs always include a 4.
Feb
25
comment Is it worth even checking to see if Guid.NewGuid() is Guid.Empty?
That code is there to keep the alligators away. Are there alligators where you write code? No? Then obviously it works!
Feb
22
comment Does Oracle reap economic benefits by maintaining Java?
A similar question of historical interest is "why did Sun, a company that sold expensive hardward, design, implement and heavily promote a language designed to make hardware choice less relevant?" It seems to work directly against their interests. Joel Spolsky, who runs this site, wrote an article about that back in the day, and I have yet to hear a sensible answer to that question.
Feb
21
comment How to respond to a rude bug report?
Observe how this bug report is handled. jira.mongodb.org/browse/PYTHON-532
Feb
19
comment Why are there so few C compilers?
"Why" questions are bad questions for this site at the best of times, and "why not?" questions are worse. If I were to meet you at a party and ask "so, why don't you race sailboats?" I think you'd rightly find it to be an odd question. You don't need to provide a justification for NOT engaging in a technically difficult, physically risky and very expensive hobby. Writing any non-trivial piece of software is expensive, difficult and risky and therefore requires an enormous motivator. A better question would be "why are there so many C compilers?" It is surprising that there is more than one.
Feb
19
comment Why are there so few C compilers?
The question is based upon a false premise. Analog Devices, armcc, Bruce's C Compiler, the Bare-C Cross Compiler, the Borland compiler, the clang compiler, the Cosmic C compiler, the CodeWarrior compiler, the dokto compiler, the Ericsson compiler, and I'm not even out of the first five letters of the alphabet yet. There is an insanely large number of C compilers. The question is "why are there so few C compilers, if we don't count these several dozens as real C compilers?" You have defined away the vast majority of C compilers as not interesting, which is why there are not very many of them.
Feb
17
awarded  Guru
Feb
2
awarded  Great Answer
Jan
12
awarded  Nice Answer
Jan
12
comment How does big O notation indicate upper bound on a function?
@Brian: I see your point. I interpreted the question as being "I have a program whose cost is f(n) = n + 10, which is O(n). I think you are interpreting the question as "I have the program fragment (int n) => n + 10, which I agree is O(1).
Jan
12
revised How does big O notation indicate upper bound on a function?
[Edit removed during grace period]
Jan
10
awarded  Custodian