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