I feel there is a general tendency to underestimate the cost of adding any new feature to the Fortran language. So I wanted to use this thread to brainstorm and eventually document such costs, so that benefits of a new feature (no matter how good) can be weighed against these (implicit) costs.
Costs:
it makes the language bigger
more things to learn for users (even if a given user will not use it, somebody in their large team eventually will)
might be a detriment to other software developers (even if it would make software development
simpler for millions of programmers)
more things to potentially misuse
it might lead to poor programming practices
the feature might block a better feature to be put in later
possibly makes compilers more complicated / slower
possibly not cheap to implement for supportive IDEs
the time to design (and implement in compilers) a given feature could have been spent designing a better, higher priority feature
@certik, please note the benefits of adding new features, particularly to modernize the language, are underestimated to an even greater extent. The benefits with many of the introductions starting with Fortran 90 through 2018 have been absolutely priceless, the interest in FORTRAN otherwise would have been so minimal to be inconsequential i.e., without these standard revisions and the feature introductions therein.
I firmly believe any discourse on costs without an even stronger focus on benefits is detrimental, especially in any scientific, technological endeavor. And that applies to Fortran also because Fortran is a crucial enabling tool and technology for all such endeavors.
That might be — in this case, please start a separate thread to discuss the benefits. I want to really focus on the costs here, which I haven’t seen deeply discussed yet.
Adding many features that are hard to implement to a standard may cause some compiler vendors to give up on implementing it. There were many Fortran 77 compilers that were never upgraded to Fortran 90 and some F95 compilers that were never upgraded to F2003, for example Lahey/Fujitsu and Salford.
The (U.S.) MILITARY STANDARD 1753 in 1978 was a supplement to Fortran 77, and I think most of it was included in Fortran 90. Are there more recent examples of government agencies lobbying for specific additions to Fortran?
Related to this is the complexity of the semantic changes to the language. New features with difficult or ugly semantics will either not get implemented, or risk being implemented inconsistently (or both). This hurts the portability of Fortran programs using those features.
One of Fortran’s great strengths is portability over time: Code written in the 70s runs today. But code written today with many features will not run at all with many compilers.
I’m still new to this, but I feel that there needs to be some effort by J3 to reduce some of the semantic complexity that already exists in the language, and to promote portability across implementations (like the dreaded topic of preprocessing).