Roberto Colistete Jr.

Blog sobre computação física, científica e móvel : (Micro)Python, CUDA, smartphones, Linux, etc

Python científico em computadores, tablets e smartphones

Posted by robertocolistete em 26/12/2012

Python é hoje uma das melhores linguagens para computação científica, não só pelas qualidades dela mesma, mas por causa das várias ferramentas e módulos (há mais de 26 mil hoje !) para uso de/em Python. As ferramentas e módulos Python científicos mais populares são : IPython (Python interativo, principalmente a interface Notebook lançada em 12/2012), NumPy (cálculos numéricos), MatPlotLib (gráficos 2D e 3D), SymPy (CAS – Computer Algebra System, com cálculos simbólicos como derivadas, integrais, etc). O impacto de Python e esses módulos científicos está sendo tão grande mundo afora que vários cursos de universidades de referência mundial (Harvard, MIT,  etc) estão adotando ou adotaram no lugar de softwares comerciais.

Gráfico paramétrico 3D calculado em 51s usando SymPy no Nokia N900

Gráfico paramétrico 3D calculado em 51s / 9s (1a vez / repetição) usando SymPy no Nokia N900

Gráfico de superfície 3D calculado em 36s usando SymPy no Nokia N900

Gráfico de superfície 3D, com 100×100 pontos, calculado em 36s / 30s (1a vez / repetição) usando SymPy no Nokia N900

Gráfico de densidade de f(x,y) com 150x150 pontos, usando NumPy e MatPlotLib após 10,3s no Nokia N9

Gráfico de densidade de f(x,y), com 150×150 pontos, calculado usando NumPy e MatPlotLib após 10,3s no Nokia N9

SymPy rodando dentro do IPython Notebook no Nokia N9


SymPy 0.7.2 rodando dentro do IPython Notebook 0.13.1 no Nokia N9

E uma vantagem adicional de Python é a sua portabilidade, estando disponível em grande número de sistemas operacionais, tanto de computadores pessoais (PC’s) como de tablets e smartphones. Mas e Python científico, com as citadas ferramentas e módulos ? A tabela abaixo analisa em quais sistema operacionais tais ferramentas e módulos estão disponíveis, com que facilidade de instalação e uso, etc. Foram excluídos o BlackBerry OS (para smartphones e tablets) e Windows Phone (para smartphones), pois ambos não rodam Python acessível diretamente no tablet/smartphone pelo usuário.

Características \ Sistema Operacional Linux / MacOS / Windows Android iOS Maemo 5 MeeGo Harmattan  Symbian
Equipamentos PC’s de mesa, net/notebooks, tablets (Windows 8), Linux em poucos Mini-PC’s.
Tablets, smartphones e Mini-PC’s. Vários fabricantes Tablets (iPad e iPod Touch) e smartphones (iPhone). Só da Apple Smartphone, só Nokia N900 Smartphone, só Nokia N9 Smartphones (principalmente Nokia)
Equipamento de teste Linux 64 bits no notebook Asus 1215B, AMD C-50 @ 1.0 GHz Tablet Asus Transformer, NVidia Tegra 2 Cortex A9 @ 1.0 GHz Tablet iPad 2, Apple A5 Cortex A9 @ 1.0 GHz Nokia N900, TI OMAP 3430 Cortex A8 @ 600 MHz Nokia N9, TI OMAP 3630 Cortex A8 @ 1.0 GHz Nokia E71, Freescale MXC300 ARM 11 @ 369 MHz
Facilidade de instalação do Python Simples, via repositório ou um arquivo de instalação.
Python 2.x/3.x
Complexa, com vários passos para instalar SL4A da comunidade, depois Python.
Python 2.x/3.x
Simples, instalando ‘Python Math’ (gratuito) ou ‘Python for iOS’ (US$2.99) via App Store.
Python 2.x-3.x
Simples, usando repositório.
Python 2.5.4.
Simples, usando repositório.
Python 2.6.6 (e 2.5-3.1)
Complexa, com vários passos para instalar PyS60 2.0. Python 2.5.4
Facilidade de uso de Python interativo : completa comandos, histórico, ajuda contextual, etc. Sim Shell muito limitado Shell limitado, com histórico de comandos, informação de objetos (no “Python for iOS”) Sim Sim Shell muito limitado
Facilidade de edição de código Python : editores com sintaxe colorida, completa comandos, ajuda contextual, etc. Sim Poucos editores com alguns recursos Poucos editores com alguns recursos Poucos editores com alguns recursos Poucos editores com alguns recursos Editor ”PED’ (somente no PyS60 1.4.5)
IPython IPython 0.13.1 (com Qt Console e Notebook) Não disponível Não disponível IPython 0.10.2. I.e., sem Qt Console, sem Notebook IPython 0.13.1 (com Qt Console e Notebook) Não disponível
NumPy NumPy 1.6-1.7 Não disponível Não disponível NumPy 1.4.0 NumPy 1.4.1/1.7.0 Não disponível
MatPlotLib MatPlotLib 1.1-1.2 Não disponível Não disponível MatPlotLib 1.0.0 MatPlotLib 1.2.0
Não disponível
SymPy SymPy 0.7.1-0.7.2 SymPy 0.7.x com instalação manual SymPy 0.6.7 (‘Python Math’) ou 0.7.1 (‘Python for iOS’, US$2.99) via App Store SymPy 0.7.1-0.7.2
SymPy 0.7.1-0.7.2
SymPy 0.7.x com instalação manual
SymPy com gráficos (PyGlet/MatPlotLib) Sim/Sim Não/Não Não/Não Sim/Sim Não/Sim Não/Não
Carregar SymPy 0.7.1 / calcular “integrate (x**5 / (alpha*x**2+beta)**2,x)” 0.58 / 1.83 s 2.22 s / 2.79 s 6.33 s / 3.16 s 2.3s / 10 s0.7.2 : 3.5s / 6.6s 1.7s / 5.6s0.7.2 : 2.0s / 3.1s
52.6 s / 22.8 s

