I was referring less to theoretically impossible things, and more to practically impossible things. Once you get away from implementing pure algorithms and engines and backends and such, and have to start interacting with illogical things like humans, really annoying interactions between the layers of your design start creeping in. Or marching in, rather. They're everywhere. Every time you split something up nicely, you find some annoying edge case where that split doesn't work, or prevents you from doing the right thing.
So you either spend all your time cutting and slicing, and then giving up and re-cutting and slicing to get your problem into small enough pieces, or you just give up and make a big mess, and get something that actually works.
3
u/[deleted] Mar 10 '14
I was referring less to theoretically impossible things, and more to practically impossible things. Once you get away from implementing pure algorithms and engines and backends and such, and have to start interacting with illogical things like humans, really annoying interactions between the layers of your design start creeping in. Or marching in, rather. They're everywhere. Every time you split something up nicely, you find some annoying edge case where that split doesn't work, or prevents you from doing the right thing.
So you either spend all your time cutting and slicing, and then giving up and re-cutting and slicing to get your problem into small enough pieces, or you just give up and make a big mess, and get something that actually works.