Я собираюсь изучать Ruby, Haskell и Prolog в университете. Теперь, мне интересно, что должно привлечь мое внимание. У меня есть полгода, чтобы сделать все три, а это означает, что мне нужно выбрать один язык, чтобы получить внеурочное время. Остальные я узнаю достаточно, чтобы сделать очень хорошо в курсе.
Я достаточно хорошо знаком с Haskell и Prolog, чтобы узнать, что их изучение научит меня нескольким очень важным концепциям информатики. Я не уверен в рубине.
Пройдя несколько руководств и интродукций, у меня создается впечатление, что рубин - это много мелкой магии. Теперь я спрашиваю рубинов: что я получу, если я решит никогда не использовать его снова, после того, как я провел полгода, изучая его, что Питон меня не научил.
Этот вопрос не предназначен, чтобы "сделать дело" для рубина, хотя я понимаю, что это потенциальная тема большой аргументации.
Я использую Python для всей моей работы в CS сейчас. Я тоже много программировал с ним. Я также уже хорошо знаком с объектно-ориентированным программированием (в Java, Python и С#). И я, как я сказал, сделаю логическое программирование с помощью Prolog.
Что же осталось для Ruby, чтобы научить меня?
Для дальнейшего разбавления вопроса:
-
Мне не интересно писать программ или прохладных веб-приложений. Меня просто интересует компьютер Научные бит. Реализация алгоритмов, структур данных и т.д. (Хотя с удовольствием наверняка не повредит)
-
В идеале обсуждаемые концепции должны быть изучены примерно через 1.000 часов.
-
Меня не интересуют Rails. Любая технология, которая скрывает сложность, в этом случае вредна.
Я не могу помочь этому вопросу быть аргументированным. Но в идеальном ответе на этот вопрос будет упомянуто глубоко важное понятие теоретической информатики, которое рубин помогает программисту использовать и понимать, чтобы получить научное адъювантное знание.
К кандидатам, с которыми я столкнулся, есть мета-программирование и многопоточность. Я не знаю, является ли рубин особенно замечательным, чтобы изучить любой из них.