Tabela 1 sobre Python científico versus sistemas operacionais, onde as cores representam : azul (bom), verde (razoável), vermelho (ruim). Ou seja, quanto mais azul melhor, quando mais vermelho pior.

No artigo “SymPy for smartphones & tablets” tem outra análise mais detalhada de Python/SymPy para smartphones e tablets, onde há inclusive instruções de como instalar Python e SymPy em todos os sistemas operacionais móveis citados acima.

Minha análise da tabela 1 quanto ao uso de Python científico :

  • os sistemas operacionais Linux, MacOS e Windows são os mais completos, com grande diversidade de hardware, quer seja PC de mesa, notebook e netbook;
  • excetuando tablets com Windows 8 que estão chegando no mercado brasileiro em 2013, os tablets com Android e iOS são limitados em termos de Python científico : instalação e disponibilidade, interatividade, sem nenhum tipo de gráficoPequena vantagem para os tablets iPad por causa de instalação e uso mais fácil de Python científico;
  • entre smartphones, os mais completos são o Nokia N900 com Maemo 5 OS (Linux móvel), que inclusive tem teclado qwerty completo, e o Nokia N9 com MeeGo Harmattan (Linux móvel) com versões bem recentes dos módulos científicos. Depois o iPhone com iOS e smartphones Android. Em último, smartphones Symbian.

Considerações entre vantagens x desvantagens entre computadores, tablets e smartphones :

  • smartphones, tablets e net/notebooks são para usos diferentes, não substituindo o outro;
  • a vantagem de um smartphone é estar sempre com o usuário, desvantagem que não é confortável digitar nele durante vários minutos por causa do tamanho da tela e teclado (físico ou virtual);
  • tablets são optimizados para ler (consumir conteúdo) e tipicamente têm bateria com autonomia entre 6-10h, mais que um notebook/netbook típico;
  • para digitação de expressões matemáticas é bem mais fácil digitar com teclado físico. Tem smartphones com teclado qwerty (mini ou completo). E há alguns tablets com opções de dock/teclado (R$100-400).

Opções de compra para se usar Python científico, em ordem de preço (parcelado) dentro de cada categoria, sendo que não vi promoções excepcionais antes e depois do Natal de 2012 :

  1. PC’s de mesa, notebooks e netbooks custam aprox. R$700 em diante, com tamanho mínimo de tela de 10″;
  2. tablets com Android são os mais baratos, sendo que recomendo que tenha Android 4 e tela capacitiva. Modelos de 7″ de tela, processador de 1 núcleo, por R$349 em diante : Smart DL HD 7 e Microboard Ellite 7. Modelos de tela de 7″ ou mais, com processadores de 2 núcleos, a partir de R$699 : Samsung Galaxy Tab 2 8GB (R$699), Motorola Xoom2 Media Edition 32GB (R$799) com tela de 8,2″, etc;
  3. tablets iPad custam a partir de R$1.349 (iPad 2) na loja da Apple;
  4. basicamente um iPhone sem função de celular, i.e., um tablet multimídia, o iPod Touch custa a partir de R$799 (4a geração);
  5. smartphones mais baratos são os com Android e Symbian, a partir de R$300-400. Recomendo Android 2.2 e Symbian Belle em diante. Alguns : Samsung Galaxy Y Pro (R$349) e LG Optimus Pro C660 (R$349) com Android 2.3 e teclado qwerty, Samsung Galaxy Ch@t B5330 (R$399) com Android 4.0 e teclado qwerty, Nokia E5 (R$399) com Symbian S60v3 e teclado qwerty, Motorola Milestone 3 (R$799) com Android 2.3, tela de 4″, processador com 2 núcleos, teclado qwerty completo;
  6. Nokia N900 parou de vender novo em meados de 2011 no Brasil (hoje só disponível usado custando perto de R$500);
  7. Nokia N9 estava vendendo novo no final de Novembro de 2012 a R$999 em promoção, porém depois ficou raro de encontrar sem ser usado (entre R$700-1000);
  8. smartphones iPhone custam de R$1.499 (iPhone 4) em diante.

Há ainda mais alternativas, porém caso a caso :

No mais, vide outros artigos desse blog sobre : Nokia N9, Nokia N900 e Maemo 5, tablets, smartphones, Python.

(Atualização em 06/01/2013) : adicionada na tabela 1 citação a IPython 0.13.1 para MeeGo Harmattan.

(Atualização em 01/02/2013) : adicionada na tabela 1 e textos citação a IPython 0.13.1 com IPython Qt console e Notebook para MeeGo Harmattan (22/01/2013)  e SymPy 0.7.2 para Maemo 5 e MeeGo Harmattan (07/01/2013).

(Atualização em 11/02/2013) : adicionada citação a MatPlotLib 1.2.0 para MeeGo Harmattan (09/02/2013) e NumPy 1.7.0 para MeeGo Harmattan (11/02/2013).

(Atualização em 13/02/2013) : atualizadas duas screenshots do Nokia N9, mostrando SymPy 0.7.2 rodando no IPython Notebook 0.13.1.

2 Respostas to “Python científico em computadores, tablets e smartphones”

  1. […] Python científico em computadores, tablets e smartphones […]

  2. […] Python científico em computadores, tablets e smartphones […]

Deixe um comentário