Wednesday, May 25, 2011

symbol divergence

Often, the inner workings of something are clearest when it breaks. When it's functioning as expected, the details mesh into a sublime unit of successful cooperation. A big happy result overshadows the individual contributions; a jumbled unsettling result redirects attention to whatever broke.

Perhaps surprisingly, that holds for symbols. To determine what information corresponds to a symbol, consider all the ways to prove that differing symbols are mismatches in some fashion. For a symbol to have value, alternatives to it are to some extent inappropriate and inadequate. Which typical messages are judged "true" when the symbol is in place but judged "false" when other symbols are? Or "false" and "true" respectively, or "false" for either, or "true" for either? And veracity isn't the only message outcome to judge and compare. Within messages otherwise identical, does a symbol communicate relatively greater or lesser specificity, formality, emotionality, neutrality? Subtext is still information, as demonstrated by the difference in the recipient's potential reaction.

Then the divergence in message outcomes is a basis for inferring the information for the new symbol via the indirect route of other symbols, which act as points of reference. The true message "X is a telephone" narrows down the information that X could symbolize. Another true message "X is wireless" eliminates further possibilities. A symbol's information is a synthesis whose parts and connections themselves can be symbolically communicated. Divergence outlines the real boundaries of the synthesis, like how parallax bounds objects' real positions. For instance, "X is a telephone" implies a fairly restrictive range for the mass and volume information included in the synthesis that X symbolizes. All one's prior examples of telephones, being sufficiently alike to X to merit the symbol "telephone", are like lines of sight directed in the metaphorical vicinity of X's synthesis of information. X's particular synthesis of size and price and brand and usability, as judged from messages in which X appears, is different than those prior examples but is nevertheless metaphorically closer than the synthesis symbolized by "sasquatch".

At the extreme, symbols could more or less fail to exhibit divergence. When that happens, the superficiality of symbolism is most clear. Generally, humans are too easily impressed and preoccupied by this occurrence. "What if someone abruptly started using the word 'green' for the perception of the color red?" Given the above discussion of pragmatic symbol divergence, it's not that difficult to guess what would happen. If the person never expressed any messages containing that symbol, the mistaken substitution wouldn't matter since symbols are used in messages. He or she could still reach accurate unexpressed conclusions about colors. However, after communicating a message containing the symbol, the recipients would respond by rapidly pinpointing the divergence. Sender: "I got a wonderful green balloon whose color is as vibrant as my car." Recipient: "But your car is red." Sender: "No, my car is plainly green. Green like the round fake nose on the clown who handed me the balloon." Recipient: "Hmm. It sounds like you're calling 'green' what the rest of us call 'red'."

Moreover, the proposed thought experiment is in reality a quotidian event. Scholars of language evolution have tracked gradual divergence of the elements of language. Words replace or combine. Innovative distinctions emerge and outdated distinctions fade. Separate languages cross-pollinate. Creative experiments, intentional or not, sometimes spread and sometimes die. Many times "incorrect" popular usage tramples correctness over the long run. Old-fashioned yet memorable phrases live on in isolated contexts. Idioms break the usual procedures for interpretation. Throughout these changes, communicators employ diverging symbols constantly. Simply by not introducing or modifying every symbol simultaneously, the messages that either use or explain the modified symbol remain understandable. Symbols are the bridges that symbols cross to reach other symbols.

Symbols are the fiat currency of information. Like local price changes, adjustments to the meaning of a few symbols are healthy responses to outside shifts. Like widespread hyperinflation, too many adjustments to too many symbols are detrimental to comprehending the smallest piece.

Tuesday, May 24, 2011

how long has Netflix Streaming been like this?

After seeing a few relatives' satisfaction with Netflix Streaming, I recently signed up. I'd heard that Netflix signed a deal for Star Trek TV series (almost all of them) starting later this year, but I assumed that there would be enough to watch until then. Of course, a lot of TV shows have also finished their runs for a few months, so that was another motivator.

