3 ms·
Mathematics is totally a social construct. The UR patterns of our reality are immutable and await discovery. The ways in which humans explain their mathematical
by reilly3000 7y ago
Mathematics is totally a social construct. The UR patterns of our reality are immutable and await discovery. The ways in which humans explain their mathematical observations to each other is via a set of symbols that are socially agreed upon.
My problem with mathematical syntax is that it is so esoteric and arbitrary that many people struggle to use math to communicate with each other. Delving deeper into mathematics is an exercise in learning new symbols and their contexts. The understanding, acceptance, and advancement of mathematical concepts happens through social consensus.
For example, what does K mean? In an equation, strictly speaking it is a variable. But sometimes its a reserved constant. Others, its a unit. Is math 'universal' if the language of math is largely Eurocentric? In fact, several fundamental math ideas emerged from China far before they
were expressed in Western culture. Their syntax differed from Western syntax to express largely, but not entirely, the same concepts.
Brett Victor[1] describes how the development of mathematical notation unleashed a clearer level of thinking, and a flowering of mathematical ideas, proofs, and science to follow. This requires agreement... consensus.
Take a look at Wikipedia's History of Mathematical notation and see what smells of culture you can find. [2]
Mathematics is the practice of translating observations about real-world things or abstract ideas from one person to another or many. A smart animal or intrepid alien sentience would not be guaranteed to understand what 3, 3%, or 3º means to us, but they could certainly understand 3 bananas vs 2, or a portion of a whole, or rotation.
Code is a social construct that is well-documented. Developers give trust to language authors and their compilers to generate correct bytecode. They in turn trust systems engineers to interpret their instructions correctly, and so on. Of course there are arguments and different perspectives on what the best way there is to express everything. These things get hashed out on this very social platform, and many others.
Architecture is about imposing one's will on the act of creating long-lived artifacts. It isn't system engineering. Its about arguing that things ought to be built out of arches, because they are durable, and look interesting, and especially because they have a rich symbolism associated with passage into new time and space. The will of an architect is usually something like enduring harmony with its inhabitants and surroundings. Software architecture I feel attempts to create durable systems for people to inhabit with their knowledge, and that is as social as it gets.
Sure, you may think of a software architecture as a formalized design on how to stitch together bits of data across network boundaries, maybe using packaged services from Cloud vendors. It is, but good architecture accounts for who is building it and who will own it, use it, and maintain it. It makes sure information isn't lost and people's simultaneous actions don't result in collisions. It attempts to resist loss, against a wide variety of classes of threats.
Look, I've been intrigued by event-sourcing, and also have heard of lots of gnarly consequences of trying to adopt it. Like any other pattern, its mileage may vary depending on the problem domain. An "ivory-tower bullshit" pattern may be widely a considered a "wrong" practice for the domains of today, but that doesn't mean you can prove that its fundamentally invalid in all cases.
If software architects made blueprints, I would think of the work of making said blueprint is "architecture". the work of software architecture is social, considering the needs of users, developers, and its financiers. What I read in your comment is referring to the blueprint as "architecture", or an architecture. Whatever the artifact of software architecture work is, the work itself is equal parts social and technical, and always in the context of the raw materials available at the time.
[1] Brett Victor, The Humane Representation of Thought https://vimeo.com/115154289 https://vimeo.com/115154289
[2] https://en.wikipedia.org/wiki/History_of_mathematical_notation https://en.wikipedia.org/wiki/History_of_mathematical_notati...
- mjburgess 7y agoYou have to separate social-subjective elements from individually-subjective elements from objective elements. The objective elements are, simply put, "what is true of the object". And the subjective elements are "what is true of the subject. Where "object" is the target of understanding, and "subject" is the "understander" -- ie., not the human (as holding organs) but the human (as holding experiences). When I say, "the code has 100 lines" that is true in virtue of the object. It is meaningful in virtue of various conventions about what a "line" is and what "code" is. Let's not confuse what is being said for how it is said. The latter is subject-relative, the former is object-relative (ie., objective). Mathematics is about order. The target of mathematical description is objective (it is instanced by objects, not by experiences). However mathematics as a language is conventional (ie., social-subjective). What is being said (eg., that there are infinitely many primes) can be said many ways. Each of those ways is only meaningful given a social background. Likewise, "Architecture" is a term grouping together some -- but not all -- facts about software. (eg., inheritance dependencies, but not comment symbol choice). What is being said requires conventions in which to say it. OP article seems to confuse these issues mightily and I think would impair someone looking to understand "architecture" without prior experience. It is not merely "what's important". Many things are important.