5 ms·
Indeed. Not only that, but the power of a precise language is not to be underestimated. I noticed that I had (and probably still have) a lot of errorneous conce
by Kenji 12y ago
Indeed. Not only that, but the power of a precise language is not to be underestimated. I noticed that I had (and probably still have) a lot of errorneous concepts in my head and the only way to find out the mistake is by expressing them in a rigorous, formal language that forces you to think about every detail, no matter how 'obvious' it appeared at first.
- kyllo 12y agoExactly, a formal specification language (including any programming language) requires you to make all your the implicit, underlying assumptions explicit. Nothing can be taken for granted and there is no "you know what I mean." But once you really do know exactly what you mean, it's usually not so hard to specify it. Figuring out what you want is the hardest part.
- Tyr42 12y agoWell, sometimes we get things like C++11's `auto`, which do let you trade formality for brevity. It's helpful sometimes, but can cause misunderstandings, just like natural language pronouns.
- JabavuAdams 12y agoWhy should you have to specify assumptions that don't matter? I.e. it can be very productive to do the reasonable thing, until it's proven unreasonable.
- evilduck 12y agoSeems like software developers and lawyers share some common pains.
- michas 12y agoSoftware developers have slight advantage: compilers, unlike judges usually have consistent interpretations of all the rules and laws.
- danbruc 12y agoI always marvel how our legal systems manage not to collapse given the imprecise language they use. So while they have similar problems it seems to me that they are just ignoring them for the moment and let somebody else figure out what the precise meaning is if the necessity arises.
- scromar 12y agoThis is true.
- deleted 12y ago[deleted]
- chillingeffect 12y agoYes, in programming, the goal is to communicate clearly to an indifferent interpreter. In legal worlds, the goal is to express the intention while excluding the maximum number of outsiders. Why else does every coding language provide plain-language comments, but legal documents do not? In technology, the machine is a stand-in for a human relationship - the cell phone app keeps track of restaurant ratings so people don't have to keep asking one another. The code is a part of the system of distributing the power in the form of information. In the legal world, the intently obscure language is the means of hoarding and securing the power. W/r/t to legal systems collapsing, they're protected by guns and myths. The baillifs and police believe Columbus was a hero and they kill to uphold his dream. The incentive to power is enough to entice enough new scholars each year to sustain the illusion. So to respond to the poster above, the pains of the programmer and legal system are no more similar than the programmer and the chef. Each attempts to communicate a procedure, but the legal system has an entirely different and less noble set of requirements.
- vinceguidry 12y ago> W/r/t to legal systems collapsing, they're protected by guns and myths. This is true enough in many parts of the world, but a careful reading of the history of English Common Law reveals a fascinatingly iterative legal process that formed a bulwark against monarchal oppression for hundreds of years. For a good introduction, check out this book: http://www.amazon.com/Inventing-Freedom-English-Speaking-Peoples-Modern-ebook/dp/B00BATKSIO http://www.amazon.com/Inventing-Freedom-English-Speaking-Peo...
- whoisthemachine 12y agoI have developed software for generating legal documents. Believe me, legal documents have a much higher degree of ambiguity than most business processes.
- ape4 12y agocontacts are written in code. They just reuse english words.
- tel 12y agoI agree with this but want to stress something else. A really great formal language actually frees you from "every detail, no matter how obvious". That's the heart of abstraction. Good mathematics is heavily abstracted because it forms a superhighway between mathematical concepts that allows you to lift and transport intuition from one context to another without forsaking formality. To some degree these abstractions must always be built from nitty gritty details. In mathematics it's a matter of didactics to find the most efficient bootstrapping process. In computer science it's a matter of library and language design.
- JoeAltmaier 12y agoAbstraction works only with strong context. A few symbols in an equation are a miracle of conciseness, but meaningful only after the symbols, operators and formal system are defined.
- tel 12y agoI never claimed otherwise. I think in fact that there are two forms of context—didactic and mandatory. Didactic context is personal, the context required for or used by a particular person in order to conceptualize and build confidence with a set of concepts (and their associated syntax, though it's close to meaningless so long as it doesn't get in your way too much). Mandatory context is more like a compact notion of why and how some mechanism is applied. For instance, you might bootstrap homology using point-set topology (educational context) and then enhance it using algebraic topology. Eventually, perhaps, the mandatory context is that homology is a measure of non-exactness of chain complexes and this concept can be lifted from its base context and presented wherever exactness is an interesting measure. Point being—language hardly exists in a vacuum. Good language invokes powerful concepts in an efficient manner and allows you to construct arguments using them. Good arguments can link seemingly disparate concepts with ease.