7 ms·
Systems programming language is only a useful term if you define what systems you are talking about. Are you talking about creating an OS, highly performance mi
by slaymaker1907 7y ago
Systems programming language is only a useful term if you define what systems you are talking about. Are you talking about creating an OS, highly performance micro services, distributed systems, etc.? Common Lisp would likely be a poor choice for an OS but would be great for some of those other types of systems.
- jandrewrogers 7y agoI would say that the common feature of a systems language is that it is explicitly designed to enable direct control of hardware resources and -- very importantly -- operation scheduling by the programmer. A point I think is often overlooked is that some software architectures cannot be implemented correctly without this level of control, and for some applications those architectures are the only competent choice. Using a systems language should be driven by the requirements of application with respect to software architecture, and most applications don't have that requirement. Some applications that are above the OS and device drivers, such as database engines, are clearly in the domain of systems applications because it is not possible to create a competent implementation without the control a systems language provides. Even for relatively abstract high-level software like distributed systems, strict control of scheduling is required for consistently robust throughput and behavior. Some key algorithms only work in real systems if resource management and concurrent operation sequencing is inexpensively deterministic. For some other applications, the only real benefit of a systems language would be for performance engineering purposes, which may not be a practical priority. The "managed language" litmus test is quite good in my opinion, and almost definitional.