A linguagem de programação Python possui uma incrível popularidade, graças a sua estrutura fácil de entender e o grande suporte da comunidade em volta dela. Mas o principal aspecto que a torna especial para mim, está no fato dela ser a opção número 1 para SDN (Redes Definidas por Software)! Porém, existem outras linguagens interessantes (e talvez mais aptas) disponíveis no mercado e (na minha opinião), elas podem ser tão efetivas (ou mais) se comparadas ao Python. Sim, refiro-me a linguagem de programação Ruby…
Ambas as linguagens são voltadas para o uso geral, totalmente orientadas a objetos, dotadas de muitas funcionalidades e por fim, com uma grande variedade de bibliotecas e frameworks. Porém, Python é classificada como “mais conservadora”, ao passo que Ruby é considerada “mais inovadora”. Por isso, Ruby difere-se de Python por ser mais flexível e versátil, além de ser mais aberta para novas mudanças. Conforme diversas análises, ela “permite executar as tarefas de maneiras diferentes”, ao passo que Python “possui um método simples para executar uma determinada tarefa”.
Se por um lado, teremos mais liberdade com Ruby, por outro seremos obrigados a lidar com as complexidades inerentes da linguagem, o que em automação pode significar um tempo maior a ser gasto para lidar com diagnósticos e correções de erros. Já em relação ao Python, ter uma maneira ou método bem definido para realizar determinadas atividades, tornam a codificação bem mais previsível e padronizada; porém, provavelmente teremos situações em que as soluções apresentadas se mostrem “engessadas”, se comparadas com Ruby.
Pesa à favor de Python, o fato dela ser bastante elogiada pela facilidade de aprendizado, além de ser considerada uma linguagem de “alto nível” em vista do código limpo, bem estruturado e de fácil entendimento. Porém, como não sou um iniciante na área (apesar de tê-la abandonado há anos), certamente não terei muitas dificuldades em relação ao aprendizado de ambas as linguagens, o que torna esta particularidade até certo ponto “indiferente” para mim! De qualquer forma, certamente terei que me readequar em relação as novas técnicas e as modernas metodologias de codificação, que são adotadas atualmente.
Levanto esta questão porque será fundamental para mim, aprender uma linguagem de programação para atender as exigências das Redes Definidas por Softwares. Porém, ao invés de simplesmente seguir a tendências do mercado (como todo mundo faz), prefiro me antecipar para as futuras possibilidades e na minha opinião, Ruby me parece ser bem mais interessante de aprender em vista de ser flexível, aberta a inovação e com o foco em desenvolvimento WEB, embora Python esteja bem mais difundida para SDN. No momento, reconheço que Python será a “escolha certa” a fazer; porém, confesso que estou mais inclinado ao Ruby!
E ainda tenho que me atualizar em relação ao Shell Script… &;-D