Hacker News new | ask | show | jobs
by krob 3711 days ago
I think that code is often written in much the same way that metal forgers hammer metal into shape. It takes a while, there is a lot of frustration involved, lot of mistakes made in the process of getting the end-result, and often times when deep skill is not present, bulldozer approach to solving the problem become the norm. Clever code is used, and overlooked like small landmines. Modify the clever code and the landmine blows up in your face w/ 12 broken features & the whole application turned out to rely on some clever piece of logic that befuddles most people from a single glance.

Writing code is mostly a creative process. When you used standardized tools, the creative process eventually starts to look common, but when you learn how to use the general tool set which might be analogous to a carpenter's tool belt, then you end up with a more custom tailored product which is very specialized for a specific task. Since there are too many ways to solve any specific problem when the tools you are using are equivalent to screws, nuts, hammers, screwdrivers, anything can be fabricated to make the process work.

The real key here is that when creative-problem-solving meets design-pattern-nirvana, then you can start refactoring into the standard patterns that everyone is accustomed to seeing, and then things start to make more sense.

It's like the PubSub pattern is beaten to death in so many different workflows, but ultimately it's the same shit. Event-based programming is PubSub. Clicking causes a publish/emit, and every entity subscribes to these events/emits on a particular address of a specific pattern.

When we are all starting to speak the same language, I think writing code will become more a practice in writing in our general idioms. Lot of programmers are not formally trained, and nobody does apprenticeships before they write code, they just start.