Cuidado com comparações indevidas: PowerShell ou Python?

Primeiro, recomendo a leitura do link abaixo. Ao menos vale a pena pra ter uma idéia do que eu vou comentar.

http://www.gossamer-threads.com/lists/python/python/612630

No link acima, há uma discussão sobre qual tecnologia seria interessante aprender. O criador da thread cita também um link que mostra os comentários de um DBA que fez um comparativo. Você pode ver essa comparação no link abaixo:

http://www.simple-talk.com/sql/database-administration/comparing-python-and-powershell-dba-scripting-/

A comparação em si até é legal... para aprender. Tem vários exemplos de como automatizar tarefas com PowerShell e Python.

Agora vamos ao que eu acho disso tudo. Primeiramente, queria deixar bem claro que gosto tanto de Python quanto de PowerShell. São duas ferramentas fantásticas. Gosto muito também de VBScript, JScript, Ruby... até o bom e velho CMD/BAT tem me ajudado bastante ultimamente. São todas ferramentas muito boas, com algumas deficiências, claro... cada uma na sua.

O bom profissioanal de TI, seja ele desenvolvedor ou profissional da área de infraestrutura, deve ter bons fundamentos. E na minha opinião, com bons fundamentos ele é capaz de se virar com qualquer tecnologia. Eu bato na tecla que, por mais que as tecnologias sejam importantes e seja indispensável que você domine algumas delas, sem a base teórica e bons fundamentos sobre computação, você terá muito mais dificuldades para continuar se atualizando. E atualização de conhecimento na nossa área é obrigatório!

Vamos à um exemplo prático: pensem na estrutura de decisão if-then-else. Parece algo básico demais, mas algumas pessoas realmente não entendem direito como montar uma e como encadear várias delas. Essa estrutura é indispensável para desenvolvedores, seja qual for a linguagem. E se a linguagem não tiver esse recurso (sim, existem linguagens que não tem IFs), você pode construir o seu. Para qualquer profissional de TI, compreender uma rotina if-then-else pode ajudar a determinar mais rápido as causas de um problema em um computador, por exemplo. É questão de lógica.

Bom, voltemos ao PowerShell x Python. Não creio que seja possível determinar uma tecnologia melhor. Ambas tem suas vantagens. Python é uma linguagem de programação completa, orientada à objetos, com um conjunto de classes padrõ bem rico e de funcionamento simples. PowerShell é um shell orientado à objetos, que trabalha extensivamente com a combinação de pequenos comandos (cmdlets) através de pipes, variáveis e outros recursos, com o objetivo de facilitar a administração de servidores. Não faz sentido comparar diretamente as duas coisas.

No exemplo do link que eu enviei, o autor compara as duas quanto à capacidade de automação de tarefas administrativas de servidores de bases de dados. Mas ambas possuem recursos que permitem administrar um SQL Server, por exemplo. O que podemos usar como parâmetro para comparar e descobrir qual é melhor? Número de linhas? Eu acredito que não. Eu creio que a facilidade para criar um código dado um conjunto de recursos disponíveis (sejam eles classes ou cmdlets, nesse caso) é a melhor saída, mas medir a "facilidade" é algo subjetivo demais. E o gosto de cada um é influenciado pelo conhecimento que o profissional tem. Para mim, nenhuma das duas é melhor que a outra. Elas foram feitas com propósitos diferentes.

O que eu faço hoje: quando surge um problema, após a análise inicial, escolho se é realmente necessário resolver o problema com scripting e, nesse caso, qual linguagem utilizar. Parece bobeira, mas ultimamente eu tenho escolhido BAT e VBScript na maioria das vezes por precisar que um único script funcione com as configurações padrão do Windows 2000 ou superiores. E é exatamente isso que eu recomendo: aprendam a base, depois as tecnologias. Pense nelas como um leque de ferramentas que você pode escolher para resolver um problema. Escolha a melhor para cada situação.

PowerShell é bem legal... mas VBScript, JScript, C, C++, Python, Ruby, CMD, BAT, Java, C#/VB.Net e Perl também são. =)

No próximo post vou retornar com algumas dicas que eu tenho utilizado ultimamente nas minhas tarefas do dia-a-dia.

Até logo!

Categorias dessa postagem: ,

Comentários