Python para quê?

migmcc

Membro
Boas,

Tenho alguns conhecimentos de Java e ando com ideia de aprender Python.

Tanta gente fala tão bem desta linguagem mas eu tenho uma importante duvida que gostaria de ver esclarecida:

O que posso fazer em Python que não posso em Java?

vale a pena o esforço ou mais vale virar agulhas para outra linguagem?

Obrigado e desculpem a intromissão.
 
Uma linguagem é uma linguagem. O que podes fazer em Python consegues fazer em java, C#, JS, etc...

Python vs Java, assim que me lembre Python tem de diferente:
- Sintaxe mais simples
- Mais performance
- Dynamic typing
 
O que posso fazer em Python que não posso em Java?
vale a pena o esforço ou mais vale virar agulhas para outra linguagem?

Ler conteúdo de um ficheiro de texto em java:
Código:
BufferedReader br =newBufferedReader(newFileReader("file.txt"));
try{
    StringBuilder sb =newStringBuilder();
    String line = br.readLine();

    while(line !=null){
        sb.append(line);
        sb.append(System.lineSeparator());
        line = br.readLine();
    }
    String everything = sb.toString();
}finally{
    br.close();
}

Ler conteúdo de um ficheiro de texto em python:
Código:
fin = open('file.txt'):
everything = fin.read()
fin.close()

Diria que a grande vantagem de Python é a simplicidade do código pelo facto de estares a trabalhar com uma linguagem interpretada. Isto permite-te fazer pequenos scripts mais rapidamente, por exemplo.

Depois, o ecosistema de bibliotecas em Python está também muito bom: muitas ferramentas para Machine Learning, Data Science, etc.; tens Django, Flask para backends web, matplotlib para gerar gráficos para colocares em publicações, blogs, ou livros. O meu próprio site pessoal usa flask para gerar os templates a partir de ficheiros markdown, e depois gerar automaticamente o html (apenas faço o upload do html para o meu servidor) [~100 linhas de código: https://github.com/joaoventura/flask-static-site/blob/master/site.py]. Existem também projectos para usar python no browser: https://brython.info/

Onde falha? Android, iOS, tudo o que implica distribuir aplicações tem de levar o interpretador atrás, etc.

Se vale a pena o esforço? Depende do que precisas que uma linguagem de programação faça por ti.. Quando faço uma app em Android, por exemplo, uso Java..
 
Última edição:
Já agora, no seguimento do tom do post anterior, deixo aqui um pequeno post que escrevi sobre como implementar um webserver básico em Python (usando apenas network sockets): http://joaoventura.net/blog/2017/python-webserver/

O código completo tem ~50 linhas e implementa um servidor HTTP que devolve ficheiros HTML: https://gist.github.com/joaoventura/824cbb501b8585f7c61bd54fec42f08f. No fundo, leiam o código a partir da linha 40 para perceberem o funcionamento geral deste servidor HTTP básico..
 
Última edição:
Diria que se não tens problemas em trabalhar para "talhos" ou outras empresas onde J2EE, EJB, JPA, EMF, CORBA, SOAP, BufferedReaders, InputBufferedReaders e outras coisas do género """empresarial""" são coisas interessantes, diria que estás relativamente safo em Portugal a fazer Java.

Para Python, obviamente há menos coisas, mas também há muito menos candidatos. Sendo exagerado, em proporção de vagas/candidatos vs Java, conta-se pelos dedos das mãos os developers de Python disponíveis. Uma empresa onde trabalhei nunca conseguiu preencher todas as vagas de Python, e volta não volta lá recebo o ocasional contacto para Python.

Em termos concretos de propostas:
- https://landing.jobs/offers/?page=1&q=python&s=date&s_l=0&s_h=100&t_co=false&t_st=false
- https://whoishiring.io/search/25.473/-40.538/2/?search=python

Muita coisa remota, se for o vosso estilo, por exemplo: https://landing.jobs/at/hotjar/full-stack-python-developer-in-saint-julian-s-2016. Pelo site do whoishiring dá para perceber que a maior procura é para Web development (Django) depois para Data Science, e coisas de Machine Learning (usando p. ex: https://www.tensorflow.org/).
 
Já agora, no seguimento do tom do post anterior, deixo aqui um pequeno post que escrevi sobre como implementar um webserver básico em Python (usando apenas network sockets): http://joaoventura.net/blog/2017/python-webserver/

O código completo tem ~50 linhas e implementa um servidor HTTP que devolve ficheiros HTML: https://gist.github.com/joaoventura/824cbb501b8585f7c61bd54fec42f08f. No fundo, leiam o código a partir da linha 40 para perceberem o funcionamento geral deste servidor HTTP básico..

Concordo. Bons exemplos de aplicação são por exemplo scrapers, etc.
 
python é muito menos verboso em relação a java, escreves menos para conseguires o mesmo resultado que em java, o facto de ser uma linguagem interpretada tambem contribui para a rapidez de produção de codigo. Java ganha noutros aspetos, depende da escala da tua aplicação.
 
O que consegues fazer em Python que não consegues fazer em Java? Podes fazer uma biblioteca de python em C, resumidamente podes programar alto nível e baixo nível, inclusivé ao nivel do assembler, o que é bastante interessante porque o python é uma linguagem interpretada (C scripting basicamente) e pode ser usada para tudo, por esta razão é usada para tudo, desde sistemas operativos até jogos.

Se o teu conhecimento é ainda básico, a diferença não é nenhuma, para correres java precisas de correr máquina de java o que para scripting é péssimo, mas num programa a correr é bom.
 
Back
Topo