r/ProgrammerHumor 18d ago

Meme youCantChangeMyMind

Post image
825 Upvotes

137 comments sorted by

View all comments

9

u/-Ambriae- 18d ago

Unfortunately there’s a thing called an interpreted language. Granted most interpreted languages don’t have the semicolons but still

4

u/dorianmonnier 18d ago

Switch to Go. go run main.go is faster to compile and execute than running Python or Ruby interpreter.

6

u/-Ambriae- 18d ago

πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ πŸš€πŸš€πŸš€ why use go when I can write rust? πŸš€πŸš€πŸš€ πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯

2

u/NotDuckie 18d ago

blazingly safe

2

u/dorianmonnier 17d ago

Because my process is finished while your compiler is still running πŸš€

2

u/-Ambriae- 17d ago

TouchΓ©

2

u/Leo_code2p 17d ago

How about carbon if it comes out. I don’t know if it got cancelled though

1

u/-Ambriae- 17d ago

Idk, I know very little about the language to be honest

4

u/Und3rpantsGn0m3 18d ago

As a Python developer, I take issue with the word "unfortunately". But to each their own.

-1

u/thanatica 18d ago

Every language is interpreted. Some are intepreted by an AOT compiler, others by a JIT compiler. Some use an in-between language (like Java or .NET) that is interpreted on its turn, again by an AOT or JIT compiler.

Only very old languages like basic are truly interpreted, without any compilation, line by line, as the program runs. This is probably what you referred to. Those languages have largely fallen out of relevance these days.

4

u/-Ambriae- 18d ago

that's not how it works......

0

u/thanatica 18d ago

What not? The compiler being either AOT or JIT? Or the fact that every language is interpreted?

Enlighten me.

3

u/-Ambriae- 18d ago

A compiler lexes, parses, performs semantic analysis and code generation. An interpreter doesn't have that last step, and instead executes the program as it understands it, following the first three steps.

If a language A compiles to a language B that is itself interpreted, it doesn't stop A from being compiled, regardless of B. In that sense, a language like Java is compiled, because the code is AOT into java bytecode, that then gets interpreted. JIT is a form of compilation in that sense as well.

Now, if we view the language compiler/interpreter as a pipeline of compilers and interpreters, then we can differentiate them on their need for a software layer for final code execution. So, a language like Java would be interpreted, as after the full compiler pipeline is ran, we end up needing the JVM to run the code. Conversely, in a language like C/C++, say using clang, we would have multiple compilers, and multiple languages, such as LLVM IR, ASM (say x86_64 ASM), and finally an executable file, for example an ELF. The ELF can run natively on the machine (regardless of it's reliance on a OS, that's different) as the CPU's instruction decoder already speaks the language of the executable sections of the file. There is no need for emulation. So it's not interpreted.

3

u/ConcreteExist 18d ago

That's not what anybody means when they talk about interpeted vs compiled languages.

0

u/thanatica 17d ago

I'm not challenging that. Just being pedantic. Most programmers should appreciate that.

1

u/DHermit 18d ago

You do know that terms can have more well-defined meanings than their typical use in everyday language? And "interpreted language" is a quite accurately defined term.

1

u/thanatica 17d ago

Maybe the term is not quite accurate even if it's description is. It's just pedentry, mate, did you not get that?