Python ou Fortran?

805 views
Skip to first unread message

João Damasceno

unread,
Mar 16, 2017, 1:31:07 PM3/16/17
to Python Brasil
Olá, boa tarde à todos. 

Sobre a questão da programação aplicada ao meio acadêmico (Matemática, Física = meu caso, Engenharias etc.) no que difere a opção pelo Fortran em detrimento do Python? ou quais seriam os aspectos positivos e negativos de se utilizar uma ou outra linguagem?
 
Soube recentemente que o Python é incomparavelmente mais lento que o Fortran. Entretanto, não creio que em ambiente acadêmico, onde a sintaxe será curta, relativamente simples, nada tão elaborado, essa questão do desempenho "Python vs. Fortran" seja algo tão positivo para o Fortran (apesar de mais rápido) do que para o Python.

___________________
Obs. No departamento de Física, em termos de professores mais "antigões", o Fortran reina absoluto (algo sem paralelo algum). Já os alunos (em especial os dos programas de pós graduação) o Python é visto como algo fantástico, absolutamente passível de substituir o Fortran (sem nenhum prejuízo). Mas será que é assim mesmo? 

O que vocês poderiam me dizer sobre essa questão? Ou mesmo sobre Python vs. Pascal e demais linguagens mais aplicadas ao meio científico.


Obrigado e tudo de bom.


Eduardo Cuducos

unread,
Mar 16, 2017, 1:36:51 PM3/16/17
to Python Brasil
Oi João,

Arrisco dizer que se você usar o numpy, biblioteca do Python, você vai ter o melhor dos dois mundos: o numpy, internamente, delega os cálculos a modulos em C e Fortran, mas você trabalha mesmo diretamente com a linguagem mais amigável que é o Python: https://docs.scipy.org/doc/numpy/reference/internals.html#internal-organization-of-numpy-arrays

Python nesse ambiente acadêmico é com numpy — vai com fé ; )

Abraço,

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
--
Eduardo Cuducos

José Ricardo Borba

unread,
Mar 16, 2017, 1:38:38 PM3/16/17
to python-brasil
Ola, Joao,

Sou Fisico tambem, e entre outras diferencas mais comuns que serao apontadas repetidas vezes, vou lhe dizer qual a que me levou a utilizar Python e praticamente abandonar todo o RESTO: as bibliotecas. Python pode resolver quase qualquer coisa. Se nao resolve, existem os bindings para quase tudo que eh importante na area cinetifica. Os bindings permitem que o Python possa enviar dados e receber os resultados (como do R, por exemplo).rea cinetifica

IMHO, nada se compara ao Python na area cientifica.

Um abraco,

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--
José Ricardo Borba

Júnio Antonelli

unread,
Mar 16, 2017, 2:02:21 PM3/16/17
to Python Brasil
Use Fortran apenas na parte do seu código que requer intenso processamento. Nesse ponto Python é lento porque ele não foi projetado para esse tipo de problema, é a ferramenta errada.
Na arquitetura do seu código use Python porque ele foi feito justamente para isso, fica muito mais fácil manter e depurar em Python do que em Fortran. Por isso que em Python você conversa melhor com outras bibliotecas feitas em outras linguagens.
Não é uma questão de qual a melhor linguagem, mas qual a melhor ferramenta para cada problema.

João Damasceno

unread,
Mar 17, 2017, 2:59:06 PM3/17/17
to Python Brasil
Muito obrigado. Achei excelentes todas as observações de vocês. De fato só fico com receio quando o assunto é a questão do intenso processamento. Porque, se não me engano, nesse sentido e Fortran é bastante indicado. Já o Python é muito sofisticado e repleto de recursos muito interessantes e realmente tem uma sintaxe muito intuitiva e a manutenção é realmente bem simples. Creio que vou de Python mesmo... rs... Muito obrigado!!!

Eduardo Cuducos

unread,
Mar 17, 2017, 3:21:35 PM3/17/17
to Python Brasil
>  nesse sentido e Fortran é bastante indicado. Já o
> Python é muito sofisticado e repleto de recursos muito
> interessantes e realmente tem uma sintaxe muito
> intuitiva e a manutenção é realmente bem simples

Sim, o Fortran é bastante sofisticado. Por isso mesmo as bibliotecas para uso acadêmico delegam isso para uma linguagem compilada, compensando MUITO em termos de performance:

