Этот вопрос является чрезвычайно субъективным и открытым. Это может даже звучать как то, что я должен просто изучить для себя и принять собственное решение. Но я хотел бы выложить это и получить некоторые мысли от других.
Короче говоря, я сгорел от крысиных бегов и в этом году на самоконтроле. Многое из этого заключается в том, чтобы отдохнуть от корпоративной рутины и путешествовать, но я также хочу поиграть с новыми технологиями и сделать несколько проектов самообучения, чтобы быть в курсе программирования, и хорошо - я просто люблю работать с программирование, когда нет давления!
Вот в чем дело: я программист на всю жизнь C / C ++ / Java. Я немного болтливый, так как я работал с этим семейством языков всю свою карьеру программиста. Поэтому я хотел бы выучить язык, который не так тесно связан с этой группой. То, что я в основном ищу, это язык, который является относительно универсальным, интересным для изучения, имеет несколько новых концепций, которые отличаются от C ++ / Java, и имеет хорошее сообщество. Второе соображение заключается в том, что он имеет хорошие рамки веб-разработки. Третичное соображение заключается в том, что оно не является полностью академическим (читай: существуют реальные рабочие места, использующие его).
Я сузил его до Ruby или Python. Мое впечатление от Ruby состоит в том, что он чрезвычайно ориентирован на веб - единственное его реальное применение - это язык сценариев на стороне сервера для выполнения веб-задач (в основном Ruby on Rails). У меня нет большого впечатления от Python, за исключением того, что у него, похоже, есть страстная фанатская база, и он выглядит довольно универсальным языком.
TL; DR, и, говоря кратко, насколько это возможно: что из этого будет лучше для парня C ++ / Java, чтобы научиться новым взглядам на программирование? И что является более открытым и универсальным и применимо к более широкому набору приложений? Сейчас я склоняюсь к Ruby, но до такой степени беспокоюсь, что похоже, что он используется только как веб-язык на стороне сервера.
Ответы:
Не позволяйте тому факту, что Ruby превратился в общий язык в значительной степени из-за Rails (фреймворка веб-приложений), обманывают вас. Это язык программирования общего назначения, и вы можете использовать его для всего, для чего вы можете использовать любой другой язык.
Поиграйте с Руби и посмотрите, влюбитесь ли вы в нее. Вы или будете или не будете. Это похоже на музыку Grateful Dead; Вы либо любите это, либо терпите.
Руби растянет ваш мозг. Во многих отношениях он настолько далек от C ++ / Java, насколько это возможно. Я пришел из C и C #, и мне показалось, что динамичность и мощь метапрограммирования Руби довольно опьяняющие.
Тем не менее, Python является абсолютно выдающимся языком, и он выбьет вас из коляске.
Почему бы не изучить оба? Я использую оба на регулярной основе: Ruby для программирования с Rails и Python для работы с Google AppEngine.
источник
Правда, я почти не использовал Ruby, но вот мои впечатления от Python:
Эти две вещи выделяются для меня.
источник
object
). Кроме того,len(obj)
это ярлык для вызоваobj.__len__()
, аfor i in range
также абстрагирует подробности работы действующих объектов генератора. Я думаю / эквивалентно, но отличается / точнее.Если вы проводите творческий отпуск на целый год, я бы посоветовал потратить неделю или две на изучение каждого из них, а затем решить для себя, что вам больше нравится. У меня есть опыт работы с обоими, и, по моему мнению, они оба настолько способны, что вам действительно нужно решить, какой из них вы предпочитаете.
источник
ИМО, вы должны пойти с Python. Причина в том, что он более универсален, вы можете использовать его практически для всего. Как вы заметили, Ruby больше используется в веб-разработке благодаря своим веб-фреймворкам. В отличие от Python, Ruby не так хорош для разработки настольных приложений с графическим интерфейсом, программ для числовой, статистической обработки или обработки изображений.
источник
Ruby существует намного дольше, чем рельсы, поэтому позвольте мне рассказать об этом в мире
Ruby != web
, хотя он делает это очень хорошо. Есть множество систем связанных вещей, которые он может и делает. Кажется, что вся среда Rails поглотила весь остальной мир Ruby. И да, я фанат Ruby.Python, с другой стороны, многое делает для этого, и он интегрирован почти со всем в Linux. Это говорит о том, что его, вероятно, довольно легко включить в более крупные программы (по сравнению с Ruby, Java и т. Д.). Существует немало инфраструктуры Ubuntu Linux, написанной на Python, которая говорит мне, что Python имеет применение в системном программировании. Я слышал, что его веб-фреймворк действительно хорош, я еще не играл с ним.
Тем не менее, и Ruby, и Python являются одинаково способными языками, и вы обнаружите, что они значительно облегчат вашу жизнь. В сообществе Ruby гораздо больше веб-руководителей, но это еще не все. Я также использовал его в ряде инфраструктурных проектов.
источник
Это частный случай « Идеальной последовательности изучения языка программирования» и подобных вопросов . Вам нужен не «один совершенный язык», вам нужны несколько языковых парадигм и многократный опыт обучения, чтобы открыть свой разум.
Я знаю, что вы сказали, что сузили его до Ruby и Python, но я предлагаю вам начать с Racket (популярной схемы). Он создан для обучения и приятно потянет ваш мозг к функциональному программированию, интерактивному программированию и динамической типизации. Здесь нет рабочих мест (буквально ноль), очень маленького, фрагментированного сообщества и нет крупных веб-фреймворков, именно поэтому вы не будете зацикливаться на этом; пожарить мозги некоторое время, а затем двигаться дальше.
Во-вторых, вы хотите изучить Ruby или Python для возможных рабочих мест. Я предлагаю вам изучить оба. Изучить второй из этих двух будет намного легче, чем первый, несмотря на их различия. Что касается возможных рабочих мест, мое внутреннее чувство заключается в том, что из-за Rails работает больше Ruby, но я знаю, что в этой области есть и некоторые работы Zope. Инвестируйте хотя бы в одну из них, но также проверяйте другую как минимум достаточно долго, чтобы построить что-то маленькое.
Честно говоря, вы, вероятно, узнаете больше за первую неделю работы с кем-либо из них, чем когда-либо самостоятельно; у них обоих большие экосистемы с множеством инструментов, культурой и идиомами.
tl; dr: оба и схема.
источник
Я тоже пришел из Java / C ++ и последние 4 месяца программировал на Python с использованием инфраструктуры Django, и это действительно здорово. Всякий раз, когда у меня есть проблема или вопрос, я могу найти объяснения существующих сообщений. Я не могу поручиться за Руби, так как я еще не использовал его, но я обязательно попробую, когда у меня будет время.
Мне лично нравится, как вы можете делать вещи очень быстро с Python, так как он имеет много встроенных полезных функций.
источник
Я бы проголосовал за Руби. Я пришел из .Net и C # фона, сначала попробовал Python, но Ruby просто очаровал меня =)
Я пишу в нем много системных вещей и некоторых разработчиков Rails. Он способен как Python в системном программировании и великолепен в сети. И это чувствует себя более отполированным для меня ..
источник