After poking around, I have to say I'm amazed. Even pre-Star Trek, Netflix is streaming...
  • Farscape
  • Doctor Who
  • Science documentaries, which are freely available on the PBS websites but not with the same playback possibilities
  • Various Joss Whedon signature shows
  • Lost 
  • Merlin, a fun but simple show that hooked me during its US showing
  • Battlestar Galactica (2004)
  • Futurama, as if I didn't have all the DVDs
  • Heroes, if I ever feel like seeing the latter seasons
  • Mythbusters
  • Stargate SG-1
  • Eureka
I concede that some of these episodes are, er, aged, because I assume that new episodes don't become available on Netflix until long after original airing. Still, especially for the price, this is pretty incredible for someone of my sensibilities...

Tuesday, May 17, 2011

Pragmatist afterword

Some of the points of philosophical Pragmatism, or at least my personal digestion of William James' views, correspond nicely to the numerous instances of a datum never being alone:
  • "Meaningful communication occurs in a purposeful context". Pragmatically, interpretation is poorly-defined for messages like double-talking philosophical statements that appear to assert nothing in particular or to argue about relations among items whose existence is questionable at best. These statements correspond to messages composed of symbols that lack thorough and steady connections to information. Murky ground for the symbols in a communication implies that regardless of the fidelity of the message's bits, the message's intent is uncertain.
  • "Meaning involves constructive actions". Pragmatists see concepts as works in progress that, appearances to the contrary, came about for the sake of specific goals. This approach is a stark contrast to the alternative, which is that some "special" concepts exist regardless of humans. The mental constructive actions correspond to the procedure that defines a new set of symbols from other information. Symbols neither preexist nor are always obvious.
  • "Relations of concepts are also concepts". In other words, the same analysis and status of concepts applies also to relations. During one "mode", i.e. for the sake of some relevant goal, the human's raw experience might be treated like an undivided whole. During a second mode, i.e. for the sake of a different goal perhaps of equal importance, the human's raw experience might be treated like a convoluted structure of concepts separated by supporting relations. Whether concepts or relations among concepts, the contents of mentality mutually depend on each other and more importantly on an external rationale. Similarly, the general steps in procedures for sets of symbols are also information and therefore also communicable by symbols. "The color 'burgundy' is a dark and purplish shade of red" is a procedure that presumes "dark and purplish shade" is a valid symbol for a detailed informative manipulation of "red" information. And naturally that symbol itself depends on the symbols "dark" and "purple".
  • "Reality is evaluated according to human interest". Some critics attack this proposition by intentionally underestimating the depth and breadth of actual human interest. They pretend that motivation is simple-minded, when experience has shown it to have endless variations. Infants and household pets admittedly have primitive opinions on what's interesting and why, but it's ludicrous to restrict human interest to this limited model. Anthropologists know better. Besides, the salient factor isn't the interest's characteristics but its effect, which is the human's manipulation of raw information in pursuit of ends. One sees a good automobile and labels it as a tool of transportation. Another sees the same automobile and labels it as an intriguing hobby project. The total raw physical information of the car's existence is objective. Human perceptions are translations of that raw information, augmented with the observer's interest. These interpreted perceptions, not the original physical facts, are the pragmatic segments at the bottom of symbols.
  • "The essence of truth is piecemeal and it progresses by lurching, courageous leaps". To the extent that a philosophy has a disposition, Pragmatism is earthy. It's prone to discourage promotion of human thoughts into ethereal and unsullied domains of theoretical purity. It learns toward induction more than deduction. Its advice is to discover unifying truths via patterns in details, not via cramming details into remote and calming abstractions. Feasible approximations are acceptable substitutes in place of brittle logical categories. Hence having fewer symbols in a set is easier to contemplate, at the cost of fewer distinctions and less information. Cutting the world in two symbolic halves has a poetic simplicity, but it would be an awful coordinate system for navigation. Profundity requires few symbols because it has so little to say.

