Gente, Ruby está morto ou não?



A última vez que falo com desenvolvedores ou empresas, muitas vezes ouço a mesma história em palavras diferentes - "escrevemos em Ruby, mas agora estamos mudando". Por um lado, nada de surpreendente. O desenvolvimento é um negócio volátil, algo novo sempre aparece; todos os dias você precisa gastar muito cérebro para se manter relevante.

Mas, ao mesmo tempo, há alguma devoção à tecnologia e até o culto ao instrumento. Diga ao php shnik que é hora de mudar para o .NET. Você ouvirá "O PHP é excelente, ele escreve metade do mundo nele", ou você o verá na sua cara.

O que há de errado com Ruby e para onde foi sua popularidade explosiva? Eu conversei com alguns rubists. Por exemplo, Maxim Indykov, da Staply, cuja equipe muda de Ruby para Go, e Alexei Kuznetsov, da GeekBrains, uma empresa que começou com os cursos de Ruby e agora os abandonou completamente.

Por que Ruby é bom?


Maxim Indykov ( maks_ohs ): sintaxe bem pensada na qual o código parece o mais legível possível. Você pode escrever de forma clara e concisa. Um grande número de bibliotecas é implementado, cuja conexão não causa problemas.

Pavel Serezhin: A principal vantagem do ruby ​​são os trilhos, a melhor estrutura. Padrões claramente implementados, não como o node.js, são legais como você gosta. A própria codificação se assemelha ao inglês.

Alexey Kuznetsov: A linguagem possui uma sintaxe leve e muito concisa, adequada para descrever a DSL e a lógica de negócios. Baixo limiar de entrada, comunidade amigável. Um bom candidato para aprender como primeira língua.

Por que Ruby é ruim?


Maxim Indykov: Exigente de recursos, toda a história do desenvolvimento da linguagem é acompanhada por sérias otimizações no consumo de memória. Na implementação do interpretador de referência (MRI), não há multithreading real usando múltiplos processadores núcleos (GIL).

Digitação dinâmica. Mas isso é difícil de atribuir aos menos, porque permite acelerar o desenvolvimento, embora com uma perda de qualidade.

Pavel Serezhin: O quão bom é o rubi para escrever é tão repugnante para a leitura. É muito difícil entender o que está acontecendo, mas Deus não permita, o autor estava com uma síndrome de bicicleta e fez uma merda - aqui, pelo menos, se enforque imediatamente. Às vezes, a digitação estática não é suficiente.

Alexey Kuznetsov: A linguagem praticamente não se desenvolve no contexto de seus concorrentes mais próximos (JavaScript e Python). O crescimento explosivo do interesse em Ruby foi baseado principalmente no Ruby on Rails. Mas agora que as estruturas do tipo Rails estão em todas as linguagens Java populares, Ruby tem pouco a oferecer. A ausência da digitação estática opcional também não adiciona pontos Ruby.

Diga-me por que você escolheu?


Alexey Kuznetsov: Mudei para Ruby com C ++ há cerca de 5 anos e naquela época era uma escolha razoável. Eu queria criar produtos mais próximos dos usuários finais. PHP não tinha a melhor reputação. Em JS, a regra ES5 + JQuery e a sintaxe do Python não eram inspiradoras.

Pavel Serezhin: Primeiro de tudo, por causa dos trilhos, ele se encaixa idealmente na área de desenvolvimento web, o que eu queria fazer. E é bom escrever em uma linguagem orientada ao desenvolvedor.

Maxim Indykov: A comunidade realmente influenciou. Um grande número de tutoriais e práticas recomendadas de qualidade. Estrutura Rails que torna o desenvolvimento o mais claro possível desde o início do projeto até a implantação. Uma variedade de abordagens e implementações para escrever testes: RSpec, MiniTest e assim por diante.

Naquele momento, você achou que ele tinha futuro?


Maxim Indykov: Sim, o idioma está em constante evolução (e continua a fazê-lo agora). Havia um grande número de vagas. No contexto do php, tudo parecia o mais lógico e correto.

Pavel Serezhin: Eu nunca pensei que o rubi estivesse no topo, mas vice-versa. Sempre pareceu que haveriam poucos desenvolvedores, e isso criaria uma concorrência inesperada. Verdade - este é um dos pontos negativos, é quase impossível entrar a partir do nível de junho, exceto nas capitais.

Por que Ruby agora é cada vez menos necessário?


Pavel Serezhin: Agora, cada vez mais, eles apenas escolhem linguagens e estruturas mais populares para criar novos projetos. Ruby e trilhos estão um pouco atrasados ​​no desempenho e não acompanham as tendências. O suporte ao Webpack foi entregue aos trilhos, o que não ajuda muito - é mais fácil dividi-lo em dois projetos separados.

