GARANTIR DESCONTO

Fórum Vantagens e Desvantagens de Python #564847

09/04/2009

0

Não quero comparar linguagens, mas gostaria de saber a opinião dos que já usam Python. Porque decidiram usar Python? Que vantagens Python tem em relação a outras linguagens como C/C++/Java/C#? Que desvantagens Python tem em relação a essas linguagens? Python é uma linguagem de propósito geral, ou é algo mais direcionado para alguma àrea? Qual o desempenho e segurança que Python no desenvolvimento de grandes projetos? Alguém poderia compartilhar sua experiência com Python? Python é usado comercialmente, tipo em algum grande projeto como Java? Qual é o cenário atual de Python, tipo, suporte, quantidade de programadores usando, quantidade de programas desenvolvidos, etc? Na opinião de vocês, qual será o futuro do Python? Atenção! Como já disse, não quero comparar, desvalorizar, ironizar, nenhuma linguagem, apenas saber a opinião dos mais experientes.
Hains

Hains

Responder

Post mais votado

14/06/2013

as maiores desvantagens do python é a falta de profissionais qualificados e que tenham um bom nível de inglês para estudar a documentação. em relação à linguagem ela não possui suporte que se compare a empresa Oracle.

Cristiano Bezerra

Cristiano Bezerra
Responder

Gostei + 2

Mais Posts

09/04/2009

Vitor Pamplona

Bom, pra começar Python é uma linguagem Script. O que as vezes é bom e as vezes é ruim. Mas é bem facilzinho de desenvolver, porém a sintaxe de alguns itens da OO dele é que não me agradam. A integração dele com telas é feita com o GTK que é bem sequinho de recursos. []s
Responder

Gostei + 0

09/04/2009

Vitor Pamplona

