The only problem I ever had with Pascal is that after starting with
PL/I it felt like a step backwards.
On Wed, 14 Oct 2026 07:35:41 -0700, Peter Flass wrote:
The only problem I ever had with Pascal is that after starting with
PL/I it felt like a step backwards.
PL/I had structures modelled on COBOL though, didn?t it. In other
words, crap. Also pointer handling was unwieldy.
And also, no typedefs.
On 10/14/26 16:02, Lawrence D?Oliveiro wrote:
On Wed, 14 Oct 2026 07:35:41 -0700, Peter Flass wrote:
The only problem I ever had with Pascal is that after starting withPL/I had structures modelled on COBOL though, didn?t it. In other
PL/I it felt like a step backwards.
words, crap. Also pointer handling was unwieldy.
And also, no typedefs.
I think PL/I and COBOL structures are much more readable than C or
Pascal. Pointer handling is less cumbersom than C, which sometimes
requires lots and lots of casts.
Peter Flass <Peter@Iron-Spring.com> writes:
On 10/14/26 16:02, Lawrence D?Oliveiro wrote:
On Wed, 14 Oct 2026 07:35:41 -0700, Peter Flass wrote:
The only problem I ever had with Pascal is that after starting withPL/I had structures modelled on COBOL though, didn?t it. In other
PL/I it felt like a step backwards.
words, crap. Also pointer handling was unwieldy.
And also, no typedefs.
I think PL/I and COBOL structures are much more readable than C or
Pascal. Pointer handling is less cumbersom than C, which sometimes
requires lots and lots of casts.
If you're using lots and lots of pointer casts in C, either you're
writing some very low-level code or you're probably doing something
wrong. If you find that you need to cast a pointer of type foo* to
bar*, consider that perhaps it should have been of type bar* in the
first place.
[...]
On 10/14/26 16:02, Lawrence D?Oliveiro wrote:
On Wed, 14 Oct 2026 07:35:41 -0700, Peter Flass wrote:
The only problem I ever had with Pascal is that after starting with
PL/I it felt like a step backwards.
PL/I had structures modelled on COBOL though, didn?t it. In other
words, crap. Also pointer handling was unwieldy.
And also, no typedefs.
I think PL/I and COBOL structures are much more readable than C or
Pascal.
Pointer handling is less cumbersom than C, which sometimes
requires lots and lots of casts.
For structures I convert C's typedefs by declaring a base_structure,
for example "some_structure_type" and then declaring instances "structure_instance like some_structure_type".
On Wed, 14 Oct 2026 16:11:47 -0700, Peter Flass wrote:
On 10/14/26 16:02, Lawrence D?Oliveiro wrote:
On Wed, 14 Oct 2026 07:35:41 -0700, Peter Flass wrote:
The only problem I ever had with Pascal is that after starting with
PL/I it felt like a step backwards.
PL/I had structures modelled on COBOL though, didn?t it. In other
words, crap. Also pointer handling was unwieldy.
And also, no typedefs.
I think PL/I and COBOL structures are much more readable than C or
Pascal.
Nobody else seems to agree.
Pointer handling is less cumbersom than C, which sometimes
requires lots and lots of casts.
Casts are only needed because of type incompatibilities. There is also
an issue with C syntax being backwards compared to Pascal, but you
didn?t raise that.
For structures I convert C's typedefs by declaring a base_structure,
for example "some_structure_type" and then declaring instances
"structure_instance like some_structure_type".
The need for ?like? means you have to have at least one instance,
which somehow becomes the ?canonical? instance. What?s so special
about it?
On 10/14/26 17:22, Lawrence D?Oliveiro wrote:
The need for ?like? means you have to have at least one instance,
which somehow becomes the ?canonical? instance. What?s so special
about it?
What;s so special about a typedef. It's all just syntactical sugar.
On Wed, 14 Oct 2026 20:25:33 -0700, Peter Flass wrote:
On 10/14/26 17:22, Lawrence D?Oliveiro wrote:
The need for ?like? means you have to have at least one instance,
which somehow becomes the ?canonical? instance. What?s so special
about it?
What;s so special about a typedef. It's all just syntactical sugar.
So how do you write your code without it? Do you create some
?canonical? variable that is referenced only for ?like? purposes, its
storage is not actually used for anything -- wasted if not optimized
away? Or do you add this role to some variable that is actually used
to store values? Which means changes are needed to all ?like? clauses referencing that variable, if it should be refactored out of
existence?
On Wed, 14 Oct 2026 20:25:33 -0700, Peter Flass wrote:
On 10/14/26 17:22, Lawrence D?Oliveiro wrote:
The need for ?like? means you have to have at least one instance,
which somehow becomes the ?canonical? instance. What?s so special
about it?
What;s so special about a typedef. It's all just syntactical sugar.
So how do you write your code without it? Do you create some
?canonical? variable that is referenced only for ?like? purposes, its
storage is not actually used for anything -- wasted if not optimized
away? Or do you add this role to some variable that is actually used
to store values? Which means changes are needed to all ?like? clauses referencing that variable, if it should be refactored out of
existence?
On 10/14/26 21:54, Lawrence D?Oliveiro wrote:
On Wed, 14 Oct 2026 20:25:33 -0700, Peter Flass wrote:
On 10/14/26 17:22, Lawrence D?Oliveiro wrote:
The need for ?like? means you have to have at least one instance,
which somehow becomes the ?canonical? instance. What?s so special
about it?
What;s so special about a typedef. It's all just syntactical sugar.
So how do you write your code without it? Do you create some
?canonical? variable that is referenced only for ?like? purposes,
its storage is not actually used for anything -- wasted if not
optimized away? Or do you add this role to some variable that is
actually used to store values? Which means changes are needed to
all ?like? clauses referencing that variable, if it should be
refactored out of existence?
This is a PL/I BASED variable, for which no storage is used unless
it is allocated. Essentially it's a typedef struct.
On Thu, 15 Oct 2026 07:26:11 -0700, Peter Flass wrote:
On 10/14/26 21:54, Lawrence D?Oliveiro wrote:
On Wed, 14 Oct 2026 20:25:33 -0700, Peter Flass wrote:
On 10/14/26 17:22, Lawrence D?Oliveiro wrote:
The need for ?like? means you have to have at least one instance,
which somehow becomes the ?canonical? instance. What?s so special
about it?
What;s so special about a typedef. It's all just syntactical sugar.
So how do you write your code without it? Do you create some
?canonical? variable that is referenced only for ?like? purposes,
its storage is not actually used for anything -- wasted if not
optimized away? Or do you add this role to some variable that is
actually used to store values? Which means changes are needed to
all ?like? clauses referencing that variable, if it should be
refactored out of existence?
This is a PL/I BASED variable, for which no storage is used unless
it is allocated. Essentially it's a typedef struct.
It?s not a typedef unless you can have more than one variable.
On 10/15/26 14:14, Lawrence D?Oliveiro wrote:
On Thu, 15 Oct 2026 07:26:11 -0700, Peter Flass wrote:
On 10/14/26 21:54, Lawrence D?Oliveiro wrote:
On Wed, 14 Oct 2026 20:25:33 -0700, Peter Flass wrote:
On 10/14/26 17:22, Lawrence D?Oliveiro wrote:
The need for ?like? means you have to have at least one instance,
which somehow becomes the ?canonical? instance. What?s so special
about it?
What;s so special about a typedef. It's all just syntactical sugar.
So how do you write your code without it? Do you create some
?canonical? variable that is referenced only for ?like? purposes,
its storage is not actually used for anything -- wasted if not
optimized away? Or do you add this role to some variable that is
actually used to store values? Which means changes are needed to
all ?like? clauses referencing that variable, if it should be
refactored out of existence?
This is a PL/I BASED variable, for which no storage is used unless
it is allocated. Essentially it's a typedef struct.
It?s not a typedef unless you can have more than one variable.
You can have as many a you want.
On Thu, 15 Oct 2026 07:26:11 -0700, Peter Flass wrote:
On 10/14/26 21:54, Lawrence D?Oliveiro wrote:
On Wed, 14 Oct 2026 20:25:33 -0700, Peter Flass wrote:
On 10/14/26 17:22, Lawrence D?Oliveiro wrote:
The need for ?like? means you have to have at least one instance,
which somehow becomes the ?canonical? instance. What?s so special
about it?
What;s so special about a typedef. It's all just syntactical sugar.
So how do you write your code without it? Do you create some
?canonical? variable that is referenced only for ?like? purposes,
its storage is not actually used for anything -- wasted if not
optimized away? Or do you add this role to some variable that is
actually used to store values? Which means changes are needed to
all ?like? clauses referencing that variable, if it should be
refactored out of existence?
This is a PL/I BASED variable, for which no storage is used unless
it is allocated. Essentially it's a typedef struct.
It?s not a typedef unless you can have more than one variable.
Pascal is a teaching language with a lot of restrictions on it, basically designed to be a more flexible Algol.
As such, it's not really usable as a development language without extensions, and everybody's extensions are different. The Borland extensions are really good, though, and make Pascal into an excellent development language.
The Delphi extensions were good too... but they were different and not compatible with the Borland extensions.
The nice thing about Pascal is the restrictions. It is possible to hurt yourself with pointers in Pascal, but nowhere near as easily as with C.
Blaine <cactus_DAC@yahoo.com> wrote:
I guess I take umbrage at your goto statement. I do nothing of the like.
It gets worse than that.
groovy:: ; do that groovy thing
.call_entry max_args=33,home_args=true,preserve=<r3,r5>
movl (ap),r3 ; boogity boogity boogity
moval 4(ap),r5 ; yeah, you got it baby
ret ; go back and do it again
.psect idata,wrt,noexe,quad
.align quad
But the attitude of not caring about speed can have grave results
when the inefficiencies pile up.
Most of our convergence methods use Newton-Raphson, yes that Isaac
Newton, to start, very quick to solve if it solves.
If that spirals out of control then we use the halving method, brute
force and very slow. If that fails then we use an interpolation
method, also very slow. If that fails (the flash is infeasible),
then we report the failure to the user.
... everything was rewritten using Structured Programming and COBOL
which had a marvellously fast file indexing system and it became
possible to read other programmers' programs with such advantages
being great for the bureau but not so demanding and therefore
rewarding for programmers.
On 23/10/2026 05:21, Lawrence D?Oliveiro wrote:
On Thu, 22 Oct 2026 15:41:15 -0500, Lynn McGuire wrote:
I have been advocating for quite a while that C++ should add a
user interface programming model for quite a long time.
First they need a standardized graphics API.
I gather there?s been a proposal that?s been kicking around for
some years, to adopt something based on Cairo
<https://www.cairographics.org/>.
You need something with subsets. At least a "basic" subset, a "full"
subset, and something in between that satisfies most uses. Or maybe
subsets for different purposes, but they should all be compatible.
On 2026-10-23, Peter Flass <Peter@Iron-Spring.com> wrote:
On 10/23/26 01:01, boltar@caprica.universe wrote:
Bill Gates never earned a degree. He seemed to do ok.
From what I understand, he wasn't a very good programmer, though.
Considering how much of my career I've spent working around poor
design decisions and outright bugs in Windows, I'd say that is
self-evident.
Bill Gates wrote the Microsoft Basic compiler and interpreter for
the Altair 8080 in 2K of ram using assembly language. Take that as
you will.
On Fri, 23 Oct 2026 16:37:37 GMT, Charlie Gibbs wrote:
On 2026-10-23, Peter Flass <Peter@Iron-Spring.com> wrote:
On 10/23/26 01:01, boltar@caprica.universe wrote:
Bill Gates never earned a degree. He seemed to do ok.
From what I understand, he wasn't a very good programmer, though.
Considering how much of my career I've spent working around poor
design decisions and outright bugs in Windows, I'd say that is
self-evident.
Remember that current ?Windows? actually means ?Windows NT?. Which was primarily the brainchild of Dave Cutler, who came from the nest of Unix-haters at DEC.
In short, Gates couldn?t have done what Microsoft achieved on his own.
I have one Fortran program which has an excellent graphics API, it
writes Postscript. Works fine. Can't do any mouse clicks on it and
expect anything to happen, though :-)
On 2026-10-23, Lawrence D?Oliveiro <ldo@nz.invalid> wrote:
In short, Gates couldn?t have done what Microsoft achieved on his own.
Sort of like an evil genius commanding his legion of minions...
On Fri, 23 Oct 2026 16:37:37 GMT, Charlie Gibbs wrote:
On 2026-10-23, Peter Flass <Peter@Iron-Spring.com> wrote:
On 10/23/26 01:01, boltar@caprica.universe wrote:
Bill Gates never earned a degree. He seemed to do ok.
From what I understand, he wasn't a very good programmer, though.
Considering how much of my career I've spent working around poor
design decisions and outright bugs in Windows, I'd say that is
self-evident.
Remember that current ?Windows? actually means ?Windows NT?. Which was >primarily the brainchild of Dave Cutler, who came from the nest of >Unix-haters at DEC.
Perhaps it was the corporate culture with Bill Gates at the helm that >attracted Cutler to Microsoft. But look at some of the boneheaded
decisions he made (or propagated from old DOS-based Windows), just so
NT wouldn?t look like Unix, which continue to haunt Microsoft to this
day.
On Fri, 23 Oct 2026 21:00:30 -0000 (UTC), Thomas Koenig wrote:
I have one Fortran program which has an excellent graphics API, it
writes Postscript. Works fine. Can't do any mouse clicks on it and
expect anything to happen, though :-)
PostScript was a very influential graphics API, but it is only fit for
the museum nowadays. It was designed for putting marks on paper, not
for updating pixels on a computer screen.
On Fr 23 Okt 2026 at 22:49, Lawrence D?Oliveiro wrote:
PostScript was a very influential graphics API, but it is only fit
for the museum nowadays. It was designed for putting marks on
paper, not for updating pixels on a computer screen.
There was also display postscript from SUN.
On Sun, 25 Oct 2026 16:31:56 +0100, Andreas Eder wrote:
On Fr 23 Okt 2026 at 22:49, Lawrence D?Oliveiro wrote:
PostScript was a very influential graphics API, but it is only fit
for the museum nowadays. It was designed for putting marks on
paper, not for updating pixels on a computer screen.
There was also display postscript from SUN.
Display PostScript was from Adobe.
You could be thinking of NeWS, which was from Sun. It slightly
predated X11, and they pretty much abandoned it after adopting X11
wholesale, like the entire rest of the Unix industry.
But neither Display PostScript nor NeWS made any changes to the
PostScript graphics model; it was still designed around making marks
on paper, not for updating pixels on a computer screen.
| Sysop: | Tetrazocine |
|---|---|
| Location: | Melbourne, VIC, Australia |
| Users: | 5 |
| Nodes: | 8 (0 / 8) |
| Uptime: | 232:42:45 |
| Calls: | 221 |
| Files: | 21,513 |
| Messages: | 84,424 |