Nem Django ou Flask: que bibliotecas seriam as mais indicadas para…

… desenvolver aplicações WEB com Python (sem maiores esforços)? Nestes últimos tempos, em que voltei as minhas atenções para o desenvolvimento de software (em vista da necessidade de atender aos requisitos da certificação Cisco DevNet Automation), passei a acompanhar com mais frequência (e entusiasmo) a linguagem de programação Python e todo o ecossistema formado em torno dela. Inclusive, também tenho me dedicado a criar aplicações dotadas de interfaces gráficas, fazendo até mesmo algumas experiências com a modesta biblioteca Tkinter

Até então, não estava muito disposto a desenvolver aplicações WEB, já que o meu foco era prover soluções para a infraestrutura de redes. Porém, as experiências de aprendizado que obtive com Python (e tudo relacionado ao desenvolvimento de softwares) tem sido tão agradáveis, que passei a cogitar esta possibilidade (em um futuro não muito distante). Mas, ao invés de trabalhar com frameworks que exijam uma certa curva de aprendizado (como é o caso de Django e Flask), estou considerando inicialmente optar por uma abordagem mais leve, prática e rápida.

Por isto, passei a dar uma atenção especial para duas bibliotecas feitas para o desenvolvimento de aplicações WEB, com o mínimo de esforço: eis, a NiceGUI e a Streamlit! Enquanto que a primeira é designada para propósitos gerais, a segunda é mais voltada para o uso em ciência de dados. Ambas, se notabilizam pela facilidade e simplicidade de uso, sem a necessidade de conhecer os fundamentos para o desenvolvimento de front-ends, se focando tão somente na aplicação. A ironia disto, é que já tenho uma boa base de conhecimentos em HTML & CSS…

O NiceGUI, por ser uma biblioteca designada para propósitos gerais, seria em tese a escolha ideal para realizar as minhas investidas. Ele se destaca em vista de oferecer um conjunto mais rico de elementos visuais para a interação (botões, caixas de diálogos, gráficos, tabelas, guias e barras), além de suportar designs responsivos para diferentes tipos de tela. Porém, ainda requer uma ligeira curva de aprendizado (em comparação ao Streamlit) e por não ser tão popular, a sua comunidade de usuários é mais reduzida, o que impacta diretamente na sua evolução (no mundo do Software Livre, a representação da comunidade é tudo).

Já o Streamlit, em vista do seu foco em ciência de dados, inicialmente se mostra mais restritiva em termos de aplicação. Para variar, também não entrega tantos elementos visuais para a interação, apesar de oferecer um suporte mais robusto para as bibliotecas gráficas (Matplotlib, Plotly, Altair, etc). No entanto, muita das aplicações que pretendo desenvolver tirariam bastante proveito das facilidades que esta biblioteca possui para gerar dashboards, além do fato dela ser ainda mais fácil de trabalhar e se focar exclusivamente no código em Python (sem contar ainda a sua grande popularidade e a comunidade formada em sua volta).

Por ora, vou concentrar os meus esforços em desenvolver as competências e as habilidades necessárias para a administração de infraestruturas de TI, além de outros processos relacionados a Redes Definidas por Softwares (SDN). Além disso, também continuarei realizando experiências interessantes com o Tkinter, para que possa futuramente de ferramentas mais sofisticadas (ao invés de meros scripts). Mas a partir do momento em que decidir ampliar o leque de possibilidades e passar a desenvolve aplicações WEB (algo que ainda não decidi se realmente irei fazer), certamente farei o uso destas bibliotecas! Mas até lá…

Ainda há um longo caminho a percorrer (e nem sei se chegarei ao fim)… &;-D