Sunday, May 15, 2011

a datum is never alone

The proposition that meaning is isomorphism has a partner: fundamentally, information is only informative in collaboration with other information. Thus, the importance of context shouldn't be underestimated. Examples abound. Pronouns need referents. Sentences need dictionaries, mental or physical, stated or inferred. Amounts need units of measurement. Hobbit heights need people nearby for visual comparison. No datum (singular of data) is useful in isolation. No datum is a "loner".

a bit is "this not that"

In a primal sense, communication is "meta-", with connections outside itself. Since direct telepathy neither is desirable nor is physically possible (the mapping from one brain to another is too complicated because of many differing neural connections), thoughts cannot be sent "raw". Every element of a message can only be symbolic. For the message's symbols to be understood, the sender and recipient must share common knowledge. They must already be aware of both the symbols actually in the message and the symbols' source set (i.e. vocabulary). The symbol cannot be independent of the participants' prior knowledge.

Furthermore, a comprehensible message is a series of selections from the symbols in the set. To choose one symbol is to reject other symbols. Part of a chosen symbol's meaning resides in its distinctions from the rest of the symbols in the set. It's vital that the communication of the symbol be unambiguous, to prevent confusing one symbol for another, and conventional, to avoid needing exotic media or equipment.

The most obvious tactic is to count the symbols in the set. The first symbol counted will be represented by communicating "1", the second "2", and so forth. In the resulting number sequence, it's always clear which number represents which symbol and the message itself doesn't require unusual communication capabilities. The set of symbols is in the form of a number line (like a ruler) with each symbol as a numbered point.

However, there's a better option. The set could be in the form of a "road" in which the symbols are "houses". To identify/reach a symbol is to travel down this road according to the directions, and since there's only one road the directions are no more than many answers to the sole repetitive question "Stop at the next house?" Instead of a unique number, each symbol's representation is a unique progression of yes/no answers.

This technique has considerable advantages. First, the directions for symbols have distinct stops. No spacing is needed between the adjacent symbols in a message. The last answer in a symbol's directions is always "yes", so the answer after it is part of the next symbol's directions. Second, since the "closer houses" have shorter directions, putting first the most probable symbols or "houses" makes it more likely that the whole message, i.e. a sample of symbols, will be shorter. Third, the media needs are even less demanding than sending (base 10) numbers. Now just "0" and "1" are enough. Two possibilities, repeated. Bits.

Does a bit have meaning? On its own, not much. But along with many companion bits, enough to meet any need.

a set is "what you get by following procedure"

Communicators can send piles of bits. Taken together, those bits in turn signify a specific chain of symbols. Those symbols in turn signify atomic members of a source set (or alphabet). Everything depends on something else, with one remaining exception at the end of the dangling thread. Doesn't it appear that the source set is now the true wellspring of meaning that needs nothing else?

Not remotely! Being a collection of symbols, the source set itself is symbolic. No matter how self-defining it seems, nevertheless it's about still other information. For example, a digital spin on the ever-popular philosophical discussion of color words.

