Если мне нравится Ruby много, есть ли причина, по которой я должен изучить другой язык сейчас, например, Lua или Erlang?Если мне нравится Ruby много, есть ли причина, по которой я должен изучить другой язык сейчас, например, Lua или Erlang?
ответ
Новые языки программирования, как и разговорные языки, могут открыть новые перспективы. Изучение новых языков - особенно те, которые отличаются от того, к чему вы привыкли (и Эрланг, вероятно, поместит этот законопроект) - может научить вас много разных вещей, которых вы даже не знали know Вы не знали о программировании , Так что да, я думаю, вам абсолютно нужно, даже если вы просто учитесь достаточно, чтобы поработать с ним и почувствовать новый язык.
С другой стороны, есть что сказать, чтобы действительно хорошо знать язык. Вы сможете сделать гораздо больше с углубленным знанием одного языка, чем с поверхностным знанием дюжины.
«Если вы ТОЛЬКО знаете молоток, вы смотрите КАЖДУЮ проблему, как будто это гвоздь» –
И если вы знаете только, что такое молот, вы не можете водить что-нибудь. ;) –
Думаю, вы все равно можете управлять автомобилем. –
Изучение функционального языка, в частности, может быть чрезвычайно полезным. Знакомство с функциональным стилем программирования является верным шагом к тому, чтобы стать лучшим программистом. Лисп (или его производные), в частности, является хорошим языком для изучения. Вот список прошлых резьбы на SO, которые могут предложить вам некоторое представление по этим направлениям:
Я всегда люблю изучать новые языки для простого вызов Это. Это держит мой мозг. Я также обнаружил, что для хорошего корма для собеседований можно сказать: «Я гибкий, я адаптируюсь к тому, что может быть в будущем, и я могу доказать это своим длинным списком языков».
Оставляя в стороне (отлично) общие причины хотеть выучить другой язык, если вам нравится Руби много вы можете
Узнайте Smalltalk, который является языком очень, очень похожим на Ruby, но в более чистой форме.
Учить язык, который очень, очень разные — сказать то, что базируется на алгебраических типов данных и функций, а не объекты и методы, и что-то с статической системой типа, а не системы — динамического типа, но то, что, как Ruby, будет поддерживать мощные методы составления программ и общего программирования. Хорошие кандидаты будут включать Стандарт ML и Haskell.
Учить язык, который очень, очень разные — сказать что-то, что заставляет вас контролировать каждый бит, адрес и слово в памяти — что-то, что заставляет вас понять и взять под контроль оборудования. Другими словами, изучите C.
Что касается других языков, которые вы упоминаете,
Lua маленький и очень элегантно разработаны и реализованы. Это может понравиться рубисту в вас. Но, в отличие от Ruby, он не навязывает большую часть мировоззрения; это больше коллекция деталей. Я бы предположил, что вы, скорее всего, оцените и насладитесь Lua после того, как вы сначала работали на трех-четырех других языках.
Erlang интересен, но у меня есть ощущение, что оно либо слишком разное (чисто функциональное, распределенное), либо не совсем другое (система динамического типа). Но если он обратится к вам, идите на это.
Мой главный язык - PHP. Я поклонник сценариев, тем не менее я погрузился в C#, Java, Python, Ruby и даже в OO JavaScript-книги, чтобы найти новые механизмы, способы мышления. Например, я нашел довольно много трюков в Java, которые я мог бы реализовать в своей повседневной работе. Поэтому изучение или просто изучение новых языков может расширить вашу перспективу.
Мне кажется, что профессионал изучает инструменты, которые ему нужно использовать. Рамки, контейнеры, языки, все это честная игра. Я начал в Паскале, пошел на C, а затем на C++. Затем преобразован в Java. В наши дни его главным образом Java с большим количеством Javascript и некоторым PHP. Достаточно легко? Ну, мне также нужно изучить скрипты Bash и Perl. Не обращайте внимания на все остальное дерьмо, которое мне нужно получить поверх (если вы говорите, что понимаете всю аутентификацию в Интернете, я назову вас лжецом). Там много чего. Входите. Будьте готовы попробовать разные вещи.
Больше, чем разговорные языки, я бы сказал. Я не уверен, что для этого нужно, чтобы рубист учился у Луа, но, например, Эрланг? Lisp? C? Совершенно разные способы мышления. Кроме того, Ruby не подходит для каждого приложения. Иногда вы действительно хотите C. – Chuck
Но если вы все еще «любите рубины много», возможно, стоит продолжить изучение кривой обучения. (Не применимо к рубину - истинно для любого языка.) – dkretz