[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)