24

What is meant by framework, programming language and scripting language?

Gumbo
  • 643,351
  • 109
  • 780
  • 844
nicky
  • 3,810
  • 9
  • 35
  • 44
  • 2
    wow, the best question ever and only one vote? c'mon guys! – IAdapter Oct 03 '09 at 17:31
  • 2
    Hardly the best question ever when it duplicates http://stackoverflow.com/questions/101055/when-is-a-language-considered-a-scripting-language , http://stackoverflow.com/questions/914941/whats-the-difference-between-a-programming-language-and-a-scripting-language-c , http://stackoverflow.com/questions/724438/what-is-the-difference-between-a-class-library-and-a-framework , http://stackoverflow.com/questions/148747/what-is-the-difference-between-a-framework-and-a-library , and http://stackoverflow.com/questions/1514266/what-is-diference-between-api-and-framework-and-toolkit – dmckee --- ex-moderator kitten Oct 03 '09 at 20:11
  • To what the others said I add this: [Programming paradigm](http://en.wikipedia.org/wiki/Programming_paradigm). – Cristina Oct 03 '09 at 16:38

5 Answers5

19

The distinction between programming languages and scripting languages is ill-defined. In my opinion, we should dispense with the term "scripting language" and just call them all programming languages.

A framework, on the other hand, is a collection of code that uses an inversion-of-control mechanism to help you structure your code. Frameworks are similar to libraries in that they provide building blocks you can use to build a bigger system.

Daniel Pryden
  • 59,486
  • 16
  • 97
  • 135
  • 1
    Right to the point! People use the term "scripting", "gluing" to mean a different activity respect to programming, but they are just deluding themselves. – MaD70 Oct 17 '09 at 06:16
19

I think Daniel Pryden's points are excellent - I voted him up. I'd just like to add a couple of minor additions.

Programming languages, like C and C++, used to have a compiling and linking step that rendered the source code into a machine-language form that was run by the operating system.

Scripting languages, like the Unix Bourne, Korn, and C shell, were not compiled or linked like C and C++. (Thanks to Daniel Pryden's correction and citation of the Unix scripting languages.)

Since virtual machines have become so common in languages like Java, Python, and C#, the distinction between scripting and programming has been blurred.

As for the distinction between libraries and frameworks: your code links in libraries and calls them. This is different from a framework, because your code is plugged into the framework. It's known as the Hollywood principle: "Don't call us, we'll call you."

duffymo
  • 305,152
  • 44
  • 369
  • 561
  • 2
    You're right (and I upvoted you too) but I disagree with your characterization of Python as a scripting language. It is definitely one of the blurred languages too. A better example of a "true" scripting language would be the Bourne Shell. It was only ever intended to be used to automate and/or tie together other programs into a "script". Additionally, Bourne Shell is interpreted directly, without an intermediate bytecode. – Daniel Pryden Oct 03 '09 at 16:44
  • I agree with your disagreement, Daniel. 8) I was reaching with Python. Your example of Bourne shell is spot on. – duffymo Oct 03 '09 at 17:09
2
  • Framework is a combination of class libraries and runtime environment to execute code by independent on operating system. It is placed on operating system, mask functionalities of OS.
  • Scripting language is a language, it has script nothing but a support to another language its not used individual, like JavaScript, asp.net server side scripting, these are all give support and prompting to other languages, like JavaScript give prompting to html.
  • Programming language is instruction to computer and then computer execute that one
BenMorel
  • 34,448
  • 50
  • 182
  • 322
Venkat
  • 29
  • 1
2

Frameworks are libraries or templates of pre-written stuff you can re-use. They often come with a pre-imposed structure and philosophy of how to approach a domain of problems.

Programming language is a superset of scripting language and includes anything you yourself write that makes a computer do something.

Scripting languages are traditionally interpreted meaning they are useful for smaller more light-weight purposes, but that definition is getting vaguer since JavaScript - a 'scripting language', for example, is not interpreted so much these days.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Scott Evernden
  • 39,136
  • 15
  • 78
  • 84
  • As you said, a framework has a structure and allows to build things on top of it by offering extension points. This is a big difference with a library. In other words, Framework != Library – Pascal Thivent Oct 03 '09 at 19:43
0

Framework is a combination of class libraries and runtime environment to execute code by independent on operating system. It is placed on operating system, mask functionalities of OS. Scripting language is a language, it has script nothing but a support to another language its not used individual, like JavaScript, asp.net server side scripting, these are all give support and prompting to other languages, like JavaScript give prompting to html. Programming language is instruction to computer and then computer execute that one