Lessons From History Discussion Summary

I put a summary at the top of LessonsFromHistoryDiscussion, and that has now been turned into a sprawling mess. Here it is again, but with some alterations to take into account the comments made there. Perhaps if you'd like to comment on this it might be best to append your comment, with context if necessary.

This summary is intended to help find points of interest in the sprawling mess that is the LessonsFromHistoryDiscussion page. It (namely this summary) is almost deliberately wrong. It is intended almost as a caricature of the discussion, and as such to help the potential reader put things in context. I originally put it at the top of that page because putting at the bottom is singularly pointless. It's only of value if you read it before you get sucked into the morass, and it is intended to add value. Would that all contributions to this wiki had that aim.

The "discussion" is one of the usual "More heat than light" interchanges that ensues when person A really doesn't get the point, person B tries to explain, person A goes into "scoring points debating" mode, and person B gets sucked into it.

Anyway ...

Closures are a tool.

Some people can't see the point of closures, and argue that they're basically useless. There appears to be no evidence offered for this.

Others might argue that until they become wide-spread and well-understood, people won't know how to use them and their benefits won't be realised. The point is argued from the analogy of GOTOs versus block-structured programming.

Some of those involved in the "debate" claim that the above summary is biased, misleading, inaccurate and implore readers to ignore it. I suggest that those interested read the page and judge for themselves. I hope the above helps to create a framework for understanding LessonsFromHistoryDiscussion.

I now hand you over to the same people as made the original page such a completely useless ThreadMess ...


In response to:

top replied:


Top wrote (note - some of this is quotation):

That's a complete mis-statement of my side of the story. Your penchant for twisted biased summaries is going too far this time. I don't know whether its blatantly done, or slop, or your cave-men emotions getting the best of you. I invite readers to ignore these biased summaries. Interesting how you refer to PaulGraham's BlubParadox. Paul generally rejects OOP. You are picking and choosing his doctrine. -- top

Someone on the original page wrote (and this is what stared it all):
Closures are one of those things that look cool on paper, but are difficult to translate into significant practical benefits. They're borderline MentalMasturbation in my opinion.

If you don't think this is a claim that closures are effectively useless, and that the author can't see the point, then I'd like to hear why.

Actually, let me re-phrase that. I don't care. I think it's an accurate summary. If you don't, then I offer the point of view that you have not expressed yourself clearly.

You seem to be reading it different than I would. MentalMasturbation is not the same as "useless" in my opinion. It perhaps could be compared to "over-engineering". An over-engineered app is not necessarily useless, in fact may work just fine, but rather the "scenic route" has been taken to the goal. Plus, the statement in question is tempered with the word "borderline". This is because I feel that closures may improve the code slightly, or at least some aspects of it. It's just that it makes maintenance more difficult because it may catch some future reader off-guard. They have to mentally shift gears, or even read-up on the constructs. I feel a cost-versus-benefit analysis of labor over the longer run would not favor it most of the time. You may argue that it is good for the mind of a future maintainer, like vegetables, but that is not the goal given to you as a developer.

[Over thirty years ago, precisely that argument was used against structured programming in favour of GOTOs.]

{Top, making the source read like pseudo-code is quite arguably good for maintainers, and that is exactly what closures were being utilized for prior to your categorical statement.}

Maybe if the nature of the app or domain was such that closures would help multiple different parts, then it makes since because the gear-shift mentioned above will pay off over a larger set of usages. But, I doubt such animals are common in the biz app world (pending scenarios that show otherwise).

[In the future, it might be helpful if you prefix categorical statements like "... closures are borderline MentalMasturbation" with "In my opinion, when developing typical CRUD-oriented business applications ..." That would clearly indicate your general statements are intended only to apply to a specific domain. You might also wish to indicate that you're assuming the requisite compilers, interpreters, user-interface components, DBMSes, and report-definition tools are pre-existing, lest someone mistakenly assume your claim also covers language implementations, UI frameworks, forms painters, DBMSes, report generators, and other systems software used to build business applications. And, it might be a good idea to indicate that certain engines found in business software are excluded as well -- components like sales/returns/value forecasting mechanisms, employee/client schedule generators, unusual user-interfaces, etc. -- because these frequently resemble the systems software that you've agreed elsewhere may benefit from OO, closures, and the like.]

