2,801 reputation
62124
bio website csharpindepth.com
location Reading, United Kingdom
age 38
visits member for 3 years, 7 months
seen Jun 21 at 13:53

Author of C# in Depth.
Currently a software engineer at Google, London.
Usually a Microsoft MVP (C#, 2003-2010, 2011-)

Sites:

Email: skeet@pobox.com


Jan
30
comment So Singletons are bad, then what?
@Cawas: Ah, sorry - got confused with java.awt.Toolkit. My point is the same though: Toolbox sounds like a grab-bag of unrelated bits and pieces, rather than a coherent class with a single purpose. Doesn't sound like good design to me. (Note that the article you refer to is from 2001, before dependency injection and DI containers had become commonplace.)
Jan
30
comment So Singletons are bad, then what?
@Cawas: I haven't used AWT for so long that I wouldn't like to comment. Even just its name sets my teeth on edge, mind you - what's next, KitchenSink?
Jan
30
comment So Singletons are bad, then what?
@Cawas: I think it would be better to remove the final bit referring to me entirely, to be honest. I think they're sufficiently bad in general that their correct use is an exception rather than a rule, and I'd rather no-one appealed to "authority" citing this answer. (Not that I want anyone using me as an authority for anything anyway, but...)
Jan
30
comment So Singletons are bad, then what?
@Cawas: Global state is naturally harder to reason about and test. I very, very rarely use singletons. I'll often only create a single instance of a class and use that throughout the app via dependency injection, but that's a different matter. True singletons are rare. Some singletons are ugly but a matter of convenience - logging being the prime example - but mostly I think they're just overused.
Jan
29
comment So Singletons are bad, then what?
Just to clarify: I'm definitely not a singleton advocate. I dislike them personally. However, if someone's going to use a singleton, I'd prefer them to do so properly - hence my singleton implementation page.
Dec
1
awarded  Yearling
Jun
18
awarded  Enlightened
Jun
18
awarded  Nice Answer
Mar
27
comment Tracking scientific error when working with floating-point numbers
You are aware this isn't ".NET's floating point numbers" - it's "IEEE-754 floating point numbers" right?
Feb
23
answered Noda Time vs Joda Time?
Jan
6
comment C# or .Net features to cut off assuming no backward compatibility needed?
@James: For exactly the reasons Josh gives. Designing a class which enables inheritance in a sensible, consistent way takes time - and doing so without knowing how inheritance is going to be used is even worse.
Dec
1
awarded  Yearling
Sep
12
awarded  Guru
Aug
21
awarded  Nice Answer
Jul
19
awarded  Nice Answer
May
9
answered How to deal with static utility classes when designing for testability
Mar
29
awarded  Great Answer
Dec
21
comment An aspiring programmers proverbial fork. (asp.net or …)
One of the main benefits of web applications is that they're cross-platform: the browser couldn't care less whether the HTML/Javascript was generated by Java, C#, node.js or whatever.
Dec
21
comment An aspiring programmers proverbial fork. (asp.net or …)
What makes you think you need Objective-C or Java to write web applications for cross-platform use?
Dec
20
comment How to fix very bad code?
amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/…