veganism.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Veganism Social is a welcoming space on the internet for vegans to connect and engage with the broader decentralized social media community.

Administered by:

Server stats:

223
active users

#fortran

2 posts2 participants0 posts today

I'm an HPC user of CPU Fortran compilers, and my primary/preferred compiler is__________"

I would be a greybeard #UNIX guy if I could grow a non-scraggley beard, and it's unfair to the #DOGE teens to claim that the IRS and Social Security rely on ancient #COBOL code that only a few people alive actually understand. They also rely on ancient #FORTRAN code and even I never studied that at Computer Camp.

Pondering if I dare to put #Fortran into my CV. :blobcatthinking:

I can do some Fortran, partly because it keeps coming up in all sorts of #retrocomputing contexts, but, even with Ratfor enhancements, I don't consider it a well-designed or pleasant language, and I'm not sure I can see myself working at a place that deals in new Fortran code now that nice, human-friendly languages such as NumPy and APL have been invented. Besides, 21st century Fortran is a really weird language that doesn't even know what it wants to be when it grows up.

The original #LISP had 7 primitives: \(\texttt{cons}\), \(\texttt{car,}\) \(\texttt{cdr}\), \(\texttt{atom}\), \(\texttt{quote}\), \(\texttt{eq}\), and \(\texttt{cond}\). And the original #Smalltalk syntax could fit on a 5×7 card. That meant a novice could learn the syntax in a matter of minutes, and direct all his efforts to learning how properly to wield the power of that Turing-complete language. This was why, in the 1970s and the 1980s, many college freshmen were taught FP in Scheme (a more modern LISP) and many middle school children were taught OO in Smalltalk. These were surely the best "first" #programming languages.

#FORTRAN and #BASIC were simple, too. FORTRAN, the first high-level language, has been in continuous use since the late 1950s by engineers, who are not keyboard warriors. BASIC was invented in the early 1960s for teaching programming to non-STEM students at Dartmouth. It sired a whole generation of self-taught children in the 1980s.

Compare those to C++, Erlang, Python, Haskell, Java, JavaScript, Scala, Rust, Kotlin, and pretty much every language in popular use today. Most consider Python and JavaScript to be the simplest of modern languages. Yet, they are massive, complex languages. No 10-year-old could teach himself those, nor should he.

The original versions of those classic languages cannot be used to solve modern problems. But they should still be taught to youngsters as their first language. Throwing in the kids' faces a modern enterprise language confuses them and discourages them. Consequently, many novices never attain that state of flow, when the joy of programming gushes forth.

#Simplicity is a virtue. Self-motivated learning is virtuous.

I don't remember much about #Markov Chains, #Random-Walk. Fokker-Planck. Jeez Louise. Scratched around trying to read and understand stuff. Fortunately at the time, my advisor cleared the decks, said don't bother, here is a 2-D #Gaussian dispersion model I wrote in BASIC. Re-write it in #FORTRAN and add two flavors: a #Lagrangian and a K-theory particle dispersion model, for a convective boundary layer. Use those formulations for a connective boundary layer you learned in Turbulence.

All languages have life cycles. Hell, some even go dormant and become popular — or unexpectedly critical – again.

What would qualities would a language need to have to eventually threaten Python's dominance? My fear is any innovative ideas will just get absorbed. Yes, I realize much of #Python's muscle is marketing by big industry players.

Any #OpenMP lawyers?

Is this not legal?
nvfortran complains that nloop is not shared or private. Do loop trip-counts really need to be?
And for reduction variables (loopsum) too?

program test_omp_private
implicit none
integer :: iloop, nloop
integer :: loopsum

nloop = 10000
loopsum = 0

!$omp parallel do default(none) firstprivate(loopsum) reduction(+:loopsum)
do iloop = 1,nloop
loopsum = loopsum + iloop
end do
!$omp end parallel do

end program

Continued thread

For a periods in the late 80s, early 90s, late 90s, and early 2000s, I was a professional #Astronomer (yet another workstation jockey) with a particular interest in #BioAstronomy -- planets, star forming, potential habitats -- that sort of thing.

Used data-reduction software. And I wrote some in #FORTRAN

Along the way, also learned BASIC, C, C++, Pascal, and then #Python

Helped develop the #NICMOS camera for Hubble. Then got to reduce some data from it to study protostars.

[2/3]

Oh the shame, running on autopilot I just started writing a #Fortran subroutine with def.

Maybe time to go back to bed, or just not write any python for a while.

More seriously, there is perhaps something to be learnt from this about #ContextSwitching, and a sweet spot of not too short so as to build focus, not too long to forget details, but finding a Goldilocks zone for me as an individual.