Nick Sabalausky wrote:
"F i L" <witte2...@gmail.com> wrote in message news:jzkatvnibtjkcafqs...@forum.dlang.org...
All of the syntaxes you're advocating are every bit as arbitrary as the ones you're against.

Programming is logic largely based around math.

Yes, it's *based* around math, but it *isn't* math.

English is based largely around German and Latin, and yet it's neither German nor Latin, nor a mere conjunction of them, nor can one say that it *should* be. Of course, you can pick that analogy to death, but the point is, things don't have to maintain a heavy resemblance to their origin.

Seeing as how we're all educated around with mathematic symbols as children, a language design which reflects what is most familiar will be the easiest to initially understand. Less friction means more productivity.


You're talking about very minor details that are trivial to learn (I was only about 12 or 13 when I learned C). The prodictivity drop in these cases is *purely* a *minor* upfront cost, and with no ongoing cost (but does have ongoing *benefits* because it's designed specifically with *it's own* domain in mind instead being hampered by unnecessary ties to some other domain).

I just don't see an argument for why we *shouldn't* make mathematical operations in code match those we where taught as children as close as possible.


I've always agreed with the usual reasoning behind ":= and = instead of = and ==", but in practice I don't like it becase assignment is so *incredibly* common I don't want it to be a 2-handed 3-keypress "Shift+Keypress and then another keypress". Just one keypress, thank you. And yes, equality is fairly common, too, but *UNLIKE MATH*, equality isn't quite *as* common as assignment. Plus, "==" is even a little easier than "two keypresses" since it's the same key, not two different keys.

yes i agree. I'm not really a fan of using ':=' for assignment because of it's keystroke length, even if it *does* make more sense. Still, I don't see why '==' couldn't be 'is' and '!=' couldn't be 'not'. Thought this might get hard to read with all the 'and'/'or's everywhere:

    a: = 0
    b: = new Foo
    c: = "Bar"

case a is 0 and b not null and c is "Bar" { ... } // hard to read case a == 0 and b !is null and c == "Bar" { ... } // better than:
    case a == 0 && b !is null && c == "Bar" { ... }

Reply via email to