LINUX.ORG.RU

Как вы выбираете язык программирования для реализации проекта?

 , , ,


0

4

На практике часто встречаются задачи по выбору из неопределенного множества альтернатив, которые сложно оценить сходу. Причём не только в программировании, но и например в выборе бытовой техники, операционной системы / дистрибутива и тд. Как вы их решаете? А может есть какие-то исследования по наиболее эффективному выбору из множества альтернатив?

Я не прошу советов типа «используй язык $LANG», понятно что есть множество вариантов, но мне интересно, как решать проблемы выбора такого рода в общем случае?

Конкретно в области программирования:
Какой язык программирования изучить?
Какой язык выбрать для реализации конкретного проекта?
А если уже выбран язык, то какую выбрать имплементацию? Например существует более 80 имплементаций Scheme.

Конечно, требования к проекту могут сильно сократить список рассматриваемых альтернатив, например, если пишется плагин/аддон к другой программе/игре, то всё зависит от того, какие биндинги имеются для неё.

Но что, если таких ограничений нет? Как выбрать что-то в этом случае?

Предположим, вы хотите разработать игру, как выбрать движок? А может написать самостоятельно, используя графическую либу?

А если даже выбрали/разработали — в игре понадобится скриптовый язык. Какой встроить? Разрешать ли много языков или ограничиться одним?

Кроме того, кроме широко известных альтернатив вроде Squirrel, Lua и Tcl, есть и менее распространённые варианты, например javascript, newlisp, Scheme. Какой выбрать? А как узнать о других вариантах, которые сходу не вспомнились?

★★★★★

Последнее исправление: Xenius (всего исправлений: 3)

Ответ на: комментарий от monk

При чём тут рантайм? define — макрос. Существенно ничем не отличается от любого другого макроса, определяемого через define-syntax. Так как это макрос, то выполняется во время компиляции, а не в рантайме.

А сам define-syntax таки специальная форма, которую не выразить через макросы без неё самой. Разве нет?

Xenius ★★★★★
() автор топика

1. Иду на hh.ru

2. Смотрю, для какого языка больше всего резюме.

anonymous
()
Ответ на: комментарий от Xenius

if в лиспе возвращает значение, хотя и является специальной формой.

Тогда в scheme statements будут (define ...) и (set! ...).

В Common lisp можно сделать (values).

monk ★★★★★
()
Ответ на: комментарий от Xenius

А сам define-syntax таки специальная форма, которую не выразить через макросы без неё самой. Разве нет?

Семантически — макрос. Более того, именно define-syntax и фактически макрос: (expand #'(define-syntax foo 1)) => #'(define-syntaxes (foo) '1)

monk ★★★★★
()

Если пишешь сам или для себя, то при (более-менее) прочих равных, есть смысл просто брать то, что лучше знаешь. Во всех остальных случаях, какие-то ограничивающие факторы так или иначе будут. Скажем, ты о игре говоришь. Есть цель именно «написать игру», а не «побаловаться с написанием движка», то лучше брать готовый и выбор будет явно не из сотни вариантов. Со скриптовым языком так же - после выбора движка берёшь общеупотребимый и готово.

«Менее распространённые варианты» редко когда дадут достаточную выгоду. Особенно, если для тебя не актуальны такие факторы как «хочу использовать/изучить этот язык».

DarkEld3r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.