Atualmente, estou tentando decidir qual idioma do servidor aprender e usar para o desenvolvimento da Web e, embora seja relativamente fácil obter informações sobre por que x, y ou z é uma coisa boa, é mais difícil descobrir as desvantagens de cada um. deles.
Em particular, estou curioso sobre quais são as desvantagens de aprender e / ou usar o Ruby on Rails em oposição a qualquer outra linguagem / estrutura.
ruby-on-rails
server-side
maxfielden
fonte
fonte
Respostas:
Falando da experiência: A desvantagem é que você confia demais na estrutura do Rails . Isso é ótimo e maravilhoso se você estiver apenas escrevendo aplicativos CRUD simples e inovadores que se enquadram diretamente no "ponto ideal" do Rails; sua produtividade disparará. No entanto, no momento em que você precisar fazer algo fora desse ponto ideal - interagir com um banco de dados existente, conversar com outro aplicativo que não tenha uma API JSON ou XML definida, implementar um fluxo de trabalho complicado, o Rails se tornará seu inimigo. ele éÉ possível fazer essas coisas com o Rails, mas isso é "contrário", então você está basicamente sozinho tentando descobrir como fazê-lo, pois a comunidade geralmente apenas responde com "Não faça isso, não é o Rails" way "- isso resulta em perda de produtividade ou código muito confuso, pois você basicamente precisa invadir a estrutura do Rails.
Além disso, há uma desvantagem não dita: tudo o mais parecerá feio e desleixado. Depois de provar o doce e doce néctar do Rails (tudo bem, evangelizando um pouquinho aqui ...) todo o resto é descontraído. Voltar do Rails para o PHP, o ASP.NET WebForms ou o Java é como andar em uma cama de unhas depois de brincar em um jardim exuberante; você não verá as outras linguagens / estruturas da mesma maneira e, embora ainda as aprecie, secretamente desejará o abraço amoroso do Rails.
fonte
Para o seu primeiro idioma do servidor, sinto que pode haver alguns problemas com o RoR:
Você não está apenas aprendendo uma língua, está aprendendo uma estrutura. Eu definitivamente levaria algum tempo para brincar com o velho rubi comum antes de pular nos trilhos.
Uma vez que é uma estrutura, e uma opinião 'opinativa', sinto que isso lhe daria um escopo muito limitado do que tudo está acontecendo na estrutura.
No geral, o Ruby on Rails pode ser um bom ponto de partida para fazer a bola rolar, mas há muito a aprender sobre desenvolvimento web que você pode perder por confiar demais em uma única estrutura.
fonte
Eu tentei aprender o RoR várias vezes e meu maior problema é sempre tentar fazer com que os pacotes funcionem corretamente e a documentação. O problema com a documentação é que ela sempre parece desatualizada (ou muito básica). Comprei o básico do site, mas além disso tudo parecia tão datado (até o livro que comprei e acabei retornando). Outra coisa que pode ser uma desvantagem são as dependências que algumas das bibliotecas têm e como elas podem entrar em conflito com outra. como afirma Ben Coe .
Algo em que pensei mais tarde e, em vez de fazer um comentário, editarei minha resposta: RoR tem a chance de arruinar o Ruby para você. Eu sei que quando tentei, me fez pensar que "Ruby era estúpido". Então, alguns meses depois, decidi experimentar Ruby e amei a linguagem, foi a estrutura que me fez odiar a linguagem. Eu não me envolvi muito nisso, mas quando o fiz, gostei muito de Sinatra . Acho que tive a alegria que a maioria das pessoas tira do RoR de Sinatra.
fonte
rake db:migrate
. Por outro lado, achei Sinatra muito mais simples e fácil de entender. De qualquer forma, eu prefiro configurar as coisas do meu jeito, e a estrutura básica de um aplicativo de trilhos parecia muito complicada para mim.Se este é seu primeiro idioma no servidor, é tão bom quanto qualquer outro. O que você deve fazer é se concentrar em um e, depois de sentir que o domina, explore outros e deduza suas próprias conclusões.
Trabalho diariamente com o RoR e o ASP.NET, mas, estranhamente, prefiro o mundo do ASP.NET, mas isso tem mais a ver com a filosofia pessoal do que com a linguagem ou a própria arquitetura. (Sou um pouco maníaco por controle e, pessoalmente, gravito para linguagens fortemente tipadas).
Independentemente disso, eu digo para tentar. O RoR é um ótimo ambiente para se trabalhar, mas antes de você ir direto para o Rails, sinta-se à vontade com o Ruby como idioma. Além das coisas na Web, o Ruby é uma linguagem de script bastante interessante se você precisar gerenciar uma caixa * nix e economizar uma grande quantidade de tempo.
fonte
Como alguém que aprendeu Rails recentemente (como um hobby - nunca o usou para desenvolvimento de nível comercial) e já havia trabalhado no JEE e ASP.NET, Wayne M a resposta de soou muito verdadeira.
Enfim, há um lado sutil nisso que ninguém mencionou ainda, mas que me incomodou um pouco com o Rails - a forte dependência da convenção sobre a configuração .
Essencialmente, se você está acostumado a orientações orientadas a "Localizar em arquivos" com uma nova base de código, o CoC provavelmente o incomodará ao tentar pegar o Rails. É ótimo para greenfields CRUD simples que são feitos exatamente da maneira Rails (como diz Wayne M), mas para algo mais exclusivo e complicado, será difícil descobrir o que está acontecendo se você tentar calcular o fluxo procurando por material em arquivos para ver como o encanamento está conectado.
Embora eu ache que esse problema provavelmente não será tão ruim assim que você tiver muito mais experiência com o Rails. Definitivamente, posso ver que isso é um problema para alguém proveniente do desenvolvimento da Web Java / .NET oldskool que está acostumado a um fluxo de configuração muito detalhado - e que está acostumado a ver tudo explicado em algum lugar.
fonte
Comigo, o maior problema com o aprendizado do meu primeiro X (no seu caso, X é uma linguagem / estrutura da Web do lado do servidor), é que, assim que encontrar outros problemas, quero começar imediatamente a aplicar o X, mesmo quando pode não ser a melhor opção. Fiquei melhor nisso, mas ainda é uma forte tendência.
O Ruby on Rails é uma boa opção para começar - há uma boa comunidade, muita documentação e bons tutoriais. Mas lembre-se das alternativas, especialmente se você começar a desenvolver mais a web. O RoR pode ser um exagero para alguns problemas, uma solução inadequada para outros e a melhor opção para um conjunto diferente. Saiba seus pontos fortes, fracos e como usar a ferramenta.
fonte
Meu conselho seria ter uma imagem clara do projeto que você deseja concluir e começar a tentar construí-lo. Conforme você enfrenta problemas, você finalmente pega todas as ferramentas certas. Essa abordagem é boa porque você está tomando decisões com base em problemas sucintos.
Outra coisa a fazer é comprar livros. Tutoriais da Internet não são suficientes na minha experiência; eles também deixam muito espaço aberto para distração. Quando você tem um livro, os editores precisam garantir que ele ofereça valor, pois perderão dinheiro se houver críticas negativas. Gastar um pouco de dinheiro economizará muito tempo.
fonte
Sinceramente, não consigo entender quem fala poeticamente sobre o que é uma caminhada no jardim Ruby-on-Rails. Eu vim para ele como um desenvolvedor experiente de ASP.NET-MVC, Java, PHP, Python - e achei o mais terrível desperdício de tempo de todos os tempos! 90% das respostas on-line do Google estão erradas ou incompletas. Por quê? Isso mudou muito a cada ano? Ou será que ninguém se importa em fazer o código realmente funcionar? Levei muito tempo para fazer coisas simples; muito, muito mais do que seria necessário em C # / ASP.NET-MVC, por exemplo. Certamente nunca me levou nem perto desse tempo para aprender minhas tecnologias originais. Concedido, o ROR é conciso. Se isso é importante para você. Mas eu raramente achei claro como criar código que realizasse uma tarefa. Pessoalmente, prefiro digitar no teclado por 20 segundos para escrever um código que definitivamente funcione, é claro e você pode segui-lo, em vez de digitar o código Ruby conciso por 2 segundos, mas que nunca funciona até que eu fique acordado a noite toda procurando alguma maneira de fazê-lo realmente funcionar. É uma pilha horrível e fedorenta de dodô. Por quê? Será que o código-fonte aberto (como no livre) não produz incentivos para torná-lo uma ferramenta de qualidade? Demasiado script-kiddies bombeando revisões e módulos e documentação ruim para ele? Eu não sei. Mas quando finalmente consegui escapar do primeiro projeto Ruby-Rails, jurei que nunca mais entraria nessa confusão! não produz incentivos para torná-lo uma ferramenta de qualidade? Demasiado script-kiddies bombeando revisões e módulos e documentação ruim para ele? Eu não sei. Mas quando finalmente consegui escapar do primeiro projeto Ruby-Rails, jurei que nunca mais entraria nessa confusão! não produz incentivos para torná-lo uma ferramenta de qualidade? Demasiado script-kiddies bombeando revisões e módulos e documentação ruim para ele? Eu não sei. Mas quando finalmente consegui escapar do primeiro projeto Ruby-Rails, jurei que nunca mais entraria nessa confusão!
fonte
Eu sugiro que você analise os índices que classificam a prevalência de diferentes idiomas / scripts. Aqui está um link que pode ser útil: profissionalmente popular usou idiomas relacionados à Web.
Isso mostra a popularidade relativa de idiomas relacionados à Web com base em pesquisas de ofertas de emprego online.
fonte
Concordo com algumas das respostas acima sobre o RoR, desenvolvo aplicativos com o RoR nos últimos dois anos. É realmente bom com aplicativos simples, as operações CRUD (Criar, Ler, Atualizar e Excluir) funcionam muito bem, é um benefício para o desenvolvimento de aplicativos simples, mas também são suas limitações. Embora haja muitas gemas que oferecem várias vantagens e facilidade de uso, é basicamente isso. Ao sair da caixa, você terá aplicativos distorcidos.
Se você é uma grande equipe trabalhando em um aplicativo usando o RoR, pode ser difícil se livrar da delegação de trabalho.
fonte