logoalt Hacker News

embedding-shapeyesterday at 10:00 AM1 replyview on HN

> So you're not introducing constraints, you're creatively trying out things to fix your problem. They're not a wall preventing you from reaching your goal, they're the bridge. Your constraint is the temporary lack of creativity, and what you introduce is the creative solution.

I feel like we're talking past each other. Adding these sort of requirements in order to "fix the problem", is typically what people are referring to as "adding artificial constraints to foster creativity".

The goal is making a song, anything that restricts you on how you are allowed to do this, is a constraint, as far as I understand the word "constraint" at least.

> When you remove actual constraints you make the goal easier to reach.

Yes, this is why the previous examples are constraints, not "bridges". Without them it's easier, with them it's harder.


Replies

close04yesterday at 10:30 AM

I think you're missing the context of what started this thread:

> I was a kid/teenager with a really slow computer [...] b) I think I was a way better programmer. Constraints make you better, you have to be smarter.

The goal is "write software" not "write optimized software".

When your goal is to write a software that runs on your machine, having the constraint of a slow machine forces you to write optimized code which is a slower, more difficult solution. When you have an unconstrained fast machine you can write boilerplate unoptimized code, which is quick and easy. If you constrain your fast computer you go from "easy solution" to "difficult solution" for the same goal of "write software". No programmer will ever say "making the computer slower really helped a lot to write code".

Your goal is "make a creative song" but you're stuck. You don't introduce constraints because they'll make it harder to get unstuck, you introduce them to make it easier. You literally said "they still help a lot".

> I frequently use this when stuck creatively in music production. [...] Really easy for me to skip these artificial constraints at any time, they still help a lot.

That's what you're missing. For you the real constraint would be to get creatively unstuck without any tricks. You are introducing things to help you reach your goal to get unstuck. You're expecting programmers to introduce things that prevent them from reaching their goal of creating programs that run.

In reality one huge reason software is slow and unoptimized is because programmers have beefy machines and can afford to take the easy road.

I didn't expect this simple concept will need so many explanations.

show 1 reply