486 reputation
510
bio website charlieflowers.wordpress.com
location
age
visits member for 3 years, 3 months
seen Jan 31 at 2:32

Software developer, many many languages, including Scheme, Clojure, Common Lisp, Haskell, Javascript, Ruby, C# and Java. Doing software consulting. http://charlieflowers.wordpress.com


Aug
29
awarded  Notable Question
Jul
3
awarded  Good Question
Apr
28
comment What pattern should one use to dynamically add multiple small views to one big main view?
"It is impossible for a man to learn what he thinks he already knows." - Epictetus
Apr
27
comment Object-Oriented Class Design
@AmyBlankenship My answer touches on and applies to both object orientation and design. You just don't like my answer because you have strong dogma. I don't share your dogma -- in fact, I believe it is misguided and naive. So we're never going to agree (actually, I think there's a chance you might come around with 10 more years of experience, but that's just speculation). Continuing the discussion from here is pointless.
Apr
27
comment What pattern should one use to dynamically add multiple small views to one big main view?
Amy, I think you have a fundamental misunderstanding regarding interfaces and the Liskov substitution principle. Most of the time, the consumer of an object who views it through an interface should never have to know what kind of implementation is underneath. That's why Liskov is so important -- if you violate Liskov, then the consumer had better find out which implementation he has so he can interact with it differently. The primary goal of interfaces is to hide the implementation. (I noticed a similar statement on another of your answers as well).
Apr
27
comment Object-Oriented Class Design
Let me correct my mistake -- I certainly do not believe that "reaching across class boundaries" always leads to "unmaintainable balls of mud" (yes, what I wrote does say that; I misspoke). What I really meant to say was "unmaintainable balls of mud feel terrible, so therefore the things that lead to them feel terrible." Entire ecosystems of developers write highly maintainable software without the concept of classes at all, so the claim that class boundaries are sacred cannot be made outside of a particular context (such as a team who has decided to operate by certain policies).
Apr
26
comment Object-Oriented Class Design
@AmyBlankenship The key question is, why do you think those Singleton advocates you refer to are wrong? Saying, "We have a Best Practice that forbid using Singletons" is a weak answer. A much better answer would be to articulate the negative ramifications of those Singletons ... how it hurts maintenance, etc. And when you answer that way, you're doing what I suggested the OP do ... be sensitive to the goals/problems/challenges, and morph your approach to optimize utility.
Apr
26
comment Object-Oriented Class Design
@AmyBlankenship I think you are saying that "Singletons are bad." Am I understanding you correctly (this is sincere, not trying to put words in your mouth)? If so, I absolutely disagree. In my opinion, singletons and statics have an important place, and the school of thought that wants to ban them has gone overboard. I don't use them often, but I certainly don't think they should be banned. And there's far less consensus on that matter than you might think -- although you can find groups of people who ban together around a belief.
Apr
26
comment Object-Oriented Class Design
@AmyBlankenship One more thing: I disagree that reaching out across Class boundaries "feels just freaking wonderful." It leads to unmaintainable balls of mud, which feel horrible. I think you're trying to solve the problem that some workers are sloppy/unmotivated/very inexperienced. In that case, someone who is careful, motivated & experienced should make the key choices, & call them "Best Practices." But, the person choosing those "Best Practices" is still making choices based on what "feels right," and there are no set right answers. You're just controlling who makes the choices.
Apr
26
comment Object-Oriented Class Design
... he faces all these possible choices. There is no one "right answer" to those choices. It is driven by the goals and the pain points of the system. I guarantee you that Haskell programmers don't think all methods should be instance methods. And Linux kernel programmers don't think making things accessible to TDD is very important at all. And C++ game programmers would often rather bundle their data into a tight data structure in memory than encapsulate everything into objects. Every "Best Practice" is only a "best practice" in a given context, and is an anti-pattern in some other context.
Apr
26
comment Object-Oriented Class Design
@Amy Blankenship, I would say unequivocably that there is no one "best way" to make the choices the OP is asking about. It depends on a million things, and there are a million degrees of freedom. However, I do think there is a place for "Best Practices," and that is in a team environment, where certain choices have already been made, and we need the rest of the team to stay consistent with those earlier choices. In other words, in a specific context, there might be reasons to label certain things "best practices." But the OP hasn't given any context. He is building something and ...
Feb
23
awarded  Yearling
Nov
23
awarded  Commentator
Nov
23
comment Best way for a senior programmer to switch languages/environments in next job?
Curtis, I think you would find the opposite. Knowing a second language expands your horizons in such a way that it will make you better at your primary language. And a third will make you even better. The concepts start to overlap some, and you understand those concepts more thoroughly, so it's not like you run out of RAM. Yes, you might confuse some syntax at times, but the payoff of knowing new techniques and approaches from other langs that you can apply in this lang more than pays for it. (At least, that's how it works for me).
Oct
10
awarded  Popular Question
May
3
awarded  Popular Question
Jan
3
awarded  Yearling
Dec
5
awarded  Good Question
Jul
24
awarded  Teacher
Jul
23
answered Object-Oriented Class Design