Live data from Hacker News

The melancholy decline of the semicolon

unherd.com

111–120 of 260 posts

Re: The melancholy decline of the semicolon

#111
post #62

Earlier quoted context omitted.

Thank you! Now corrected. Informally: incredibly, one reads and re-reads, edits multiple times in a span of hours, and still leaves errors and imprecisions. Of course it was the period or "full-stop" - in reading, also as I had defined the colon differently in the next paragraph... By the way, you made me note that 'full-stop' is British English and 'period' is American English. As some of us prefer to write in Inter…

"UN English" generally follows British/Oxford usage, although there are a few exceptions: writing "Mr." with the full stop, "sulfur" rather than "sulphur", "1.30 pm" (not 1:30 pm or 13:30) etc. I think it's a decent compromise. All the Zs make it look weird to British readers, and all the Us make it look weird to Americans. https://www.un.org/dgacm/en/content/editorial-manual/punctua... ("full stop").

Writing `Mr.' is like writing `3rd.': the point in abbreviations is an ellipsis, but there is nothing after the `r' in `Mister'.

Re: The melancholy decline of the semicolon

#115
post #49

Earlier quoted context omitted.

For a couple of decades now college professors have been death on passive voice sentences, which tends to create students and then writers who avoid long sentences for fear they aren't "punchy" enough.

And the sad thing is, they don’t even know what the passive voice is! See G. K. Pullum, Fear and Loathing of the English Passive [ http://www.lel.ed.ac.uk/~gpullum/passive_loathing.html ]. Their unintentional hypocrisy is quite something, e.g.: > … it makes little difference if you decide to look at prose written by the advisers on usage themselves. Consider the beginning of E. B. White's introduction to his revision…

A lot of that article feels like too much of a gotcha. There is a difference between "Alice died of a gunshot wound" and "Bob fatally shot Alice". The fact that neither one is passive voice according to the author's definition doesn't mean that people are wrong for being upset if Bob is left out of the headline. It really seems like missing the point to counter complaints that Bob isn't suitably blamed in a headline by pointing out that the grammar is fine!

Re: The melancholy decline of the semicolon

#116
post #34

I am seeing a use of the instruments that seems quite confused. The semicolon is part of the division of the expression of thought in supersets and subsets of structural affinity: comma, semicolon, period, new paragraph. (Which also means that the semicolon has a necessary role in general: whenever the structure is best defined also using that level of affinity.) The dash, the colon and the brackets are instead relat…

This is an excellent comment thank you. You put into words some of my unconscious inklings. Is there any reading you can recommend on the topic that isn’t a dry grammar manual — something akin to Strunk and White, or a good blog? If not I suppose you could write one :)

Re: The melancholy decline of the semicolon

#117
post #102

Earlier quoted context omitted.

It's a trade-off. You can either assume all statements end at the end of the line, and require a continuation character (backslash in Python) if that isn't the case; or you can require a statement terminator (semicolon/closing brace in Rust) for all statements. The downside of assuming statements end at the end of the line is that you need to have special rules for when that isn't the case (such as Python's implicit…

Thanks, this makes perfect sense. Python we are using \n instead of ; as the statement terminator. Just didn't got what you mean by "python's implicit statement continuation inside braces" ?

I think he is referring to

    x = (
      object
      .method1()
      .method2()
    )

Re: The melancholy decline of the semicolon

#118
post #81
post #77

Completely off topic but, after doing python for ages, recently started writing Rust and semicolon does seems useless. We are doing the indentation and new lines anyway, why not just make them as default language construct as python does. (autodidact developer here, feel free to ELI5 and enlighten me)

Well, have you ever run into the x = some_long_expression + another_long_expression problem? In Python you need to be careful to wrap that in () or use a \ before the newline to avoid it parsing as two lines, e.g. x = some_long_expression; + another_long_expression; In particular, if you have a builder expressions let x = someBuilder() .setVal(x) .build() You'd need to wrap the entire thing in () to avoid it getting…

To be fair, that's really more of a python-specific deficiency than a general problem with significant whitespace. Haskell for example interprets further-indented lines as a continuation of the current expression, only ending the expression when it sees a new line of the same or lesser indentation.

Re: The melancholy decline of the semicolon

#119
post #81
post #77

Completely off topic but, after doing python for ages, recently started writing Rust and semicolon does seems useless. We are doing the indentation and new lines anyway, why not just make them as default language construct as python does. (autodidact developer here, feel free to ELI5 and enlighten me)

Well, have you ever run into the x = some_long_expression + another_long_expression problem? In Python you need to be careful to wrap that in () or use a \ before the newline to avoid it parsing as two lines, e.g. x = some_long_expression; + another_long_expression; In particular, if you have a builder expressions let x = someBuilder() .setVal(x) .build() You'd need to wrap the entire thing in () to avoid it getting…

> In Python you need to be careful to wrap that in () or use a \

I guess that's because in the REPL Python need's to know whether the line has finished yet or not. OCaml and F# uses two semicolons ';;' for that purpose, but only in the REPL. In Haskell you can use braces and semicolons or '{:' and ':}' in the REPL.

Re: The melancholy decline of the semicolon

#120
post #81

Earlier quoted context omitted.

Well, have you ever run into the x = some_long_expression + another_long_expression problem? In Python you need to be careful to wrap that in () or use a \ before the newline to avoid it parsing as two lines, e.g. x = some_long_expression; + another_long_expression; In particular, if you have a builder expressions let x = someBuilder() .setVal(x) .build() You'd need to wrap the entire thing in () to avoid it getting…

To be fair, that's really more of a python-specific deficiency than a general problem with significant whitespace. Haskell for example interprets further-indented lines as a continuation of the current expression, only ending the expression when it sees a new line of the same or lesser indentation.

As I wrote, you have to do similar things when using Haskell (or F# or OCaml) in the REPL. Python just doesn't have a special 'non-REPL' syntax.
Post reply on HN