Why is there no or or and ?

Nick Sabalausky a at a.a
Thu Feb 16 23:19:51 PST 2012


"F i L" <witte2008 at gmail.com> wrote in message 
news:simejelbyihexcsbkoyl at forum.dlang.org...
>I would use them over '||' and '&&' for the reasons bearophile gave. 
>Highlighted as keywords, they're easily set appart, easier to type, and 
>more distinguished... then again if I had my way I'd remove the '('/')' 
>brackets, ending marks, and auto keyword; switched the definition name-type 
>placement and change if/else/return/contract syntax...
>
>     foo( a, b: float ): int

In other languages, I can live with JS-style "var:Type" but I've never 
really liked it. Just seems totally backwards to me:

1. When I declare a variable, I normally know the type I want before I know 
what to name it, so just typing it in is backwards.

2. With function definitions, why is the return type so rediculously far 
away from the function name? Should be "foo:int( a, b: float )". Besides, 
when you call the func and assign the return value to a variable, the return 
value is going to the left, not the right. In C-style, return values/types 
move "left". In JS-style, it's all willy-nilly.

3. Makes it harder to distinguish declarations from assignments at a glance. 
You have to look in the middle of the statement to see what the heck it is. 
With C-style you only have to look at the beginning (which are conveniently 
all lined up): Starts with a variable? Assignment. Starts with a type or 
attribute? Declaration. Starts with colored text? *Definitely* declaration. 
Don't see why languages keep trying to marginalize the idea of declarations.

4. Initializers are just downright goofy:

a:int = 5;

Looks like it's assigning 5 to "int" instead of to "a", which is completely 
nonsensical.




More information about the Digitalmars-d mailing list