I was brought up on C, did a module of Java at uni, and am doing an algorithms course which is python heavy.

My other half - who’s quite handy with Python - looks in sheer horror at my code which is littered with semicolons.

I was stumped for half an hour figuring out why the Python interpreter was bouncing an error before it had even reached the main program logic… turns out a { before the block of code royally ruins the interpreter’s day.

Still, I live and learn.

LazaroFilm
link
fedilink
English
37M

I have a plugin in VSCode to remind me not to forget the semicolons

Folks acting like Python is the only language without semicolons. 😏

I got tripped up so many time in the last 3 weeks using PHP after years in ML family languages. I am already newlining & it’d be poor style to put more than one statement on a line so what is the point of these semicolons?

Skull giver
link
fedilink
2
edit-2
7M

deleted by creator

The best languages about really embracing punctuation as you would in English is Prolog & Erlang with their periods, semicolons, & commas.

@pixelscript@lemmy.ml
link
fedilink
English
77M

it’d be poor style to put more than one statement on a line

Unlike Python, most languages do not endorse a specific concept of style. You’re free to dabble in all the bad style choices you like, on the off chance that once in a blue moon they prove to be situationally useful.

With indentation-based languages the bad coding style we are talking about is putting multiple statements on a line or unindenting a block …& never has that been something I wanted to do. I would rather this aspect be enforced at the language for readability where there is still room in all other aspects to try out other styles.

Why haven’t custom parsers become more of a thing? All the compiler or interpreter really needs is a valid parse tree. You could even have some kind of special command or directive to switch styles, if a section would be really ugly otherwise.

palordrolap
link
fedilink
197M

In some languages
a newline does not
necessarily indicate
the end of a statement.

In others, sometimes it could, but would leave things ambiguous
as to whether the statement was ended or not.

And so, punctuation is necessary.

But newlines + indentation are supported by a lot of languages & when it is, it’s easier to read since the prevailing convention is already to newline, then in indent. When you follow the usual coding styles or autoformatted & removed the semicolons, you’ve gained nothing for readability & added noise. I much prefer the languages that take this convention & bake it in so you don’t have to have that that visual noise—and in these languages, I never felt the parsing rules were ambiguous.

For bonus points take their code and completely go wild with utterly random indentation and line breaks, just to drive the point home. 😈

Pfff just randomly replace tabs with 4 spaces and see the world burn

4 spaces is the preferred pythons is happy with either but the standard is 4 spaces. Vscodium ensures that.

Your editor is happy with either, but is it happy with both?

My editor will take either and convert it to 4 spaces. Python can use spaces or tabs but not both in the same file.

Buahahahah I know what to do next commit

Its the python equivalent of a Greek question mark

Destide
link
fedilink
English
397M

import " " as ;

I;don’t;think;that;helps

How does one manually add a semicolon? vs. automatically?

JS formatters add them if the project requires it

Manually would be if it prompted you every time you every time the program inserts one. No, wait…

PythonAmateur programmers

That’s actually me removing semicolons from Python.

I was taught python by my school but I would rather write in other languages but the difference in formatting still gets me after years

Skull giver
link
fedilink
5
edit-2
7M

deleted by creator

@force@lemmy.world
link
fedilink
4
edit-2
7M

That said, with how few expressions are return values, I do wonder why semicolons are the default rather than adding a special character to indicate return values.

you mean like return/break/etc.?

because Rust was designed to remind you of functional programming despite not being very functional, and because semicolons allow way better syntax rules in Rust and are generally pretty vital for good, readable lowish-level code. it also allows Rust programmers to use newlines/indents and stuff to pretty up their code a lot without littering it with random \ and |> and begin end and such everywhere, which, given how dense Rust code can be and how much it uses iterators and weird trait magic, is a big plus for readability

Skull giver
link
fedilink
1
edit-2
7M

deleted by creator

@force@lemmy.world
link
fedilink
2
edit-2
7M

I don’t work on any widely-used languages (I’ve made my own but not anything important) but I do think the designers of Zig and Rust have very good reasons for using semicolons – I read some reasons from the Rust devs themselves somewhere but I can’t remember them other than it vaguely being about how Rust is expression-based and intended to be lightweight and how whitespace significance can create confusion around how to read and write certain things and bla bla bla…

but my personal opinion, what I generally I would imagine it’s for other than readability, is because the code can look a lot cleaner when an expression returned from a block is just the expression, and not expression plus some token like return. It’s especially nice in long closures or extremely short and simple blocks. I would rather consistently have to write expressions broadly like let a = { b + c }; rather than let a = { return b + c }. The semicolon has significance as a “result discarder” so expressions can be the default, so it’s on the surface a lot more functional-friendly.

Also this is more specific but I hate the way WS languages generally handle quotes

shastaxc
link
fedilink
87M

This is why linting and auto-format on save exists in IDEs. Don’t make things harder on yourself.

can I interest you in some delicious linters

Create a post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.
  • 1 user online
  • 77 users / day
  • 211 users / week
  • 413 users / month
  • 2.92K users / 6 months
  • 1 subscriber
  • 1.53K Posts
  • 33.8K Comments
  • Modlog