Computer languages have several contrasting points, but the major ones are as follows: High Level vs. Low Level: High Level allows abstract programming, but programmers lose control over hardware optimization. Applications are written faster and with better stability, at the cost of performance. Low level provides better programmer optimization, but is prone to logic and programming errors that an abstract language would prevent.
Interpreted vs. Compiled: Compiled languages can only run on the platform they are compiled for, but tend to have higher performance. They also tend to crash more frequently in the event of a programming error. Scripting languages run slower, but will run on any platform that supports that scripting language. Since they are interpreted, the system can catch errors and recover from otherwise fatal conditions (note: yes, compiled languages can do so, too, but usually requires more programmer intervention to catch these conditions).
Procedural vs. Functional vs. Object-Oriented: Procedural languages follow a given order by the programmer, branching when the programmer tells it to, etc, etc. This allows greater control over the flow of a program at the expense of a longer development cycle. Functional languages define a program as a series of interrelated functions; however, the compiler (or interpreter) determines the order of execution based on dependencies in the functions, rather than programmer-defined flow. Object-Oriented is usually a procedural language set, but with the additional concept that code and data are organized into discrete units called objects; they can protect their own internal pieces in order to avoid being damaged by poor logic written in another module.
Interpreted vs. Compiled: Compiled languages can only run on the platform they are compiled for, but tend to have higher performance. They also tend to crash more frequently in the event of a programming error. Scripting languages run slower, but will run on any platform that supports that scripting language. Since they are interpreted, the system can catch errors and recover from otherwise fatal conditions (note: yes, compiled languages can do so, too, but usually requires more programmer intervention to catch these conditions).
Procedural vs. Functional vs. Object-Oriented: Procedural languages follow a given order by the programmer, branching when the programmer tells it to, etc, etc. This allows greater control over the flow of a program at the expense of a longer development cycle. Functional languages define a program as a series of interrelated functions; however, the compiler (or interpreter) determines the order of execution based on dependencies in the functions, rather than programmer-defined flow. Object-Oriented is usually a procedural language set, but with the additional concept that code and data are organized into discrete units called objects; they can protect their own internal pieces in order to avoid being damaged by poor logic written in another module.
No comments:
Post a Comment