# Cost of adding (any) new feature to the Fortran language

**URL:** <https://fortran-lang.discourse.group/t/cost-of-adding-any-new-feature-to-the-fortran-language/1479>\
**Category:** Uncategorized\
**Created:** [June 29, 2021, 11:24pm UTC](https://fortran-lang.discourse.group/t/cost-of-adding-any-new-feature-to-the-fortran-language/1479 "2021-06-29T23:24:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![certik](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/certik/32/4_2.png) [@certik](https://fortran-lang.discourse.group/u/certik)\
**Post date:** [June 29, 2021, 11:24pm UTC](https://fortran-lang.discourse.group/t/cost-of-adding-any-new-feature-to-the-fortran-language/1479/1 "2021-06-29T23:24:36Z")

</div>

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

Any other costs?

---

<div class="post-metadata">

**Author:** ![FortranFan](https://avatars.discourse-cdn.com/v4/letter/f/96bed5/32.png) [@FortranFan](https://fortran-lang.discourse.group/u/FortranFan)\
**Post date:** [June 29, 2021, 11:52pm UTC](https://fortran-lang.discourse.group/t/cost-of-adding-any-new-feature-to-the-fortran-language/1479/2 "2021-06-29T23:52:48Z")

</div>

> [@certik](#):
>
> I feel there is a general tendency to underestimate the cost of adding any new feature to the Fortran language. …

@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.

---

<div class="post-metadata">

**Author:** ![certik](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/certik/32/4_2.png) [@certik](https://fortran-lang.discourse.group/u/certik)\
**Post date:** [June 29, 2021, 11:56pm UTC](https://fortran-lang.discourse.group/t/cost-of-adding-any-new-feature-to-the-fortran-language/1479/3 "2021-06-29T23:56:28Z")

</div>

> [@FortranFan](#):
>
> @certik, please note the benefits of adding new features, particularly to modernize the language, are underestimated to an even greater extent.

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.

---

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [June 30, 2021, 12:42am UTC](https://fortran-lang.discourse.group/t/cost-of-adding-any-new-feature-to-the-fortran-language/1479/5 "2021-06-30T00:42:44Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [June 30, 2021, 2:34am UTC](https://fortran-lang.discourse.group/t/cost-of-adding-any-new-feature-to-the-fortran-language/1479/6 "2021-06-30T02:34:59Z")

</div>

> [@pmk](#):
>
> So if you have a shiny new feature and you want somebody to implement it, you can probably get it done if you’re a government agency with contracting authority doing business with a hardware vendor on a big procurement

The (U.S.) [MILITARY STANDARD 1753](https://wg5-fortran.org/ARCHIVE/mil_std_1753.html) 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?

---

<div class="post-metadata">

**Author:** ![gak](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/gak/32/146_2.png) [@gak](https://fortran-lang.discourse.group/u/gak)\
**Post date:** [July 8, 2021, 3:34am UTC](https://fortran-lang.discourse.group/t/cost-of-adding-any-new-feature-to-the-fortran-language/1479/7 "2021-07-08T03:34:13Z")

</div>

> [@pmk](#):
>
> Free-as-in-speech compilers are supported by volunteers, mostly; commercial third-party compilers seem to be dwindling in number and I can’t speak to their incentives for development (and will try to not speculate).

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).
