kiRach
@kiRach

Как соотносятся скриптовые и объектно-ориентированные языки программирования?

Собственно сабж.


Может быть, достаточно глупый вопрос, но тем не менее, понял что не могу понять соотношения скриптового языка и объектно-ориентированного. Вот, допустим, есть язык Groovy. Он является ООП языком, и при этом может использоваться как скриптовый. То же самое — PHP(язык изначально скриптовый, но поддерживает ООП). Что же это значит, растолкуйте пожалуйста?


Как это дело понимаю сейчас я: ООП язык, в нем все мыслится объектами и классами этих самих объектов. А скриптовый — это когда инструкции языку задаются сразу, и они интерпретируются по ходу. То есть можно не создавать классов, методов, а сразу писать по ходу программы инструкции, которые будут преобразовываться. Так как же тогда может это все укладываться в рамки одного языка? В моей голове сложилось(видимо неправильное) противоречие. Ведь если в ООП языке все мыслится классами, то почему тогда можно писать сразу инструкциями, минуя классы и методы?
  • Вопрос задан
  • 8069 просмотров
Пригласить эксперта
Ответы на вопрос 4
Karde
@Karde
Ph.D. student at the GWU & CBI
Вопрос на самом деле не очень верно поставлен, так как сравнивается теплое с мягким.

ООП — парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием, — прототипов) (Вики)

Скриптовый язык программирования — язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Простые скриптовые языки раньше часто называли языками (Вики)

Так вот, вы можете писать в скриптовом языке программирования (который не чистое ООП) просто инструкции, которые выполняются по ходу работы программы сразу, без переработки в машинный код заранее. Но никто не мешает вам составлять более сложные сценарии, которые логически можно разбить на объекты, классы, методы, интерфейсы и тому подобное.

Правильнее было бы сравнивать компилируемые и интерпретируемые языки программирования, и функциональные и ООП языки программирования.
Ответ написан
Есть «чистые» ОО языки, в которых невозможно работать без объектов, а есть «гибридные», которые позволяют создавать программы как в процедурном («скриптовом») стиле, так и в ОО.
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Есть такой язык — Boo. Там можно написать код, не описывая классы и т.д., но когда скрипт будет запущен, интерпретатор автоматически и прозрачно создаст в байт-коде статический класс и его метод main, который и будет запущен. Телом же этого метода будет то, что вы написали изначально.

То есть для программиста это будет чисто скриптовым (в вашем понимании) языком, но строгая парадигма ООП будет выдержана.
Ответ написан
Комментировать
charon
@charon
вы немного старомодно подходите к скриптовым языкам. Современные скриптовые языки обязательно работают с объектами, даже старый Javascript. Это суровая необходимость сегодняшних дней, потому что без этого невозможно решать сегодняшние задачи :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы