Researcher question – what's the point of semicolons and curly braces?
Adam D. Ruppe via Digitalmars-d
digitalmars-d at puremagic.com
Mon May 2 21:24:37 PDT 2016
On Tuesday, 3 May 2016 at 03:48:09 UTC, Joe Duarte wrote:
> Would it be difficult to compile the clean version?
You realize your bias is showing very strongly in the wording of
this question, right? I don't agree the naked version is clean at
all.
ohimsorryletswritemorecleanlywithoutanyofthatobnoxiouspunctuationnoiseitisalluselessanywaysurelyyoucanstillmakesenseofthisafterallthereareonlysomanywordsintheenglishlanguageandknowinghwatdoesanddoesntmakesenseincontextmeansyoucansurelyparsethisrightout
oh i know you will say thats not a fair comparison it is the
punctuation you dislike not the spacing though really the same
principle applies actually while the punctuation does have
meaning ill concede you can nevertheless parse it without
although you might then want other rules
see in a lot of those languages they redefine things like lines
to serve the same role as the punctuation
so like instead of ending expressions in punctuation
they end them with a new line instead
meaning you must hit enter at the point that d would allow you to
use the semicolon
ditto for indentation
like sure this is readable
but it just bothers me to use as a matter of course
it can even become
~hideous~
crap i cant even use ~ wtf this style of writing sucks it just
isnt very expressive nor artistic
* * *
Personally, I sometimes do like writing in all lower case without
punctuation, but I do so as a style choice; it tends to be my way
of expressing in text that I'm not being entirely serious, in
contrast to ordinarily formatted text.
Code is the same thing - I will use different styles for
different situations.
It isn't a terribly difficult technical problem to define a
programming language to have a different syntax. You can parse
them without that much trouble.
But the syntax isn't really there for the compiler's benefit
(though there are benefits there, just like asking the user to
confirm their email address, getting a bit of redundant
information out of the human user can help catch mistakes), it is
there for the reader.
I often get lost when there's several levels of whitespace change
at once.
def pain:
if whatever:
do this
if this_too:
also do this
if one_more:
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
oh snap this is kinda long
it takes several lines
quick where we at?
Curly braces in there would show we intended to go a couple
levels and give a convenient place to click to ask our editor
program to show us where it started too. I really like having
that.
Semicolons similarly are a nice way to say "I'm done with this
thought", which I'm just used to hitting. When I use languages
that don't allow them, I waste quite a bit of time hitting
backspace after automatically hitting ;!
Moreover, with a longer line, (or in some cases like debug lines
where I want to easily remove two statements with one keypress -
yes, my editor can delete a line instantly, but two lines are a
bit harder to do) the semicolon gives you the freedom to format
it as you will.
a = 5 +
4 -
1;
That'd work without the semicolon (usually), but this is
different:
a = 5
+ 4
- 1;
In that case, the line break after the 5 would probably end the
statement, leaving the other numbers dangling.
I prefer this formatting in many cases though since then the
operators nicely line up. In the first one, the 4 is visually
tied to the -, but really, the - is more strongly related to the
1, so I want them grouped together.
Well, I'm late, but to sum up:
* familiarity brings comfort, to look and in using existing
workflows like my editor's delete-line feature.
* breaking habits, regardless of whether those habits are perfect
in a perfect world, is a source of mental friction that has
higher cost than benefit
* punctuation separate from styling leaves both as independent
decisions that brings more beauty
It isn't so much that they are necessary, it is that they bring
various other benefits.
> I'm a social scientist and I'm preparing some studies on
> the effects of programming language syntax on learning,
> motivation to pursue programming, as well as any
> disproportionate effects that PL syntax has on the appeal
> of programming to women (more on the latter in a separate
> post).
fascinating, I might tell you some stories from my youth later,
but right now, I'm too old to be up this late!
But I'm really curious what the gendered aspect turns out as. I
suspect the effect, if it indeed exists, would be strongly tied
to the oft-repeated lie that "girls aren't good at math" - math
famously uses a lot of symbols, so that association could recall
discouraging memories.
More information about the Digitalmars-d
mailing list