É rápido para desenvolver [:D] Em que tipo de aplicações eu usaria Python? [ http://www.pythonbrasil.com.br/moin.cgi/PerguntasFrequentes/SobrePython ] Python é uma linguagem de uso geral que pode ser empregada em vários tipos de problemas. A biblioteca padrão inclui módulos para processamento de texto e expressões regulares, protocolos de rede (HTTP, FTP, SMTP, POP, XML-RPC, IMAP), acesso aos serviços do sistema operacional, criptografia, interface gráfica etc. Além da biblioteca padrão, existe uma grande variade de extensões adicionais para todo tipo de aplicação. Python é tipicamente usado em aplicações web e como linguagem de scripting para administração de sistemas. A facilidade de integração com C faz de Python uma linguagem embutida atrativa em aplicações de maior porte. A possibilidade de uso de componentes COM faz de Python uma alternativa mais agradável (e barata) ao Visual Basic. Finalmente, com o uso de ferramentas como o freeze ou Py2Exe é possível distribuir aplicações Python stand-alone, sem que o usuário tenha que instalar o interpretador Python separadamente. Praticamente tudo o que se faria com qualquer linguagem de programação, seja ela interpretada ou compilada pode-se se fazer com python: protótipos de sistemas, automatizar tarefas repetitivas como manipulação de texto, cópia de arquivos e outros. Pode-se também criar programas que funcionam no modo texto, tanto interativos como servidores (ou daemons). Pode-se fazer programas em modo gráfico usando a interface nativa do seu sistema, ou então utilizando Tk, GTk, Qt, wxWidgets e tantas outras.
Responder

Gostei + 0

09/04/2009

Vitor Pamplona

Em termos de foco: Python, Ruby e Groovy são linguagens de script orientadas à produtividade. Java, por exemplo, é uma linguagem orientada à manutenção. Isso significa que é bem rápido escrever código em Python, mas essa "rapidez" pode criar pesadelos de manutenção mais tarde. Na outra ponta, linguagens "rígidas" como o Java te obrigam a escrever mais, porém o código mantém obrigatoriamente uma legibilidade mínima durante todo o ciclo de vida no projeto. Em relação ao suporte a bibliotecas, vc. pode ter "porte" de linguagens de script para qualquer API existente. É muito fácil usar a linguagem Python e a API/VM Java, como é o caso do Jython.
Responder

Gostei + 0

09/04/2009

Marcos Pereira

Copernico, se vc falasse de Perl, eu nem reclamaria. Tenho certeza de que não consigo dar manutenção facil nos codigos Perls que escrevi faz algum tempo. :-D Mas, acho que manutenção está um bocado mais relacionada a como se programa do que, ao menos no caso dessas linguagens, a linguagem em si. Acho que Zope e Plone são bons exemplos de que é possivel fazer software com boa manutenção e capacidade de extensão em Python. valeuz...
Responder

Gostei + 0

09/04/2009

Marcos Pereira

Olá! Python é uma linguagem muito fácil de se aprender. Sua sintaxe limpa facilita a escrita e também a manutenção uma vez que é mais fácil de ler. Ela é bem flexível permitindo a programação de scripts e os estilos procedural e orientado a objetos. É interpretada, como Java, e também pode ser compilada em código nativo. Se o que você for programar ficaria muito bem em LISP, Python pode ser uma boa, porque ela também faz a vez de linguagem de programação funcional. Por outro lado, se a aplicação fizer uso intenso de cálculo o desempenho será muito baixo, já que ela não tem tipos primitivos: tudo é um objeto, do dígito 'a' ao número 1 (100% OO). Pode-se contornar isso integrando o código em Python com C/C++, mais isso tira um pouco da portabilidade do código (nesse caso Java tem a vantagem de ser portável e ter tipos primitivos). Python é um bom candidato onde se pode pensar em usar PHP, Ruby, etc. Tem sido usada como ferramenta de ensino de programação (pela sua facilidade de aprendizado e implementação de conceitos de Ciência da Computação), teste e prototipagem, script, etc. Não há muitas IDE´s de qualidade para Python o que pode comprometer o desempenho na produção de código.(há um plugin para Eclipse) Se o foco do trabalho será LAMP(Linux, Apache MySQL e Python|Perl|PHP ) Python tem muitas vantagens sobre as outras opções (minha opinião pessoal). É isso aí...
Responder

Gostei + 0

09/04/2009

Marcos Pereira

[quote="Lazaro Junior"]É interpretada, como Java, e também pode ser compilada em código nativo.
Hum, não sabia que Python podia ser compilada em codigo nativo. Mas, de qualquer modo, não é interpretada como Java. Java é semi-interpretada, mas passa por uma fase de compilação que boa parte das linguagens de script simplesmente não possuem. [quote="Lazaro Junior"]Python é um bom candidato onde se pode pensar em usar PHP, Ruby, etc.
A briga é feia, entretanto. Já vi algumas boas flame wars entre python e ruby. [quote="Lazaro Junior"]Se o foco do trabalho será LAMP(Linux, Apache MySQL e Python|Perl|PHP ) Python tem muitas vantagens sobre as outras opções (minha opinião pessoal).
Minha escolha entre as que vc citou seria Ruby. Quais as muitas vantagens de Python sobre as outras? valeuz...
Responder

Gostei + 0

09/04/2009

Marcos Pereira

Olá! Pensei, errôneamente, que o utilitário py2exe gerasse código nativo. Não gera ( :00ps: ) apenas empacota o código num .exe Python gera na compilação dos fontes .py "bytecodes" em arquivos .pyc que serão interpretados (mas nem todos os arquivos .py geram outros .pyc). Esse "bytecode" .pyc acelera o carregamento mas não necessariamente melhora o desempenho logo a compilação do Python e do Java devem ser mesmo diferentes. É muito prático escrever sites em PHP, mas há um módulo do Apache (mod_python) que permite rodar código em Python como se fosse um servlet . Esse mesmo módulo permite escrever código embutido na página ( arquivos PSP, Python Server Pages, mas é menos prático que o PHP). Também existe um template engine (cheetah) que faz a vez de Velocity para o Python. Podemos ter algo parecido com Servlets + Velocity com um sintaxe bem simples. Para apenas um site ou uma aplicação simples essa abordagem me atrai mais que usar PHP. Me atrai muito a possibilidade de programação funcional: o código fica bem conciso. Também posso usar o interpretador como "ambiente de operação": podendo substituir o MatLab para o que eu preciso; posso interfacear com BD ou com o sistema em tempo real e de maneira bem produtiva (com sobrecarga de operadores e umas funções predefinidas). Cada linguagem atende uma demanda e um estilo. Eu me identifico mais com Python, mas como ja disse é uma questão de gosto. Até mais!
Responder

Gostei + 0

09/04/2009

Marcos Pereira

Hum, muito interessante, não sabia sobre o pyc/pyvm. Sempre usei python com o esquema de script mesmo. Para quem, assim como eu, desconhecia esse ambiente, segue uma descrição curta: [list]pyc is a compiler that compiles python source code to bytecode (from .py to .pyc), written entirely in Python (based on code from the `compiler package`). It can of course compile itself and even pass a 3-stage bootstrap![/list] Sobre o [url=http://www.cheetahtemplate.org/]Cheetah[/url], bastante parecido com o Velocity mesmo, alias, parece possuir mais construções do que o Velocity. Eu já havia lido sobre outro template engine para Python. O [url=http://kid.lesscode.org/]Kid[/url], conhece? É o engine usado no [url=http://www.turbogears.org]Turbogears[/url], uma especie de Rails do Python. [quote="Lazaro Junior"]É muito prático escrever sites em PHP, mas há um módulo do Apache (mod_python) que permite rodar código em Python como se fosse um servlet . Esse mesmo módulo permite escrever código embutido na página ( arquivos PSP, Python Server Pages, mas é menos prático que o PHP).
PHP é mesmo muito pratico, deploy rapido, enfim, essas caracteristicas que todos já conhecem. Mas, não sei se chega a ser tão mais pratico do que o PSP, para mim parece que estão empatados. Quais vantagens vc acha que paginas PHP levam sobre um PSP, Lazaro? [quote="Lazaro Junior"]Também posso usar o interpretador como "ambiente de operação": podendo substituir o MatLab para o que eu preciso;
Vc se refere ao ambiente interativo? Dá para fazer tanto assim nele, afinal o MatLab tem muita coisa relativamente avançada, especialmente a cosntrução de graficos para funções e por aí vai. Sobre gosto, o que me atrai em linguagens de script como Ruby, Python, PHP e Perl é a agilidade com o que as coisas acontecem. Vc escreve algumas linhas e pronto, a funcionalidade já existe. Eu não preciso de toneladas de jars, não preciso programar para dar suporte a um framework/api. Alias, nem tanto isso, talvez Java sofra, as vezes, da falta de APIs realmente simples. Elas são extensiveis, bem escritas, orientadas a objetos e todo esse bla bla bla. Mas, falta criar APIs mais diretas:
String[] lines = IOUtils.read("sample.txt");
valeuz...
Responder

Gostei + 0

09/04/2009

Marcos Pereira

Olá PSP tem uma desvantagem: como o código em Python é rigido com identação uma instrução como
for item in lista:
    print item
em PSP ficaria mais ou menos assim
<tr>
<% for item in lista:%>
<td><%= item %></td>
<%
# fecha o bloco
%> 
</tr>
Esse incoveniente de lidar com identação faz o PHP um pouco mais prático. O MatLab é um programa fantástico (não há um software GPL que bata ele). Mas para aplicações simples (nem todo mundo usa os "um milhão" de recursos do MatLab) Python dá conta do recado, principalmente com módulos extras: [url]http://www.scipy.org/[/url] Para gráficos há um módulo que faz integração com um software, se não me engano é GNUPlot (não lembro direito). Também deve haver outros, afinal o repositório de Python é grande. Para uma aplicação maior e mais complexa Java talvez seja mais indicada, mas é possível combiná-las e tivar bom proveito disso. Exemplo: GUI em Python tem alguns problemas de desempenho, recursos ou padronização da aparência (Tk, GTK, Qt, WxPython); Mas com Jython podemos criar interfaces em Swing:
# exige caixa de mensagem a partir de código Python
import javax.swing as libswing
libswing.JOptionPane.showMessageDialog(None, "Hello World!" )
É possível tirar o que ambas as limguagens tem de melhor É isso aí!
Responder

Gostei + 0

09/04/2009

Marcos Pereira

vamos listar software / sistemas feitos em Python! estou curioso c é algo bom ou ruim. naum identifiquei ainda.
Responder

Gostei + 0

09/04/2009

Arthur Casals

[url=http://en.wikipedia.org/wiki/List_of_applications_written_in_Python]Lista de aplicacoes em Python[/url] A titulo de curiosidade: [url=http://en.wikipedia.org/wiki/List_of_applications_written_in_Python]uma aplicacao bem interessante[/url] em [url=http://en.wikipedia.org/wiki/IronPython]IronPython[/url]
Responder

Gostei + 0

16/03/2010

Berg Ginú

Absurdo! Pessoal, quando se inicia um programa escrito em Python, a máquina virtual do Python (PVM) procura os arquivos de módulo com a extenção .py verifica se há um .pyc correspondente. Caso ambos sejam equivalentes, a PVM executa o .pyc logo de cara, caso aja alguma alteração ela compila o módulo em .pyc. sendo assim, todos os módulos importados são "compilados" para a forma .pyc (linguagem natural da PVM). Com relação as interfaces gráficas, [b] Sr vfpamp [/b] , o Python tem um absurdo de opções para se trabalhar, sendo que a TK, já vem incluída na biblioteca padrão. O GTK é bem usando em ambientes gráficos GNOME. O Py2EXE gera, na verdade binários congelados. Quem realmente quer usar Python para programação para web pode usar o framework Django com módulo mod_wsgi, no apache. E o mais importante, o Python foi feito para ser uma linguagem para aplicações fáceis de serem entendida e mantidas. Por exemplo, quando comecei a aprender Java, assim como C fui tentar fazer o tradicional HELLO WORD!. qual foi minha surpresa, ao saber que tinha que ir atrás de tanta da classe pra poder simplesmente imprimir algo no terminal. Então vi Python: "print 'Hello word'" e joguei fora o livro de Java. Outra, em Python, podemos fazer: "from modulo1.modulo1a import funcao as func1" e tratala no resto da aplicação como func1, em vez de fazer aquele discurso todo novamente. A última: Não chamem programas em Python de scripts, pois, embora se possa fazer bons scripts em Python, a extrutura de um programa é bem diferente do, por exemplo um Script Shell. Scripts, geralmente, não englobam módulos e classes e POO, como Python faz de uma forma tão clara que chega a fazer inveja a maioria dos meus colegas programadores de Java de longa data. Como desenvolvedores de software devemos saber bem a diferença entre um scrip, um programa e um sofware propriamente dito. Tendo em vista que a estrutura dos mesmos varia muito em complexidade.
Responder

Gostei + 0

17/03/2010

Diogo Souza

:zoio: :espanto: Viajo no Phyton! [b]"Desenterrando Lembranças..."[/b] :!:
Responder

Gostei + 0

14/06/2013

Cristiano

Tem mercado de trabalho aqui no brasil pra python ?
Responder

Gostei + 0

14/06/2013

Cristiano

Existe vaga pra desenvolvedor cobol até hoje, porque não existiria para python? depende muito da região. existem lugares que usam muito php, .NET, outras Java etc o problema é que falta profissionais qualificados. o maior exemplo do pode r do python é o gigante google.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar