this post was submitted on 05 Oct 2024
106 points (94.9% liked)

Programming

17547 readers
52 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 3 points 1 month ago (3 children)

C# isn't exactly compiled, at least not into machine language. It is transpiled into byte code that is run on a virtual machine that on turn is an interpreter/JIT-compiler.

Depending on why someone is asking for a compiled language that may or may not be a problem, because to the one writing the code it looks like a compiled language, but to the one running it it looks like an interpreted one.

[–] [email protected] 17 points 1 month ago

Not necessarily these days! With NativeAOT, C# can be compiled to machine code.

[–] [email protected] 12 points 1 month ago

It is compiled to bye code. Just to be clear transpiling is completely different. It is also not interpreted.

But ahead of time compilation is available now. So you can compile straight machine code.

The newer tiered JIT can actually give better performance than a traditional compiler as well.

Overall C# is an awesome language. If performance is absolutely critical you can use raw pointers and manual memory management, but obviously you lose safety then.

[–] [email protected] 4 points 1 month ago

It is compiled into bytecode. A transpiler translates to another programming language with the same level of abstraction. A compiler translates into a level that is nearer to or machine code.