sábado, 24 de setembro de 2016

Porque aprendi Python

Aprendi Python por 2 motivos principais:
Sempre usei sistemas Linux, e na comunidade Linux se fala muito de Phython, por motivos simples: No Linux e no MAC o Python já vem instalado. No Windows é fácil instalar, tem um instalador estilo "Next next finish". Cross-platform baby!
- "Ha! Mas tem o Node JS que é melhor!". Ele não é melhor. Ele tem uma abordagem diferente, e é legal também. Use os 2.

Voltando: Python é software livre e não depende muito de uma única corporação como outras linguagens de programação dependem.
Particularmente não gosto muito de tecnologias dessas empresas, pelo efeito monopolizador que elas têm. Acho a filosofia do Software livre bem mais atraente e benéfica para as pessoas em geral.

Além disso um colega de trabalho me disse que era uma boa aprender Python.

Resultado:

Por exemplo veja como é simples fazer o tradicional programinha "Aló mundo" em Python. Seja qual for o sistema operacional que você estiver usando no PC (Windows/MAC/Linux). Se você tiver o Python instalado, basta abrir o editor de texto (bloco de notas) e digitar:


print ('hello world!')


Salve o arquivo com a extensão .py, abra o terminal, vá até a pasta onde o arquivo está e digite "py nome-do-arquivo.py". 
Pronto! você fez seu primeiro app em Python!
Estima-se que um programa escrito em Python tem bem menos da metade de linhas que um programa escrito em Java/C/C++, etc.

Veja em Java como é necessário bem mais código pra fazer exatamente a mesma coisa:


public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World");
    }
}

E no Java você vai precisar compilar seu código para bytecode Java, se não seu código não vai executar. Além disso, é claro, você precisa ter o Java instalado no seu PC.

Em Python se você não quiser que a sua aplicação seja um txt com a extensão .py, você também pode compilar ela, mas não é obrigatório.

Mas a diferença entre as duas linguagens não para por aí.
Python é bonito e prioriza o esforço do desenvolvedor sobre a sintaxe e a velocidade de execução do programa. Python também têm recursos modernos que muitas linguagens de programação não têm. Como por exemplo retorno e atribuição múltipla de variáveis.
O código Python também é bem mais fácil de dar manutenção.

Programei em Java por alguns anos, mas depois de aprender Python descobri que praticamente não preciso usar Java.

Se você vai fazer um programa extraordinariamente grande e complexo com centenas talvez milhares de telas/páginas, Java/C++/Delphi talvez façam sentido. Mas se você precisa criar um sistema médio ou pequeno talvez Python seja a melhor escolha. O Node JS também.

Lendo alguns fóruns e sites de programação vejo que são recorrentes as perguntas "qual é a melhor linguagem de programação?" e "qual linguem aprender?".

Não existe melhor linguagem. Tem pessoas que só sabem Delphi e não precisam de outra coisa, porque é o melhor pra elas. 
Tem pessoas que só trabalham com desenvolvimento web, talvez para esses baste saber CSS, HTML e Javascript.

Se você pretende trabalhar com bancos de dados, aprenda SQL.
Cada tecnologia têm sua aplicação.
Se uma tecnologia existe, têm um motivo pra isso. Aprenda o que precisar aprender. Não dá pra fazer tudo com uma tecnologia só.
Existem tecnologias que rodam em várias plataformas e podem ser usadas em diferentes ambientes (Web, Mobile, Desktop), mas não resolvem tudo. Ou talvez você não precise delas.
 - "Ah! mas Python é lento! Vou pro Node JS que é mais eficiente!". ()=> Sim e não: 
Python tem balas de prata pra lidar com os problemas de velocidade: 
Você pode usar CPython com Flask no Apache, ou você pode usar PyPy com Bottle e CFFI e libs escritas em C no Nginx. o Node JS nunca vai ser mais rápido que isso. 
- "A mas meu site vai receber milhões de visitas!". Beleza: você ainda pode usar Twisted Python!

Ainda sobre pré-conceitos sobre velocidade, veja esse benchmark: https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=plaintext.

Tudo vai da aplicação e necessidade/tipo de problema, tempo de desenvolvimento, etc.

Mais algumas leituras interessantes sobre Python:
https://ericstk.wordpress.com/2014/09/30/python-powered-coisas-que-python-pode-fazer-e-voce-nao-sabia

"E as pessoas não aprendem Python, porque ele vai levá-los um emprego; eles aprendem porque eles realmente gostam de programar e não estão satisfeitos com as línguas que já conhecem. " mais em: 

htttp://paulgraham.com/pypar.html

Nenhum comentário:

Postar um comentário

Criando uma API em C para usar com CFFI - PostgreSQL

Uma lib bem legal do Postgres é a libpq . Instalação no Debian 7, 8 e 9: sudo apt update && sudo apt install libpq-dev Ela po...