3

Я рассматриваю возможность разработки инструмента командной строки. Я хотел бы, чтобы язык реализации этого инструмента удовлетворял следующим критериям:Параллельный интерпретируемый язык для инструмента командной строки?

  • Интерпретировано.
  • Межплатформенная (по крайней мере, Windows, MacOS, Linux, BSD) и нейтральная архитектура (работает на x86, ARM, POWER и т. Д.)
  • Широко развернуто (например, можно загрузить с помощью диспетчера пакетов в вышеуказанных системах).
  • Предлагает параллелизм на основе потоков с истинным параллельным выполнением через несколько ядер - без блокировки глобального интерпретатора и т. Д.
  • Модульная система, которая может загружать код пользователя - расширения для инструмента являются обязательным прецедентом.
  • Хорошие механизмы абстракции (generics, polymorphism, lambdas и т. Д.)
  • Мультипарадигма: нет экстремальных мнений относительно функционального программирования, модели актера и т. Д. Пользователям не нужно программировать языковых экспертов для написания расширений.

Наряду с указанными выше жестких требований, следующие важные хорошо к имущим:

  • JIT.
  • Статически типизированный, с типом вывода.
  • Стандартная библиотека с высококачественными реализациями стандартных структур данных.
  • Простой синтаксис, особенно для декларирования литературных данных.
  • Относительно дружелюбный для новичков, для пользователей, которые написали расширения.

Я понимаю, что много спросить, и, вероятно, нет ни одного языка, который бы заставил меня все это. Что меня ближе?

+0

Почему бы * интерпретировать ваши критерии? Технически любой язык может быть * интерпретирован *, поэтому он не является свойством языка. – Zulan

+0

@ Zulan, я думаю, что acm означает, что перед выполнением не должно быть дополнительного явного этапа компиляции. Вероятно, это требование добавлено для упрощения поддержки настраиваемых пользовательских плагинов. – SergGr

+0

@ Zulan. Я считаю, что я хочу, чтобы на языке был переводчик. Однако у SergGr все правильно, почему я хочу переводчика. И именно интерпретатор должен иметь различные свойства времени выполнения и т. Д. – acm

ответ

0

Я думаю, что этот вопрос в скором времени будет закрыт, как вопрос в основном на основе мнений, но все-таки здесь моя попытка:

Groovy

Это полноценный JVM-ориентированный язык, который уже тикает наиболее отметок в вашем списке требований, и есть классы groovysh tool и GroovyShell, которые похожи на поведение интерпретатора.

 Смежные вопросы

  • Нет связанных вопросов^_^