I cannot tell which statement somebody will focus on. If I put disclaimers and scopes on every sentence, my writing would be about 5 times more verbose. Generally one should paraphrase a statement of issue in their own words. Example, "Let me see if I got this strait. You are saying that all X's are the same as all Y's under condition Z?".

KeepCriticismNarrow, top. It's your own advice, so you damn well ought to follow it. If that means being 5 times more verbose, then be 5 times more verbose. If I were to trade parsimony for precision, most of my responses to you would consist of two words: "You're wrong."

I see nothing wrong with that one. There is informal speech, and formal speech. In its context, it was fairly clear which it was.

Clear to you? the writer? well, that's half the job, I suppose. Which "that one" do you speak of? I can say for sure that your meaning regarding the 'closures are borderline MentalMasturbation' comment was far from clear in specifying your intended meaning, even given the context. In the future, be 5 times more verbose if that's what it takes.

It started off with "in my opinion". If it confused you, I apologize. And, no, I will NOT change my writing style just for you. Before going into anal lawyer mode, next time ASK first.

If not "just" for me, why not change it to avoid hypocrisy (KeepCriticismNarrow)? Why not change it for other people who read sweeping statements as just that? And I'm always in anal lawyer mode; I don't need your permission for it.

I don't find it effective. Reading sentences that have to state everything explicitly can be long and tedious to read. Good writers are not verbose writers IMO. Good writers know when and how to use context. Maybe a system of footnotes may be in order, but most find maintaining such too tedious. This is not a court of law, it's a wiki. It is less total "code" to ask for clarification or verification when needed rather than stuff every detail and disclaimer into every sentence. Your suggestion is not the most parsimonious.

I don't believe "parsimony" to be a virtue worthy of greater pursuit than "clarity". Your advice would have people saying: "You're wrong" and waiting for YOU to "ask for clarification or verification" - I disagree with this, even in a wiki; I believe that where you can anticipate the question and you think the audience should or will ask, you should provide the answer immediately. As far as not being a 'court of law': if you make any bold claim on a wiki, you're foolish if you pretend your statement to not already be in a firing range. And do you honestly believe yourself a 'good writer' who 'knows when and how to use context'? I certainly don't share your high opinion of yourself.

Sorry, I have to dissagree. I will gladly supply details if you ask about a given passage. Most people ignore 95% of what I say anyhow. I'm not going to work that hard to make sure a wall is 100% informed. Most people who get involved in debates with me here know that I limit the scope to biz apps anyhow. (Perhaps I should make a "TopmindsAssumptions?" page or the like.)

Please clarify: with which of my statements do you disagree?

I don't want to argue this any more. If you can show that roughly 75% or more of wiki readers prefer your verbosity suggestion, with a sample size of at least 10, then I'll change my approach. Until then, I'll do it the same way.

[I would certainly appreciate greater specificity, if nothing else. If that requires greater verbosity, then greater verbosity is needed. Instead of off-the-cuff provocation like "<x> is borderline MentalMasturbation in my opinion", or "<y> is over-sold", I think it would be of far greater value (i.e., you might convince people you're right, or at least foster some intelligent discussion about the topic) to argue along the lines of, "Many might choose to use approach or paradigm <x> when they encounter problem <p>, but that's perhaps because they're dealing with forces <a>, <b> and <c>. I, however, am typically dealing with forces <d>, <e> and <f>, therefore I prefer to use approach or paradigm <y> when I encounter <p>, because it allows me to address <d> through <f> in ways that <x> does not. Here are examples of <x> and <y> applied to <p> that illustrate the differences in their ability to deal with <a> through <f>: <insert examples here>"]

[If less than ten of us vote, such that you are free to continue posting provocative but information-free statements like "<x> is borderline MentalMasturbation in my opinion", will you do so in order to enlighten and foster intelligent discussion, or will it be merely to get some frustration off your chest and/or fan flames?]

Do you ask this question to all the other people who do the same thing?

I imagine that it takes a special kind of person to gather enough attention that they get asked a question like that one: someone who is all over the place, bleating personal opinion and interjecting comments with such regularity, pomp, and arrogance that his or her name becomes burned into the brain. RK comes to mind.


NovemberZeroSeven


EditText of this page (last edited November 20, 2007) or FindPage with title or text search