Я думаю, что очки Даниэля Придена превосходны - я проголосовал за него. Я просто хотел бы добавить пару небольших дополнений.
Языки программирования, такие как C и C ++, раньше имели этап компиляции и компоновки, который переводил исходный код в форму машинного языка, которая запускалась операционной системой.
Языки сценариев, такие как оболочка Unix Bourne, Korn и C, не были скомпилированы и не связаны, как C и C ++. (Благодаря исправлению Дэниела Придена и цитированию языков сценариев Unix.)
Поскольку виртуальные машины стали настолько распространенными в таких языках, как Java, Python и C #, различие между сценариями и программированием было размыто.
Что касается различия между библиотеками и фреймворками: ваш код связывается в библиотеках и вызывает их. Это отличается от фреймворка, потому что ваш код подключен к фреймворку. Он известен как принцип Голливуда: «Не звоните нам, мы вам позвоним».