this post was submitted on 18 Jul 2026
58 points (96.8% liked)

No Stupid Questions

49006 readers
1518 users here now

No such thing. Ask away!

!nostupidquestions is a community dedicated to being helpful and answering each others' questions on various topics.

The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:

Rules (interactive)


Rule 1- All posts must be legitimate questions. All post titles must include a question.

All posts must be legitimate questions, and all post titles must include a question. Questions that are joke or trolling questions, memes, song lyrics as title, etc. are not allowed here. See Rule 6 for all exceptions.



Rule 2- Your question subject cannot be illegal or NSFW material.

Your question subject cannot be illegal or NSFW material. You will be warned first, banned second.



Rule 3- Do not seek mental, medical and professional help here.

Do not seek mental, medical and professional help here. Breaking this rule will not get you or your post removed, but it will put you at risk, and possibly in danger.



Rule 4- No self promotion or upvote-farming of any kind.

That's it.



Rule 5- No baiting or sealioning or promoting an agenda.

Questions which, instead of being of an innocuous nature, are specifically intended (based on reports and in the opinion of our crack moderation team) to bait users into ideological wars on charged political topics will be removed and the authors warned - or banned - depending on severity.



Rule 6- Regarding META posts and joke questions.

Provided it is about the community itself, you may post non-question posts using the [META] tag on your post title.

On fridays, you are allowed to post meme and troll questions, on the condition that it's in text format only, and conforms with our other rules. These posts MUST include the [NSQ Friday] tag in their title.

If you post a serious question on friday and are looking only for legitimate answers, then please include the [Serious] tag on your post. Irrelevant replies will then be removed by moderators.



Rule 7- You can't intentionally annoy, mock, or harass other members.

If you intentionally annoy, mock, harass, or discriminate against any individual member, you will be removed.

Likewise, if you are a member, sympathiser or a resemblant of a movement that is known to largely hate, mock, discriminate against, and/or want to take lives of a group of people, and you were provably vocal about your hate, then you will be banned on sight.



Rule 8- All comments should try to stay relevant to their parent content.



Rule 9- Reposts from other platforms are not allowed.

Let everyone have their own content.



Rule 10- Majority of bots aren't allowed to participate here. This includes using AI responses and summaries.



Credits

Our breathtaking icon was bestowed upon us by @Cevilia!

The greatest banner of all time: by @TheOneWithTheHair!

founded 3 years ago
MODERATORS
 

Please ELI5, I lost track. I used to learn a bit of C and a bit of Python a few years ago but never really went deeper into programming. And now suddenly it seems that a host of new programming languages have appeared and that stuff that used to work fine in whatever old language it was in is now rewritten in a new language.

How do languages like Golang and Rust differ from older languages (these two have probably been around a while but for me they feel 'new')? Why are we coming up with new languages all the time? Besides those two, what other languages are there worth knowing about? Is it worth learning them? Are they going to come up with yet another one next week? (I know, many questions, an invitation to infodump I guess ...)

you are viewing a single comment's thread
view the rest of the comments
[–] Dookieman12@piefed.social 2 points 2 days ago

It's really hard to give a less-than-book-length answer without simplifying a LOT, but I'll do my best to be as accurate and comprehensive as I can while still offering a somewhat brief answer.

What you're ultimately getting at is a concept called "abstraction," which basically means "letting the language worry about it instead of the programmer."

A computer operates using ones and zeroes, also called "binary". These patterns of ones and zeroes are interpreted as either data or instructions depending on which processor register they're sent to. Representing data this way is inefficient and difficult to read for humans. For single-digit numbers, it's fine, but for sentences, paragraphs, entire programs, representing them in binary takes up a lot of space, so we "abstract" binary by representing it as hex code (base 16, zero through 'F'). This allows us to show the same data in a more condensed way. This is only one kind of very simple abstraction.

Modern programming languages aim to abstract as much of the coding process as possible. Languages like Assembly that abstract very little are considered "close to the metal" because the programmer needs to do EVERYTHING manually. The benefit to this is that it's very efficient; the program only does what it absolutely needs to do. The tradeoff is that it takes a LOT of extra time to do everything manually, the margin for error is very slim, and you're pretty much on your own if things go wrong. Another downside is that, since everything is manual, Assembly needs to be written for the specific processor architecture you're using.

C is only slightly further from the metal than Assembly, so it's still very efficient, but misuse is very easy to do, especially by accident. The main benefit is that C code can be compiled. Compilation is a process that does many things, but one thing it can do is take C code and turn it into Assembly instructions that can be interpreted by a specific processor. So, you can write the program once, then compile it to x86, ARM, Mac, whatever. With Assembly, you would need to write a different version of the program for each architecture it would need to be compatible with. Doom was developed in C, which has a lot to do with the "but will it run Doom?" meme.

From there, different languages abstract different aspects to different degrees to make them more specialized to certain tasks.

C++ adds object-oriented functionality to C, slightly impacting performance, but making classes and inheritance possible without hacking memory pointers to behave the same way. C++ is typically used when high-performance is desired, but the code base is still very large. Thr Source engine, and thus, Source engine games like TF2, are written in C++.

Python and other languages sufficiently far from the metal have the benefit of being interpreted, which means the code you write is executed in real-time. This means syntax errors and such can be identified in real-time by your IDE. With C and other compiled languages, you have to wait until you compile your code to find errors. This makes Python ideal for developing many, simple programs where performance isn't a (big) consideration.

C# and Java are interpreted, but also run inside special runtime environments, which makes them compatible with just about any hardware, but is very resource intensive. Unity engine games like Rust were developed in C#; Minecraft was developed in Java.

Haxe can be cross-piled to C code that can then be compiled to Assembly, allowing developers to write one program compatible with all gaming consoles (Dead Cells, for example) without the performance impact associated with languages like Java.

J and Lua are specialized to complex mathematics and simulations. Lua is the language used to create Beam.NG:Drive and Project Zomboid.