Use Ubuntu para programar em Python

O sistema operacional GNU/Linux é, na minha humilde opinião, o mais adequado para a programação de computadores.
Neste sentido, qualquer uma das principais grandes distribuições do Linux pode satisfazer plenamente um(a) profissional de desenvolvimento.

Já escrevi sobre qual a melhor distro para programar — clique no link para saber qual a minha opinião sobre o assunto.

Neste post, vou mostrar como preparar o Ubuntu 18.04 LTS Bionic Beaver para desenvolvimento na linguagem de programação Python.
É claro que o Ubuntu, já na instalação mínima, vem com interpretadores, de sobra, para você começar a programar em Python. Mas algumas ferramentas adicionais podem tornar o ambiente ainda melhor para quem já é profissional ou, mesmo, para estudantes.

Python 2 ou Python 3

O Python 2 vem caindo gradualmente em desuso, mas ainda há aplicações importantes do sistema, escritas nesta versão da linguagem.
Por este motivo, softwares (interpretadores, bibliotecas etc.) voltados para as duas versões ainda são encontrados.
Neste texto, vamos nos concentrar na versão 3 da linguagem, contudo.

Você pode verificar quais versões do interpretador Python há no seu Linux, digitando ‘python’ e pressionando a tecla Tab logo em seguida.
As versões disponíveis serão exibidas no terminal.
O comando ls também pode ser usado, para obter esta informação:


ls /usr/bin/python*

/usr/bin/python            /usr/bin/python3
/usr/bin/python2           /usr/bin/python3.6
/usr/bin/python2.7         /usr/bin/python3.6m
/usr/bin/python2.7-config  /usr/bin/python3m
/usr/bin/python2-config    /usr/bin/python-config

interpretadores Python no Ubuntu

Apesar da quantidade “expressiva de pythons”, há apenas 3 versões instaladas no meu sistema (python2, python3 e python 3m). O restante é link simbólico para o programa correspondente.

Use o parâmetro ‘–version’ para saber qual a sua versão padrão:


 python --version

Python 2.7.15rc1

A série 2.x é padrão justamente por causa dos vários scripts do sistema que ainda a usam — e você não deve mudar isto.
Ensinei como contornar a situação, para quem só quer usar a versão 3, neste post.

Instale IDEs gráficas para Python

Basicamente, qualquer uma das grandes IDEs pode ser usada para programar em Python. Se você já tem a sua preferida, pode relaxar e continuar a usá-la.
Se quiser experimentar algo novo, sugiro algumas IDEs feitas pela comunidade de programadores(as) Python, que podem trazer recursos e benefícios interessantes para quem usa esta linguagem predominantemente.

Pressione a tecla Super e procure o “Ubuntu software”, para entrar na loja (interface GUI para os respositórios) do Ubuntu.
instalar software no ubuntu

Dentro da loja faça uma busca (Ctrl + F) por ‘python ide’, para ver as opções específicas que você tem.
Atualmente, no meu sistema, há:

  1. A série de PyCharm, com IDEs voltadas para aplicações comerciais, científicas, educacionais etc. A PyCharm Pro é projetada para profissionais desenvolvedores(as).
  2. A Eric Python IDE, também projetada pelo pessoal que programa em Python. É uma opção leve e ágil. Falei mais dela aqui.
  3. Por fim, Thonny é uma IDE com recursos úteis para quem está estudando a linguagem. Vem com um depurador embutido, capaz de visualizar todos os passos conceituais da execução de um programa Python.

ide para python

Não se prenda a estas opções.
Experimente outras buscas, como ‘ide devel’, para encontrar bem mais opções.

Sugiro a leitura do artigo 5 IDEs para programar no Linux, para obter mais opções de ferramentas para desenvolvimento.

Instale o PIP

O pip (não é picture in picture) é um gerenciador de pacotes e serve para instalar novos softwares, bibliotecas e ferramentas para Python.
No Ubuntu, use o apt para instalar o gerenciador:


sudo apt install python3-pip

Mesmo especificando a versão “3” do Python, na linha de comando (acima), o procedimento ainda instala o pip para a versão 2 da linguagem.
Desta forma, você terá à sua disposição o pip2 e o pip3:

