Manual do Hacker Especial - Volume 1 (2019-02)

(Antfer) #1
Manual do Hacker | 77

|


A


s perguntas-chave são: qual a
linguagem é a mais fácil de
aprender? Os recursos de
aprendizagem são pelo menos
satisfatórios? Mesmo que essas duas
perguntas sejam respondidas, elas
ainda precisam ter suporte de uma
comunidade para ajudá-lo a produzir
rapidamente algo útil e ajudar a
preservar esse seu entusiasmo inicial,
porque, inevitavelmente, você irá se
deparar com alguns problemas.
Para produzir um script de backup e
scripts de teste em cada uma das lin-
guagens, começamos a navegar pelo
Stack Overflow. Porém, o download
aleatório de códigos nos mostrou que
não há consistência entre scripts Posix
(shell Bourne puro), Bash e código lega-
do, que ocasionalmente falha.
Felizmente, o ShellCheck (www.shell-
check.net) é uma ótima ferramenta
para verificar a correção de scripts e,
uma vez que os corrige, ensina as
melhores práticas ao usuário. O Linux
Document Project, um guia avançado
de script do Bash (www.tldp.org/LDP/
abs/html) também é excelente e o aju-
dará a ganhar confiança rapidamente.
A documentação on-line e
embutida do Perl é lendária, mas nós

A


questão aqui é: eu tenho a
versão certa? Vamos começar
com o Bash. Todas as
distribuições modernas do Linux vêm
com uma versão que executará seus
scripts e de qualquer outro. Bash 4,
com seus arrays associativos, coproc
(dois processos paralelos de
comunicação) e correspondência
recursiva por meio do globbing

Curva de aprendizagem


Versão e compatibilidade


Recursos online, livros e pessoas bem intencionadas


Bash, Ruby, Python, Perl ou newLISP?


começamos executando um exercício
do clássico “Running Linux”, um livro
de administração da O’Reilly, e então
passamos para o livro Perl One-Liners,
de Peteris Krumins. Aqueles que não
gostam de estudar por meio de livro,
recomendamos http://perlmonks.
org, uma fonte de sabedoria
comunitária cumulativa.
Esforços recentes para fazer com
que os jovens aprendam com o Code
Club (Clube do Código) (www.
codingclub.co.uk) e o resto de nós
por meio do evento PyCon e dados
abertos do hackdays mostraram que
o Python pode ser fácil para qualquer
pessoa. Mas em razão de informações
duvidosas há por aí, como as muitas
maneiras de executar subprocessos
que persistem por razões de
compatibilidade, significa que a leitura
cuidadosa é necessária, e esta é outra
boa razão para começar com Python
3, não com Python 2. Acesse http://www.
python.org/about/gettingstarted
para obter uma lista enorme de guias
e recursos gratuitos.
O Ruby é bom para iniciantes e,
antes do Rails, os aplicativos de linha
de comando eram o que havia de
melhor. O livro de David B. Copeland,

(usando ** para expandir os nomes de
arquivos) apareceu seis anos atrás.
Bash 4.2 (lançado há quatro anos)
acrescentou pouco. No Bash 4.3
mudanças também foram leves.
Perl ainda está incluso no núcleo
da maioria das distros. A versão mais
recente é a 5.24.0, mas muitas distros
estáveis ainda contam com a versão
5.18. Mas isso não importa, pois você

“Build Awesome Command Line
Applications in Ruby” (em inglês)
poupará horas de navegação em
busca de documentação online, mas
também fomos capazes de iniciar
nossos scripts de teste com alguns
tutoriais na web.
Por último, chegamos ao NewLISP:
um desafio para programadores
treinados somente em linguagens da
família não-LISP, mas você ficará
surpreso com o que consegue realizar
com apenas listas, funções e símbolos.
Nós mergulhamos diretamente na
página de códigos snippets, em http://
newlisp.org, adaptando-nos para
construir nosso script de backup – e
fomos recompensados com código
conciso e poderoso, que era mais fácil
de ler do que seu equivalente
compacto Perl.

está perdendo somente pequenas
melhorias, e quase todos os scripts que
você rodaram perfeitamente.
A mudança de Python 2 para 3 ainda
dá trabalho para os novatos. Execute o
Python 3, se puder, e verifique a docu-
mentação para aprender mais. O
Python 3.3 é a nossa base para as insta-
lações do Python 3 – o Python 3.4 não
adicionou novos recursos de sintaxe.
Alterações na versão do Ruby
causaram problemas, mas surgiram
soluções indolores. O rvm (Ruby
Version Manager) permite que você
execute várias versões do Ruby, e o
pacote mantém o controle dos gems
(bibliotecas) de que você precisa para
cada script.
A estabilidade do NewLISP e a
ausência de scripts de terceiros é uma
vantagem aqui. No entanto, não
podemos garantir que cada script seja
executado nas versões mais recentes.

De MOOCs a bibliotecas, os recursos de aprendizagem
do Python estão em toda parte

Como o shell do Unix remonta décadas, você verá que versões recentes
do Bash contêm algumas alterações de sintaxe inesperadas.

Veredicto


Bash
+++++
newLISP
+++++
Perl 5
+++++
Python
+++++
Ruby
+++++
A solução do
Ruby é boa,
mas a falta de
problemas no
Bash proporcio-
nou um resulta-
do melhor.

Veredicto


Bash
+++++
NewLISP
+++++
Perl 5
+++++
Python
+++++
Ruby
+++++
Python e Ruby
são mais fáceis
de aprender, em
razão da boa
documentação e
usuários úteis.
Free download pdf