The effective performance penalty for using Python varies, and is mitigated by delegating computationally intensive tasks to compiled languages. MATLAB does something similar. When you do a matrix multiplication in MATLAB, it calls BLAS; the performance penalty is virtually zero, and you didn't have to write any Fortran, C, or C++ to get the high performance. 


--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.
--
Eduardo Cuducos

Alex lucena

unread,
Nov 24, 2018, 6:19:57 PM11/24/18
to Python Brasil
Pelo que entendi é possível uma interação entre o Fortan e o Python . Como isso pode ser implementado?

Fabio C. Barrionuevo da Luz

unread,
Nov 24, 2018, 6:22:33 PM11/24/18
to python...@googlegroups.com

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar

 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/50f1cca2-6fac-4ad3-8057-ed42be8ccc97%40googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.


--
Fábio C. Barrionuevo da Luz
Palmas - Tocantins - Brasil - América do Sul


Blog colaborativo sobre Python e tecnologias Relacionadas, mantido totalmente no https://github.com/pythonclub/pythonclub.github.io .

Todos são livres para publicar. É só fazer fork, escrever sua postagem e mandar o pull-request. Leia mais sobre como publicar em README.md e contributing.md.
Regra básica de postagem:
"Você" acha interessante? É útil para "você"? Pode ser utilizado com Python ou é útil para quem usa Python? Está esperando o que? Publica logo, que estou louco para ler...

christian vieira

unread,
Nov 25, 2018, 8:23:21 PM11/25/18
to Python Brasil
Eu procuraria informações no CERN e também naquele laboratório do LHC, uma vez que eles processam massas de dados absurdas e em alguns casos tudo deve ser feito muito rápido.

Python até pode ter muita biblioteca (muitas delas na verdade wrappers de C/C++), entratanto, Fortran tem mais de 60 anos! Em algumas universidades, cálculo numérico e análise de fluidos, eletromagnetismo (dentre outras disciplinas) ainda são dadas em Fortran...

Não sei como Fortran ficou com a questão do uso em arquiteturas multiprocessadas, mas certamente há suporte para isto!


Valdemar W. Setzer

unread,
Nov 26, 2018, 7:41:41 AM11/26/18
to Python Brasil
Olá a todas/os, 

Não resisto em meter o bedelho neste assunto. 


Em quinta-feira, 16 de março de 2017 14:31:07 UTC-3, João Damasceno escreveu:
Olá, boa tarde à todos. 

Sobre a questão da programação aplicada ao meio acadêmico (Matemática, Física = meu caso, Engenharias etc.) no que difere a opção pelo Fortran em detrimento do Python? ou quais seriam os aspectos positivos e negativos de se utilizar uma ou outra linguagem?

FORTRAN foi a primeira linguagem erradamente denominada de "alto nível", antes só se usava linguagem de máquina ou assembler. O primeiro compilador ficou pronto em 1958, um esforço de Backus et al. na IBM. Naquela época não havia muita noção do que era necessário para descrever um algoritmo e principalmente como se deveria descrevê-lo de modo que pudesse ser interpretado por um computador (computadores não executam programas, interpretam-nos!). Quando ela foi desenvolvida, estava se pensando em como a máquina poderia interpretar os comandos com eficiência, e não como os programadores poderiam descrever seus algoritmos com mais simplicidade, com mais corretude e em menos tempo. A primeira linguagem imperativa que foi desenvolvida para descrever algoritmos foi ALGOL -- o relatório dela, usando a sintaxe Backus-Naur foi em 1960, projetada com a finalidade de descrever algoritmos. Mas mesmo ela ainda estava muito próxima da estrutura interna dos computadores. A prova disso é o uso de if...then...else... e da malha for, claramente inspiradas na estrutura das linguagens de máquina. Infelizmente, os projetistas de linguagens de programação sempre tiveram a máquina como objetivo, e não o programador ou, muito melhor ainda, os problemas. Pode-se notar que qualquer malha for ou while processa conjuntos de dados; o correto sempre deveria ter sido haver comandos para processar conjuntos e sequências de dados. Em lugar de if...then...else... dever-se ia usar tabelas de decisão.

Dou um exemplo de como as linguagens não se adaptam aos problemas: desde FORTRAN as linguagens algorítmicas não contém nem o tipo nativo data nem o moeda. Encontrem um programa que não tenha uma ou as duas dessas estruturas. Excel e Access as contêm, pois foram projetadas para resolver problemas.

