I am delighted to discover what seems to be a relatively lively newsgroup!
I used to program Fortran at Uni in the late 1980s. F77 on VAX/VMS,
mainly. I was fairly _au fait_ with it.
I haven't really coded in decades and I keep pondering trying to get
back into it.
I have looked at various modern languages but find all the OOPS and so
on confusing and unnecessary for small, hobbyist stuff.
For a non-professional, is modern Fortran so very different from F77
that it would be akin to learning a new language, or do folks think it
might be relatively easy to update my knowledge and pick it up again?
Is there much in the way of supporting libraries, or is Fortran only
used for numerical stuff these days?
I am delighted to discover what seems to be a relatively lively newsgroup! ..
I am delighted to discover what seems to be a relatively lively newsgroup!
I used to program Fortran at Uni in the late 1980s. F77 on VAX/VMS,
mainly. I was fairly _au fait_ with it.
I haven't really coded in decades and I keep pondering trying to get
back into it.
I have looked at various modern languages but find all the OOPS and so
on confusing and unnecessary for small, hobbyist stuff.
For a non-professional, is modern Fortran so very different from F77
that it would be akin to learning a new language, or do folks think it
might be relatively easy to update my knowledge and pick it up again?
Is there much in the way of supporting libraries, or is Fortran only
used for numerical stuff these days?
--
Liam P. ~ Prague, Czechia ~ liamproven on yahoo UK and AOL
I am delighted to discover what seems to be a relatively lively newsgroup!
I used to program Fortran at Uni in the late 1980s. F77 on VAX/VMS,
mainly. I was fairly _au fait_ with it.
I haven't really coded in decades and I keep pondering trying to get
back into it.
I have looked at various modern languages but find all the OOPS and so
on confusing and unnecessary for small, hobbyist stuff.
For a non-professional, is modern Fortran so very different from F77
that it would be akin to learning a new language, or do folks think it
might be relatively easy to update my knowledge and pick it up again?
https://en.wikipedia.org/wiki/Fortran_95_language_features has a
very nice feature list of Fortran 95 written by Michael Metcalf.
The only thing it misses of the list above are allocatable arrays,
which came later than Fortran 95.
I am delighted to discover what seems to be a relatively lively newsgroup!
I used to program Fortran at Uni in the late 1980s. F77 on VAX/VMS,
mainly. I was fairly _au fait_ with it.
I haven't really coded in decades and I keep pondering trying to get back into it.
I have looked at various modern languages but find all the OOPS and so on confusing and unnecessary for small, hobbyist stuff.
For a non-professional, is modern Fortran so very different from F77 that
it would be akin to learning a new language, or do folks think it might be relatively easy to update my knowledge and pick it up again?
Is there much in the way of supporting libraries, or is Fortran only used
for numerical stuff these days?
On Wednesday, April 6, 2022 at 6:44:21 AM UTC-4, Thomas Koenig wrote:
https://en.wikipedia.org/wiki/Fortran_95_language_features has a
very nice feature list of Fortran 95 written by Michael Metcalf.
The only thing it misses of the list above are allocatable arrays,
which came later than Fortran 95.
Fortran 90 and 95 had allocatable arrays, but in Fortran 2003 it became possible
to use them in more contexts, such as function and subroutine arguments, function results, and components of derived types.
I am delighted to discover what seems to be a relatively lively newsgroup!
I used to program Fortran at Uni in the late 1980s. F77 on VAX/VMS,
mainly. I was fairly _au fait_ with it.
I haven't really coded in decades and I keep pondering trying to get
back into it.
I have looked at various modern languages but find all the OOPS and so
on confusing and unnecessary for small, hobbyist stuff.
For a non-professional, is modern Fortran so very different from F77
that it would be akin to learning a new language, or do folks think it
might be relatively easy to update my knowledge and pick it up again?
Welcome!
Please also try Fortran Discourse where you might value in engagementwith other readers using Fortran syntax-highlighted posting and reading
https://fortran-lang.discourse.group/
As to whether "modern Fortran so very different from F77 that it would be akin to learning a new language," the answer will really depend on what you are trying to! If the sequential procedural approach suits well for the applications you have in mind,you will mind modern Fortran is FORTRAN 77 but without the limitations i.e., modern Fortran supports free-form source, you can have longer variable names and lines, and so forth. But you should explore for yourself and post your discoveries online!
I have looked at various modern languages but find all the OOPS and so
on confusing and unnecessary for small, hobbyist stuff.
I agree :-)
A nice thing is that old F77 codes still work, so you do not
really have to change anything. However, you would miss out on
some really conventient features: Interface checking via modules,
array bounds that are passed with the arguments, array expressions,
dynamic memory via arrays that are deallocated when they go out
of scope, and array expressions. Plus, if your code uses global
variables, you can put them type-safely into modules instead of
COMMON blocks.
https://en.wikipedia.org/wiki/Fortran_95_language_features has a
very nice feature list of Fortran 95 written by Michael Metcalf.
The only thing it misses of the list above are allocatable arrays,
which came later than Fortran 95.
I am delighted to discover what seems to be a relatively
lively newsgroup!
I have looked at various modern languages but find all the OOPS and
so on confusing and unnecessary for small, hobbyist stuff.
For a non-professional, is modern Fortran so very different from F77
that it would be akin to learning a new language, or do folks think it
might be relatively easy to update my knowledge and pick it up again?
Liam Proven <lproven+un@hotmail.com> wrote:
I am delighted to discover what seems to be a relatively
lively newsgroup!
Same here
<snip>
I have looked at various modern languages but find all the OOPS and
so on confusing and unnecessary for small, hobbyist stuff.
Same here, very confusing and in fact I do not see the point
of OO. Luckily I never had to deal with it professionally.
For a non-professional, is modern Fortran so very different from F77
that it would be akin to learning a new language, or do folks think it
might be relatively easy to update my knowledge and pick it up again?
I also have been playing around with Fortran (gfortran) with
an eye to relearn it, hope to be retiring soon and this is
one thing that will keep me occupied. Like you, I last used
F77 and ended up moving on to other languages in the 80s.
<snip>
John
No more need to use gfortran, the onePAI of Intel works on all platforms
( compilers and many tools are free to use)
Same here, very confusing and in fact I do not see the point
of OO.
John McCue <jmccue@magnetar.hsd1.ma.comcast.net> writes:
Same here, very confusing and in fact I do not see the point
of OO.
The point of OOP is to be able to easily add new data types
without having to modify existing code.
For example, in Python, there is a "print" procedure that
can print objects of many built-in data types like "string"
and "int".
OOP allows one to add a new data type, for example, "matrix",
and then "print" will be able to print matrices after only
code for "matrix" was written (added) - /without/ a need to
actually modify "print".
The point of OOP is to be able to easily add new data types
without having to modify existing code.
On 04/05/2022 18:34, Stefan Ram wrote:
The point of OOP is to be able to easily add new data types
without having to modify existing code.
That seems a little sweeping.
It seems to me that OOP has nearly as many different purposes as
there are people using it.
My cynical suspicion is that Rob Pike (of Plan 9 and Go fame) nailed
it with his line:
"Object-oriented design is the Roman numerals of computing."
I suspect (but do not know, and cannot prove) that it is immensely
powerful in languages originally built around it, such as Smalltalk
and Self.
When it was subsequently bolted on to pre-existing languages, from
BASIC to Fortran to Pascal, it is rather less so.
On 04/05/2022 18:34, Stefan Ram wrote:
The point of OOP is to be able to easily add new data typesThat seems a little sweeping.
without having to modify existing code.
It seems to me that OOP has nearly as many different purposes as there
are people using it.
My cynical suspicion is that Rob Pike (of Plan 9 and Go fame) nailed it
with his line:
"Object-oriented design is the Roman numerals of computing."
I suspect (but do not know, and cannot prove) that it is immensely
powerful in languages originally built around it, such as Smalltalk and
Self.
When it was subsequently bolted on to pre-existing languages, from BASIC
to Fortran to Pascal, it is rather less so.
--
Liam Proven ~ Prague, Czechia
lprov...@hotmail.com
(or liamproven on either AOL or Yahoo UK)
On 04/05/2022 18:34, Stefan Ram wrote:
The point of OOP is to be able to easily add new data typesThat seems a little sweeping.
without having to modify existing code.
It seems to me that OOP has nearly as many different purposes as there
are people using it.
My cynical suspicion is that Rob Pike (of Plan 9 and Go fame) nailed it
with his line:
"Object-oriented design is the Roman numerals of computing."
I suspect (but do not know, and cannot prove) that it is immensely
powerful in languages originally built around it, such as Smalltalk and
Self.
When it was subsequently bolted on to pre-existing languages, from BASIC
to Fortran to Pascal, it is rather less so.
--
Liam Proven ~ Prague, Czechia
lprov...@hotmail.com
(or liamproven on either AOL or Yahoo UK)
On Thursday, May 5, 2022 at 5:28:58 AM UTC-4, Liam Proven wrote:...
...I suspect (but do not know, and cannot prove) that it is immensely
powerful in languages originally built around it, such as Smalltalk and >>Self.
Move on, and please just know most of what you suspect about OOP is WRONG.
There might be some truth in at least one thing Liam wrote!
So, what did Alan Kay write to me in 2003? Here's the crucial excerpt:
|OOP to me means only messaging, local retention and protection and
|hiding of state-process, and extreme late-binding of all things. It
|can be done in Smalltalk and in LISP. There are possibly other
|systems in which this is possible, but I'm not aware of them.
Alan Kay, 2003
Please - if you are coming to Fortran from the days of FORTRAN 77 and related earlier dialects - there is no need to get hung up on OOP.
There is a lot in the current standard other than OOP to work with if you so choose, or you can even stick to your FORTRAN style of coding if you so wish.
Move on, and please just know most of what you suspect about OOP is WRONG.
FortranFan <parekhvs@gmail.com> writes:
On Thursday, May 5, 2022 at 5:28:58 AM UTC-4, Liam Proven wrote:...
...I suspect (but do not know, and cannot prove) that it is immensely
powerful in languages originally built around it, such as Smalltalk and
Self.
Move on, and please just know most of what you suspect about OOP is WRONG.
There might be some truth in at least one thing Liam wrote!
In 2003, I became aware of the fact that Alan Kay, the man
who coined the term "object-oriented programming" in 1967
(or in the temporal proximity of this year), never has given
a definition for it. I asked him via e-mail, and he kindly
responded. In that e-mail he also wrote something to the effect
that for him only Smalltalk allows object-oriented programming.
(On another occasion, he also said, "I invented the term Object-
Oriented and I can tell you I did not have C++ in mind.".) So,
I think that this point of view by Alan Kay is similar to what
Liam wrote about Smalltalk!
So, what did Alan Kay write to me in 2003? Here's the crucial excerpt:
|OOP to me means only messaging, local retention and protection and
|hiding of state-process, and extreme late-binding of all things. It
|can be done in Smalltalk and in LISP. There are possibly other
|systems in which this is possible, but I'm not aware of them.
Alan Kay, 2003
. I should add that the deepest insight I gained into what is the
actual point of OOP (as I wrote in my previous post in this thread)
I got from the writings of Robert C. Martin who clarified that
OOP makes it easy to add new types but hard to add new operations,
while procedural programming makes it easy to add new operations,
but hard to add new types.
|Procedural code (code using data structures) makes it easy to
|add new functions without changing the existing data
|structures. OO code, on the other hand, makes it easy to add
|new classes without changing existing functions.
Robert Cecil Martin
|Procedural code makes it hard to add new data structures
|because all the functions must change. OO code makes it hard
|to add new functions because all the classes must change.
Robert Cecil Martin
When one first reads this, it might not be obvious why this
is so spot on, but one can find this quotation in the book
"Clean Code" by Robert C. Martin and read more explanations
about it there.
Objects with data abstraction can already be found in CLU by
Barbara Liskov. But this is not yet OOP. The crucial feature
OOP adds to this is polymorphism ("late binding").
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 157 |
Nodes: | 16 (0 / 16) |
Uptime: | 15:40:05 |
Calls: | 3,193 |
Files: | 10,512 |
Messages: | 2,978,671 |