Over the years, digital images have represented color through a range of strategies depending on the relative priority of conserving space. (This detail admittedly feels more and more quaint to the oblivious user who at the present time routinely dumps a multitude of "RAW" exposures from the camera into the computer's permanent storage.) One of the trade-offs is to reduce the number of distinct colors to employ in the image, called the palette. By this reduction fewer bits are necessary to identify a color; a smaller range requires smaller numbers or indexes for the colors. Especially for an untrained eye and images like a logo or icon, 256 colors often works well enough and may be overkill.

The digital image's color palette is certainly a close analogy for a symbol source set, and really a direct application of the concept. Assuming the raw image had a much wider array of colors, the palette is a purposely limited sample of that original array. It's an abstraction of it, an approximation, a pigeon-holing, a filtering. Moreover, for exceedingly colorful and detailed images that contain a lot of grades, the choice of palette becomes uncertain and debatable. In general, symbol sets aren't unmistakably derivative from the symbolized information. Symbolization starts with categorization, and categorization is an action.

For a set of symbols to be reproducible accurately, the steps to produce it should be spelled out with clarity and precision. Consequently the definition of a set is a procedure. It has the two sections previously listed, categorization and then symbol-assignment to the categories. Sometimes the procedure could be straightforward (by referencing another set), e.g. "integers greater than 10 and less than 30, each integer symbolized by the typical numerals". Sometimes the procedure could be complicated and even surprising in its results, e.g. the Mandelbrot set. Sometimes the procedure could be an exhaustive (finite) listing of all symbols with a per-symbol definition. At the extreme, a stream of symbols continuously produced through a "procedure" of pure randomness (not pseudo-random!) could be the basis for a perfectly mysterious and unbreakable representation of a message; what makes it usually impractical is that the stream has to be as long as the message and the recipient requires full copies of the message and the stream to be assured of correct decoding...

Indeed, the random set of symbols is an ideal illustration of a valid objection to the last few paragraphs: "It's fine that communication depends on bits, and bits depend on symbols, and symbols depend on a predefined set, but how can the set depend on a 'procedure'? How do you communicate a procedure? By your own reasoning, how can it be possible to communicate anything, let alone a procedure, before the set of communication symbols is known?"

Of course, in keeping with the theme "a datum is never alone", the predictable reply to that objection is "Communication of the set-defining procedure happens by reliance on still other symbols". Those other symbols are individual processing instructions. By assumption, the receiver already knows and can perform a set of elemental and easy processing actions, each of which has a fixed symbol. The procedure to construct the new set of symbols is one more message whose symbols happen to represent requests for action by the receiver.

For symbols for integers greater than 10 and less than 30, some of the steps are checking that an integer is greater-than and checking that an integer is less-than. For the Mandelbrot set, feeding the result of a mathematical function back into it. For the image color palette, storing the 256 colors one-by-one. In a computerized procedure, each action is literally minuscule: store information, load information, add two numbers, check if a number is less than zero. These actions and therefore symbols (i.e. processor instructions) seem quite pointless out of context. In the wake of a huge organized group of actions, a highly meaningful procedure takes shape and yields products.

a segment is "interest in raw experience"

Strictly speaking, a symbolic list of generalized actions isn't sufficient to communicate and obey an actual procedure. Like other information, actions aren't "loners". An action is only significant insofar as external information has effects on it and it has effects on external information. The exchange of effects may often be slight and subtle, producing a temporary result in preparation for succeeding actions. In any case, ultimately actions are changes to information: copies, creations, modifications, extensions, adaptations.

Such manipulations are the essence of the meaning of the generated symbol set.  From a surface perspective, symbolism is substitution, i.e. convenient shorthand names of potentially lengthy manipulations of information. "Let me introduce 'Martin', whose parents are ___, who lives in ___..."  Decoding the symbols is reversing the procedure. "I'm sure that you remember Martin." "The Martin whose parents are ____, who lives in ____?"

In practice, procedures for frequent symbols are rarely repeated in full. Instead, the excellent pattern-matching powers of the human brain notice rapidly that a symbol's procedure always terminates at the same external information. Once the pattern is seen, the brain devises a shortcut of the procedure by forming a pair out of the start and end, a direct line, a conditioned "reflex" of information. It happens with little effort. Eventually, a human can have trouble consciously recalling the procedure at all. Profound intertwining of a symbol and its external information leaves a familiar whole, with the illusion that the symbol isn't separate.

Symbols denote procedural bridges between information. The procedure probably manipulates information via previously known symbols, leading to a novel "macro" set of symbols whose meaning becomes a procedure of procedures of procedures. Presumably, no matter the heights of the overall edifice of labor that underpins all the symbols and the interconnections, there is irreducible information far down below, unmediated and unprocessed. Else the complex of symbols would be circular. The massive loop could still be intricate and interesting, perhaps also grammatically correct based on some standard, but to humans it wouldn't necessarily be any more informative than frimjun tollywobbits bersing shugbovs. Irreducible information that precedes and fuels symbols shall be named "segments".

Segments seem like the most raw and standalone information possible, but that impression too is mistaken. As suggested by the name, segments are selective portions of "raw experience". A human's raw experience is the sum of everything that affects the human, causing shifts in activity in nervous system cells, which propagate across axons and synapses. It's everything heard, everything seen, everything felt, everything smelt. A camera or microphone picks up some of the same physical phenomena, albeit through differing mechanisms.

Physical information of raw experience is the least subjective, the least egocentric. Well-known measurement and calculation limitations notwithstanding (e.g. intrinsic relativity and quantum uncertainty), information about the positions and movements of particles is the bottom line. Mythical complete information of a set of particles is the Axiom of that set; there's nothing further to speak of. Laying aside the theoretical and practical impossibilities, other messages about that set are derivatives of that Axiom. Hypothetically, "cold glass of water" is backed by untold quantities of "physic"-al information on the movements of molecules of dihydrogen monoxide. And an irrepressibly boring communicator who sends more than that many bits of (present-tense) information directly about just the water is being redundant.

Given the horde of physical information, arguably a brain's ingenuity is what it elects to discard. Focus is indispensable. Survival is closely tied to a creature's ability to attend and respond to information of interest. Brains transform raw experience into segments because a lot of information is quite irrelevant and monotonous. It's "background" that's worthy of "peripheral" monitoring alone. Segmentation is a primary component of perception.

Visual points, of similar color, moving in the same direction and speed at once, are a segment of raw experience that draws the attention of most creatures. So do segments of loud and sudden noises or tasty odors. Pains discourage and pleasures encourage. The common factor again is interest. Human brains are eminently trainable but inborn interests offer the first opinion and initiate the first constraints on the innocent tide of information of raw experience. Perceptual unity is useless to answer the foremost questions of a competitive, feasible organism. Segments simplify reactions that craft beneficial answers.

Thereafter, years of human social interaction and mimicry build on the "natural" segments. They learn verbal symbols for the most prominent segments: kin, food, body. Simultaneously they learn to learn and to seek feedback by trying out symbols. To start, the teaching proceeds by gestures and demonstrations for simple segments such as nouns, verbs, adjectives, prepositions in immediate shared perception. The actions that define this set of symbols are literal acts: the motions of the teachers enacted on segments that already have interest to the learner. Sooner or later, the repetitious well-established actions allow for teaching the symbols for segments that have weak to nonexistent natural interest; at that point, humans' untiring curiosity and desire to please are great motivational aids. The ability to identify with the speaker's perspective, to imagine what the speaker intends to say, is a vital skill.

After a "critical mass" of symbols and grammar, the actions for learning new sets of symbols become the previously-mentioned mental manipulations of information. Description, contrast, and metaphor are typical symbol-defining actions. Explosive growth of information ensues. Symbols trigger computations and then symbolize the outcomes. The cycle continues.

Tuesday, May 10, 2011

Art's Razorette

Art's Razorette: When "Occam's razor" is mentioned by name in a casual conversation, the simplest explanation is that the speaker is trying far too hard to impress listeners with his or her purported intelligence and/or learning.

(Sometimes it is appropriate to name-drop the razor, particularly in the midst of formal or academic argumentation, but only with due discretion.)

Friday, April 22, 2011

I started reading an information theory textbook, and...

...I've concluded that in an optimal, entropy-approaching code for the textbook, the bits for sigma Σ would be minimal. Ba-dum, ching!

Friday, April 15, 2011

peeve no. 262 is verification by bluster

In some ways, human nature is flawed. Complaining about it won't help. But here I go anyway...

Many arguments in debates are intellectually wrong or flimsy at best. This is well known and oft mentioned by pedants. In my opinion, these transparently fallacious arguments are less insidious than their emotional counterpart, "verification by bluster". With a sufficient combination of affirmation, bravado, machismo, etc., humans appear to forget about the concept of proof.
  • Confidence levels may be out of proportion to the supporting data. In a card game this would be called a bluff. If anyone asks "Are you sure?", then the answer is always "100%", in a firm voice and accompanied by a steady gaze. Do it right and humans just won't bother with whether the steely assurance is grounded in reality. This is particularly important in sales or management; complete detailed honesty about actual evidence would merely demonstrate "lack of belief".
  • Naive arguers sometimes act as if winning means discrediting the other side's facts. Not necessarily true. It might be enough to invent a sufficiently nasty name for a part of the opposing argument, then repeat it endlessly.
  • It's similarly naive to act as if an individual data point "speaks for itself". It's a comparatively simple matter of weighting. Take the contradictory data point, juxtapose it against a supportive data point, state assertively that you're providing "full context". Humans are unlikely to request entire data sets in any case, because analysis might involve, y'know, math.
  • In general, complexity is a bad tack. Messy corner cases and ambiguous conclusions aren't gratifying. Exceptions to beloved rules are downright unsettling to some personality types. Hence the more profitable route of argumentation is to accept simplistic thinking, not challenge it. It won't work to spout admonitions to replace laughably course-grained prejudices with complicated observations. Confronted with the world as it is, right now, humans instead prefer a personalized/sanitized perspective in which solutions are easy, relationships are causal, and heroes and villains are well-defined.
I don't doubt the levels of sincerity or complacency in a human who's attempting verification by bluster. What I doubt is the level of substantiation. Put frankly, any human can vomit propositions about this or that, and experience has shown me that his or her stirring faith in those words doesn't count as verification. Pragmatism's approach is to check precisely what the human's generalizations symbolize and imply. "I know ____ because of ____. Therefore you can observe it for yourself." I find this so much more satisfactory than when someone says "I know ______ because I SAID SO. My force of personality in some unspecified way justifies ignoring my lack of concrete data and/or my refusal to allow others to examine my statements objectively." At least explain how, in principle, an unbiased agent would confirm the hypothesis. Even better, explain how that agent could falsify it.

Thursday, March 24, 2011

package delivery tracking can make you sadder

One of the more striking points in How We Decide by Jonah Lehrer is the strong and sophisticated reward/punishment feedback systems of the brain, which people experience as strong emotions. A vital factor incorporated into these responses is expectation. Expected rewards or losses have less effect than the unexpected. Gaps between expectations and reality make the difference. An unexpected windfall of $20 feels good. A lackluster gain of $20 for an expectation of $40 feels bad.

Hence compulsive usage of online package delivery tracking is unlikely to leave the user happy about being well-informed. Each time the user checks the tracking, the expectation is "delivery has progressed since the last time I checked". If the result matches that expectation, the user feels a burst of reward stimulus; in fact, that experience may "hook" the user into compulsively checking again a short time later. If the result doesn't match that expectation, the user feels a loss despite the delivery happening precisely on schedule! The tracking falls into the category of long-term planning with intermittent milestones. If I'm interpreting the book's advice correctly, the better way to make decisions in this category is with reason, the prefrontal cortex. Logistics is more of a math problem ("A delivery truck embarks at 5:00 AM on a 200 mile trip going the posted speed limit, when should it arrive?").

Also, the tracking creates a subconscious illusion of control. Like the sports fan who cheers the home team playing on TV, mere observation is clearly powerless to affect the outcome. However, each time an observation yields a favorable outcome, the brain "learns" that observation is a good tactic. Of course, we know that watching the pot of water won't make it boil, and reloading the tracking Web page won't make a sophisticated transportation network run according to design. This is why someone should resist the temptation to check the package delivery more than twice per day. That's a setup for disappointment and less happiness over time. For some people, a three-week delivery with no tracking at all may actually be more pleasing than a three-day delivery with tracking. ("I forgot this package was on the way. What a nice surprise!")

Wednesday, March 23, 2011

cognitive load reduction

Debates about how to write better code (i.e. fewer bugs) revolve around increasing maintainability, but not too long ago I recognized a related and perhaps fundamental criterion: cognitive load reduction. The fewer disparate items that a developer must contemplate simultaneously, 1) the lower the chance that a mistake will slip in unnoticed, 2) the greater the amount of attention left for the details of the problem/domain rather than the twists and turns of the code. When code is confusing and demanding to comprehend, the cognitive load is greater, and therefore it's more difficult to write, trace, debug, and modify.

