On 2025-11-29, Dave Froble <davef@tsoft-inc.com> wrote:
Sometimes things don't really change. You count to 10 the same way now as in
1960. (Trivial example)
Are you sure ? I thought maths teaching was heading in a new direction
in multiple parts of your country as shown by this example (which is way
too close to actually being realistic, especially with the "support" >infrastructure from the people around the teacher):
https://www.youtube.com/watch?v=Zh3Yz3PiXZw
In article <10gk6e6$1bcst$3@dont-email.me>,
Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
On 2025-11-29, Dave Froble <davef@tsoft-inc.com> wrote:
Sometimes things don't really change. You count to 10 the same way now as in
1960. (Trivial example)
Are you sure ? I thought maths teaching was heading in a new direction
in multiple parts of your country as shown by this example (which is way >>too close to actually being realistic, especially with the "support" >>infrastructure from the people around the teacher):
https://www.youtube.com/watch?v=Zh3Yz3PiXZw
You know, Simon, I recall you posting that you were against the
opposition candidate in our last election because you disliked
her laugh. In your own country, Nigel Farage and his party seem disconcertingly close to power, with their ill-advised "Empire
2.0" aspirations; might I remind you that most of the former
members of Empire 1.0 are still trying to recover?
It's very easy to throw stones, but not terribly advisable when
you yourself are in a glass house.
At least stop adding these things as parentheticals onto posts
that _also_ carry technical content.
In article <10gg48s$3srom$1@dont-email.me>,
Dave Froble <davef@tsoft-inc.com> wrote:
On 11/11/2025 10:23 AM, Waldek Hebisch wrote:
Defining a function need a several lines of
overhead code. Function calls are more verbose than in other
languages. There are fixable problems, which however may
appear when dealing with real Cobol code. In particular
Cobol support old control structures. In new program you
can use new control structures, but convering uses of old
control strucures to new ones need effort and it is likely
that a bit more effort would be enough to convert whole
program to a different language.
I apologize in advance, but that is idiotic. Any re-write of any non-trivial
application in another language, will never be complete. There will be errors
and things will be lost. IT WILL HAPPEN !!! And when done, what will be
the gains in a sideways move?
I got the impression Waldek was referring to updating programs
written to old versions of COBOL to use facilities introduced in
newer versions of COBOL, though perhaps I am mistaken.
Regardless, this raises an interesting point: the latest version
of COBOL is, I believe, COBOL 2023. But that language is rather
different than the original 1960 COBOL. So even simply updating
a COBOL program is akin to rewriting it in another language.
Now this is opinion, and really a poor argument. While I detest the verbosity
in most things, that is my choice, not the problem you claim.
Back on topic, COBOL is very verbose, but I also hate way too concise >languages where the language designers don't even allow words like
"function" to be spelt out in full. You read code many more times than
you write it and having cryptic syntax makes that a lot harder to achieve.
Something like Ada was designed for readability, and I wish all other >languages followed that example.
Just waiting for the moment when a newcomer designs a new language which
has syntax resembling TECO... :-)
On 12/1/2025 8:37 AM, Dan Cross wrote:
In article <10gg48s$3srom$1@dont-email.me>,
Dave Froble <davef@tsoft-inc.com> wrote:
On 11/11/2025 10:23 AM, Waldek Hebisch wrote:
Defining a function need a several lines of
overhead code. Function calls are more verbose than in other
languages. There are fixable problems, which however may
appear when dealing with real Cobol code. In particular
Cobol support old control structures. In new program you
can use new control structures, but convering uses of old
control strucures to new ones need effort and it is likely
that a bit more effort would be enough to convert whole
program to a different language.
I apologize in advance, but that is idiotic. Any re-write of any non-trivial
application in another language, will never be complete. There will be errors
and things will be lost. IT WILL HAPPEN !!! And when done, what will be
the gains in a sideways move?
I got the impression Waldek was referring to updating programs
written to old versions of COBOL to use facilities introduced in
newer versions of COBOL, though perhaps I am mistaken.
Regardless, this raises an interesting point: the latest version
of COBOL is, I believe, COBOL 2023. But that language is rather
different than the original 1960 COBOL. So even simply updating
a COBOL program is akin to rewriting it in another language.
The Cobol standard has been continuously updated over
the decades. But very few are using the new stuff added
the last 25 years.
For good reasons.
Let us say that a company:
* have a big Cobol application
* want to add a significant chunk of new functionality
* that new functionality could be implemented using
features from recent versions of Cobol standard
Options:
A) implement it in Cobol using features from recent
versions of Cobol standard and have the team learn
the new stuff
B) implement it in old style Cobol, because that is what
the team knows
C) implement it in some other language where the functionality is
common and call it from Cobol
D) implement it in some other language where the functionality is
common and put it in a separate service in middleware tier and
keep the old Cobol application untouched
E) say NO - can't do it
Few will choose #A. #B, #C and #D are simply more attractive.
On 12/1/2025 8:37 AM, Dan Cross wrote:
In article <10gg48s$3srom$1@dont-email.me>,
Dave Froble-a <davef@tsoft-inc.com> wrote:
On 11/11/2025 10:23 AM, Waldek Hebisch wrote:
Defining a function need a several lines of
overhead code.-a Function calls are more verbose than in other
languages.-a There are fixable problems, which however may
appear when dealing with real Cobol code.-a In particular
Cobol support old control structures.-a In new program you
can use new control structures, but convering uses of old
control strucures to new ones need effort and it is likely
that a bit more effort would be enough to convert whole
program to a different language.
I apologize in advance, but that is idiotic.-a Any re-write of any
non-trivial
application in another language, will never be complete. There will
be errors
and things will be lost.-a IT-a-a WILL-a-a HAPPEN-a-a !!!-a And when done, >>> what will be
the gains in a sideways move?
I got the impression Waldek was referring to updating programs
written to old versions of COBOL to use facilities introduced in
newer versions of COBOL, though perhaps I am mistaken.
Regardless, this raises an interesting point: the latest version
of COBOL is, I believe, COBOL 2023.-a But that language is rather
different than the original 1960 COBOL.-a So even simply updating
a COBOL program is akin to rewriting it in another language.
The Cobol standard has been continuously updated over
the decades. But very few are using the new stuff added
the last 25 years.
For good reasons.
Let us say that a company:
* have a big Cobol application
* want to add a significant chunk of new functionality
* that new functionality could be implemented using
-a features from recent versions of Cobol standard
Options:
A) implement it in Cobol using features from recent
-a-a versions of Cobol standard and have the team learn
-a-a the new stuff
B) implement it in old style Cobol, because that is what
-a-a the team knows
C) implement it in some other language where the functionality is
-a-a common and call it from Cobol
D) implement it in some other language where the functionality is
-a-a common and put it in a separate service in middleware tier and
-a-a keep the old Cobol application untouched
E) say NO - can't do it
Few will choose #A. #B, #C and #D are simply more attractive.
In article <10gk6e6$1bcst$3@dont-email.me>,
Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
Now this is opinion, and really a poor argument. While I detest the verbosity
in most things, that is my choice, not the problem you claim.
Back on topic, COBOL is very verbose, but I also hate way too concise
languages where the language designers don't even allow words like
"function" to be spelt out in full. You read code many more times than
you write it and having cryptic syntax makes that a lot harder to achieve.
Excessive verbosity can be a hindrance to readability, but
finding a balance with concision is more art that science. I
don't feel the need to spell out "function" when there's an
acceptable abbreviation that means the same thing ("fn"/"fun"/
etc). That said, a lot of early Unix code that omitted vowels
for brevity was utterly abstruse.
Something like Ada was designed for readability, and I wish all other
languages followed that example.
Unfortunately, what's considered "readable" is both subjective
and depends on the audience. Personally, I don't find Ada more
readable because they it forces me to write `function` instead
of `fn` or `procedure` instead of `proc`. If anything, I find
the split between two types of subprograms less readadable, no
matter how it's presented syntacticaly. Similarly, I don't find
the use of `begin` and `end` keywords more readable than `{` and
`}`, or similar lexical glyphs. I understand that others feel
differently.
If anything, I find it less readable since it is less visually
distinct (perhaps, if I my eyesight was even worse than it
already is, I would feel differently).
Just waiting for the moment when a newcomer designs a new language which
has syntax resembling TECO... :-)
Or APL.
On 12/1/2025 4:02 PM, Arne Vajh|+j wrote:
On 12/1/2025 8:37 AM, Dan Cross wrote:
I got the impression Waldek was referring to updating programs
written to old versions of COBOL to use facilities introduced in
newer versions of COBOL, though perhaps I am mistaken.
Regardless, this raises an interesting point: the latest version
of COBOL is, I believe, COBOL 2023.-a But that language is rather
different than the original 1960 COBOL.-a So even simply updating
a COBOL program is akin to rewriting it in another language.
The Cobol standard has been continuously updated over
the decades. But very few are using the new stuff added
the last 25 years.
Not really true. The only thing COBOL professionals have, for
the most part, refused to use is the OOP stuff.-a Some of the
other changes that are within the COBOL model were very welcome
additions.-a Like EVALUATE.-a Got rid of a lot of multiple page
IF-THEN-ELSE monstrosities.
I've long suspected (but I admit I have no evidence to support
this) that one of the reasons there is so much COBOL code in the
world is because, when making non-trivial changes, programmers
first _copy_ large sections of the program and then modify the
copy, to avoid introducing bugs into existing functionality.
There is also something in the Cobol language.
Large files with one data division, lots of paragraphs
and lots of perform's is easy to code, but it is also
bad for reusable code.
It is sort of the same as having large C or Pascal files
with all variables global and all functions/procedures
without arguments.
It is possible to do it right, but when people have
to chose between the easy way and the right way, then ...
On 12/1/2025 8:37 AM, Dan Cross wrote:
I've long suspected (but I admit I have no evidence to support
this) that one of the reasons there is so much COBOL code in the
world is because, when making non-trivial changes, programmers
first _copy_ large sections of the program and then modify the
copy, to avoid introducing bugs into existing functionality.
Copying and modifying code instead of creating reusable libraries
has been used by bad programmers in all languages.
But last century then Cobol and Basic were the two easiest
languages to learn and Cobol was one of the languages with
most jobs. So it seems likely that a large number of bad
programmers picked Cobol. Bringing bad habits with them.
Today I would expect that crowd to pick client side JavaScript
and server side PHP.
There is also something in the Cobol language.
Large files with one data division, lots of paragraphs
and lots of perform's is easy to code, but it is also
bad for reusable code.
It is sort of the same as having large C or Pascal files
with all variables global and all functions/procedures
without arguments.
It is possible to do it right, but when people have
to chose between the easy way and the right way, then ...
On 12/1/2025 5:46 PM, bill wrote:
On 12/1/2025 4:02 PM, Arne Vajh|+j wrote:
On 12/1/2025 8:37 AM, Dan Cross wrote:
I got the impression Waldek was referring to updating programs
written to old versions of COBOL to use facilities introduced in
newer versions of COBOL, though perhaps I am mistaken.
Regardless, this raises an interesting point: the latest version
of COBOL is, I believe, COBOL 2023.-a But that language is rather
different than the original 1960 COBOL.-a So even simply updating
a COBOL program is akin to rewriting it in another language.
The Cobol standard has been continuously updated over
the decades. But very few are using the new stuff added
the last 25 years.
Not really true. The only thing COBOL professionals have, for
the most part, refused to use is the OOP stuff.-a Some of the
other changes that are within the COBOL model were very welcome
additions.-a Like EVALUATE.-a Got rid of a lot of multiple page
IF-THEN-ELSE monstrosities.
EVALUATE came with COBOL 85. That is not within the
last 25 years.
New features within last 25 years besides OOP include:
* recursion support
* unicode support
* pointers and dynamic memory allocation
^ XML support
* collection classes
Have you seen COBOL code using those?
On 12/1/2025 8:06 PM, Arne Vajh|+j wrote:
But last century then Cobol and Basic were the two easiest
languages to learn and Cobol was one of the languages with
most jobs. So it seems likely that a large number of bad
programmers picked Cobol. Bringing bad habits with them.
Today I would expect that crowd to pick client side JavaScript
and server side PHP.
There is also something in the Cobol language.
Large files with one data division, lots of paragraphs
and lots of perform's is easy to code, but it is also
bad for reusable code.
It is sort of the same as having large C or Pascal files
with all variables global and all functions/procedures
without arguments.
It is possible to do it right, but when people have
to chose between the easy way and the right way, then ...
I take it you have never worked in a real COBOL shop.
On 12/1/2025 6:50 PM, Arne Vajh|+j wrote:
New features within last 25 years besides OOP include:
* recursion support
* unicode support
* pointers and dynamic memory allocation
^ XML support
* collection classes
Have you seen COBOL code using those?
I have seen and used pointers but not in production code as at 75
I am not finding many places that want me to work.-a :-)
XML isn't really anything to do with the language it's a file
format. Probably has no place in the language itself.
UNICODE the same thing.-a It could be done fairly easily with a library
but isn't really anything that COBOL had to have as a part of the
language.
Wouldn't classes fall under OOP.
On 12/1/2025 8:23 PM, bill wrote:
Wouldn't classes fall under OOP.
Classes is part of OOP that was added in Cobol 2002.
Collection classes was added in:
ISO/IEC TR 24717:2009, Information technology -- Programming languages, their environments and system software interfaces -- Collection classes
for programming language COBOL
I have never seen it used and I do not know how they work. But if it is
like collection classes in most other programming languages, then it
is predefined container classes for list, map/dictionary etc..
On 12/1/2025 8:15 PM, bill wrote:
On 12/1/2025 8:06 PM, Arne Vajh|+j wrote:
But last century then Cobol and Basic were the two easiest
languages to learn and Cobol was one of the languages with
most jobs. So it seems likely that a large number of bad
programmers picked Cobol. Bringing bad habits with them.
Today I would expect that crowd to pick client side JavaScript
and server side PHP.
There is also something in the Cobol language.
Large files with one data division, lots of paragraphs
and lots of perform's is easy to code, but it is also
bad for reusable code.
It is sort of the same as having large C or Pascal files
with all variables global and all functions/procedures
without arguments.
It is possible to do it right, but when people have
to chose between the easy way and the right way, then ...
I take it you have never worked in a real COBOL shop.
That is true.
I was with the Fortran people not the Cobol people.
But that does not change that:
* back in those days
then there were some people
-a doing Cobol that should not have - this is widely
-a known -
I believe the not so nice name for them
-a back then was "list programmers" (I was told about
-a that by a Cobol programmer when I took the DEC course
-a VMS for Programmers back in the mid 80's)
* PERFORM of paragraphs is not a good way to
-a write reusable code
On 12/1/2025 8:31 PM, Arne Vajh|+j wrote:
But that does not change that:
* back in those days
Exactly what do you consider to be "back in those days"?
-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a then there were some people
-a-a doing Cobol that should not have - this is widely
-a-a known -
Not widely known in the circles I worked in.-a If I were not a
competent COBOL programmer I would have been eliminated.
On 12/1/2025 8:23 PM, bill wrote:
On 12/1/2025 6:50 PM, Arne Vajh|+j wrote:
New features within last 25 years besides OOP include:
* recursion support
* unicode support
* pointers and dynamic memory allocation
^ XML support
* collection classes
Have you seen COBOL code using those?
I have seen and used pointers but not in production code as at 75
I am not finding many places that want me to work.-a :-)
XML isn't really anything to do with the language it's a file
format. Probably has no place in the language itself.
They did:
ISO/IEC TR 24716:2007, Information technology -- Programming languages, their environment and system software interfaces -- Native COBOL Syntax
for XML Support
I have no idea what it does, so I don't know if it makes any sense.
UNICODE the same thing.-a It could be done fairly easily with a library
but isn't really anything that COBOL had to have as a part of the
language.
Good unicode support require support in both language and
basic RTL.
As an example (I am not claiming that it is good support!!) see C++:
std::string
std::wstring
std::u16string
std::u32string
"ABC"
L"ABC"
u8"ABC"
u"ABC"
U"ABC"
Wouldn't classes fall under OOP.
Classes is part of OOP that was added in Cobol 2002.
Collection classes was added in:
ISO/IEC TR 24717:2009, Information technology -- Programming languages, their environments and system software interfaces -- Collection classes
for programming language COBOL
I have never seen it used and I do not know how they work. But if it is
like collection classes in most other programming languages, then it
is predefined container classes for list, map/dictionary etc..
On 12/1/2025 8:44 PM, Arne Vajh|+j wrote:
On 12/1/2025 8:23 PM, bill wrote:
UNICODE the same thing.-a It could be done fairly easily with a library
but isn't really anything that COBOL had to have as a part of the
language.
Good unicode support require support in both language and
basic RTL.
Don't agree.
-a COBOL was intended to keep track of money, inventory,
personnel, etc.-a UNICODE, per se,-a brings nothing to the table for
any of that.
Wouldn't classes fall under OOP.
Classes is part of OOP that was added in Cobol 2002.
And the COBOL Community refused to drink the Kool-Aid.
While there may actually be a place for OOP, the work
COBOL was intended to do isn't it.-a Academia tried to
force it down everyone's throats and were outraged
when some refused. (And took their revenge which is
being felt more and more every day now!!)-a I know a
number of massive ISes in use today that have been in
use for around a half century that were written in COBOL
and continue to function in COBOL. Lack of OOP hasn't
affected them at all.
Collection classes was added in:
ISO/IEC TR 24717:2009, Information technology -- Programming
languages, their environments and system software interfaces --
Collection classes for programming language COBOL
I have never seen it used and I do not know how they work. But if it is
like collection classes in most other programming languages, then it
is predefined container classes for list, map/dictionary etc..
Which does what for COBOL?
On 12/1/2025 8:44 PM, Arne Vajh|+j wrote:
On 12/1/2025 8:23 PM, bill wrote:
[snip]
UNICODE the same thing.-a It could be done fairly easily with a library
but isn't really anything that COBOL had to have as a part of the
language.
Good unicode support require support in both language and
basic RTL.
Don't agree. COBOL was intended to keep track of money, inventory, >personnel, etc. UNICODE, per se, brings nothing to the table for
any of that. And, as designed, it did support alternate character
sets.
Classes is part of OOP that was added in Cobol 2002.
And the COBOL Community refused to drink the Kool-Aid.
While there may actually be a place for OOP, the work
COBOL was intended to do isn't it. Academia tried to
force it down everyone's throats and were outraged
when some refused. (And took their revenge which is
being felt more and more every day now!!) I know a
number of massive ISes in use today that have been in
use for around a half century that were written in COBOL
and continue to function in COBOL. Lack of OOP hasn't
affected them at all.
Collection classes was added in:
ISO/IEC TR 24717:2009, Information technology -- Programming languages,
their environments and system software interfaces -- Collection classes
for programming language COBOL
I have never seen it used and I do not know how they work. But if it is
like collection classes in most other programming languages, then it
is predefined container classes for list, map/dictionary etc..
Which does what for COBOL?
On 12/1/2025 8:37 AM, Dan Cross wrote:
I've long suspected (but I admit I have no evidence to support
this) that one of the reasons there is so much COBOL code in the
world is because, when making non-trivial changes, programmers
first _copy_ large sections of the program and then modify the
copy, to avoid introducing bugs into existing functionality.
Copying and modifying code instead of creating reusable libraries
has been used by bad programmers in all languages.
But last century then Cobol and Basic were the two easiest
languages to learn and Cobol was one of the languages with
most jobs. So it seems likely that a large number of bad
programmers picked Cobol. Bringing bad habits with them.
Today I would expect that crowd to pick client side JavaScript
and server side PHP.
There is also something in the Cobol language.
Large files with one data division, lots of paragraphs
and lots of perform's is easy to code, but it is also
bad for reusable code.
It is sort of the same as having large C or Pascal files
with all variables global and all functions/procedures
without arguments.
It is possible to do it right, but when people have
to chose between the easy way and the right way, then ...
On 12/1/2025 4:23 PM, Dan Cross wrote:
In article <10gk6e6$1bcst$3@dont-email.me>,
Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
Excessive verbosity can be a hindrance to readability, butNow this is opinion, and really a poor argument. While I detest the verbosity
in most things, that is my choice, not the problem you claim.
Back on topic, COBOL is very verbose, but I also hate way too concise
languages where the language designers don't even allow words like
"function" to be spelt out in full. You read code many more times than
you write it and having cryptic syntax makes that a lot harder to achieve. >>
finding a balance with concision is more art that science. I
don't feel the need to spell out "function" when there's an
acceptable abbreviation that means the same thing ("fn"/"fun"/
etc). That said, a lot of early Unix code that omitted vowels
for brevity was utterly abstruse.
Something like Ada was designed for readability, and I wish all other
languages followed that example.
Unfortunately, what's considered "readable" is both subjective
and depends on the audience. Personally, I don't find Ada more
readable because they it forces me to write `function` instead
of `fn` or `procedure` instead of `proc`. If anything, I find
the split between two types of subprograms less readadable, no
matter how it's presented syntacticaly. Similarly, I don't find
the use of `begin` and `end` keywords more readable than `{` and
`}`, or similar lexical glyphs. I understand that others feel
differently.
If anything, I find it less readable since it is less visually
distinct (perhaps, if I my eyesight was even worse than it
already is, I would feel differently).
Just waiting for the moment when a newcomer designs a new language which >>> has syntax resembling TECO... :-)
Or APL.
Nothing wrong with APL, if the task is within the languages domain.
But then, I am one of the last advocates for domain specific rather
than generic languages.
In article <10gle2k$1q97g$1@dont-email.me>,
Arne Vajh|+j <arne@vajhoej.dk> wrote:
On 12/1/2025 8:37 AM, Dan Cross wrote:
I've long suspected (but I admit I have no evidence to support
this) that one of the reasons there is so much COBOL code in the
world is because, when making non-trivial changes, programmers
first _copy_ large sections of the program and then modify the
copy, to avoid introducing bugs into existing functionality.
Copying and modifying code instead of creating reusable libraries
has been used by bad programmers in all languages.
I think it's a little deeper than that.
There is also something in the Cobol language.
Large files with one data division, lots of paragraphs
and lots of perform's is easy to code, but it is also
bad for reusable code.
It is sort of the same as having large C or Pascal files
with all variables global and all functions/procedures
without arguments.
It is possible to do it right, but when people have
to chose between the easy way and the right way, then ...
An issue with COBOL is that, given procedures A, B, ..., Z,
written sequentially in source, `PERFORM A THRU Z` means that it
is difficult to see when procedures B, C, ..., Y are called just
through visual inspection since calls to them are implicit; you
really need semantically aware tools to do that. So if you need
to change paragraph D, then you run the risk of implicitly
changing dependent behavior in your system unintentionally. You
might end up violating some assumption you didn't even know
existed; talk about spooky action at a distance.
Most COBOL programs were written before the era of automated,
unit-level testing, so it's extremely unlikely you've got a big
suite of tests you can run to attempt to catch such issues.
I imagine that a this results in a lot of (unnecessary)
duplication.
[snip]
How on earth can someone not know how to divide a fraction by two ?
Oh, and the laugh was only a part of it. It was her inability to
act in a way expected of a US president. I believe the phrase I used
at the time was a lack of gravitas, plus her inability to conduct
serious interviews without collapsing into word salad.
It appears some people are beginning to see through Reform, and we also
have the first past the post system. I am hoping that's enough to stop
him from gaining a majority, but our traditional parties (all of them)
need to _seriously_ up their game.
It's very easy to throw stones, but not terribly advisable when
you yourself are in a glass house.
At least stop adding these things as parentheticals onto posts
that _also_ carry technical content.
Did you read the rest of the posting Dan ?
On 12/2/2025 8:50 AM, Dan Cross wrote:
In article <10gle2k$1q97g$1@dont-email.me>,
Arne Vajh|+j <arne@vajhoej.dk> wrote:
On 12/1/2025 8:37 AM, Dan Cross wrote:
I've long suspected (but I admit I have no evidence to support
this) that one of the reasons there is so much COBOL code in the
world is because, when making non-trivial changes, programmers
first _copy_ large sections of the program and then modify the
copy, to avoid introducing bugs into existing functionality.
Copying and modifying code instead of creating reusable libraries
has been used by bad programmers in all languages.
I think it's a little deeper than that.
There is also something in the Cobol language.
Large files with one data division, lots of paragraphs
and lots of perform's is easy to code, but it is also
bad for reusable code.
It is sort of the same as having large C or Pascal files
with all variables global and all functions/procedures
without arguments.
It is possible to do it right, but when people have
to chose between the easy way and the right way, then ...
An issue with COBOL is that, given procedures A, B, ..., Z,
written sequentially in source, `PERFORM A THRU Z` means that it
is difficult to see when procedures B, C, ..., Y are called just
through visual inspection since calls to them are implicit; you
really need semantically aware tools to do that. So if you need
to change paragraph D, then you run the risk of implicitly
changing dependent behavior in your system unintentionally. You
might end up violating some assumption you didn't even know
existed; talk about spooky action at a distance.
That is a classical argument found on the internet.
But I am not convinced that it is critical.
It is all within one file.
$ search foobar.cob thru,through
should reveal if the feature is used.
Unless the file is very long and the code is very ugly, then
I believe it should be relative easy possible to track the
perform flow even in VT mode EDT or EVE.
Most COBOL programs were written before the era of automated,
unit-level testing, so it's extremely unlikely you've got a big
suite of tests you can run to attempt to catch such issues.
I imagine that a this results in a lot of (unnecessary)
duplication.
That may actually have a huge impact.
No unit tests is a common reason not to change any existing code.
In article <10gn0cq$2d8ve$1@dont-email.me>,
Arne Vajh|+j <arne@vajhoej.dk> wrote:
On 12/2/2025 8:50 AM, Dan Cross wrote:
An issue with COBOL is that, given procedures A, B, ..., Z,
written sequentially in source, `PERFORM A THRU Z` means that it
is difficult to see when procedures B, C, ..., Y are called just
through visual inspection since calls to them are implicit; you
really need semantically aware tools to do that. So if you need
to change paragraph D, then you run the risk of implicitly
changing dependent behavior in your system unintentionally. You
might end up violating some assumption you didn't even know
existed; talk about spooky action at a distance.
That is a classical argument found on the internet.
Yes. I myself have been making it for years.
But I am not convinced that it is critical.
It is all within one file.
$ search foobar.cob thru,through
should reveal if the feature is used.
Unless the file is very long and the code is very ugly, then
I believe it should be relative easy possible to track the
perform flow even in VT mode EDT or EVE.
I'm not at all convinced of that in a large code base; call
graphs resulting in such `PERFORM`s can be too big to trace by
hand. And many of these extant COBOL applications are quite
large, indeed.
On 12/2/2025 10:46 AM, Dan Cross wrote:
In article <10gn0cq$2d8ve$1@dont-email.me>,
Arne Vajh|+j <arne@vajhoej.dk> wrote:
On 12/2/2025 8:50 AM, Dan Cross wrote:
An issue with COBOL is that, given procedures A, B, ..., Z,
written sequentially in source, `PERFORM A THRU Z` means that it
is difficult to see when procedures B, C, ..., Y are called just
through visual inspection since calls to them are implicit; you
really need semantically aware tools to do that. So if you need
to change paragraph D, then you run the risk of implicitly
changing dependent behavior in your system unintentionally. You
might end up violating some assumption you didn't even know
existed; talk about spooky action at a distance.
That is a classical argument found on the internet.
Yes. I myself have been making it for years.
But I am not convinced that it is critical.
It is all within one file.
$ search foobar.cob thru,through
should reveal if the feature is used.
Unless the file is very long and the code is very ugly, then
I believe it should be relative easy possible to track the
perform flow even in VT mode EDT or EVE.
I'm not at all convinced of that in a large code base; call
graphs resulting in such `PERFORM`s can be too big to trace by
hand. And many of these extant COBOL applications are quite
large, indeed.
There are lots of hundreds of thousands or millions of lines of
code applications.
But hopefully not as single file.
In article <10gks0t$1kmd0$1@dont-email.me>,
Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
[snip]
How on earth can someone not know how to divide a fraction by two ?
I think this is discarding all nuance from a complex issue.
Much of what the Atlantic article described, for instance, is
due to the lingering fallout from the pandemic: an utterly
unprecedented event in our lifetimes. Most kids entering
college now had their education (and much of their social
development) severely curtailed, due to circumstances affecting
that entire globe that were completely out of those kids'
control; or that of their parents, for that matter. To ignore
all of that and basically declare, "Americans are igorant" is,
itself, ignorant.
On 2025-11-29, Dave Froble <davef@tsoft-inc.com> wrote:
Sometimes things don't really change. You count to 10 the same way now as in
1960. (Trivial example)
Are you sure ? I thought maths teaching was heading in a new direction
in multiple parts of your country as shown by this example (which is way
too close to actually being realistic, especially with the "support" infrastructure from the people around the teacher):
https://www.youtube.com/watch?v=Zh3Yz3PiXZw
Now this is opinion, and really a poor argument. While I detest the verbosity
in most things, that is my choice, not the problem you claim.
Back on topic, COBOL is very verbose, but I also hate way too concise languages where the language designers don't even allow words like
"function" to be spelt out in full. You read code many more times than
you write it and having cryptic syntax makes that a lot harder to achieve.
Something like Ada was designed for readability, and I wish all other languages followed that example.
Just waiting for the moment when a newcomer designs a new language which
has syntax resembling TECO... :-)
BTW, I was interested to read about the issues and tradeoffs around
the stopping of standardised testing during the application process
in some higher education establishments a few years ago.
On 12/3/2025 9:07 AM, Simon Clubley wrote:
BTW, I was interested to read about the issues and tradeoffs around
the stopping of standardised testing during the application process
in some higher education establishments a few years ago.
Nothing wrong with tests. They can be helpful. But let me tell you what is >wrong with depending on tests. SOME PEOPLE JUST DON'T DO WELL WITH TESTS!
Case in point. My son always had problems with taking tests. I don't >understand it, but that was a problem for him. Does that make him less than >those who do well with tests?
Now he is a NRC licensed reactor operator at a nuclear power station. Yes, >there was testing, and it was difficult for him. But testing is not how the job
is learned. People actually practiced the job under close supervision before >they were trusted to do the job. Perhaps still a type of testing.
Lately, when special operations are required, He is the one called upon, because
he is trusted to perform the job correctly, over most of the other operators.
I guess what I'm trying to say is while tests can be helpful, they are not >necessarily the only way of determining competence.
Chris Townley <news@cct-net.co.uk> wrote:
On 30/11/2025 21:09, Arne Vajh|+j wrote:
Why would you want that?
The selling point is the automatic persistence of global variables:
Think database. MUMPS globals really are a non-relational database. Non-persistent database would be of limited use.
On 11/3/2025 8:31 AM, Simon Clubley wrote:
What are they moving to, and how are they satisfying the extremely high
constraints both on software and hardware availability, failure
detection,
and recovery that z/OS and its underlying hardware provides ?
z/OS has a unique set of capabilities when it comes to the absolutely
critical this _MUST_ continue working or the country/company dies area.
Note that even though z/OS and mainframes generally have a
good track recording regarding availability, then it is not
a magic solution - they can also have problems.
Banks having mainframe problems are rare but far from
unheard of.
Because a bank mainframe was down for 5 hours.
On 11/11/2025 10:50 AM, Arne Vajh|+j wrote:
On 11/3/2025 8:31 AM, Simon Clubley wrote:
What are they moving to, and how are they satisfying the extremely high
constraints both on software and hardware availability, failure
detection,
and recovery that z/OS and its underlying hardware provides ?
z/OS has a unique set of capabilities when it comes to the absolutely
critical this _MUST_ continue working or the country/company dies area.
Note that even though z/OS and mainframes generally have a
good track recording regarding availability, then it is not
a magic solution - they can also have problems.
Banks having mainframe problems are rare but far from
unheard of.
And speaking of.
A lot of banking services were down Monday in Denmark.
Because a bank mainframe was down for 5 hours.
Both the company and the country survived. :-)
As often is the case the root cause was simple and
stupid. A capacity management application took away
the resources needed to process transactions.
Arne
On 2025-12-18, Arne Vajh|+j <arne@vajhoej.dk> wrote:
On 11/11/2025 10:50 AM, Arne Vajh|+j wrote:
On 11/3/2025 8:31 AM, Simon Clubley wrote:
What are they moving to, and how are they satisfying the extremely high >>>> constraints both on software and hardware availability, failureNote that even though z/OS and mainframes generally have a
detection,
and recovery that z/OS and its underlying hardware provides ?
z/OS has a unique set of capabilities when it comes to the absolutely
critical this _MUST_ continue working or the country/company dies area. >>>
good track recording regarding availability, then it is not
a magic solution - they can also have problems.
Banks having mainframe problems are rare but far from
unheard of.
And speaking of.
A lot of banking services were down Monday in Denmark.
Because a bank mainframe was down for 5 hours.
Both the company and the country survived. :-)
As often is the case the root cause was simple and
stupid. A capacity management application took away
the resources needed to process transactions.
I am impressed... :_) where did you read/see this ??
And for those that does not read Danish:
<quote>
JN Data has been working through the night to find the root cause of
the outage on our Mainframe. Initial investigations indicate that an incorrect command in JN Data's capacity management tool was the root
cause of the outage. The incorrect command meant that too little
capacity was allocated to process customers' transactions. As a result, services such as credit cards and online and mobile banking became unavailable for JN Data's customers Jyske Bank, Bankdata, BEC and
Nykredit. We are now working on the underlying cause of this to ensure
that a similar error cannot occur in the future.
</quote>
mod produser /cpu=00:00:01 /wsmax=10 /wsext=20 /pgflq=100
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 65 |
| Nodes: | 6 (1 / 5) |
| Uptime: | 01:03:31 |
| Calls: | 862 |
| Files: | 1,311 |
| D/L today: |
10 files (20,373K bytes) |
| Messages: | 264,187 |