Esta questão é extremamente subjetiva e aberta. Pode até parecer algo que eu deveria pesquisar por mim mesmo e tomar minha própria decisão. Mas eu gostaria de divulgá-lo e obter alguns pensamentos de outras pessoas.
Para encurtar a história - eu me queimei com a corrida de ratos e estou em um período sabático autofinanciado este ano. Muito disso é dar um tempo na rotina corporativa e viajar, mas também quero brincar com novas tecnologias e fazer alguns projetos de autoaprendizagem, para manter a velocidade da programação e bem - eu adoro mexer com programação, quando não há pressão!
Aqui está a coisa: eu sou um programador C / C ++ / Java vitalício. Sou um pouco esnobe, desde que trabalhei com essa família de linguagens por toda a minha carreira em programação. Então, eu gostaria de aprender um idioma que não esteja tão intimamente relacionado a esse grupo. O que estou procurando basicamente é uma linguagem de propósito geral, divertida de aprender, com alguns novos conceitos que são diferentes de C ++ / Java e com uma boa comunidade. Uma consideração secundária é que ele possui boas estruturas de desenvolvimento da web. Uma consideração terciária é que não é totalmente acadêmico (leia-se: existem empregos no mundo real por aí usando-o).
Eu o reduzi para Ruby ou Python. Minha impressão do Ruby é que ele é extremamente orientado para a Web - que a única aplicação real dele é como uma linguagem de script do lado do servidor para fazer coisas na Web (principalmente Ruby on Rails). Eu não tenho muita impressão do Python, exceto que ele parece ter uma base de fãs apaixonada e parece ser uma linguagem bastante versátil.
TL; DR e, da maneira mais sucinta possível: qual seria melhor para um cara de C ++ / Java aprender a obter novas perspectivas de programação? E qual é o objetivo mais aberto e geral e aplicável a um conjunto mais amplo de aplicativos? Estou inclinado a Ruby no momento, mas me preocupo a ponto de parecer que não é mais que uma linguagem da Web do lado do servidor.
Respostas:
Não deixe o fato de o Ruby ter entrado na linguagem comum em grande parte por causa do Rails (a estrutura de aplicativos da web) enganar você. É uma linguagem de programação de uso geral e você pode usá-la para qualquer coisa que possa usar em qualquer outra linguagem.
Brinque com Ruby e veja se você se apaixona por ele. Você quer ou não. É como a música do Grateful Dead; você o ama ou não aguenta.
Ruby vai esticar seu cérebro. Em muitos aspectos, está o mais longe possível de C ++ / Java. Eu venho de um background em C e C # e achei a dinâmica e o poder de metaprogramação de Ruby bastante intoxicantes.
Dito isto, o Python é uma linguagem absolutamente extraordinária, e vai te tirar do sério.
Por que não aprender os dois? Uso os dois regularmente: Ruby para programação com Rails e Python para trabalhar com o Google AppEngine.
fonte
Eu mal usei Ruby, é certo, mas aqui estão minhas impressões sobre Python:
Essas duas coisas se destacam para mim.
fonte
object
). Além disso,len(obj)
é um atalho para chamarobj.__len__()
efor i in range
também abstrai os detalhes operacionais dos objetos geradores operacionais. Eu acho / equivalente, mas diferente / é mais preciso.Se você está tendo um ano sabático, sugiro que você gaste uma ou duas semanas aprendendo cada um e depois decida por si mesmo o que você mais gosta. Tenho experiência com ambos e, na minha opinião, ambos são tão capazes que você realmente precisa decidir qual deles prefere.
fonte
IMO, você deve ir com o Python. A razão é que é mais versátil, você pode usá-lo para quase tudo. O Ruby é, como você notou, mais usado no desenvolvimento web devido a seus frameworks web. Ao contrário do Python, o Ruby não é tão bom para o desenvolvimento de aplicativos de desktops gui, programas numéricos, estatísticos ou de processamento de imagens.
fonte
O Ruby existe há muito mais tempo do que os trilhos, então deixe-me divulgá-lo no mundo que
Ruby != web
, embora faça isso muito bem. Há uma série de coisas relacionadas a sistemas que ele pode e faz. Parece que toda a estrutura do Rails engoliu o resto do mundo Ruby. E sim, sou fã de Ruby.Por outro lado, o Python tem muito a oferecer e foi integrado a quase tudo no Linux. Isso me diz que provavelmente é bastante fácil incorporar em programas maiores (em comparação com Ruby, Java etc.). Há uma boa quantidade de infraestrutura do Ubuntu Linux escrita com Python, o que me diz que o Python tem aplicação na programação de sistemas. Ouvi dizer que o seu framework web é muito bom, ainda não brinquei com ele.
Dito isto, Ruby e Python são linguagens igualmente capazes, e você as encontrará facilitar sua vida. Ruby tem muito mais cabeças da web em sua comunidade, mas essa não é a totalidade da comunidade. Eu também o usei em vários projetos de infraestrutura.
fonte
Este é um caso especial de " Sequência ideal de aprendizado de idiomas de programação" e perguntas semelhantes . O que você precisa não é "a linguagem perfeita", você precisa de múltiplos paradigmas de linguagem e várias experiências de aprendizado para abrir sua mente.
Sei que você disse que reduziu para Ruby e Python, mas sugiro que comece com Racket (um esquema popular). Ele foi desenvolvido para o aprendizado e ajudará na programação funcional, programação interativa e digitação dinâmica. Não há empregos (literalmente zero), uma comunidade muito pequena e fragmentada e nenhuma estrutura da Web importante, e é exatamente por isso que você não fica preso nela; frite seu cérebro por um tempo e depois siga em frente.
Segundo, você deseja aprender Ruby ou Python para possíveis trabalhos. Eu sugiro que você aprenda os dois. Aprender o segundo desses dois será muito mais fácil do que o primeiro, apesar de suas diferenças. Quanto aos possíveis trabalhos, meu pressentimento é que há mais trabalho do Ruby por causa do Rails, mas eu sei que também há algum trabalho do Zope nessa área. Invista em pelo menos um deles, mas também verifique o outro pelo menos o tempo suficiente para criar algo pequeno.
Honestamente, você provavelmente aprenderá mais com sua primeira semana de trabalho do que nunca; ambos têm grandes ecossistemas com muitas ferramentas, cultura e expressões idiomáticas.
tl; dr: Both e Scheme.
fonte
Eu também vim do fundo Java / C ++ e tenho programado em Python com o framework Django nos últimos 4 meses e é realmente ótimo. Sempre que tenho um problema ou pergunta, posso encontrar explicações sobre as postagens existentes. Não posso garantir o Ruby porque ainda não o usei, mas definitivamente tentarei quando tiver algum tempo.
Pessoalmente, gosto de como você pode fazer coisas muito rapidamente com o Python, pois ele possui muitas funções úteis integradas.
fonte
Eu votei em Ruby. Eu vim do .Net e C #, tentei primeiro o Python, mas Ruby me encantou =)
Estou escrevendo muitas coisas do sistema nele, e alguns Rails dev. Ele é capaz como Python na programação do sistema e é incrível na web. E parece mais polido para mim ..
fonte