Является ли ActionScript языком сценариев или является скорее объектно-ориентированным языком программирования, например Java? Быстрая проверка в Википедии перечисляет его среди языков сценариев ...ActionScript - Что это за язык программирования?
ответ
Я думаю, это может зависеть от того, какую версию вы спрашиваете. Я не эксперт по ActionScript, но похоже, что дизайнеры пытаются сделать его объектно-ориентированным языком. Я думаю, что с 3.0 они эффективно сделали переход (по крайней мере частично) объектно-ориентированным языком.
Хотя это называется Action «Script», это объектно-ориентированный язык, очень похожий на Java. Весь код компилируется в двоичный swf-файл.
ActionScript 1 был также ОО на основе прототипов.
ActionScript 2 добавляет классы, аксессоры и т. Д., Но это в значительной степени синтаксический сахар поверх AS1.
ActionScript 3 полностью переработан и работает в новой виртуальной машине (AVM2) внутри Flash Player параллельно со старой виртуальной машиной.
Это вариант EcmaScript, поэтому он сродни JavaScript.
AS 3.0 можно записать в виде OO. Предыдущие версии более похожи на JavaScript и процедурные.
Как и другие плакаты, опубликованные JavaScript (и, таким образом, AS <3.0), очень подходят для OO-стиля. Это просто не на основе классов. –
Эти два варианта не являются взаимоисключающими.
Структура более поздних версий AS объектно-ориентированная, однако она не скомпилирована в собственный ассемблер. Вместо этого он интерпретируется как байтовый код.
Это. +1 Как я думаю об этом, ваш SWF не может работать сам по себе. Он проходит через игрока, который его интерпретирует. На мой взгляд, это разница между языком сценариев и языком программирования. http://en.wikipedia.org/wiki/Scripting_language – Sean
@Sean, так что вы скажете, что Java - это язык сценариев? –
Кто скажет, что язык сценариев не может быть OO? Я бы сказал, что это как скриптовый язык, так и OO.
Я имею в виду, например, Python часто называют языком сценариев и может использоваться просто для сценариев существующих приложений. Это тоже OO. На самом деле оба могут быть объединены, если рассматриваемое программное обеспечение требует, чтобы вы передали объект, который придерживается определенного интерфейса.
Это, безусловно, язык сценариев, и, безусловно, OO. Это также НЕ является языком программирования. – D3vtr0n
AS - это вариант ECMAScript. вы можете сказать, что это диалект JavaScript.
как таковой, он имеет и всегда обладал качествами OO. это не «больше» OO в 3.0, чем раньше, это просто «java-OO like», чем раньше. потому что теперь он включает поддержку языка для наследования по классам.
, конечно, обычное основанное на прототипе наследование все еще существует, и это надмножество класса.
и ничего из этого не делает его менее «сценарием», чем раньше.
И AS, и JS - это варианты JavaScript. Я бы не назвал ни одного из них диалектами другого. В противном случае, я согласен. +1 –
+1 для «java-OO like» –
ECMAScript - это спецификация. Оба сценария ActionScript и JavaScript основаны на этой спецификации. Здесь нет вариантов. – Luke
Кто-то описал ActionScript для меня как ориентированного на события языка программирования. AS3 - это язык сценариев с функциями OO.
OK Спасибо за вход ребята, лучшие ответы, похоже, AS3 - это как язык ООП, так и язык сценариев.Я предполагаю, что это восходит к определению языка сценариев - скомпилированы языки сценариев? Я приравнивал AS3 и Java, потому что оба скомпилированы в байт-код и запускаются внутри виртуальной машины, но я никогда не слышу, что java называется языком сценариев, я до сих пор немного запутался ...
Я думаю, мой вопрос в настоящее время отличает Java от AS3?
Что отличает Java от AS3?
Не много. Оба генерируют байт-код, который передается, затем скомпилируется в машинный код на целевой платформе через JIT.
Хотя AS3 обычно описывается как принадлежащий к семейству EcmaScript, у него есть две совместно существующие объектные модели под капотом. Один из них - традиционный прототипный подход, а другой - гораздо более похожий на Java подход, с пакетами, классами и интерфейсами, подклассы, абстрактные и конечные методы и т. Д.
Аналогично, AS3 может использоваться без какой-либо явной типизации (точно так же как javascript), или его можно использовать с сильной типизацией, например Java. В отличие от AS2, любая информация о типе данных кодируется в скомпилированных байт-кодах и проверяется во время выполнения.
Обратите внимание, что настройки компилятора по умолчанию побуждают разработчиков идти к java-подобному вкусу, но это ничего, что нельзя исправить несколькими вариантами.
По сути, ActionScript развился с языка игрушек (см. Flash 4 и ниже) на язык, похожий на javascript (Flash 5 и 6), на язык ecmascript, притворяющийся чем-то другим (Flash 7 и 8) тем, что имеет общего с Java и C# теперь больше, чем со своими старыми инкарнаций (Flash 9 и 10)
чтобы вернуться ненадолго к первоначальному вопросу, я могу думать о двух особенностях языка, что почти каждый язык сценариев имеет , что AS3 не хватает:
- Возможность запуска скрипта от источника напрямую. AS3 требует явного этапа компиляции.
- Возможность оценивать строку во время выполнения в виде фрагмента кода. Не ищите выражения «eval» в AS3, его просто не существует.
Без определения того, что вы подразумеваете под языком сценариев, никто не может ответить на этот вопрос.
Как Ларри Уолл ставит его так хорошо в Programming is Hard, Let's Go Scripting...: «Я думаю, что для большинства людей, сценарии много, как непристойности я не могу определить, но я буду знать, когда я вижу его.». и «Но в основном, сценарий не является техническим термином. Когда мы называем что-то языком сценариев, мы в первую очередь делаем лингвистическое и культурное суждение, а не техническое суждение».
Итак? Многие другие языки также скомпилируются в байт-код. Некоторые даже получают компиляторы JIT, и они обычно группируются как языки сценариев. У Python уже есть два. PHP также может быть байт-скомпилирован, как и Perl. Очень немногие языки сценариев на самом деле используют интерпретатор, большинство из которых я знаю о компиляции. –
Предыдущий комментарий частично отредактирован редактированием, но «скрипт» остается в кавычках. –
ActionScript - это язык сценариев. Сценарий не является программированием. ActionScript несколько неструктурирован. Он стал лучше, но я все еще вижу много возможностей для улучшения. – D3vtr0n