• Re: ?The end of software secrecy is almost upon us"

    From Lawrence D?Oliveiro@3:633/10 to All on Wed Oct 14 23:02:38 2026
    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.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Peter Flass@3:633/10 to All on Wed Oct 14 16:11:47 2026
    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".

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Keith Thompson@3:633/10 to All on Wed Oct 14 16:36:38 2026
    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 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.

    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.

    [...]

    --
    Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
    void Void(void) { Void(); } /* The recursive call of the void */

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Johann 'Myrkraverk' Oskarsson@3:633/10 to All on Thu Oct 15 07:47:42 2026
    On 10/15/2026 7:36 AM, Keith Thompson wrote:
    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 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.

    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.

    [...]


    Please forgive Keith, he likes to come across as an experience C pro-
    grammer, but seems to have neglected to implement his very own /abstract
    data type/ with void *s in C.
    --
    Johann | email: invalid -> com | http://www.myrkraverk.com/blog/
    I'm not from the Internet, I just work there. | via Easynews.com https://bsky.app/profile/myrkraverk.bsky.social | for ( ;; ) _:;
    Federated at https://fed.brid.gy/bsky/myrkraverk.bsky.social

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Thu Oct 15 00:22:41 2026
    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?

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Peter Flass@3:633/10 to All on Wed Oct 14 20:25:33 2026
    On 10/14/26 17:22, Lawrence D?Oliveiro wrote:
    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?

    What;s so special about a typedef. It's all just syntactical sugar.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Thu Oct 15 04:54:10 2026
    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?

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Keith Thompson@3:633/10 to All on Wed Oct 14 22:50:15 2026
    Lawrence D?Oliveiro <ldo@nz.invalid> writes:
    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 discussion is excessively cross-posted. If I knew which
    language has this "like" feature, it would be easier to discuss it.

    --
    Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
    void Void(void) { Void(); } /* The recursive call of the void */

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Peter Flass@3:633/10 to All on Thu Oct 15 07:26:11 2026
    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.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Thu Oct 15 21:14:35 2026
    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.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Peter Flass@3:633/10 to All on Thu Oct 15 14:21:31 2026
    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.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Thu Oct 15 21:41:09 2026
    On Thu, 15 Oct 2026 14:21:31 -0700, Peter Flass wrote:

    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.

    Multiple ?BASED? variables? Isn?t that the same problem as with ?LIKE?
    -- ?BASED? on what? A canonical template variable? Or one that is in
    actual use?


    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Keith Thompson@3:633/10 to All on Thu Oct 15 16:29:38 2026
    Lawrence D?Oliveiro <ldo@nz.invalid> writes:
    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.

    Lawrence, how familiar are you with PL/I? Consider reading a PL/I
    reference before making assumptions.

    --
    Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
    void Void(void) { Void(); } /* The recursive call of the void */

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lynn Wheeler@3:633/10 to All on Sun Oct 18 14:19:58 2026

    kludge@panix.com (Scott Dorsey) writes:
    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.

    IBM Los Gatos lab was doing lots of stuff with Metaware's TWS
    ... eventually doing a mainframe Pascal for implementing VLSI chip
    design tools ... which led to VS/PASCAL for mainframe and RS6000 unix workstation (including used for implementing mainframe TCP/IP product)

    1992, IBM has one of the largest losses in history of US companies and
    was being reorganized into the 13 "baby blues" in preparation for
    breaking up the company (take-off on "baby bells" breakup a decade
    earlier) https://web.archive.org/web/20101120231857/http://www.time.com/time/magazine/article/0,9171,977353,00.html
    https://content.time.com/time/subscriber/article/0,33009,977353-1,00.html
    we had already left IBM but get a call from the bowels of Armonk asking
    if we could help with the breakup of the company. Before we get started,
    the board brings in the former president of Amex as CEO to try and save
    the company, who (somewhat) reverses the breakup.

    Part of IBM restructure was unloading vlsi tools on industry tool vendor
    ... and they required it run on SUN platforms (pervasive in the
    industry). I got a contract to port a 50,000 statement vs/pascal VLSI application to SUN (pascal ... in retrospect it would have been easier
    to have rewitten it in "C"). SUN pascal appeared to have been limited to educational uses *AND* support had been outsourced to an organization on
    the opposite side of the planet (easy to walk into sun hdqtrs, but
    didn't actually help a lot).

    --
    virtualization experience starting Jan1968, online at home since Mar1970

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Scott Lurndal@3:633/10 to All on Tue Oct 20 14:15:20 2026
    [Trimmed all but alt.folklore.computers]

    kludge@panix.com (Scott Dorsey) writes:
    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


    The Burroughs medium systems MCP was originally written
    in assembler. The module that handled roll-in/roll-out
    (swapping in modern parlance) was called HIHO. As in
    Hi-Ho, Hi-Ho, it's off to work we go. The labels in the
    code were 'sleepy', 'grumpy', 'happy', et. alia.

    The new process creation code (fork) in the Burroughs large systems MCP, written in a flavor of Algol 60, was called 'motherforker'.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Wed Oct 21 01:30:43 2026
    On Tue, 20 Oct 2026 17:15:28 -0000 (UTC), Thomas Koenig wrote:

    But the attitude of not caring about speed can have grave results
    when the inefficiencies pile up.

    That?s not usually how code works, though. Execution time tends to
    follow a Pareto distribution -- spend your effort on the 10% of the
    code where 90% of the time is being spent, and that gives significant improvements without having to mess around with the other 90% of the
    code.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Wed Oct 21 01:35:49 2026
    On Tue, 20 Oct 2026 15:20:29 -0500, Lynn McGuire wrote:

    Most of our convergence methods use Newton-Raphson, yes that Isaac
    Newton, to start, very quick to solve if it solves.

    Second-order convergence. That is, the number of digits of precision
    roughly doubles on every iteration -- when it works, that is.

    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.

    Binary chop gives only first-order convergence, but it is guaranteed
    to converge if there is an answer. That?s why it?s always the last
    resort.

    No love for Runge-Kutta?

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Wed Oct 21 05:37:11 2026
    On Wed, 21 Oct 2026 16:11:28 +1300, Titus G wrote:

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

    But then, business procedures moved away from ISAM files to embrace
    relational databases instead, and it turned out COBOL was a poor fit
    for managing SQL queries.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Fri Oct 23 19:25:21 2026
    On Fri, 23 Oct 2026 09:55:48 -0700, Peter Flass wrote:

    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.

    Cairo is not exactly a large API, you know. And it already has a full open-source implementation that can be copied.

    For reference, I had the basics of my pure-Python wrapper <https://gitlab.com/ldo/qahirah> working in about the first 3 weeks.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Fri Oct 23 19:30:58 2026
    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.

    In short, Gates couldn?t have done what Microsoft achieved on his own.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Fri Oct 23 19:59:11 2026
    On Fri, 23 Oct 2026 14:49:23 -0500, Lynn McGuire wrote:

    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.

    Did he do that on his own? Or did Paul Allen do some or possibly even
    most or all of the work?

    And how do you explain that Microsoft Windows (both the old DOS-based
    Windows and current NT-based Windows) manages to carry over so many
    bits of cruft from the 8-bit era, when it never ran on 8-bit machines?

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Charlie Gibbs@3:633/10 to All on Fri Oct 23 20:28:07 2026
    On 2026-10-23, Lawrence D?Oliveiro <ldo@nz.invalid> wrote:

    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.

    Still, much of the cruft I had to deal with was present in 3.1.

    In short, Gates couldn?t have done what Microsoft achieved on his own.

    Sort of like an evil genius commanding his legion of minions...

    --
    /~\ Charlie Gibbs | In this world there are
    \ / <cgibbs@kltpzyxm.invalid> | two kinds of people:
    X I'm really at ac.dekanfrus | 1. Those who can extrapolate
    / \ if you read it the right way. | from incomplete data.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Fri Oct 23 22:49:31 2026
    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. Also its Unicode support was
    never really satisfactory.

    Look at successors like Cairo, and you clearly see the PostScript
    influence. And yet they are definitely more modern in their approach.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Fri Oct 23 22:50:33 2026
    On Fri, 23 Oct 2026 20:28:07 GMT, Charlie Gibbs wrote:

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

    He set the standard for the corporate culture at Microsoft!

    A culture which persists to this day ...

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From boltar@3:633/10 to All on Sat Oct 24 08:18:32 2026
    On Fri, 23 Oct 2026 19:30:58 -0000 (UTC)
    Lawrence =?iso-8859-13?q?D=FFOliveiro?= <ldo@nz.invalid> gabbled:
    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.

    People forget that Microsoft had its own version of unix - xenix (which it eventually sold to SCO). They could easily have put a Windows-like GUI on top with or without X Windows underneath, and a DOS compat API to run DOS programs. But they didn't - they wasted time and money creating NT which was a piss
    poor imitation and even today, no sane IT manager would use Windows Server in
    a mission critical 24/7/265 rack setup.


    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Andreas Eder@3:633/10 to All on Sun Oct 25 16:31:56 2026
    On Fr 23 Okt 2026 at 22:49, Lawrence D?Oliveiro wrote:

    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.

    There was also display postscript from SUN.

    'Andreas
    --
    ceterum censeo redmondinem esse delendam

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Sun Oct 25 20:07:20 2026
    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.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Chris M. Thomasson@3:633/10 to All on Sun Oct 25 14:36:44 2026
    On 10/25/2026 1:07 PM, Lawrence D?Oliveiro wrote:
    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.

    Updating pixels on a computer screen? Use a frag shader.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)