any modern compiler or ide will notice this and warn you.
Same, I thought this is gotta be a problem for someone who uses notepad as their main editor.
meanwhile vim:
If you are coding on vim you use a language server 😝
vim is not an ide i believe. but an lsp will notice
Yeah, it will tell you that it existed a semicolon… 😁
…for which my default fix would be to delete and reenter it in hopes of fixing ehatever hiccup the syntax validator is having
Any remotely capable IDE will immediately show you what, and where, the problem is.
it would still be confusing why all semicolons are highlighted
VSCode has a special case for this
That means that detection was added explicitly because this prank was done enough that it was worth it to add.
We do a little trolling
The reason is in fact not only because of this exact symbol, but because people tried to change program’s behavior in a malicious way by replacing legitimate code with same looking symbols.
Something similar happened to me a while back. I was copying some code from a Mac to a remote Linux host. For some reason the Mac was using a thing called an “en dash”
–
which is slightly longer than a regular hyphen-
and was really fucking frustrating to figure out.I don’t know why I’m here commenting about this, but I love type, so:
Hyphen (-): the short one, used for hyphenated words. fire-eaters. Close-up.
en-dash (–): slightly longer, traditionally the length of a lowercase"n" in the typeface. Used between for things like a timeframe. 10–11:30, August–October
em-dash (—): the longest of the three, and the length of a lowercase “m”. Used as a punctuation mark to denote a side comment or to abruptly cut off a sentence. “It’s a great punctuation mark—in fact I overuse it—but it’s still useful.” “Hey where are you going with that giant—”
I didn’t bother to double check the definitions, so there might be more specific rules, but these are my rules of thumb.
Dictionary source for possible particulars: https://www.merriam-webster.com/grammar/em-dash-en-dash-how-to-use
Ah this is nice!
Thank you. I have learned something new today!
Ah, my favorite character. I abuse the hell out of the em-dash.
For someone who abuses it, there is a remarkable absence of em-dashes in your comment :—)
Some mac apps have some quirks, the default note app was probably not meant for pasting code in, but when you do it changes the quotes and makes them all fancy. Drives me up the wall and there’s nobody to blame but me.
I blame Steve Jobs.
Let’s dig him up and put him on trial. If it’s good enough for the pope, it’s good enough for him.
I was looking for this. Some text from webpages end up pasting that way too, even on non-mac systems, and it is utterly infuriating. Nothing I hate more than having to paste something into notepad++ so I can fix all the stupid quotes from some online tutorial that is giving you things to paste into a command prompt.
I knew a guy who used the Unicode character for a space in his password. He figured if anyone ever saw his password they’d think it was a space and still not be able to use it. It’s silly, but it was a fun thing to learn about him.
Which character. Does it need Combination of keys or a Single key.
A combination of keys. I don’t remember the code anymore.
Alt-255 was the old-school method.
I use alt 0160 for a non-line breaking space.
I can’t type alt codes with my keyboard.
That’s pretty neat, but also means he will never be able to log into things on mobile
Bitwarden has no problem filling passwords containing unicode characters on Andorid.
ESLint has entered the room
If the language doesn’t force me to use semicolons i will forget
semicolons are optional in js anyway…
Most of the time. Sometimes it can lead to code that is ambiguous and ASI picks the wrong way to interpret it.
Right, but there’s not going to be a syntax error.
Technically I don’t think any Greek layout uses a different Unicode codepoint for the question mark. In fact, the ordinary semicolon symbol is used, so what the meme describes would probably not happen IRL.
Does all this make it any less funnier? No. It’s still brilliant.
In Unicode, it is separately encoded as U+037E ; GREEK QUESTION MARK, but the similarity is so great that the code point is normalised to U+003B ; SEMICOLON, making the marks identical in practice.
Source: https://en.wikipedia.org/wiki/Question_mark
I’m still curious whether it would be accepted by the code interpreters / compilers of various languages. I’m not bold enough to assume they all normalise properly.
Wow, thank you, didn’t know of that.
Unicode should have enforced the principle of using the same encoding for similar looking characters like they did with CJK instead of allowing bullshit like the Cyrillic “o” or the Greek question mark.
1,000% percent.
Me who programs in rust which has a specific compiler message to tell me what happened
Cargo fix
deleted by creator
I don’t even know what to say to this one.
Who uses semicolons in Javascript?
Programmers who care about best practices. Here are a couple of scenarios where not using a semicolon will bite you in the ass.
deleted by creator
~95% of the JS code you see on the Web has semicolons. Apparently, a lot of programmers think it’s worth that extra keystroke to avoid these types of bugs. I agree with them. The difficulty with programming isn’t “Arrgh, there are too many keystrokes, my hands are tired!” It’s “Arrgh, HTF did this bug get in here?!?”
I don’t even bother typing them because I like having eslint do it for me.
They made it a named function, but this is literally how you format anonymous functions in js, a key feature that usually gets called with stuff like an
onclick
oronload
call in the html domain.
Every real programmers
In that sentence, we use “programmer” singular, because “every” is singular, though referring to many
All real programmers
Every real programmer
Each real programmer
No real programmer
It’s pretty arbitrary
Old habits die hard. Learned JS, CSS and C++ all the same year about a decade ago.
People who like minimizing the amount of bug fixing.
I use prettier which by default adds semicolons. Coming from predominately doing backend stuff (mostly in Java) I don’t really mind, especially when the formatter adds them for me
That’s what I do too, but i don’t manually add them