this post was submitted on 05 Oct 2024
75 points (93.1% liked)

Programming

17133 readers
417 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 !webdev@programming.dev



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] warlaan@feddit.org 1 points 16 hours 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.

[–] Undertaker@feddit.org 1 points 15 hours 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.

[–] sarahduck@lemmy.blahaj.zone 13 points 14 hours ago

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

[–] GetOffMyLan@programming.dev 4 points 6 hours 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.