Semicolons: mostly unnecessary?

AJ aj at nospam.net
Wed Oct 21 22:57:09 PDT 2009


"KennyTM~" <kennytm at gmail.com> wrote in message 
news:hbopns$125k$1 at digitalmars.com...
> On Oct 22, 09 12:29, AJ wrote:
>> "Adam D. Ruppe"<destructionator at gmail.com>  wrote in message
>> news:mailman.228.1256181155.20261.digitalmars-d at puremagic.com...
>>> On Wed, Oct 21, 2009 at 09:25:34PM -0500, AJ wrote:
>>>> That's not D source code. Why do you keep trying to use English text as
>>>> an
>>>> example?
>>>
>>> The logic behind all the arguments you make,
>>
>> That would be "all fine and dandy", but I'm not arguing about anything. 
>> (So
>> you must be arguing? About what?).
>>
>>> except for one, should apply
>>> equally well to English as it does to D.
>>
>> That's silly. There is no need to use the text of Shakespeare's tragedies 
>> to
>> allude to source code. There is no need and it is entirely inappropriate 
>> to
>> expand the context of the issue to other realms. The context is 
>> (currently):
>> semicolons as statement terminators for single-statement lines.
>>
>>>
>>> Cons:
>>>
>>> 1. Makes source code less comprehensible.
>>>
>>> Based on what? Because you say so?
>>
>> It's more to digest when it's not necessary. It's easier to identify
>> something when it's in less intricate (read, plain) surroundings.
>>
>> <snipped inappropriate context reference>
>>
>>
>>> 2. Is redundant with the newline designator.
>>>
>> <snipped inappropriate context reference>
>>
>>> is obviously false,
>>
>> If I put it on the list, it wasn't obvious at all, even if it is 
>> incorrect
>> (though I think it is correct).
>>
>>> unless
>>> you specifically require a line continuation character:
>>>
>>> a = b +
>>> c
>>
>> Without semicolon requirement:
>>
>> a=b+ // this is an error
>> c // this is OK
>>
>> With semicolon requirement:
>>
>> a=b+; // this is an error
>> c; // this is OK
>>
>> What's the diff?
>>
>>> A newline and a semicolon are not redundant unless you specifically 
>>> define
>>> a statement as being one and only one line.
>>
>> A semicolon is redundate with newline for single-statement lines. Oh, you
>> say that a lot of constructs are inherently single statements but written 
>> on
>> multiple lines? Well, that may be just the kind of examination I was 
>> looking
>> for (ironic that _I_ had to bring it up, huh):
>>
>> if(true)
>>      dothis()
>>
>> That situation has to be evaluated: is parsing at the construct level too
>> much effort or is it desireable? (ParseIfStatement()). Statement-level
>> parsing better/worse than line-level parsing?
>>
>>> Back to the magic of above though. What if you rewrote it:
>>> a = b
>>>     +c
>>
>> Without semicolon requirement:
>>
>> a=b // OK
>>   +c // error
>>
>> With semicolon requirement:
>>
>> a=b; // OK
>>   +c; // error
>>
>> What's the diff?
>
> a=b
>   +c(d)  // no error

Why not? Whether c is declared as a variable or a function, it still looks 
wrong to me. A statement can't begin with a +.

>
>>
>>> 3. Is more typing.
>>>
>> <snipped inappropriate context reference>>
>>
>>>   how long does it take to type a semicolon anyway?
>>
>> Typing unnecessary semicolons (if they are unnecessary) is "dumb".
>>
>>
> 





More information about the Digitalmars-d mailing list