Awareness of impact on cognitive load should change the choices that someone makes. Sure, the first task is to produce code that meets the known requirements. Yet developers shouldn't then neglect the second task of refining the code until it's sensible. Code has two audiences, machine and human. This is a lens for perceiving the usual code debates.
  • Units of code organization with hard boundaries reduce cognitive load by freeing the reader from looking through many peripheral lines to trace execution.
  • Good names reduce cognitive load by freeing the reader from inferring what a variable is for.
  • An easier build process reduces cognitive load by freeing the builder from rehearsing and reciting a series of error-prone manual steps.
  • Version control that meets the team's needs reduces cognitive load by freeing the team from devising complicated workarounds.
  • Domain models that match the way that everyone thinks (according to common agreement) reduce cognitive load by freeing them from continual lossy translation of one another's statements.
  • Frameworks reduce cognitive load by freeing the reader from examining custom-made immature solutions to ordinary incidental problems, e.g. templating, MVC, protocols. On the other hand, obtrusive frameworks may increase cognitive load by overshadowing and complexifying the base code without marginal benefit.
Effective writing in natural human language doesn't place an excessive burden on the reader, who's trying to interpret the message. Similarly, effective writing in programming language doesn't place an excessive burden on the maintainer, who's trying to interpret the code's intent.

