Languages that start as scripting languages can gain enough general programming features that they become suitable for general application development
Perl, Tcl, Lua
Some are developed from scratch with general usage in mind.
Python, Ruby
Still are often called “scripting languages”
Typical Characteristics
(of dynamic programming languages, including “scripting” languages)
Interpreted, rather than compiled
i.e., not directly executed but interpreted line-by-line by a language interpreter program which dynamically translates the instructions into machine-executable instructions “on the fly”
means that programs written in dynamic languages will execute much more slowly than compiled languages like C/C++ or more slowly than intermediate (byte-code compiled) languages like Java/C#
limits their use for very large applications
Though large applications are still written in dynamic languages, especially in Python
including media players, games, bittorrent clients
Components of or plug-ins to large applications are written in scripting languages.
Typical Characteristics (dynamic typing)
Dynamically or “weakly” typed
vs. statically or “strongly” or “strictly” typed (typical of compiled languages)
Introduce variables or data structures as needed without the need to “declare” variables
Variables start with generic type, often string
“Everything is a string.” applies to some scripting languages.
Shell scripting languages like bash, Tcl, Perl
“Everything is an object.” applies to other scripting languages.
Python, Ruby
Advantages/Disadvantages
(claimed)
Allow accomplishing relatively simple tasks with a smaller amount of code
Larger projects can be completed in a shorter amount of time
vs. compiled language
Assuming same programmer aptitude
Increased “programmer productivity”
Changes to code are quicker to test
Code is smaller, easier to understand
Execution is slow, requires greater CPU/memory overhead
Lack of strong typing can lead to unforeseen errors, errors which strong typing protects against