A Hacker News thread has become a discussion of Fortran’s backward compatibility. I think the following comment from BlackFly puts it well (although I don’t support deleting old features from the standard)
People will joke about the primitiveness of Fortran as long as they are required to preface every module and program with
implicit none. Also, every time they pick up lapack and need to specify the “leading dimension of A” they will recall how Fortran had it’s roots in a language without dynamic memory allocation and how they’re still living with that legacy. Fortran’s legacy leaks all over the place: you rapidly get a feel that it is something which is old and creaky, even if it is actually old and rock solid. The ergonomics are very much not modern, though, but as with all discussions of ergonomics, that is going to depend on how you like to hold your tool.Not[e] that other languages which have widespread support also have similar historical mistake leakage. Null vs Optional in Java comes to mind. The python 2 → 3 debacle was a similar sort of “historical mistake correction” but the breakage of backwards compatibility lead to quite some polarization. Actually, in python 2 → 3, the python core developers tried to fix a historical defect that fortran still has: print as a keyword vs a function.
The purpose of print is not to return a value, so I don’t agree that it should be a function. Maybe a subroutine, if one were starting from scratch.