[HN Gopher] The Timeless Way of Programming
       ___________________________________________________________________
        
       The Timeless Way of Programming
        
       Author : signa11
       Score  : 71 points
       Date   : 2022-09-04 09:29 UTC (1 days ago)
        
 (HTM) web link (tomasp.net)
 (TXT) w3m dump (tomasp.net)
        
       | nsajko wrote:
       | No, GOF didn't introduce the "strategy" pattern. What they did
       | was catalogue and describe the "patterns". Perhaps GOF invented
       | the _name_ "strategy", don't know about that.
        
       | barrysteve wrote:
       | Good article! I love Christopher Alexander's work and I would
       | never have found it, if it were not reposted over the years.
       | 
       |  _The key concept in The Timeless Way is the idea of a pattern
       | language. This is a collection of patterns that is ordered and
       | can be followed to produce a design with the quality without a
       | name. Pattern languages are not static though._
       | 
       | It always strikes me as odd the author's perception of the
       | Pattern Language as being changeable. The most intense benefit of
       | the Pattern Language, and the title of the book, is that it's
       | Timeless. It doesn't change.
       | 
       | Sure you can fill it with different variables, which is what the
       | author means when he says it's not static. But it really is a
       | static language-based attempt at capturing perfect form and life
       | in buildings.
       | 
       | We'll always forget and re-discover what he wrote about, but
       | chaining oneself to one particular structural language will
       | calcify over time, unfortunately.
        
       | jackblemming wrote:
       | There's a certain class of programmer who seems to derive great
       | pleasure in comparing programming to architecture. Maybe because
       | architects are cool, or sound more grand than "programmer". The
       | author mentions Patterns of Software as profound, but in my
       | experience it was mostly empty and contained only references to
       | other work, without adding its own voice or perspective. At
       | worst, it was pretentious and boring.
        
         | PaulDavisThe1st wrote:
         | This is really misreading the whole concept of patterns in both
         | architecture and software. The goal is not to somehow equate or
         | even link the two disciplines. Instead it is to note that when
         | you go about arranging stuff to do stuff (e.g materials to be
         | buildings, or programming languages to be programs), it is
         | likely that there will (over time) emerge ways of doing things
         | (patterns) that you can (and likely should) use over and over
         | again.
         | 
         | It's not architecture-envy, it's finding a parallel from a
         | different discipline that applies to your own.
        
           | ozim wrote:
           | So I would rephrase the parent poster you replied to even
           | though he replied himself.
           | 
           | There are many programmers that put cart before the horse -
           | they think they should use those patterns even before they
           | start to emerge in their systems and treat those patterns as
           | some kind of a goal.
           | 
           | Whereas one should notice when pattern is applicable because
           | it starts emerging as such - and GoF wrote down descriptions
           | for people to realize what these are and have names to call
           | it out.
           | 
           | Like if you would be tasked to build local "folks music"
           | museum and you insist that it has to be built just like
           | Guggenheim Museum because that is state of art of building
           | museums.
           | 
           | So real architect should say "well for folks music museum -
           | build a shed, put on some folksy clothing on mannequins, set
           | mp3 player with folksy music, that is good enough ... what is
           | your budget? ... well it will not be enough for top grade
           | sound systems so maybe a smartphone instead of mp3 player
           | with amplifier".
           | 
           | Most of people in software dev should stop pretending they
           | are building next Guggenheim Museum and accept they are
           | building shed from wooden planks.
        
           | bitwize wrote:
           | It happens in writing too, but in writing we call them
           | "tropes".
        
           | jackblemming wrote:
           | And you've misread the whole concept of my post. There's
           | nothing wrong with finding parallels with different
           | disciplines. I don't recall saying that at all. My gripe is
           | that different discipline always seems to be architecture and
           | the design patterns topic has been talked to death for over
           | 50 years now.
        
             | PaulDavisThe1st wrote:
             | "A Pattern Language" was published in 1977. It has only
             | been in existence for slightly less than 50 years. When it
             | was published it was simultaneously a revolutionary and
             | also completely niche book. It did not build on any kind of
             | existing sub-discipline of architecture, and most
             | architects ignored it entirely (an awful lot of them still
             | do).
             | 
             | It took several decades for anyone to notice that there
             | might perhaps be some interesting way to take what
             | Alexander had done in the context of architecture and urban
             | planning and apply it to software development. That did not
             | happen "over 50 years" ago.
             | 
             | The reason why "the discipline always seems to be
             | architecture" is because there are no other disciplines
             | that are (a) synthetic (in the sense of being about
             | creating something that did not exist before, rather than
             | analytic) and (b) have an existing magnum opus that
             | describes the patterns that humans have used for centuries
             | to practice that discipline.
             | 
             | The sciences are not a useful parallel, precisely because
             | they are analytical. Various artistic practices could be
             | useful analogies because of their synthetic nature, but the
             | practice of art is widely held to be a matter of personal
             | self-expression, and hardly a place you'd go looking to
             | find "best practices".
        
             | mxkopy wrote:
             | Such a strange gripe to have.
             | 
             | Architecture as a default comparison makes sense on many
             | levels. You don't make blueprints for pottery. The level of
             | 'coincidental' design is much lower in architecture than it
             | is in painting. There are much more specified 'primitives'
             | that you can use in architecture that directly reflect the
             | capabilities of the construction, etc.
             | 
             | And even before programming architecture was used
             | metaphorically. 'Architecting a plan' and all that. It's
             | not too difficult to understand how design in architecture
             | differs from design in other areas, in a way that makes
             | using it as a metaphor useful.
        
             | ssivark wrote:
             | > I don't recall saying that at all. My gripe is that
             | different discipline always seems to be architecture and
             | the design patterns topic has been talked to death for over
             | 50 years now.
             | 
             | I concur with the spirit of this gripe. While architecture
             | certainly might be ripe for fruitful parallels, I think it
             | might be over-emphasized because most discourse is
             | derivative regurgitation. Most people are not generating
             | original insights from their own experiences, but
             | regurgitating (at best mildly extending) Christopher
             | Alexander (or other derived work). Christopher Alexander
             | tied to mine architecture for systems metaphors (because
             | that was his background), and a group of software folks
             | back in the day tried to map that to software development
             | -- in other words, a lot of it was purely incidental. And
             | they were all barely scratching the surface; there are
             | likely many other fields with many other interesting
             | analogies. Fresh perspectives that try to mine new lessons
             | (from different domains) would be really interesting.
        
         | nsajko wrote:
         | "Comparing programming to architecture" might sound silly, but
         | it's possible to learn about design in general from other
         | design-heavy fields.
        
           | ethanbond wrote:
           | Especially an extremely old one that has developed a fairly
           | elaborate discipline around itself due to the immense costs
           | involved.
        
         | TakeBlaster16 wrote:
         | I feel like people glamorize architecture in general. Sure the
         | Empire State Building was probably fun to design, but 99.9% of
         | architects are just designing bland office buildings or long
         | hallways of apartment boxes. On average it's probably just as
         | exciting as a software architect designing their 100th CRUD
         | webapp.
        
           | nradov wrote:
           | A friend of a friend is an architect who designs McDonald's
           | restaurants all over the Midwest. I'm not sure if that's how
           | he envisioned his career, but it's steady work.
        
             | Tarucho wrote:
             | Out of curiosity, does it pay well? I was told that this
             | kind of industrial/architectural design work pays really
             | well.
        
         | [deleted]
        
       | veltas wrote:
       | Why though actually can't we build the way our ancestors did? Is
       | that knowledge all lost? The Palace of Westminster isn't a
       | farmhouse but it seems like a pretty beautiful, functional,
       | durable building.
        
         | jlg23 wrote:
         | We can, but we prefer to use way cheaper and faster methods
         | because before the "ancestral" building is finished, with our
         | modern methods, we have built, used, torn down and rebuilt
         | several times.
        
           | veltas wrote:
           | The Palace of Westminster rebuild took 30 years, but that was
           | a pretty exceptional case. Balmoral Castle took 3 years. I
           | don't know how long more modest housing took on those days
           | but I'm assuming in the realm of a year. Even a few years to
           | build a larger building seems acceptable if you get something
           | reusable for much longer, and more timeless. Anyway, I think
           | it's interesting to compare.
        
       | bot41 wrote:
       | No HTTPS on the site
        
       | revskill wrote:
       | To me, tao of programming is not related to computer or
       | technology.
       | 
       | It's based on human character. Good people produce good code, or
       | "timeless" code, bad people write "bad" code (means it's a tech
       | debt).
        
         | avgcorrection wrote:
         | If tech debt is always bad then it seems like a bad indirect
         | analogy. Taking on money debt is often a sound decision.
        
         | elteto wrote:
        
         | barrysteve wrote:
         | That's in Christianity too, a good tree produces good fruits.
         | Judge a person by their fruits, ect.
         | 
         | Programming requires more conscious specificity than faith
         | wants to indulge in, so we need more than it.
        
         | bragr wrote:
         | >Good people produce good code, or "timeless" code, bad people
         | write "bad" code (means it's a tech debt).
         | 
         | That's some really reductive moralism that does not take into
         | account any external factors on why the bad code was written.
         | 
         | Do you really think you're a good person because you're code is
         | good?
        
           | sixstringtheory wrote:
           | > Do you really think you're a good person because you're
           | code is good?
           | 
           | That's a bit of putting the cart before the horse... what if
           | they think they're a bad person because their code is bad?
        
         | TakeBlaster16 wrote:
         | If I write some ugly code to get prod back online ASAP, did I
         | immediately become a bad person? Or do I only become a bad
         | person after some number of weeks passes and I haven't
         | refactored it to clean it up yet?
        
         | WJW wrote:
         | Meh. Such moral absolutism leaves no room for fate. I had a
         | colleague once whose wife was dying of cancer and he
         | understandably had severe trouble focusing on his work. That
         | does not make him "bad people" even though his code wasn't
         | perfect all of the time.
        
           | barrysteve wrote:
           | Good people do make good code, they aren't spared the
           | struggle of life. His attempt at working would be seen as
           | good. He didn't experience a moral failing, for failing to
           | produce commercially viable code.
        
       ___________________________________________________________________
       (page generated 2022-09-05 23:01 UTC)