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.
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áfico. Pequena 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 :
- PC’s de mesa, notebooks e netbooks custam aprox. R$700 em diante, com tamanho mínimo de tela de 10″;
- 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;
- tablets iPad custam a partir de R$1.349 (iPad 2) na loja da Apple;
- 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);
- 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;
- Nokia N900 parou de vender novo em meados de 2011 no Brasil (hoje só disponível usado custando perto de R$500);
- 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);
- smartphones iPhone custam de R$1.499 (iPhone 4) em diante.
Há ainda mais alternativas, porém caso a caso :
- não usar Python, porém outros softwares científicos escritos em J2ME (Java Micro Edition), então é suficiente celulares não-smartphones mais simples custando R$100-400. Vide artigo desse blog, “Usando softwares científicos em celulares (quase) smartphones”;
- Mini-PC’s (vide artigos desse blog) usam normalmente Android, mas alguns Mini-PC’s podem ter duplo boot com Linux, onde todo o ambiente de Python científico funciona (inclusive IPython Notebook, Mayavi2, etc). Hoje os Mini-PC’s custam em torno de US$50 no exterior, bastando adicionar mouse & teclado USB, cartão microSD (>= 8GB) e uma TV (ou monitor) com HDMI;
- tablets (e mesmo smartphones) com Android podem em alguns casos serem “rooteados” (digamos destravados), permitindo rodar Linux dentro do Android (via chroot de uma imagem Linux) e interface gráfica via VNC (o que é meio lento). A maior parte do ambiente Python científico funciona no Linux dentro do Android (nem tudo funciona pois Android não é Linux, não tendo glibc, X Windows, etc).
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.
Computação simbólica CAS (Computer Algebra System) em smartphones e tablets « Roberto Colistete Jr. said
[…] Python científico em computadores, tablets e smartphones […]
Easy Debian Harmattan para Nokia N9 com teclado virtual transparente « Roberto Colistete Jr. said
[…] Python científico em computadores, tablets e smartphones […]