Существуют ли языки на основе прототипов с полным циклом разработки? - PullRequest
2 голосов
/ 08 декабря 2010

Существуют ли какие-либо реальные языки программирования на основе прототипов с полным циклом разработки?

"Весь цикл разработки", такой как Ruby и Python: веб-фреймворки, создание сценариев / взаимодействие ссистема, инструменты для отладки, профилирования и т. д.

Спасибо

Краткое примечание по PBPL: (давайте назовем эти языки PBPL: язык программирования на основе прототипов)

Есть несколько PBPL.Некоторые из них широко используются, например, JavaScript (который Node.js может перенести в поле - или нет!).Другим языком является ActionScript, который также является PBPL, но тесно связан с Flash VM (правильно ли это сказать?).

Из менее известных я могу говорить о Lua, который имеет сильную репутацию в разработке игр (в основном распространяется WOW) но никогда не снимал как полноценный язык.У Lua есть концепция таблиц, которая может предоставить вам некое средство программирования на основе прототипов.

Существует также JScript (инструмент сценариев Windows), который уже бесполезен для новичка PowerShell (я использовал JScript для управления IIS, но яникогда не понимал, что такое JScript!).

Другие могут быть названы как io (действительно, очень очень аккуратный, вы влюбитесь в него; совершенно невозможно использовать) и REBOL (О чем это все?инструмент для написания сценариев? Вы, должно быть, шутите!) и newLISP (который на самом деле является полным языком, но никто никогда не слышал об этом).

Конечно, здесь есть еще много всего, но я не помню илиЯ не понимал их как вещи в реальном мире, такие как Самость.

Ответы [ 3 ]

2 голосов
/ 08 декабря 2010

Это не похоже на это. Проверяя список Википедии, я не могу сказать, что какие-либо из них особенно популярны для системного или автономного программирования. И у меня есть несколько теорий, почему:

  • Инерция - люди больше знакомы с языками, основанными на процедурном / процедурном классе. Точно так же процедурные языки более популярны, чем функциональные, я думаю, что нам легче мысленно отслеживать объекты, которые мы указали заранее
  • Менее подвержен ошибкам - когда я использую класс, я не могу использовать вещи, не указанные в этом классе. Это немного менее гибко, но при работе над большим проектом я очень, очень благодарен за возможность посмотреть спецификацию для объекта (даже если я написал этот объект) и узнать, как будет вести себя объект. То есть я знаю, что компилятор, вероятно, выдаст ошибку, если я попытаюсь сделать что-то глупое, например, использовать неправильное имя переменной.
  • Вы упоминаете "создание сценариев / взаимодействие с системой". Что касается этого, классы даже не особенно популярны. Одноразовые скрипты могут использовать несколько функций или даже просто процедурный код. Я знаю, что если я напишу простой маленький скрипт на Python, у меня будет несколько простых функций и я буду использовать встроенные объекты. Это ОО, но я ничего не пишу.
  • Нет / не так много подходящих языков. Это я думаю самый большой. Lua отлично подходит для встроенных скриптов, но я не думаю, что он может заменить скрипты Python / Perl в моем наборе инструментов.
  • Предубеждение - я не думаю, что ужасное прошлое Javascript не хорошо для языков на основе прототипов. Javascript на самом деле довольно приятный язык, когда вы видите код, написанный кем-то, кто его понимает, но все равно есть много издевательств - он выглядит как детский язык. Если вы говорите: «Я программист на Javascript», это будет воспринято всерьез.
  • РЕДАКТИРОВАТЬ Это либо знак, либо симптом, но большинство языков PT являются встроенными или специфичными для приложения языками сценариев (Lua в играх или для пользовательского интерфейса, Javascript на веб-страницах или для пользовательского интерфейса, как в Firefox, и т. Д.). ). Я не уверен, почему это так, но они либо больше подходят для настройки приложений или иным образом встраиваемости, либо для этого предназначены общие реализации. Python может быть легко встроен в программу, и иногда это так, но он более распространен автономно.

Это может быть более философским, чем вы ищете, и я ни в коем случае не эксперт на основе прототипов, но я сделал немало Javascript и возился с Lua. Я придерживаюсь своего ответа, основываясь, по крайней мере, на личном опыте. YMMV.

Я не вижу причин, по которым язык PT, такой полезный, как Python, не может быть написан, но, похоже, никто этого не делал.

2 голосов
/ 08 декабря 2010

Я бы сказал, что JavaScript - это язык реального мира.Основное отличие состоит в том, что он, как правило, встраивается во множество различных сред, а не является отдельной средой разработки.

Помимо очевидного использования в браузере, JavaScript может использоваться на стороне сервера с использованием CouchDB (который становится очень популярным в качестве базы данных как для веб-сайтов, так и для рабочего стола ) или Node.js - есть также множество других .Его также можно использовать для создания настольных приложений через seed или gjs .

Что касается средств отладки, они включены в большинство веб-браузеров и имеют такие расширения, какfirebug.

Подход отличается в в JavaScript - вместо базового языка и использования библиотек для доступа к различным средам программирования он встроен непосредственно в эти среды.

0 голосов
/ 21 декабря 2010

Я не нашел одного, и единственный кандидат (JavaScript) все еще проводит первые шаги (например, Node.js).

Еще одним допустимым кандидатом был бы JavaScript!Существует реализация на основе .NET с именем IronJS , которая реализована на F # и работает довольно хорошо.Таким образом, можно получить полный цикл разработки .NET на своем наборе инструментов.Он основан на DLR и может использоваться как в .NET, так и в Mono!

...