TIL about the greek question mark

Tell me, can you tell the difference between these two characters?

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

EtzBetz
link
fedilink
501Y

Laughs in just removing all semicolons because it’s not necessary in JS.

Andrew
link
fedilink
51Y

It is recommended. But in TS it is not necessary with rare exceptions.

I wouldn’t do it without an auto formatter. With prettier it will catch potential no semi colon issues.

I tried prettier and I thought it was literally making my code uglier. It’s eslint --fix for me.

Andrew
link
fedilink
11Y

You absolutely have to use prettier with JS. I don’t think there is auto adding missing semicolons in C/C++ though, it would be very useful.

EtzBetz
link
fedilink
1
edit-2
1Y

Yes, true. I also did setup so that any missing semicolon will be added, because I got sick of not inserting them sometimes and then some code was without them and some was. (Before I tested just leaving them all out, out of fun, so I got into the habit of just leaving them out regularly)

thanks to eslint enforcing it in the default rules it’s necessary for most typescript projects

Nato Boram
link
fedilink
English
41Y

Except that you should use Prettier for formatting instead of ESLint. That said, semicolons are useless noise

Why should you use that?

@fidodo@lemm.ee
link
fedilink
3
edit-2
1Y

It adds even more auto formatting rules so you can basically stop thinking about formatting entirely. I used to be opinionated about formatting but now I just go with whatever prettier does. It’s not always the best but it’s consistent and it’s a big chunk of my brain I can free up for things that matter. It also formats things safely so you don’t run into those weird edge cases where semicolons matter if you choose to turn them off.

Aren’t some of the scenarios for needing a semicolon logical-domain problems and not syntax issues? I wouldn’t trust autoformatting to spot a logical problem, though I also hope no one is writing code that flippantly. (as if honest mistakes aren’t common enough!)

Maybe there’s some edge case but in my years of using prettier I haven’t encountered one once.

Andrew
link
fedilink
11Y

Never used eslint. prettier is a must. semicolons are only needed to split some rare TS syntax lines.

Platypus
link
fedilink
English
19
edit-2
1Y

That’s what’s really irks me be about JS–you can do just about whatever but you’re not supposed to.

It’s an imperative language, but best practices are to use it functionally.

You can omit semicolons, but best practices are to use them.

You can use sloppy equality, but best practices are to always use strict.

You need to remember that a lot of those best practices are to cover for the performance issues from misusing loosely typed variables.

The JavaScript engine can compile clean, type-safe code down to be almost as fast as properly compiled code. When you use various features like the loose equals or various object mutations and the like, the engine cannot optimize it, leaving your code much, much slower.

I’ll add that to my mountain of reasons for using typescript

Yup! I love TypeScript, and I love the flexibility of JavaScript. With all of the type templates and generics and other black magic TypeScript has, it’s pretty easy to even support the crazy stuff like mixins and contextual parameters (if I’m not speaking too loosely while avoiding proper terms!).

A lot of the crazy stuff won’t optimize, but at least it goes to show how it’s not really tying JavaScript’s hands even when requiring TS everywhere.

JavaScript reminds me of an older brother who happens to be the most laid back stoner you could meet. “Like yea man, you should probably use semicolons, but I ain’t gonna narc”

After switching to typescript with linting and prettier I simply hate writing vanilla JavaScript anymore. Some people complain about the extra project setup needed but I find that time pays for itself immediately.

Andrew
link
fedilink
01Y

Extra project setup like pnpm add -D typescript && tsc --init? One thing that is kinda annoying is that you have to manage were will js files go.

And eslint and setting up tsconfig for your project structure.

Andrew
link
fedilink
01Y

You don’t need eslint with TS.

Why do the typescript extensions to eslint exist then?

Great, now you just need to do the rest of the code.

Hah, I will know it’s an error as I hardly use semicolons in JS. #rekt

It’s been a while but doesn’t JavaScript work without semicolons and just fail silently?

Yes. One is in the matrix movies and the other isn’t.

Вгь, Iмa gо sрrinкlе sоме cугilliс снаггастегs аll оvег sомеоnе’s lаrаvеl vаlidатiоn гules

(The аеос’s are the most evil ones)

Why did Unicode even allow these symbols even exist? What happened to using a single encoding for similar symbols like in CJK? Uriel must be rolling furiously in his grave rn

@Squids@sopuli.xyz
link
fedilink
English
37
edit-2
1Y

Because the point of unicode is to accurately depict every sort of writing regardless of format, not to make a neat table of every unique glyph. Fonts may want to render the two differently or treat them differently. Same reason why there’s a difference between an em dash and a quotation line mark

Same reason why unicode is full of random characters that only ever appear like thrice in some Russian coptic manuscript from the 3rd century - it’s about being able to depict something, not perceived usefulness

Also excuse my ignorance, but who’s Uriel? Because right now I just have the mental image of a very upset archangel which I’m guessing is not what you’re referring to. I mean it could be - I’m pretty sure unicode would fall under his domain of literature

every sort of writing regardless of format

💯💯😹👁️👄👁️ well 👏👏 said! 🍌🍑💦🫄🏻🎉🎉

sad CJK noises

𝙣𝙪𝙠𝙚
link
fedilink
English
21Y