Alexey Kuznetsov: O Node.js está ativamente canibalizando o nicho de aplicativos da web, e o Go está ficando sem todos os tipos de utilitários.

Maxim Indykov: Parece-me que a constante complicação de tarefas me influenciou. A solução requer um aumento constante da capacidade e um uso crescente de recursos, ou tentativas de não atingir o teto, truques arquitetônicos.

Ruby foi criado como um PL, que é apreciado pelos desenvolvedores, não pelos negócios. Você acha que a atual impopularidade dele é um indicador de que essa estratégia não funciona?


Alexey Kuznetsov: Parece-me que a situação é oposta. Outras linguagens chegaram ao nível em que os desenvolvedores tiveram prazer em trabalhar com eles (desestruturação no ES6, fluxos no Java8, fraqueza zero no Kotlin e Swift, um modelo de competição no Go).

Maxim Indykov: As empresas querem economizar dinheiro - recursos do servidor. Quando houver tecnologia disponível para suportar a carga por ordens de magnitude mais altas, poucos se recusarão a economizar.
Quando essa tecnologia possui uma digitação estrita, o que é um diferencial para a confiabilidade - essa é outra pedra no jardim Ruby.

Parece que esta é a situação na Rússia: houve e há desenvolvimento de php. Então veio a popularidade local do ruby, que era retratada como um assassino de php, mas muitas vezes faltava outros argumentos comerciais além de "Bem, é realmente conveniente escrever em Ruby". Todos estavam assustados com a falta de especialistas. Com o advento do elixir e da partida, os argumentos são muito mais compreensíveis.

Você tem que sair com Ruby?


Alexei Kuznetsov: Acho que não devemos correr com Ruby, mas vale a pena procurar alternativas.

Maxim Indykov: Todo o mercado está migrando. Grandes empresas estão anunciando o uso do Go. Mas estamos falando de migração em certas áreas do problema. O conhecimento das novas tecnologias populares deve definitivamente ser possuído.

Pavel Serezhin: Agora o js é muito mais popular e bastante inconveniente para usar em duas linguagens de sintaxe diferentes. Historicamente, tenho mais alma para React, então acho que deixo a pilha cheia na frente.

Ele estará entre os idiomas completamente não reclamados?


Maxim Indykov: Não, para escrever rapidamente protótipos e MVP, onde é necessária facilidade de implementação, ele não tem igual. Há um campo não planejado de projetos que precisam ser implementados com rapidez e eficiência. O momento em que a otimização é necessária pode não chegar, mas como você sabe, a otimização prematura é ruim.

Pavel Serezhin: Acho que não. Para Ruby, permanecerá uma certa reputação de uma linguagem um pouco impopular, um nicho com sua comunidade.

Alexey Kuznetsov: Isso ainda está muito longe. Existem muitas situações em que não é tão importante no que o projeto está escrito. E muitos desenvolvedores estão prontos para o fim de semana para coletar MVP.
E com uma equipe de rubists otimizada, você pode desenvolver o produto com sucesso por anos (GitHub e GitLab - ambos escritos em RoR).

Ruby escreveu milhões de linhas de código que alguém precisa manter.
Mas o número de novos projetos só diminuirá com o tempo. Eu acho que há cinco anos a língua ainda tem.

O que poderia ajudar Ruby a permanecer popular?


Maxim Indykov: Grande flexibilidade para desenvolvedores de idiomas. Implemente melhorias para trabalhar com multithreading.

Pavel Serezhin: Melhorando o desempenho da própria linguagem e trilhos. E colocar a corporação com uma tonelada de dinheiro de apoio.

Alexey Kuznetsov: Ruby não se transformou em uma abóbora. Outras carruagens apareceram. Alguns vêm com motores a jato, outros brilham mais fortemente.
Eu acho que a digitação estática opcional (e o ajuste que pode ser feito por cima) pode ajudar.

Qual dos YaPs populares agora é mais adequado para o rubist?


Maxim Indykov: Em vez disso, depende das tarefas, mas na maioria das vezes a resposta para essa pergunta é: elixir. Uma linguagem criada por pessoas da comunidade ruby ​​/ rails.

Alexey Kuznetsov: Em geral, não estou perto de me dividir em desenvolvedores por linguagem de programação. Não deve ser um problema para um desenvolvedor de software dominar uma nova pilha em um nível suficiente em duas a quatro semanas.

E, portanto, eu iria olhar para Go / JS / Swift, dependendo das tarefas nas quais o desenvolvedor planeja se concentrar. Existem Elixir e Clojure, mas eles não são comuns.

Pavel Serezhin: Quase todos os rubistas que se prezam vão para Golang. Então a resposta é óbvia.

Source: https://habr.com/ru/post/pt433672/


All Articles