После переключения туда и обратно между несколькими языками сценариев на этой неделе я подумал, насколько они все похожи. Тем не менее, я всегда пытаюсь, чтобы Google (или в настоящее время SO) запомнил детали, такие как локальные эквиваленты «instanceof» и «конец с», или правильный синтаксис для объявления интерфейса, или что-то еще.
Это напомнило мне о (человеческом) языке Europonto . Просто выберите какой-то смутно английский синтаксис и какой-то смутно романский / германский / славянский словарь, и все это хорошо!
Что бы произошло, если бы мы попытались сделать то же самое с языком сценариев. В настроении для блоков с отступами в стиле Python сегодня? Отлично! Хотите использовать прототип объекта? Хорошо! Можно только вспомнить, как пишутся имена PHP какой-то библиотечной функции? Нет проблем!
Во всяком случае, это дикая и безумная идея. Поскольку нам нужен вопрос, который допускает конкретные ответы, давайте ужесточим его следующим образом:
Что может быть наиболее значительным конфликтом при создании языка сценариев, который разрешает все собственные синтаксис и библиотечные функции [Python, Ruby, PHP, Perl, shell и JavaScript], так что вы можете свободно смешивать блоки кода и функции имена между языками?
И скажем, что любая конкретная конструкция должна быть согласованной на уровне операторов. Итак, мы позволим:
foreach( $foo as $bar )
{
if $foo == 2:
print "hi"
}
но не, скажем,
foreach( $foo as $bar )
{
if $foo == 2:
print "hi"
endif
end
Конфликты могут включать: неоднозначности синтаксического анализатора; столкновение имен; противоречивая семантика для объектов или функций или замыканий; и т.д. Я предполагаю, что сфера будет огромной проблемой, но вы говорите мне.
Я начну с "wiki сообщества" с самого начала, поэтому, если вы считаете, что это забавный вопрос, но хотите сделать его более строгим, не стесняйтесь редактировать.