Congratulations to the team, this has been a long time coming. I still think that modern Fortran is actually a great language to write numerical code, especially when doing lots of linear algebra. Granted, it was many years ago, but I still remember struggling with C++ and libraries like Eigen, and one day, confronted yet again with agonizing slow compile times and error messages that look like binary, I ditched C++ for good and moved to Fortran95. Not only could I pretty much copy&paste a lot of stuff from my Matlab prototype, the resulting binary was actually faster than C++ with Eigen.
Not sure if I would use it today for new projects, probably Julia would be the better choice nowadays.
it's a fairly common usage in numeric computing. If you read, for example, the wikipedia entries for "computational fluid dynamics" you'll see that they consistently speak of "codes" when referring to programs.
It's because the types of things people write in Fortran (high performance science codes, for example) tend to be monolithic, single-purpose programs. It comes from a time when a code really was basically one compilation unit (and doing that is such a nice simplification that I support it, for science). With code written for the web, shared through package managers, etc. it makes more sense to use the uncountable noun instead of the countable one.
I've never seen the word used in the plural (for computer programming code) until today, having been in computer science for 35 years. The uncountable form definitely dates from way before the web.
As someone doing research in physics, I’ve noticed this usage before. It seems fairly frequent outside CS [EDIT: and as the sibling comment says, specifically in numerical computing]. From what I’ve gathered, for them ‘code’ has become a count noun, such that ‘a code’ means something like ‘a piece of code’ or even ‘a program’, and the plural ‘codes’ follows from that.
Yes, in some traditional Fortran environments "codes" has been used where in other environments one would have said "libraries" or "programs", e.g. "these are some codes for solving systems of ordinary differential equations" or "this is a code for solving boundary elements problems".
So in this sense, as a synonym for a library or a program that accomplishes some function, "code" is countable.
It’s not, but it’s somewhat common among people making numerical models of dynamic systems and that sort of thing. People like Steve Brunton will often say all the “codes” are available to go along with his videos for example https://youtube.com/@eigensteve?si=IVLparAOZ9XDauTz
I think "codes" is peculiar to what is now called HPC, where it's been common since at least the 70's. It's not specific to Fortran; there are C/C++ HPC codes too.
My approach throughout was to maximize portability of existing code to this new compiler. The list of extensions that are supported is quite long (https://flang.llvm.org/docs/Extensions.html), and the general policy is to support anything that people need so long as the feature is well defined and portable among compilers that support it.
In C99, C added the 'restrict' qualifier for pointers, which would make function arguments marked with it behave a bit like procedure arguments in Fortran. Idea being to allow the compiler to optimize more aggressively.
Not specifically about making C more like Fortran, but there's been a lot of work over the years clarifying what compilers can and cannot assume. More recently, a lot of work going into things like 'pointer provenance', again in an effort to clarify where more aggressive optimizations can be done. And things like when can NULL checks be elided etc.
Some people resent all this and just want C to be more like a 'portable macro-assembler'.
Not sure if I would use it today for new projects, probably Julia would be the better choice nowadays.
reply