Thanks Satan

qaz
link
fedilink
1191Y

Every syntax highligher shows this and VSCode even has a special case for this, this is not a real issue.

Kalash
link
fedilink
571Y

I just tried and it just turns into a proper semicolon and everything works. (Sublime Text).

That might explain that:

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.

Can you expect much else from someone who uses JS?

Use both the latin x and the cyrillic х as variable names in the same scope. Your coworkers will thank you.

dog
link
fedilink
-241Y

Who even uses semicolons in 2023?

I write a lot of professional emails for work and I have to use it all the time.

Front end “developer”?

dog
link
fedilink
11Y

Fairly sure they just use IDE’s.

Or chatgpt.

Pretty sure your Java code would be unreadable using blocks inside blocks for each statement to avoid semicolons

Kalash
link
fedilink
241Y

Programmers?

dog
link
fedilink
-11Y

Do Rust, Nim, etc use semicolons? I don’t remember

LaggyKar
link
fedilink
English
111Y

Rust does. But you get:

error: unknown start of token: \u{37e}
 --> test.rs:2:30
  |
2 |     println!("Hello, World!");
  |                              ^
  |
help: Unicode character ';' (Greek Question Mark) looks like ';' (Semicolon), but it is not
  |
2 |     println!("Hello, World!");

Like r/programmerhumor, this community is already full of people who literally never programmed anything more than Hello World before.

Just because a meme is not reality doesn’t mean it can’t be funny.

exu
link
fedilink
English
121Y

Did you expect anything different?

And just like Reddit you’re complaining about it for absolutely no reason. How about we try to be a bit more welcoming and a bit less gatekeepery.

I realize my attitude is negative, but r/programmerhumor was not my crowd and it looks like neither is this community. There is no place where I can find memes about a large part of my life and I’m frustrated.

“Missing semicolon”, “light IDE is for psychopaths”, “JS sucks”, “AI is just if-statements”, I just can’t relate to those jokes and after the 100th repost I still don’t think they’re funny.

@Gsus4@feddit.nl
link
fedilink
1
edit-2
1Y

my crowd

how about https://programming.dev/c/programmer_humor ? this instance tends to attract more actual programmers

preemptive note: I’m not making a suggestion, I’m asking what you think.

CommunityLinkFixerBot
bot account
link
fedilink
English
31Y

Hi there! Looks like you linked to a Lemmy community using a URL instead of its name, which doesn’t work well for people on different instances. Try fixing it like this: !programmer_humor@programming.dev

@fred@lemmy.ml
link
fedilink
10
edit-2
1Y

Your contribution appears to be solely whinging. If you want a certain type of content how about you post some and see if it catches on?

I’m curious, what would you prefer? Reposts suck, but dunking on the languages everyone agrees are bad and complaining about debugging is the only version of programmer humour I’m familiar with.

I found this blog article with some xkcd comics that I find hilarious, if that helps

@r2vq@lemmy.ca
link
fedilink
English
11Y

These are quite funny. Thank you

XKCD is indeed awesome.

Not OP but if we’re talking about preferences I’d say most people who don’t find rehashed, samey jokes funny usually prefer jokes that take an unexpected route through a more thorough understanding of the subject they’re joking about. So instead of a new itteration of “JS bad”, for example, make a meme about how much better JS is than a popular language in a convoluted hyperspecific engineered circumstance where JS’s normally not good properties can be engineered to be more optimal than the competition.

See, that just sounds like the same joke but done better to me. It boils down to “JS bad”, only through the lens of the weird exception that makes the rule.

deleted by creator

I realize my attitude is negative, but r/programmerhumor was not my crowd and it looks like neither is this community.

Sounds like a win for this community.

That’s kind of an absurd position when the explicit purpose of segmented communities is to gatekeep content.

Who the hell tries putting Greek question marks in their code? Like, I get most compilers will show you what character each error starts at, but still.

programming hello world is doing better than most people and I applaud and welcome beginners.

I am little more than an amateur myself, entirely self taught, and yet I’m forever digging into various bits of code for my marketing job, because paying someone $400 to fix a recalcitrant css style in a week and a half is worse than just doing it myself.

Jordan Lund
link
fedilink
English
31Y

The Greek question mark is a fraction of a mm thicker. :)

I got used to seeing the same thing between O and 0 in certain fonts. O is wider than 0.

Cool, but can you spot the difference between I and I?

Jordan Lund
link
fedilink
English
21Y

That one I never could crack. | is longer so that’s easy.

lI makes it pretty simple to see - uppercase i is just a tad shorter.

I get this warning in my IDE (VS Code) so I feel safe:

The character U+037e “;” could be confused with the ASCII character U+003b “;”, which is more common in source code.

Well, there goes my diabolical plan, crushed like a bug under someone else’s shoe. Back to the drawing board, I guess.

Would be weird to be crushed like a bug under anyone else than someone else’s or simply put your own shoe.

I meant the plan not me being crushed.

This means we’re just late? Dang

Unicode was a mistake.

Might try that in CSV files

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
  • 120 users / day
  • 257 users / week
  • 744 users / month
  • 3.72K users / 6 months
  • 1 subscriber
  • 1.49K Posts
  • 32.8K Comments
  • Modlog