Можете ли вы улучшить свои навыки программирования, изучая другие языковые парадигмы?
По моему опыту, безусловно, да. Наличие нескольких разных способов решения проблемы похоже на палитру инструментов. Однажды вам (как и мне) придется использовать эти другие инструменты. Или, возможно, нет. Все это зависит. Некоторые exempels:
Языки, как правило, не одиноки, они приходят с окружающей средой. Я потратил немного времени на изучение странного языка, известного как awk . Он основан на сопоставлении с шаблоном с использованием «регулярных выражений». Пытаясь изучить C ++ STL (не очень успешно), я узнал о картах. Объединяя эти две концепции, я мог очень быстро написать несколько утилит для преобразования текста в Pearl (единственный язык, доступный на платформе).
Главным образом ради забавы я пытался выучить эрланг (не очень успешно). Он имеет библиотеку функций, известную как OTP, реализующую, среди прочего, способ обработки ошибок, иногда известный как «дать сбой» и монитор, перезапускающий функции. Я использовал эту идею в некоторых областях, иногда просто позволяя вещам потерпеть неудачу вместо того, чтобы делать бесконечные тесты.
Попытка изучить Haskell (опять же не очень успешно) действительно открыла мне глаза на другие способы решения проблем. Функциональное программирование (на мой взгляд) начинается с написания кода, который говорит о желаемом результате, а не с написания шагов, необходимых для его достижения. Я считаю, что это действительно помогло мне в написании лучшего кода SQL.
В последнее время я попробовал немного javascript. И нашел среду, известную как nodered. Не требуется код для создания небольшого сервера домашней автоматизации.
Чтобы поместить это в перспективу, большая часть моей работы над различными языками была (и есть) на довольно мелком уровне, главным образом, чтобы понять то, о чем говорят люди. Есть очень мало языков, на которых я могу быть продуктивным.