On 12.05.2016 15:42, FortranFan wrote:
> On Thursday, May 12, 2016 at 7:19:20 AM UTC-4, Wolfgang Kilian wrote:
>
>> ..
>>
>> My programs spend 90% or more of their time in number crunching, this is
>> a good reason to use Fortran. Coarrays may help improving this part
>> even more. But more than 90% of the program code concerns data
>> management, interface to external programs, user interface, and so on.
>> Those 90% make heavy use of string handling.
>>
>> Unless the standards committee wants to encourage programmers migrating
>> that 90% to Python etc., like many have already done, there is a reason
>> to think about user convenience also for non-numeric objects. The OO
>> facilities of modern Fortran have gone a long way, but there are two
>> areas where Fortran is definitely lacking - generic programming for
>> type-safe data containers, and string handling.
>>
>> ..
>
>
> Agree completely.
>
> So on the point about "user convenience also for non-numeric objects" and "generic programming for type-safe data containers, and string handling", what can be done if the current standards committee is focused too much on things like coarrays and other esoteric developments around "atomic" computing?
Coarrays etc. - better: facilities that make optimal use of current HPC
and PC hardware, integrated in the language itself - are essential for
Fortran as a prime language for numerical computations. That's no more
esoteric than Fortran as such in the IT world.
My point is that there is an advantage in keeping it in line with
current CS mainstream also as a general-purpose language. Actually, the
standards committee has done an excellent job in that respect, avoiding
quite a few pitfalls on the road.
> * can some or all of you - Wolfgang Kilian, Ian Harvey, Clive Page, Stefano Zaghi, etc. - join the committee and bring more balance?
AFAIK, members have been representatives of major players (vendors) in
the Fortran world, which makes perfect sense. Some of the current and
former members read this group and post here frequently, so I don't
think that ideas disappear unnoticed. I don't know if any of the others
have been involved more closely with the committee's agenda.
> * and/or collaborate separately to develop near-complete proposals that the standard committee is then tasked with minimal effort to review, refine, endorse, and accept them?
If there is actual need for proposals, it might be useful if some
committee member could comment ... I guess much of the time is spent
fixing flaws and improving previous standards and documents, so even
minimal effort is nontrivial if entirely new ideas are involved. It
would be interesting to know if there are topics that will receive
increased attention after completion of the current (2017?) standard.
> In my simple-minded thinking, similar to a concept of a Turing-complete language, is the idea of functionally-convenient language for numeric computing (toward scientific/engineering/technical/economics applications). My view is that Fortran has constantly fallen short in this respect since 1980s; the two points mentioned by Wolfgang Kilian on generic programming and string handling being glaring examples.
I wouldn't continue using (modern) Fortran if it was not for its
well-designed layout and structure at all scales, and widespread
availability. It's just a few issues that reappear frequently, where
good solutions exist, but are realized only in other languages.
> There has to be a pressing urgency to fill such gaps and immediately (meaning in 20 years! since that is how long it will take for a coder like me to be able to find a compiler with reliable, standard and improved string handling feature if the committee started work today) make the language convenient for users, otherwise there will be no point to the rest of the language development. Looking at books on C++ and public codes written in them (Trilinos, Cantera, etc.) for scientific/technical applications, I get the impression there are a few features and some programming paradigms and coding styles around containers, strings, generics, etc. that numeric packages make use of, such world is otherwise slow or hesitant to employ the latest fad or some bleeding edge comp.sci. concept in its applications. Under such circumstances, Fortran should be able to more readily adopt and bring-in the features so the programmers can write similarly convenient code.
If a mixed-language approach (such as doing only a small part of the
project in Fortran, and using Python - or Java, or Scala, or Swift,
whatever ... for the rest) is superior, than I'd recommend it as a
natural solution. It's just that I still find the overall design of
Fortran more convincing and, most importantly, error-proof than the main
alternatives Python and C++, that I'm pursuing a monolithic approach
which exposes some shortcomings of the Fortran standard.
> If 90% of an application code is handled via non-Fortran approaches due to user convenience and Fortran standard bearers think they can simply focus on the balance 10% to make it more compute-efficient (whatever), it will likely prove very detrimental to the actual practitioners of Fortran. With suitable approaches, many other languages - especially C++ - will achieve (or already have achieved) similar computing efficiency. Most organizations then will follow the CERN, NASA example (and many in industry) and either abandon Fortran altogether or otherwise slate it for death in legacy libraries which all get ported over time to other languages.
>
> Why doesn't the committee seem to understand this? Or at least if they do, I'm now convinced the follow-up is grossly inadequate, it's too little and way too slow.
I assume that they are perfectly aware of this view, but there are
constraints, and different opinions. Even if they would initiate a
revolution of the standard (for whatever reason), it would take a time
before this is reflected in compilers.
I think that if a particular concept can be proven to be worthwhile by
implementing it as an extension in a real compiler and successfully
applying this to real problems, it could convince people more than
theory. Problem is, that I won't have time (and the C programming
skills) to actually do anything in that direction.