Reputation
54,685
Next tag badge:
197/100 score
18/20 answers
Badges
10 155 239
Newest
 Good Answer
Impact
~1.7m people reached

Jan
26
comment What is the value in hiding the details through abstractions? Isn't there value in transparency?
No, tight coupling is not always bad. It's frequently bad, but going to great lengths to avoid it can produce even worse problems, such as soft-coding.
Jan
26
comment What is the value in hiding the details through abstractions? Isn't there value in transparency?
@jhocking: This has nothing to do with composition vs. inheritance. You can bury functionality under layers of layers with composition too; it's just done in a slightly different way.
Jan
26
awarded  Nice Answer
Jan
26
comment What is the value in hiding the details through abstractions? Isn't there value in transparency?
@User606723: It should be. That doesn't mean it always is. Some people don't understand the point and they just pile more layers atop more layers and turn things into a mess. This is why experienced programmers advise newer developers to never adopt a new technology or technique until they understand it.
Jan
26
answered What is the value in hiding the details through abstractions? Isn't there value in transparency?
Jan
24
comment Why do we have so many flavors of .NET? Is it a good thing?
What's with all the close votes? This is a perfectly legitimate question.
Jan
23
awarded  Nice Answer
Jan
22
awarded  Enlightened
Jan
22
awarded  Nice Answer
Jan
21
answered When we talk about 'a closure' do we refer to a single variable, or do we refer to all 'closed' variables?
Jan
19
comment In pseudo code what does := mean?
Pascal (and the rest of "the Wirth languages") got it from ALGOL, which got it from mathematical notation.
Jan
18
comment Why do technical/programming phone screens focus on inheritance?
That's what I mean. You can do data hiding and encapsulation in any language. I've seen it done (and done well) in C, which has no language-level support for just about anything! But without Liskov substitution, you do not have OOP.
Jan
18
revised Can modern OO languages compete with C++'s array store performance?
added 187 characters in body
Jan
18
comment Why do technical/programming phone screens focus on inheritance?
When you get down to it, inheritance is the only feature of OO. Anything else in an object-oriented language can be done just as easily in any other paradigm, but if you remove polymorphism and Liskov substitution, you have fundamentally changed the language, and what you're left with is just procedural programming with a funny syntax.
Jan
18
awarded  Guru
Jan
17
answered Can modern OO languages compete with C++'s array store performance?
Jan
17
comment What is the point of the string.Empty property
@Steven: Yes, you can do that.
Jan
17
comment What happened to Borland Delphi?
In case you weren't aware, Borland is gone and Delphi is under new management now, run by folks who actually care about product quality. You ought to give it another look. The recent releases are light-years better than the bad days.
Jan
17
comment What is the point of the string.Empty property
Because otherwise, you couldn't do evil things like typeof(string).GetField("Empty").SetValue(null, " "); ;)
Jan
13
comment How would Functional Programming proponents answer this statement in Code Complete?
@Dan: Interesting. I've seen a lot of the opposite, actually: Problems stem from over-use of abstraction, making it difficult to both understand and, when necessary, to fix the details of what's actually going on.