Porquê continuamos a usar Python para criar soluções de Inteligência Artificial(IA) e Machine Learning (ML) mesmo sendo menos eficiente que outras linguagens em desempenho bruto?
Escrevo código em python já faz algum tempo. Enquanto estava estudando para aumentar minhas skills na linguagem me deparei com uma situação ou dado interessante.
Descobri que em termos de desempenho bruto python perde para outras linguagens ( como Rust ou C++) , ou seja , python é lenta. Apesar disso, python ainda é a escolha número 1 para IA e ML - me perguntei porquê, investiguei e decidi escrever sobre.
Então... Apesar de Python perder para outras linguagens em desempenho bruto, ela continua a ser amplamente utilizada em Inteligência Artificial, Machine Learning (ML) e até Ciência de dados por várias razões estratégicas, práticas ou por motivos de produtividade. Vou falar sobre aquelas razões que eu achei essenciais.
Facilidade de uso e produtividade
Python é uma das linguagens de alto nível com sintaxe simples e legível, isso permite pesquisadores e desenvolvedores se concentrar na lógica do problema e nos algoritmos específicos sem precisar se preocupar com detalhes complexos da linguagem. Isso é essencial em IA e ML, onde a prototipagem e experimentação são essências, fora que a maior parte dos profissionais vem de áreas como a matemática, ciências de dados ou estatística e não necessariamente da ciência da computação ou programação.
Ecossistema rico em bibliotecas
Python tem disponível uma grande coleção de bibliotecas e frameworks especializados em IA, ML e ciências de dados. Essas bibliotecas e frameworks cobrem áreas como : deep learning ( TensorFlow), manipulação de dados( Panda), visualização de dados( Matplotlib), machine learning( scikit - learn) e outras. Como essas bibliotecas são altamente especializadas e escritas em linguagem de baixo nível ( como C++), elas compensam a "lentidão" de Python.
Integração com outras tecnologias
Existe uma grande facilidade em integrar Python com outras linguagens e ferramentas o que permite que Python seja "rápida " onde importa mesmo não sendo a linguagem mais eficiente em deesempenho bruto.
Prototipagem rápida
Quando o assunto é IA e ML, poder testar ideias rapidamente é mais importante que "velocidade " no princípio. Essa capacidade permite a pesquisadores e desenvolvedores implementar e testar algoritmos de forma ágil - isso é crucial durante a experimentação.
Desempenho não é o fator mais crítico
Na grande maioria das aplicações de IA encontramos o gargalo do desempenho nos cálculos matemáticos intensivos, mas estes cálculos são realizados por bibliotecas otimizadas escritas em outras linguagens(linguagens de baixonível), Python atua como uma camada de abstração para uso dessas bibliotecas e o trabalho pesado é realizado por linguagens de baixo nível.
GPU's e TPU's
Os frameworks de Python usam GPU's e TPUs para acelerar os cálculo rodando códigos altamente otimizados, Python serve "unicamente" como interface para essas tecnologias.
Comunidade e Suporte
Graças a sua grande e ativa comunidade, a disseminação de conhecimento e resolução de problemas em python é facilitada. Tutoriais, fóruns , cursos, apostilas... Tudo isso ajuda bastantes no momento em que nos deparamos com algum problema.
Conclusão
Apesar de "lenta" se comparada com linguagens como Rust ou C++, Python ainda é a escolha ideal para trabalhar com IA e ML por razões como ecossistema rico, facilidade de integração com tecnologias de alto desempenho e facilidade de uso. Fora que quando bibliotecas otimizadas e hardware especializado são utilizado a velocidade de desenvolvimento e produtividade superam na maioria dos casos a necessidade de desempenho bruto.
Como forma de simplificação, podemos encarar Python como a cola que une as tecnologias necessárias na construção de soluções de IA e ML eficientes.