Quais são as desvantagens do RoR? [fechadas]

39

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.

maxfielden
fonte
5
Isso me fez odiar muito o ASP.NET. O que era um problema, já que esse era meu trabalho diário.
Jeremy
5
Apenas mencionando isso em um comentário, caso outros desejem elaborar, mas uma coisa que é ao mesmo tempo profissional e contrária é que o RoR pode ser um pouco "mágico" às vezes - pode ser difícil entender às vezes o que está acontecendo por trás as cenas (e, portanto, se você é novo no desenvolvimento da Web, terá muitas coisas como garantidas). Obviamente, isso é basicamente verdade para todos os idiomas de alto nível, e é também o que os torna mais fáceis e rápidos de trabalhar.
grautur
1
FWIW, se você está olhando para o RoR, definitivamente veja o ASP.NET MVC3 com o Razor. E honestamente, se você gosta de ser pago (com certeza), esse é 40% do motivo pelo qual desenvolvo no ASP.NET. Os outros 60% consideram que é o melhor período da plataforma da web, mesmo que tenha seus pontos negativos, quais desses quase todos foram sumariamente encerrados com o Nuget.
Pense no RoR como uma ferramenta para aplicativos CRUD, você pode fazer outras coisas com ele, mas para coisas mais gerais, outras linguagens / estruturas são mais flexíveis sem fazer bagunça.
Alfa64 # 5/12

Respostas:

59

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.

Wayne Molina
fonte
11
Parece com qualquer outra estrutura - no momento em que você precisa de algo pronto, torna-se uma luta.
Nemanja Trifunovic 20/06
12
Sim, mas descobri que é um pouco pior com o Rails, porque toda a estrutura é construída em torno da ideia de que você nunca terá um motivo para precisar de algo "pronto para uso". Compare isso com o Zend para PHP ou ASP.NET MVC ou Django para Python e eles são muito mais flexíveis que o Rails, enquanto ainda oferecem os benefícios de uma estrutura. Isso não é realmente um golpe contra o Rails.
Wayne Molina
3
Mas, felizmente, o RoR não é o único quadro da Web baseado em Ruby. Eu prefiro o Sinatra + Datamapper + Haml / Sass ou, alternativamente, o Sinatra + Sequel + Sequel + Haml / Sass para uma experiência SQL bruta ... O RoR é ótimo comparado às soluções baseadas em Java- oder .NET. Mas é um monstro pesado em comparação com outras estruturas da Web baseadas em Ruby.
Philip
4
Estou tendo dificuldades para determinar se Wayne ama ou odeia RoR. Essa relação de amor / ódio é comum entre a maioria dos desenvolvedores de RoR?
21411 Phil
2
@ Phil um pouco da Coluna A, um pouco da Coluna B. Adoro o RoR, mesmo que não conheça muito; Eu continuo tentando aprender porque é realmente bom. Mas, por outro lado, eu o usei em um aplicativo do "mundo real" e me incomodou quando tive que sair da caixa de um aplicativo CRUD que conversava com um único banco de dados com 1-2 modelos por formulário, e foi isso.
Wayne Molina
30

Para o seu primeiro idioma do servidor, sinto que pode haver alguns problemas com o RoR:

  1. 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.

  2. 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.

GSto
fonte
15

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.

Jetti
fonte
+1 Eu tive a mesma experiência. Tentei aprender Ruby on Rails, mas recebi um erro apenas ao fazê-lo 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.
Zhehao Mao
@Zhehao Mao - Fico feliz em ver que não sou o único com essa experiência. Embora, eu não acho que seja complicado ... desde que você pense exatamente da mesma maneira que o DHH. Se você tem um tipo diferente de processo de pensamento, o RoR pode ser uma dor na parte traseira.
Jetti
Eu acho que não é que seja complicado. Suponho que meu problema era que, toda vez que tentava criar um aplicativo rails, nada funcionava da maneira que a documentação dizia que deveria.
Zhehao Mao
Achei incrivelmente complicado por causa desse fato também. Foi também por isso que desisti. Para que seja RAD, tem que funcionar. Eu honestamente acho que eu poderia ter feito um aplicativo CRUD em C ++ mais rápido do que RoR por causa de todos os problemas que eu estava tendo ficando RoR instalado e funcionando (um pouco de exagero, mas ainda assim ...)
Jetti
Eu não tenho certeza se vocês estavam lendo os documentos certos, ou por que não pedir ajuda ...
sevenseacat
12

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.

Marlon
fonte
4
+1 para maníaco por controle. Eu também tenho um pouco desse traço. Não apenas para o tipo forte, mas também - na verdade, de certa forma, como configuração (apesar da verbosidade), em vez de convenções fazendo suposições para mim.
Bobby Tables
Idem, @Bobby Tables!
Marlon
6

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.

Bobby Tables
fonte
1
Isso me incomodou um pouco no começo, mas depois não o fez mais. Foi ótimo poder escrever uma migração de banco de dados para criar novas colunas e anexar a lógica de negócios aos novos dados sem nenhuma etapa de mapeamento separada.
precisa
@kevincline Como você consegue isso no RoR? Você pode fazer isso com o AOP no mundo Java e .NET.
esmagar
@crush: É doloroso em Java e .NET porque você precisa criar e mapear explicitamente propriedades na classe mapeada para cada coluna no banco de dados que a lógica de negócios usa. Adicionar uma coluna significa alterar várias classes. O RoR faz tudo isso em tempo de execução por convenção. Você modifica o esquema do banco de dados e altera a lógica de negócios e a camada de apresentação para usar a nova coluna.
kevin Cline
5

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.

Thomas Owens
fonte
4

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.

Spencer
fonte
Mas não se esqueça do railscasts.com. Ele faz um excelente trabalho ao fornecer uma visão geral de um tópico / conceito em cerca de 10 minutos. Lembro-me de passar um fim de semana inteiro tentando fazer com que o Sunspot funcionasse, depois assisti a um Railscast de 10 minutos sobre como implementar uma pesquisa facetada e a colocou em funcionamento em menos de uma hora. Vale a pena os US $ 9 / mês.
Kyle Carlson #
1

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!

James Hurst
fonte
é difícil ler este post (parede de texto). Você se importaria de editá -lo em uma forma melhor?
Gnat #
Essa resposta é hilária. O Rails é definitivamente, objetivamente, uma economia de tempo. Seus rancores contra isso são puramente porque você é novo e espera que tudo clique nas primeiras semanas. Somente as migrações de banco de dados valem a pena mudar para o Rails.
sergserg
0

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.

Telis Duvoir
fonte
0

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.

Prashanth Pendurthi
fonte
Uma coisa que me surpreendeu ocasionalmente foi que muitas gemas por aí que aparentemente parecem independentes do RoR acabam sendo usadas apenas com o RoR, e não de forma independente. Muito curioso para saber por que isso é. PS: Eu não sou um programador de Ruby, então eu posso ter tido uma impressão errada. Mas eu me deparei com isso algumas vezes. Infelizmente, não tenho exemplos no momento .
Htbaa