3 ms·
Have you used Fortran? Have you tried f2py, which converts Fortran modules into NumPy compatible Python modules? I would rather use Fortran over C++ in a heartb
by chestervonwinch 10y ago
Have you used Fortran? Have you tried f2py, which converts Fortran modules into NumPy compatible Python modules? I would rather use Fortran over C++ in a heartbeat for scientific computing. For what it's worth, I thought for years that Fortran was an old crusty language, not worthy of my time, choosing to use C++ instead, and I regret not picking it up sooner.
- Y_Y 10y agoI have used Fortran in a few instances where I was compelled to. I never gave it much of a chance because I didn't like using it, and what's more it isn't nearly as popular as C/Python/Matlab etc. for modern stuff. If popularity (and hence code sharing) wasn't important I'd be using languages I like, like Haskell and Scheme. All the same your comment makes me think I may have dismissed it too quickly so I'm going to give it another try for my next toy project (even if they index arrays from 1). Thank you.
- leephillips 10y agoYou can index arrays in Fortran any way you want to. Fortran is popular among people in many disciplines doing large-scale scientific computing. I was surprised to learn a few years ago that C++ had become popular in the high energy physics community; the emphasis there is on crunching vast amounts of data from experiments.
- chestervonwinch 10y ago> even if they index arrays from 1 They don't have to! You can set the array index bounds to whatever you want. For example, real(8) A(0:n-1) real(8) w(-p:q) are both valid declarations and would be indexed by i=0,n-1 and i=-p,q respectively. If you're using gfortran compile with the "-fbounds-check" flag to save a lot of headaches!
- semi-extrinsic 10y agoIn modern Fortran, there is only really one big headache (coming from e.g. Python), and that's how hard string processing is, and how there are no generic lists. E.g. something as simple as cpnverting an integer to a string (or vice versa) actually uses I/O and writes/reads from the int to the string. (I have written Fortran code that outputs data both in JSON, CSV, proprietary binary formats and as XML at various points in time. It's not generally pleasant.) If a hypothetical Fortran 201x added Python-esque generic lists and list/array comprehensions that played well with strings, and promoted strings to a "first class" type, I'd have a lot less reason for pulling in Python for scientific applications not involving web/graphics.