Um evento histórico extraordinário na computação foi o advento da série 5.000 da Burroughs, mais tarde série 6.000, onde hardware foi implementado para interpretar chamadas de procedimentos (hoje erradamente chamados de funções) encaixados em procedimentos com muita eficiência, por isso as cadeias estática e dinâmica de chamadas de procedimentos eram implementadas em hardware. A razão disso, foi o objetivo de implementar programas em ALGOL com muita eficiência. Foi a primeira máquina projetada pensando numa linguagem algorítmica. 

 Como a linguagem C foi desenvolvida tendo em mente o PDP-11, um minicomputador da época, e ele não tinha o hardware para implementar a cadeia estática, o que fez o Dennis Ritchie? Em lugar de entortar a máquina, entortou os programadores, impedindo que se declarasse uma função dentro de outra. E isso foi herdado na Java. E com isso a implementação da herança de classes virou um lixo. 

Curiosamente, hoje em dia a linguagem de programação é o que menos há a aprender. Cada uma delas vem com um enorme ambiente de procedimentos e funções já programados, que têm que ser aprendidos para cada uma, pois diferem de uma linguagem para outra. Veja só algumas das toneladas de funções nativas da Python:

 
Soube recentemente que o Python é incomparavelmente mais lento que o Fortran. Entretanto, não creio que em ambiente acadêmico, onde a sintaxe será curta, relativamente simples, nada tão elaborado, essa questão do desempenho "Python vs. Fortran" seja algo tão positivo para o Fortran (apesar de mais rápido) do que para o Python.

Se quer velocidade, use a C ou C++.São as que mais miseravelmente se adaptam às máquinas. Mas se você é estudante, e não pesquisador, esqueça a velocidade. E enterre o FORTRAN!

___________________
Obs. No departamento de Física, em termos de professores mais "antigões", o Fortran reina absoluto (algo sem paralelo algum). Já os alunos (em especial os dos programas de pós graduação) o Python é visto como algo fantástico, absolutamente passível de substituir o Fortran (sem nenhum prejuízo). Mas será que é assim mesmo? 

O que vocês poderiam me dizer sobre essa questão? Ou mesmo sobre Python vs. Pascal e demais linguagens mais aplicadas ao meio científico.

Quando a USP instalou um B-6700 da Burroughs, eu era chefe do departamento de Matemática Aplicada do IME-USP, e imediatamente escrevi à diretoria da POLI para passarmos a ensinar ALGOL e não FORTRAN. O então diretor da POLI, prof. Fadigas, respondeu mal educadamente, enviando ao Conselho Universitário uma ordem para  que não saíssemos do FORTRAN. Desde aquela época eu digo que os engenheiros (sou um, de formação....) e físicos têm a linguagem que merecem. E sabem o que fiz? Inventei uma linguagem algorítmica educacional, a LEAL, com comandos em português. Descrevíamos nas aulas os algoritmos em LEAL e distribuíamos uma folha com a conversão dos programas em LEAL para FORTRAN, para os alunos traduzirem manualmente seus programas para essa última linguagem. Afinal, o que queríamos era ensinar algoritmos, e não linguagens de programação. O Fadigas obviamente não percebeu...


Obrigado e tudo de bom.

Coragem,  João! Comece sendo um cientista diferente, objetivo, e vá contra os terríveis dogmas que dominam quase todos os cientistas e, com eles a ciência. (Aliás, preste atenção, você está certamente sendo educado para ser dogmático!!!) Recomendo usar a Python, e esquecer o FORTRAN tumular. Se você, como muitos formados em matemática e física, for trabalhar com computação, seu conhecimento de Python vai ser de grande valia.

aaaaaaaaa, 

Ricardo Lima Mazzolli

unread,
Nov 27, 2018, 6:48:48 AM11/27/18
to Grupo Python-Brasil
Seu texto foi engrandecedor, sr. Valdemar. Obrigado por meter o bedelho nesse assunto. hehe

De fato, esses dogmas que citou atrapalham muito o desenvolvimento da própria informática científica e comercial também. O irônico é que estamos falando de uma área tecnológica, em que o mais novo deveria ser mais valorizado ou, pelo menos, visto com outros olhos.

Dia desses, estava conversando com um cidadão por aqui sobre a questão PHP X Python + Django. Ele dizia que o Django não é comercialmente viável. Perguntei-lhe como um framework que proporciona ao programador gastar significativamente menos tempo de produção poderia não ser comercialmente viável...

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.


--
"No xadrez, chama-se 'enrascada' quando o movimento mais correto é não se mexer." (Sr. Ninguém)
Reply all
Reply to author
Forward
0 new messages