this post was submitted on 16 Aug 2023
463 points (90.0% liked)

Programmer Humor

33216 readers
2 users here now

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

Rules:

founded 5 years ago
MODERATORS
 

TIL about the greek question mark

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

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

you are viewing a single comment's thread
view the rest of the comments
[–] EtzBetz@feddit.de 34 points 2 years ago (2 children)

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

[–] Andrew15_5@mander.xyz 4 points 2 years ago (4 children)

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

[–] platypode@sh.itjust.works 11 points 2 years ago* (last edited 2 years ago) (2 children)

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.

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"

[–] fidodo@lemm.ee 8 points 2 years ago (1 children)

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.

[–] Andrew15_5@mander.xyz -1 points 2 years ago (1 children)

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.

[–] fidodo@lemm.ee 2 points 2 years ago (1 children)

And eslint and setting up tsconfig for your project structure.

[–] Andrew15_5@mander.xyz 0 points 2 years ago (1 children)

You don't need eslint with TS.

[–] fidodo@lemm.ee 1 points 2 years ago (1 children)

Why do the typescript extensions to eslint exist then?

[–] Andrew15_5@mander.xyz 0 points 2 years ago (1 children)

I don't know. I never used eslint, therefore it is not needed. Everything works perfectly fine without it.

Why do you need it?

[–] fidodo@lemm.ee 0 points 2 years ago (1 children)

Same reason you use typescript. It helps you catch bugs and follow programming best practices. You also don't need typescript, but with it your code is better. Typescript is technically just a really fancy linter. The actual compilation mainly just removes the type data and does some JavaScript engine compatibility.

[–] Andrew15_5@mander.xyz 0 points 2 years ago (1 children)

So why there are typescript extensions for eslint if both are linters for JS? You should either use eslint with JS or transpile TS to JS, right?

Are there bugs in TS that eslint can catch?

I personally never seen TS project with eslint.

[–] fidodo@lemm.ee 0 points 2 years ago (2 children)

Typescript compiler enforces language requirements, the linter enforces language best practices. Best practices help you avoid bugs.

[–] Andrew15_5@mander.xyz 2 points 2 years ago* (last edited 2 years ago) (1 children)

Ok, I should check it out, then. Maybe I already follow all the best practices, so I wouldn't need it anyway. ;)

[–] fidodo@lemm.ee 2 points 2 years ago

I try and follow best practices always too, but when the linter is catching it for you it's less to think about so you can focus on the important parts of the problem

[–] DrM@feddit.de 4 points 2 years ago (1 children)

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

[–] NatoBoram@lemm.ee 2 points 2 years ago (2 children)

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

[–] Korne127@lemmy.world 2 points 2 years ago (1 children)
[–] fidodo@lemm.ee 1 points 2 years ago* (last edited 2 years ago) (1 children)

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.

[–] MotoAsh@lemmy.world 3 points 2 years ago (1 children)

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!)

[–] fidodo@lemm.ee 1 points 2 years ago

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

[–] Andrew15_5@mander.xyz 1 points 2 years ago

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

[–] fidodo@lemm.ee 3 points 2 years ago (1 children)

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

[–] SnowdenHeroOfOurTime@unilem.org 0 points 2 years ago

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

[–] EtzBetz@feddit.de 1 points 2 years ago* (last edited 2 years ago)

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)

[–] CanadaPlus@lemmy.sdf.org 3 points 2 years ago

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