pip2 --version

pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)
pip3 --version

pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

Instale o bpython

Isto não é obrigatório.
Estudantes da linguagem podem gostar de usar uma shell com recursos de realce de sintaxe.
ubuntu loja

O aplicativo pode ser encontrado na lojinha do Ubuntu, ou pode ser instalado via linha de comando.

Você tem experiência em programação Python?! Quais aplicativos adicionais sugere para instalação no Ubuntu?

Perl, PHP e Python.

Cada qual com suas próprias vantagens e desvantagens, Perl, PHP e Python têm mais do que a letra ‘P’, no início de seus nomes, em comum.
Trata-se de 3 linguagens de programação modernas e muito populares.

Para se tornar um bom programador, dominar uma única linguagem de programação não é o suficiente.
É muito comum nos envolvermos em projetos que fazem uso de mais de uma linguagem, como meio para solucionar problemas.
Fazer a mudança de uma linguagem de programação para outra é mais fácil quando se tem intimidade com mais de uma.
O problema é que há muitas linguagens de programação no mundo.
Neste post, vou tentar mostrar porque Perl, PHP e Python merecem que você dedique parte do seu tempo para aprender, pelo menos, uma delas.
Claro que a escolha de uma linguagem, para erigir um projeto, parte de se considerar diferentes fatores — tais como

  • as funcionalidades que se deseja que as aplicações tenham,
  • que novos recursos elas devem suportar,
  • a(s) plataforma(s) de hardware/sistemas operacionais para as quais se vai desenvolver as soluções
  • performance, segurança, quantidade de código que precisará ser criado, a comunidade etc.

As linguagens dos ‘P’, são dinâmicas e poderosas, cada qual do seu jeito e têm em comum o fato de que são muito usadas para desenvolver aplicações web e scripts.
Vamos conhecer um pouco de cada uma, suas vantagens e (lógico!) desvantagens.

Perl

O Perl (nas versões 5.x e 6.x) é uma linguagem de programação dinâmica, interpretada, de propósito geral e de alto nível.
Originalmente desenvolvida por Larry Wall, em 1987, para uso no sistema operacional Unix — tinha um objetivo inicial de facilitar o processamento de relatórios de sistema.
O Perl passou por várias mudanças e revisões e tem sido reprojetada na versão 6 — a ponto de evoluir para uma nova linguagem, em relação á original.
Ambas as ramificações (Perl 5 e 6) têm desenvolvimento ativo e independente uma da outra, formando a família de linguagens Perl.
A família pega emprestado características de outras linguagens importantes, como C, shell script, AWK e sed.
Atualmente, encontra aplicação na administração de sistemas, programação de redes, aplicações financeiras, bioinformática etc.

Manipulação de cadeias de caracteres (strings) e expressões regulares são pontos fortes conhecidos do Perl.

Vantagens

  • Perl é muito boa para lidar com expressões regulares e costuma ser a primeira opção para fazer trabalho pesado nesta área.
  • Seu código é bem curto e, comumente, é possível implementar soluções com apenas uma linha de código.
  • Pode ser usada como linguagem funcional, imperativa, procedural ou orientada a objetos.
  • O CPAN do Perl provê uma grande quantidade de módulos e código testado. Boa parte é gratuita.
  • Por ser uma linguagem, já tradicional e com bastante estrada (mais de 30 anos), conta com muita documentação online e uma grande comunidade de suporte.
  • Portabilidade e disponibilidade a todas as plataformas.

Desvantagens

  • Uma vez que tem sintaxe complexa, iniciantes podem ter alguma dificuldade de entender.
    O mesmo código pode ser escrito de modos diferentes — o que é muito bom, quando se já tem um conhecimento mais avançado sobre a linguagem, mas pode ser fator de confusão para quem está aprendendo.
  • Comparado ao Python, tem documentação escassa sobre como programar orientado a objetos.
  • Pode ser lenta, em comparação com outras linguagens de script.

Popularidade

