Ruby x Outras
|
|
Boa tarde. Pessoal, meu gerente chegou pra mim e perguntou pra qual linguagem devemos ir. Eu preciso de argumentos concretos pra indicar Ruby. QUERO MUITO ir pra ruby, mas como vou usar argumentos contra linguagens “consolidadas” no mercado(ASP.NET, JAVA, etc..) Vocês tem algum comparativo entre Ruby e outras linguagens ? Deixando claro: Pessoalmente já adotei ruby como minha linguagem, pois vou converter meus sistemas de delphi para Ruby. Mas na empresa eu preciso de argumentos, pois vai ser o meu emprego que vai ficar na reta. Opiniões são bem vindas. Obrigado |
|
|
Depende… |
|
|
A grosso modo: TeleMarketing. |
|
|
Tel, estou curioso a saber. como é o sistema de telemarketing? |
|
|
Basicamente uma tela onde tem as informações do cliente que vai ser abordado. Onde tem a “vida” financeira dele numa parte da tela e os dados pessoais. |
|
|
Tel, vocês terão problemas para implementar isto em qualquer linguagem, precisarão de um servidor de discagem, pois a aplicação web não pode chamar código direto na estação do usuário, só no servidor. |
|
|
Na verdade, já temos um servidor de discagem. Porque as ligações ficam armazenadas nele. A única coisa que o client faz é, via socket, enviar uma mensagem ao servidor com o número de telefone que vai ser discado. Outra coisa: Relatórios. Tem alguma ferramenta ? E a velocidade de processamento de um sistema ruby e outra pré-compilada ? Se possível, gostaria de mais algumas informações. |
|
|
Se a grosso modo vocês não precisarem mecher na parte de discagem, menos mal, isso facilitará e muito o trabalho, já que trabalhar com socket em Ruby é bem fácil, nada de outro mundo. As vantagens de se trabalhar com o framework rails são: - Facilidade de aprendizado (curva menor se comparado a maioria dos frameworks de outras linguagens) - Fácil controle de ações (não precisa ficar criando mapeamentos nem XML para direcionar ações e URLs, isso tudo é automático no rails, nada disso precisa-se fazer) - Sem XML (mesmo XML sendo bem útil para muitas coisas, em nenhum momento você precisar configurar nada em XML, o rails e o ruby não tem essa filosofia, então você estará livre de configurações), - Projeto aberto (fazendo com que muita gente desenvolva coisa para ruby e para rails, formando uma comunidade forte, como é hoje com o PHP por exemplo, com o Java e outras linguagens) - Facilidade ao implementar com Web 2.0 (vide ajax, portanto o rails tem uma boa facilidade para se trabalhar com esses recursos, usando RESTfull e outros recursos que podem alavancar o ajax na sua APP) Porém as desvantagens ao meu ver são: - Dificuldade de se implementar projetos legados, já que o framework é amarrado em seu padrão de projeto, por isso algumas aplicações poderão dar trabalho para funcionarem com a lógica do rails, mesmo assim é possível usando os recursos disponíveis e usando recursos como act as legacy. - Proteção do código, já que rails roda em cima do ruby, portanto não podemos compilar a aplicação ou proteger o código, isso pode ser visto como vantagem e ao mesmo tempo desvantagem, dependerá do que será feito e onde será feito. |
|
|
O jeito mais fácil de convencer, é você mandar bala no projeto nesse fim de semana e chegar lá na segunda com um caminhão de coisa já feita que demoraria bem mais pra fazer em outra plataforma… Infalivel! Não existem argumentos contra resultados ;) |
|
|
Só para acrescentar Ruby consegue sim fazer algumas chamadas a win32. Algumas mais fáceis que as outras. Se sua DLL for na verdade um componente OLE fica ainda mais fácil. Dê uma pesquisada por win32utils. |
|
|
Ok. É que, quando se trata de um projeto grandioso e colocando o seu na reta sem conhecer muito bem a linguagem(que é o meu caso), fico com o pé um pouco atrás. Eu não sei se quando precisarmos de alguns recursos que .NET/JAVA tem, o ruby vai ter também, entendeu ? Isso que dá um pouco de “medo”. Posso ir pra ruby sem preocupação ? Valeu ! |
|
|
Iria bom saber mais sobre o sistema antes de dar uma opinião final, já que o numero de usuários não reflete tanto o tamanho do sistema. Capacidade/velocidade do sistema é um problema técnico, que pode ser resolvido facilmente (cluster), e custa relativamente pouco. A habilidade de desenvolver um sistema mais rapidamente não necessariamente significa que o sistema será mais barato. É nisso provavelmente que o seu gerente está pensando. Existem vários argumentos contra “resultados rápidos”.. :) Por exemplo, grande parte do custo de uma aplicacao está na manutenção do sistema após ela é desenvolvida. Pense sempre nisso quando você está desenvolvendo um sistema grande para alguma empresa. O que vai acontecer quando voces terminarem de desenvolver o software? Quem vai dar manutencao? Existe pessoal treinado para usar ruby? É chato dizer, mas isso ainda é um problema muito sério que mantém o ruby longe das empresas. Sou engenheiro de softare trabalhando com .NET/Java no meu trabalho, em uma multi-nacional, onde os sistemas q a gente desenvolve normalmente sao acessados por 1-5 mil pessoas, 24 horas por dia. Também sou amante do ruby/rails nas horas de folga. Estamos utilizando ruby aqui para várias coisas, principalmente para ferramentas que os próprios desenvolvedores usam, mas ainda é dificil apresentar uma proposta convincente de desenvolver uma aplicacao grande (mais de 15-20 desenvolvedores) feita em ruby. |
|
|
Tel, ninguem numca foi demitido por sugerir a empresa utilizar Java, .NET, RUP, … isto tudo deve ser levado em consideração |
|
|
adoro este tipo de discussão! Aposto que muitos aqui ja passarm por argumentações deste tipo. A verdade é que Ruby/rails é uma linguagem muito interessante, mas ainda não esta amplamente difundida no mercado corporativo do brasil. .NET , java, ruby? Se tivesse que apostar em uma delas.. qual seria???? |
|
|
Pois é, ai que está. Pra onde agente vai quando se sai de uma linguagem que acha que “domina”. Sim, grandes porcarias se fazem em qualquer coisa, até em clipper…rs… Outra coisa, demitido não. Mas quando se perde credibilidade é duro recuperá-la. Só sei que tá difícil a coisa. |
|
|
Tel, identifico com sua explanação pois o seu caso é semelhante ao que vivi no inicio do segundo semestre de 2006. Tinhamos uma plataforma consolidada e produtiva, adaptaçãoes e evoluções comum a todos o sistemas. Tais manutenções acarretavam uma perda consideravel por minutos de testes, é isso mesmo, um minuto é carro, sem ressaltar a insatisfação dos clientes. Como então desenraizar de uma linguagem/plataforma sólida para uma linguagem ‘divertida’ cujo o foco atual é só Web? R: Vontade ! Eu quero essa por quê eu gosto! Sinto bem codificando ela, ela até agora expressa o meu pensamento. Ok, “não é bem assim Shairon que o mercado funfa”. Eu sei. Quero dizer que você “já tem um sistema funcionando” é só levantar as peculiaridades necessárias do seu negócio e ver se Ruby/Pyton/Erlang/etc. O tempo é excasso, eu sei, mas vc tem um pouco de tempo pois vc tem uma versão rodando.
Observe que vcs querem outra linguagem para web, aí eu pergunto(no caso da dll e afins) “É só conseguimos discar para o número xxx com essa placa?” “Tem que ser via DLL”. Veja bem, vcs vão “migrar o sistema” e não "traduzir para uma linguagem/plataforma X”. Web é outra arquitetura. Migração, o pensamento é no futuro. Mudar, inovar, fazer a mesma coisa(ou melhor) com o menor custo. Exemplo: um callback de um roteador/pabx que faz ponte inversa para clientes de softfone. O operador aperta o botão para discar, o rails ou outra coisa dispara uma trigger para o pabx/router e o mesmo faz a regra de interconexão via IP? |
|
|
É, realmente. Pensando dessa forma teria que adotar outra idéia de funcionamento. Pensando assim eu posso entrar em contato com o meu fabricante do discador/gravador e dizer que eu quero ter acesso via socket para o servidor dele e, eu mesmo desenvolver a integração. Em meu modo de ver ficaria melhor, pois o código ficaria dentro da empresa. Seu eu sair da empresa, ele fica. Sobre treinamentos: A resposta é sim. No que depender de mim todos vão ser bem informados quanto a tecnologias. Acho que a empresa é a primeira beneficiária de um colaborador bem treinado. Basta saber onde eu posso encontrar cursos bons. Sobre tempo de desenvolvimento: Tenho uma ferramenta que está funcionando sim. Mas a empresa mudou, a regra de negócio está mudando. A demanda está ficando maior que a oferta. Ai todo mundo vai falar: “Poxa, então não foi bem projetado ?!” Sim, foi projetado para as necessidades da época. É por isso que eu tenho que tomar uma decisão quanto a qual tecnologia adotar pra que, quando o a demanda aumentar novamente, eu não fique a deriva. Tem um amigo meu que vai me matar sabendo que não “quero” ir pra java. hehehe, mas a curva de desenvolvimento em java pra nós aqui está fora de cogitação. |
|
|
Será que podemos acreditar nisso: comparativo |
|
|
Respondendo ao clovis: Bom, no atual estado que está, acho que ruby tem bem poucas chances de entrar nas grandes empresas como algo mais do que uma ferramenta q desenvolvedores usam aqui e ali nos próximos 1 ou 2 anos. Quando o IronRuby e o ruby pra java vm estiverem bem solidos acho que daí sim vai começar a aparecer certas coisas em empresas grandes. Em empresas menores e startups acho que o ruby vai (e já está) aparecer bem mais rápido que as outras daqui pra diante. |
|
|
Tel, Além disso, ninguém sabe o que vai acontecer com Ruby ainda.. A Sun e Microsoft tão começando a colocar o peso delas por trás do ruby, o que é uma coisa boa, mas por enquanto, o Ruby é só meio que uma onda, mais ou menos como o Python era a uns 2 anos atrás. (Não levem isso como algo pessoal, adoro Ruby/Phython, mas esse é meu ponto de vista como consultor). Algo parecido também aconteceu com o PHP. Várias empresas tentaram empurrar ele como uma linguagem pra enterprises (oracle, por exemplo), e eles até conseguiram alguma tração, mas o PHP nunca entrou pra valer no mercado. A propósito, meu ponto de vista é o de grandes empresas (tipo > 10 mil funcionarios), que é um que ainda usa Cobol.. :) Outras pessoas aqui provavelmente vao ter outro ponto de vista bem diferente. Abraços Eduardo Scoz |

