Live data from Hacker News

The Timeless Way of Programming

tomasp.net

21–30 of 49 posts

Re: The Timeless Way of Programming

#21
post #4
post #2

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

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.

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.

Re: The Timeless Way of Programming

#22

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.

[deleted]

Re: The Timeless Way of Programming

#23
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.

Re: The Timeless Way of Programming

#24
post #16

Earlier quoted context omitted.

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.

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.

Out of curiosity, does it pay well? I was told that this kind of industrial/architectural design work pays really well.

Re: The Timeless Way of Programming

#25

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.

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) u…

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.

Re: The Timeless Way of Programming

#26
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.

Re: The Timeless Way of Programming

#27
post #26

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.

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.

Re: The Timeless Way of Programming

#28

Earlier quoted context omitted.

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) u…

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.

"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".

Re: The Timeless Way of Programming

#29
post #27
post #26

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.

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.

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.

Re: The Timeless Way of Programming

#30
post #19

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.

"Comparing programming to architecture" might sound silly, but it's possible to learn about design in general from other design-heavy fields.

Especially an extremely old one that has developed a fairly elaborate discipline around itself due to the immense costs involved.
Post reply on HN