Mesmo não sendo “nova no pedaço”, seu crescimento tem sido lento, (novamente) comparado a outras linguagens.
Ainda assim, goza de grande popularidade e de uma comunidade engajada.

PHP

Também se trata de uma linguagem de propósito geral, mas é amplamente usada em websites.
Projetada por Rasmus Lerdorf, é uma linguagem de script interpretada server-side, desenvolvida com o propósito de ser usada no desenvolvimento web — sendo que, inicialmente, seu nome correspondia a Personal Home Page.
Atualmente, PHP é um acrônimo recursivo para PHP: Hypertext Preprocessor — ou “PHP: Preprocessador de Hipertexto”.
É muito usada em meio ao código HTML e está inserida em vários sistemas de gestão de conteúdo online.
O código é geralmente processado por interpretador implementado como módulo no servidor web ou como CGI (Common Gateway Interface).
O código também pode ser executado/interpretado na interface de linha de comando (CLI) e pode ser usado para implementar aplicações standalone.
Com um desenvolvimento, cujo início data de 1995, o PHP se encontra na versão 7.x, atualmente.
Ao contrário do Perl (5 e 6) e do Python (2 e 3), a comunidade do PHP caminha junto com as novas versões — de forma que a linguagem não sofreu uma bifurcação em seu desenvolvimento.
É usado no YouTube, no Facebook e em vários outros grandes projetos na Internet.

Vantagens

  • A grande maioria dos provedores de Internet oferece um ambiente pronto para você desenvolver em PHP, nas implementações mais atuais da linguagem.
  • É fácil de aprender e usar. A sintaxe é muito parecida com a da linguagem C.
  • Conta com uma enorme comunidade de suporte.
  • É estável e rápido.
  • Tem suporte a muitos bancos de dados e provê gestão nativa de sessão.

Desvantagens

  • Algumas das bibliotecas escritas em PHP usam uma abordagem procedural e podem ser de difícil compreensão para programadores com formação exclusiva em orientação a objetos.
  • Pode se tornar lenta com a escalabilidade das suas necessidades.
    Algumas organizações fazem uso de frameworks para contornar este problema, contudo.
  • Não é a opção ideal para escrever aplicações desktop.

Popularidade

É, certamente, muito popular e costuma integrar a lista top 10 de linguagens de programação — principalmente quando o assunto é desenvolvimento para a web.

Leia mais sobre o PHP.

Python

Desenvolvida no fim dos anos 80, por Guido van Rossum, Python é uma linguagem de programação elegante e fácil de aprender.
Tem se tornado especialmente popular nos últimos anos e costuma-se recomendar seu aprendizado (como primeira linguagem) a iniciantes em programação.
Tem suporte a múltiplos paradigmas — funcional, imperativa, procedural e, obviamente, orientada a objetos.
Pode ser usada para desenvolver aplicações para desktop, para dispositivos móveis, análise de dados, Web, computação nas nuvens, jogos etc.
A linguagem usa a indentação para identificar blocos de código, o que elimina a necessidade de usar pontos-e-vírgulas etc.

Vantagens

  • Muito bem documentada e você encontra muitos livros sobre a linguagem, inclusive ótimas publicações de autores nacionais. Ou seja, você não precisa comprar traduções malfeitas.
  • É usada em animação 3D e no desenvolvimento de jogos, diferente das outras linguagens de que falamos aqui.
  • Estudantes costumam aprender Python mais rápido do que C ou C++.
  • O código é mais enxuto e mais limpo e, portanto, mais fácil de entender.
  • Comparado a outras linguagens, seu código costuma ser mais curto.
  • Tem suporte a JVM, de forma que seu código pode rodar alguns objetos ou APIs Java.

Desvantagens

Por mais animado que se esteja com uma linguagem de programação, não dá para fechar os olhos para seus pontos fracos:

  • O seu código pode simplesmente não funcionar por que você esqueceu de indentar corretamente.
  • O Python força os programadores a seguir uma convenção.
  • É uma linguagem interpretada e mais lenta que C ou C++.
  • Até o momento, não é muito eficiente para rodar código voltado para múltiplos processadores e/ou núcleos.

Popularidade

