Can managed code (especially .NET) ever become "unmanaged"?

I recently spoke with a friend of mine who started a C ++ class a couple of months ago (his first introduction to programming). We generally got acquainted with the topic of C # and .NET, and he told me that he was "doomed" to all common problems (low-speed, intermittent bytecodes, etc.). I agreed with him on all these issues, but I restrained myself by saying that it was doomed only because I felt that over time languages ​​like C # could become native code (if Microsoft chose to change the implementation. NET with bytecode, a JIT runtime that compiles directly to native code, as your C ++ program does).

My question is: am I here for lunch? I mean, this can take a lot of work (and can break too many things), but there isn’t any magic barrier that prevents C # from compiling initially (if it wants to do this), right? There was a time when C ++ was considered a very high-level language (which it still exists, but not as much as in the past), but now it is the basis (along with C) for Microsoft's sister APIs. The idea that .NET might one day be at the same level as C ++ in this regard seems to be just a matter of time and effort for me, and not a fundamental flaw in the language design.

EDIT . I have to add that if .NET compilation is possible, why doesn't Microsoft want to go that route? Why did they choose the path to the JIT bytecode?

+3
source share
7 answers

Java uses bytecode. C #, although it uses IL as an intermediate step, is always compiled into native code. IL is never interpreted directly for execution as Java bytecode. You can even precompile IL before distribution if you really want to (hint: performance is usually better in the long run if you don't).

, # , . winforms , , , # - . ; , . # (, , , ), .


, () .

# IL. . , JIT- . , , . JIT, , .

, , , , . , .


:

, , , , . , . .

. , , - . , . : , , . , , , . , .

, warez, . , . .


(imo) , . , .

+28

, , # ?

+1

# , NGEN, MONO (open source.net framework) AOT (), # IPhone. , - , . , , .net , JIT ( ) , , .

+1

dude, fyi, # , ngen.exe

.net - ? .net, ms vb 5, vb 6, com days.

java - java ?

. - , .net ( - ). .net.

# ++ - . ++ u ?

,

++ v/s #, v/s .

+1

# , - . , JIT.

0

, , - ? , , (er), ( , , hogging ..), . "" -, , .

, ? ++; - Java; , # Python, Erlang.

0

? - ? :

, , , ( - ++, ++).

++ #, ?

"Hardware is cheap, programmers are expensive": http://www.codinghorror.com/blog/archives/001198.html

0
source

Source: https://habr.com/ru/post/1705800/


All Articles