Sunday, March 20, 2011

calling a truce on sprocs

For a while, I've mostly been dismissive of database stored procedures or sprocs. The rationale is that databases are for storage ("Really, Capt. Obvious?"). By contrast, calculations, conditions, and data processing in general belong in a separate, dedicated tier; the clear benefit is a much more flexible, capable, reusable, and interoperable platform/language than the typical sproc. In this middle tier the intelligence resides in neatly divided objects that could potentially exploit different "persistence strategies" than the default database of choice. These objects presumably act as better models of the domain than collections of rows and columns. Application development happens on top of this middle tier rather than the database.

The opposite path is integration at the database level. Differing software all use the same "master" database. There may be a recurring import script that populates one or more tables with external data, entry interfaces that quite clearly manipulate rows and columns, canned reports whose queries become increasingly complicated. Knowledge of which tables to join or which column values to exclude spreads out through everything that performs a similar task. Analysts speak of the database as if it were the domain. Their first implementation question on new projects is "What tables do we need to add?" 

Consequently, integration at the master database level can result in fragmentation and duplication. Enter sprocs. Essentially, a thoughtful agglomeration of limited and self-contained sprocs could take the place of a nonexistent middle/domain tier for some purposes. If everyone needs to run the same query all the time, at least putting it in a sproc will consolidate it. A complex calculation that everyone repeatedly makes could be computed in a single sproc. Ugly warts of the database model could have workarounds specified in sprocs.

Storage technology independence is lost with sprocs, but ongoing integration at the database level already makes that impossible. Sproc writing requires some learning but is offset by the considerable advantage of not having to rewrite the code in multiple clients. IDE support is less than ideal but a sproc shouldn't be too large anyway. Names and calls of sprocs are also rough but are likely to require less extra documentation than the alternative of laboriously touring table relations.

Sprocs: better than nothing.