How you choose to add whitespace to your code is not a meaningful outlet for creativity. Linters are a great tool for eliminating bike shedding.
I don't think wood working per se gives you more flexibility than building software. It's wood working as an individual, not part of a team, so you can make your own decisions and not answer to anyone. If you were a one man software consultant you would have the same amount of autonomy.
> How you choose to add whitespace to your code is not a meaningful outlet for creativity.
I'd like to mildly disagree. Using whitespace to group functionality together in "paragraphs" and aligning the horizontal indentation in the clearest possible way is not too far away from editing a short story to make it flow better.
Earlier today my linter rearranged multiple "key: value" one-liners into two-liners and the end result is both objectively and subjectively worse.
This is why I like when formatters give you some wiggle room in how the rules are applied.
Like, in Prettier, adding a trailing comma to a short list of items will tell the formatter to put each item on it own line, while removing the trailing comma will keep each item in a single line (if the line length is not too long).
I normally just auto-apply `black` to my code, but occasionally I feel the need to have things arranged in a way that is easier to read -- e.g. a list of several dictionaries. In that case, I just put a comment telling it to stop reformatting at the start of the block, and another at the end.
Yeah, it's proto-editing, but with such limited degrees of freedom in the activity your creative options are pretty limited and as time goes on and on the endeavor starts to look like this: https://xkcd.com/915/
Interesting, I can't tell if the comic is about "people will become obsess and develop taste in what they see every day", or "people will develop preferences to separate themselves into groups".
As a one man software consultant, I just want to point out that you are working with clients, in their systems, on their problems. You provide advice, they make the decisions they deem best for their company.
You get to choose the problem spaces and teams, which is a degree of autonomy. But it is not quite so free as “making your own decisions and not answering to anybody.”
It’s devex. Not for you, but for the reader. It’s part of the craft. We can argue about whether craftsmanship is creative or skill, but at the end of the day it’s satisfaction that they are chasing. Satisfaction they are denied at work.
Not that they can’t find at work. It’s actively taken away from them.
Yep. Imagine being a woodworker on a massive project like a large sailing vessel or Japanese castle. Suddenly coordination and collaboration requirements go right back up. Now you can't just wing your project. You've got to make sure the part your building matches the agreed upon spec and hope the teams you're "integrating" with have also followed the spec. When one of those teams gets "creative" suddenly things aren't fitting together and progress on the ship crawls to a halt.
When I think of going multiplayer with my hobby and doing something big, I'm not thinking about what you described - that's just walking into bullshit and letting everything interesting about your work be suffocated. No, I'm thinking Skunkworks, or Xerox PARC. I imagine others are too.
This happens literally every single day in residential construction. Aside from the building code, there isn't typically a "spec" for construction. The plan doesn't specify "this wall shall be plumb to within +/- 0.001 radians". Somehow, cabinets still get hung even though the framer framed a crooked wall on top of a crooked stem wall all because foundation guy was hungover that day.
That’s because average residential construction has some tolerance for error (and is therefore poor quality imo).
Sure - perhaps not plumb to within +/- 0.001 radians, but there’s still an expectation that the wall needs to be vertical within some error tolerance band (even if not specified). Error correction happens real-time - the cabinet guy compensates for the wall error, and so on.
That’s also why I find residential construction so shoddy (the US at least) - electrical junction boxes are always a little off-angle, cover plates aren’t flush, etc.
I don't think wood working per se gives you more flexibility than building software. It's wood working as an individual, not part of a team, so you can make your own decisions and not answer to anyone. If you were a one man software consultant you would have the same amount of autonomy.