On Sun, 27 Nov 2005, Hans-Christoph Steiner wrote:
Sounds like you need a better editor, or mouse wheel support.
Do you have bidirectional scrollwheel support in PureData? After all, we're having this discussion on pd-list, and we're using Smalltalk and Ruby for analogy with PureData. I bet your mouse doesn't have two scrollwheels. My laptop's touchpad has double-scrollwheel support, but that doesn't mean that any app supports it. I say that because PureData is more two-dimensional than ordinary code, and so may easily need two scrollbars if the patch is scattered enough.
If space was at such a premium,
It depends for whom. For those paid by the KLOC (kilo-line-of-code), it's important to use as many lines as possibly justifiable.
But for me, space is at a premium. It's not a matter of taking less space on diskettes or core memory or punchcards: it's a matter of visually outlining the rhythmic patterns in the code. We talk about PureData being a visual language, but I'm already making C a visual language, and I don't mean MSVC either.
then why do even C coders space out their code like this:
Because they have no clue about outlining alternating patterns of redundancy and variation, like, why it should be done and such.
I might rewrite your example like this:
#define SET_INPUT_KEYCODE(dev,code,val)
({unsigned __old; switch (dev->keycodesize) {
case 1 :{ u8 *k=(u8 *)dev->keycode; __old=k[code]; k[code]=val; break;}
case 2 :{u16 *k=(u16*)dev->keycode; __old=k[code]; k[code]=val; break;}
default:{u32 *k=(u32*)dev->keycode; __old=k[code]; k[code]=val; break;}
__old; })
because it emphasizes the repetition by aligning it into perfect columns, which is directly recognisable by the eye before even any conscious reading.
You can read each line horizontally if you're in a Philip Glass mood, but if you're just trying to understand, then you can read three lines in parallel and read the variation columns vertically.
My brain is SIMD.
It's just basic psychological engineering.
Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju Freelance Digital Arts Engineer, Montréal QC Canada