Tem se tornado mais e mais popular nos últimos anos e chegou a ganhar o TIOBE Programming Language of the Year/2007. A instituição mede o crescimento e a popularidade de uma linguagem no período de um ano.
A linguagem se manteve em 2o, durante o ano de 2017.

Conclusão

Não existe resposta pronta para a pergunta “qual a melhor linguagem ….”
No caso destas 3, todas podem realizar os mesmos projetos — algumas, com mais eficiência do que as outras.
A título de sugestão, segue a minha lista:

  • PHP é a mais indicada para o desenvolvimento Web e projetos na Internet. Dos servidores gratuitos aos mais caros, quase todos oferecem suporte a PHP e a bancos de dados MySQL/MariaDB.
  • Projetos do lado do cliente, para rodar no desktop ou em dispositivos móveis, podem ser melhor servidos com Python.
  • Perl é mais vantajoso na automação de serviços, na administração de sistemas e em scripts.

Se você tem planos de iniciar um projeto na Web, vale saber que, com o PHP, vai encontrar quase tudo pronto para começar a trabalhar e ver os resultados.
Contudo, se ainda não tiver qualquer projeto em mente, minha recomendação pessoal é a favor do Python.

Referências

https://pt.wikipedia.org/wiki/Perl.

https://pt.wikipedia.org/wiki/PHP.

https://pt.wikipedia.org/wiki/Python.

Leia mais sobre Python.

https://electronicsforu.com/resources/software/a-guide-to-rogramming-in-perl-php-and-python.

Experimente o ambiente de desenvolvimento integrado GNOME-BUILDER

Toda ajuda é bem vinda para desenvolver os seus programas? Ou você é do tipo que prefere um editor básico (como o Vim), para escrever o seu código?
O GNOME-BUILDER ainda está em fase de desenvolvimento e pode não ser a IDE de programação mais adequada para muitos usuários.
Mas tenho certeza de que ele vale a tentativa, em função de algumas de suas excelentes características — a leveza, por exemplo.
Neste texto, quero apresentar esta IDE e mostrar como instalar no seu sistema.
Se você gostar (ou não), sinta-se à vontade para comentar posteriormente sobre o aplicativo.

O que é o GNOME BUILDER

O Builder é uma nova IDE (Integrated Development Environment ou ambiente de desenvolvimento integrado), voltada para o ambiente desktop GNOME.
Não há impedimento para rodar o aplicativo no KDE ou em qualquer outro lugar, claro. Mas ele é voltado para o desenvolvimento de softwares para GNOME.
Não tem a intenção de ser uma IDE genérica, portanto, mas específica para desenvolvedores de aplicações GNOME.

Se você gosta do GNOME e tem a intenção de desenvolver para este desktop environment, o projeto é para você.

As linguagens de programação padrão, por enquanto, são C, C++, Python e Vala.
gnome builder IDE
O ambiente também tem integração ao GIT e várias licenças padrão para você escolher antes de começar o seu projeto.
Chama a atenção também a presença de um simulador do GNOME, que permite testar seu trabalho em versões diferentes da que se encontra instalada em seu sistema.

Como instalar o GNOME BUILDER

Se você tem o desejo de usar a versão mais atual do programa, deveria considerar baixar o código fonte, compilar e instalar o aplicativo.
Neste caso, baixe a versão mais nova deste site: https://download.gnome.org/sources/gnome-builder/.
Usuários Debian (eu testei no Stretch) ou Ubuntu, podem fazer a instalação normal, a partir dos repositórios:

apt install gnome-builder

A IDE também está disponível nos repositórios das versões mais recentes do Fedora e do openSUSE.
opensuse cli zypper info gnome-builder
Para instalar no Fedora, use o dnf:

dnf install gnome-builder

No openSUSE, use o zypper:

zypper install gnome-builder

Referências

https://download.gnome.org/sources/gnome-builder/.
https://wiki.gnome.org/Apps/Builder.

Faça chover no seu terminal com este script Python

A tarefa deste pequeno script Python é simular chuva no seu terminal.
O meu exemplo foi rodado com o Python 2, em uma máquina Debian Linux. Sinta-se à vontade para experimentar em outras plataformas contudo.

