Question about programming languages

Programming languages are generally broken into two categories (interpreted or VM based (called managed by Microsoft)) and compiled. Although some "implementations" of said language may break its own intended category in reference implementation, it can generally be classified along the lines of either category. Most modern languages tend to be oriented towards general purpose computing, which basically means they are not intended for a specific utility inside their capability. Languages which are intended to be compiled to a native instruction set(and java doesn't count) generally force the programmer to interact with memory in a "semi-abstract" manner. These languages (C,C++,Fortran) are sometimes "used" in low level environments like systems programming or kernel development, this is due to their inherent ability to manipulate memory at specific addresses and be able to (sometimes) integrate direct "inline" assembly. "interpreted" or "inside VM" intended languages such as Java, Python or Javascript were never intended to expose the programmer to things such as "addresses" and pointers. These languages instead expect the programmer to think about "objects" and "primitive" types as a kind of "bucket" of data. Because these languages shield the programmer from being forced to deal with memory in its less abstract form, they are best intended for "user land" development of "higher" level applications. Generally things such as Kernels and drivers must be written in "Compiled" languages since they are expected to execute on the hardware with little abstraction. Most of the time an operating system is a combination of native assembly and C. Most of the assembly portion is used to control control port based I/O and directly modify registers. The other majority is written in C as this is used for basically everything else since it allows a higher level less verbose implementation of complex tasks (page table layout,ex) as well as direct physical memory manipulation.

/r/learnprogramming Thread