[TUHS] RIP J.F.Ossanna
Noel Hunt
noel.hunt at gmail.com
Fri Dec 1 06:43:51 AEST 2017
If you want to see a nice use of a restricted subset of C++,
that is, code written in the early days before the accretion
of hideous excrescences, I highly recommend Tom Cargill's
'pads'. You will find it in the 10th Edition distributions.
It is a typical blit-style program, with a 'terminal' and
'host' portion, the 'host' portion being written in the said
restricted, earlier form of C++.
The 'terminal' part is in C (this is the graphics front-end)
but written for the blit. There was an OpenLook port by Dave
Kowolski, and I have a version that runs under Plan9 (via
Russ Cox's plan9port)---there is a straight-forward mapping
of blit graphics operations to the Plan9 model.
Noel Hunt
On Fri, Dec 1, 2017 at 2:44 AM, Steffen Nurpmeso <steffen at sdaoden.eu> wrote:
> Larry McVoy <lm at mcvoy.com> wrote:
> |On Wed, Nov 29, 2017 at 08:00:55PM +0100, Steffen Nurpmeso wrote:
> |> Larry McVoy <lm at mcvoy.com> wrote:
> |>|On Mon, Nov 27, 2017 at 07:06:51PM -0500, Ron Natalie wrote:
> |>|> 1977 marks my entry into the world of UNIX. I've always stated \
> |>|> there was
> |>|> only one person who truly understood nroff and he was dead.
> |>|> I mourn the fact that of all the UNIX greats I've met, I missed out
> on
> |>|> Ossanna.
> |>
> |>|I think one could argue that James Clark has a pretty good handle on
> |>|roff (having written the GNU version of nroff/troff/tbl/eqn/pic etc).
> |>
> |> And Werner Lemberg, who carried the torch for the last almost two
> |> decades. He brought in some really great improvements, like
> |> arguments for strings, which allows to write pretty much TeX like
> |> a.k.a. inline if you want to (as in "this is \*[I talic] text").
> |
> |Yep. James exited stage left and Werner stepped in. I mean no
> disrespect
> |to anyone, I was just saying that James has a really good handle on roff,
> |he redid it all. I admire him for doing so (even though I curse the fact
> |that he did it in C++).
>
> The original source was no free code back then, so he did it for
> the free and open software world. Thankfully. And i do not know,
> i mean C++ was in 1989-1992, when he did most of the work as far
> as i can tell from a shallow look, a class, later template
> extension layer for plain C, not that overly huge stands-by-itself
> monster that i call it now.
>
> I am absolutely in favour and a of classes and objects, the
> encapsulation they provide, the method-on-object rather than
> object-on-function that you have with C. (Multiple) Inheritance
> including automatic upcasts (to the given parent). Virtual
> function pointer tables, automatically managed. And "simple"
> templates. For example, myself, in the process of creating my own
> fork, can write (globbering the global namespace)
>
> color &assign_rgb(rf_ui32 r, rf_ui32 g, rf_ui32 b){
> m_scheme = scheme_rgb;
> return set_red(r).set_green(g).set_blue(b);
> }
> color &set_red(rf_ui32 c){
> rf_ASSERT(scheme() == scheme_rgb);
> m_comps[0] = rf_min(c, max_val);
> return *this;
> }
> ...
>
> instead of
>
> rf_color *rf_color_assign_rgb(rf_color *self, rf_ui32 r, ....){
> self->c_scheme = rf_COLOR_SCHEME_RGB;
> self->c_comps[0] = rf_MIN(r, rf_COLOR_MAX_VAL);
> ...
> return self;
> }
>
> and programming all that out over and over again. (Or using
> macros with side-effects. Or relying on inline functions.)
> And that is a simple object with a short name.
> References are unfortunate in my opinion, but you will not see any
> light if you try doing C++ without them because they are
> omnipresent for core functionality like standard copy constructors
> etc. Like many other things, including the complete departure
> from an underlaying C standard. C++03/C99 or so i would have
> appreciated. But as long as -fno-rtti -fno-exceptions is possible
> i can somehow live with it. (Let aside the fact that i have to
> live with it no matter what bloat the C++ standard introduces
> next.) And then C is not what it was no more, too, and
> unfortunately the usage-makes-fun guideline from what Plan9
> documents and extends onto ISO C89 was not what the ISO C people
> looked at when they did. Well.
>
> Maybe if he would have known what C++ ends up as he would have
> used C instead? That would be an interesting question. Myself
> i currently appreciate coming back to a C++ codebase, however,
> because thinking in objects is my personal way of dealing with
> programming, that is how i really got used to it, anyway.
>
> --steffen
> |
> |Der Kragenbaer, The moon bear,
> |der holt sich munter he cheerfully and one by one
> |einen nach dem anderen runter wa.ks himself off
> |(By Robert Gernhardt)
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20171201/2bdd154e/attachment.html>
More information about the TUHS
mailing list