O script, abaixo, joga 100 “gotas” aleatórias de “chuva” no seu terminal e é um ótimo exemplo do uso da função random no Python.

Se você não tiver um compilador ou interpretador Python disponível, no momento, experimente um destes compiladores/interpretadores online.
python como fazer chover ou nevar no terminal
Veja o que mais o script faz:

  • o script usa o caractere “/” para representar as gotas de chuva. Mas você pode escolher qualquer outro.
    Se você trocar o caractere “/” para ” ‘ “, o efeito vai parecer que está caindo neve no seu terminal;
  • ao final da chuva, uma mensagem é exibida centralizada na tela.
  • roda em qualquer tamanho de terminal;

Segue o código:

import curses
import random
import time

myscreen = curses.initscr()
curses.curs_set(0) # no cursor please 
HEIGHT, WIDTH = myscreen.getmaxyx() 
RAIN = '/' # altere aqui a aparencia da sua gota de chuva 
TIME = 10 

def make_it_rain(window, tot_time, msg, wait_time, num_drops):
    """
    window    :: a janela no curses 
    time      :: duracao da chuva
    msg       :: mensagem exibida ao final da chuva
    wait_time :: tempo de espera entre cada quadro
    num_drops :: quantidade de gotas
    """
    for _ in range(tot_time):
        for i in range(num_drops):
            x,y=random.randint(1, HEIGHT-2),random.randint(1,WIDTH-2)       
            window.addstr(x,y,RAIN)
        window.refresh()
        time.sleep(wait_time)
        window.erase()

    window.refresh()
    window.addstr(HEIGHT/2, int(WIDTH/2.7), msg)


if __name__ == '__main__':
    make_it_rain(myscreen, TIME, 'IT HAS STOPPED RAINING!', 0.2, 100)
    myscreen.getch()
    curses.endwin()

Eu gravei o meu script com o nome de chuva.py
Compile, com o Python 2:

python2 chuva.py

Referências

http://codegolf.stackexchange.com/questions/107545/its-raining-in-terminal.

Instale a biblioteca pygame para Python no Linux via pip

A biblioteca pygame, é uma das várias feitas para tornar mais fácil o desenvolvimento de jogos — dos mais simples aos mais complexos — em Python, para desenvolvedores profissionais ou amadores.
O procedimento, que segue, pode ser realizado no Windows e em qualquer distro Linux, apesar do título — o fato é que só testei no Linux (Debian 9, para ser mais específico).
Devo acrescentar que os exemplos usam o Python 3 — mas é fácil adequá-los ao Python 2, se esta for a sua opção.
Há várias maneiras de instalar a biblioteca no seu sistema. Esta é uma das mais simplificadas e, por isto, vale a pena dar-lhe uma chance.
O texto pressupõe que você já tenha o pip instalado. Se não tiver, veja como fazer isso aqui (é fácil).
python pygames development logo
Não esqueça de realizar o procedimento de instalação com privilégios administrativos:


pip3 install pygame

Collecting pygame
  Downloading pygame-1.9.2-cp35-cp35m-manylinux1_x86_64.whl (9.4MB)
    100% |████████████████████████████████| 9.4MB 147kB/s 
Installing collected packages: pygame
Successfully installed pygame-1.9.2

Se tiver curiosidade, Leia mais sobre por que há mais de uma versão do Python, instalada no Linux.

Como testar se a biblioteca pygame está instalada e funcionando

Abra um editor de textos, copie e cole o seguinte código:


import pygame, sys
from pygame.locals import *

pygame.init()

DISPLAYSURF=pygame.display.set_mode((400,300))
pygame.display.set_caption("Hello World!")
while True: #principal loop
    for event in pygame.event.get():
        if event.type==QUIT:
            pygame.quit()
            sys.exit()
        pygame.display.update()

Grave-o com o nome ‘pygteste.py’ — ou qualquer outro nome que você achar melhor.
Em seguida, rode o código com o interpretador Python3:


python3 pygteste.py

Se uma janela preta, com nada dentro, aparecer, o programa funcionou bem. Parabéns!
python hello world pygame