Ищете новый язык, который поддерживает интерпретируемые и нативные режимы компиляции - PullRequest
4 голосов
/ 20 декабря 2010

Я в настоящее время программирую на Perl, Python, C #, C, C ++, Java и некоторых других языках, и я ищу новый язык для использования в качестве основного при выполнении личных проектов.

Мои текущие критерии:

  • может работать как интерпретируемый язык (т. Е. Запускаться без необходимости ждать его компиляции);
  • может быть скомпилирован с собственным кодом;
  • строго типизированы (даже если не обязательно);
  • поддерживают макросы / шаблоны / морфинг кода / wtf, который вы хотите назвать;
  • имеет приличное количество библиотек или легкодоступны для него;

Идеи?Предложения?

Ответы [ 3 ]

5 голосов
/ 20 декабря 2010

Я бы предположил, что Haskell удовлетворяет вашим критериям.

  • Может быть запущен как интерпретируемый язык?Да, через GHCI.
  • Можно скомпилировать в собственный код?Да.
  • Строго набирается?Даже очень.Возможно, даже самый строго типизированный язык сегодня, за исключением некоторых средств проверки теорем, таких как Agda.
  • Поддержка макросов / шаблонов / морфинга?Если вы используете шаблон haskell.Это необязательное расширение языка, поэтому большинство библиотек не используют макросы.Я не использовал шаблон haskell сам, поэтому я не могу комментировать, если это хорошо.
  • Имеет ли приличную поддержку библиотеки?Стандартная библиотека не плохая.Существует также Hackage, открытый репозиторий библиотек Haskell, немного в стиле CPAN.

Кроме того, похоже, что вы уже знаете много императивных / объектно-ориентированных языков.ИМХО, если вы узнаете еще один из этих языков.вероятно, это будет немного другая перестановка функций, которые вы уже видели где-то еще.Добавление другой парадигмы программирования, такой как функциональное программирование, в ваш инструментарий, вероятно, будет лучшим опытом обучения.Хотя я предполагаю, является ли это преимуществом или нет, зависит от того, хотите ли вы учиться чему-то новому или быстро работать.

3 голосов
/ 20 декабря 2010

Common Lisp подходит: есть дополнительная типизация, доступна эффективная нативная компиляция, мощный REPL делает его идеальным выбором для сценариев, а также имеется мощное макро-метапрограммирование.

OCaml также подходит, с CamlP4для метапрограммирования.

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

Scala?Он запускает скрипты, хотя они компилируются (прозрачно) в первую очередь.Я не уверен, что вы имеете в виду под изменением кода и т. Д., Но это довольно хорошо для DSL.Он отвечает всем другим вашим требованиям - скомпилирован так же, как Java, строго типизирован и имеет достаточное количество собственных библиотек, а также все библиотеки Java.Я все еще новичок в этом, но мне это пока нравится.

...