From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from minnie.tuhs.org (minnie.tuhs.org [45.79.103.53]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 98493f2c for ; Wed, 13 Nov 2019 18:50:09 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id ECBB69BB38; Thu, 14 Nov 2019 04:50:07 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id BABF693D97; Thu, 14 Nov 2019 04:49:39 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="DsVsTaNA"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 14D6C93D97; Thu, 14 Nov 2019 04:49:38 +1000 (AEST) Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) by minnie.tuhs.org (Postfix) with ESMTPS id 0DAA193D52 for ; Thu, 14 Nov 2019 04:49:37 +1000 (AEST) Received: by mail-lf1-f53.google.com with SMTP id b20so2840302lfp.4 for ; Wed, 13 Nov 2019 10:49:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=q+ErfYqsPf5NkY5ODXCOU5bwXQU/GMVa9Il1b8CaAMo=; b=DsVsTaNApsw4hq+zpLdH6JnC3jYtT0GPTv9vkUd5duhz7t17D8hgvDfRMLC6QgEco5 PhKq6ZjffDIRzCaI2AIWEEnk8GSvsI3e8PV9gF3Q6YWOcwH1FnM7pwGOFU+eIanagOnZ z2mqvtpOLxXIcmen2+7dvz9b4O7HYF9QrogRVrF5Sbwh+KtgBdsjOniXW2gydgXtkjfN 58vMxcYTnPFxKbnhKIkFXiKvHX+gDa0ukWlfPBC/QrfwwQmAa5ssvvqiTGg0g4bOcKp2 QRvkAbNrSTO1U82RN6rB9qsIJ5qi01r6OdKKSGC/iKR8KHW/ag6jnK9AbFxzFYJY24V9 xRwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=q+ErfYqsPf5NkY5ODXCOU5bwXQU/GMVa9Il1b8CaAMo=; b=DdfQVeEkXdwH0k86admptrOMODFXUph7VI450ddo8bThpXa50Hwvtl87TMmYYKATVd OAxN3LbAze7hU7ZYGeEWL8nMnDek9kym4p3VSr9v4Dzt5iubVYol8IDW/sPOKm4jQK0e YsDt/w45vhOCUpnxzOAf4LLabODc9Iac8SXdP6S0ebdJbn/72mOD1lo7tMBR2aemSwIF 5HYn1EypUp7gSBb6i3162MXfdEU19dWsvDrCtfIeHg41/vTP0nHIuoyYqKgGn0KbY1AC U402jYSY0LxgoNEm4U0N7Az7L9hG7kNOXysZI/5Ftg6pB8+kaCb8PNhkowgcLNqWDEv4 2xWg== X-Gm-Message-State: APjAAAWTqyMPvRFAqBoq5NqJnPEyPln+03ainNrGWPP9RDanIUEfKVfB QjshqSmi1Ct56YlYrYYHGp4NU90aadrxPfc80Q== X-Google-Smtp-Source: APXvYqzFnTbWTtGm0vvFN1bo929PoSHwupI9fpV03P80P35eiCWIaKL04zQQPVD/O4r0uwL0KlUXx8Uf9yXC319EMQI= X-Received: by 2002:a19:ef11:: with SMTP id n17mr3752535lfh.88.1573670975118; Wed, 13 Nov 2019 10:49:35 -0800 (PST) MIME-Version: 1.0 References: <1573592179.5935.for-standards-violators@oclsc.org> <201911130735.xAD7ZQD6014497@freefriends.org> <201911131802.xADI2fxE752068@darkstar.fourwinds.com> In-Reply-To: <201911131802.xADI2fxE752068@darkstar.fourwinds.com> From: Tyler Adams Date: Wed, 13 Nov 2019 20:49:23 +0200 Message-ID: To: Jon Steinhart Content-Type: multipart/alternative; boundary="00000000000077350805973ed3ca" Subject: Re: [TUHS] Happy birthday Morris worm [ really programming education ] X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: tuhs@tuhs.org Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --00000000000077350805973ed3ca Content-Type: text/plain; charset="UTF-8" > > OK, this is a bit of a tangential topic for this list. But, what's the > point of obsessing on UNIX history unless it's coupled with some effort > to communicate the philosophy to a new generation of programmers? > 100 times this. A few hypotheses for why colleges teaching "theoretical programming" (i.e. Computer Science). - Universities, especially at the undergraduate level, have a mission to teach students how to think, not how to do. This leads to more theory and less practice. - Universities are top down institutions with lecturers. Theory is easier to teach in a top down institution than practical advice. - Software engineering is evolving so quickly, it would be hard to put together a software engineering program which had economic value. CMU has a MS in Software Engineering, but their cirriculum is vague so it's hard to tell what they do. If anybody here has taken it I'd love to hear what you thought of it. - A lot of good work needs to be done that doesn't require breaking the JVM, python, or JS abstraction layer. Cycles are cheap. Memory is cheap. And not all programs have latency or uptime requirements. UNIX culture of course was lightyears ahead of knowing this and economized for the most expensive resource of all: developer time. To bring this back to TUHS, how did (and do) UNIX developers teach the UNIX way? As someone younger than Linux, I was only lucky enough to read The Art Of Unix Programming by ESR and read Kernighan's books. Tyler On Wed, Nov 13, 2019 at 8:03 PM Jon Steinhart wrote: > arnold@skeeve.com writes: > > Norman Wilson wrote: > > > > > I am very disappointed that programming education seems not to care > > > enough about this sort of thing, even today. > > > > I think this is the key. Universities focus (too much?) on the theory > > and not enough on the practice, and "learn how to program" courses > > and books focus on the mechanics (syntax, semantics) and not enough > > (or at all) on the practicum of writing code well. > > > > We continue to rely on the school of hard knocks, and we continue > > to pay for this reliance. > > > > I also think there's a sliding scale. The fancier or higher-end > > the university, the more the focus on theory, and vice versa. Sigh. > > > > Arnold > > OK, this is a bit of a tangential topic for this list. But, what's the > point of obsessing on UNIX history unless it's coupled with some effort > to communicate the philosophy to a new generation of programmers? > > This has been a real concern of mine for a while. As a friend of mine > put it, processors are getting so cheap that pretty soon we won't be > able to purchase pencils that don't contain them. This puts us all > at the mercy of not-great programmers. And of course, it's not just > pencils, it's stuff like airplanes too. > > In my opinion, the root of the problem is that programming today is > being taught in the abstract - as if programs don't run on computers. > Programming today is taught as if it consists of importing libraries > and gluing function calls together. > > I recently visited my daughter's college and attended a number of CS > related presentations. Was surprised that CS is taught in Java with > some advanced work in Python. One can almost get a CS degree there > without ever using a compiler much less learning how computers function. > Too be fair, other schools such as Dartmouth where Doug hangs out have > a better curriculum. > > At the K-12 level, the stage is set by combination of the "everybody > must learn to code" curriculum with "no child left behind". School > administrators dispense with any critical thinking about the value of > the curriculum in order to chase grant dollars. > > I used to be able to get into my local schools to volunteer-teach > programming. But, the learn to code curriculum has eclipsed that; > schools are led to believe that they're teaching the right stuff > (because Bill Gates says so) and aren't interested in anything else. > > I recently turned my course notes into a book as an attempt to make > some small difference. Too soon to tell if it will. > > Anyway, my question for you all is, how do we as seasoned practitioners > leverage our experience to contribute to the state of the art? Any of > you found a way to pass on your knowledge? > > BTW, I'm doing my first messing around with the Linux kernel these days; > if anyone knows the guts of the generic filesystem code I could use a bit > of help. Here's something that I came across on the way in : > > enum > { > MS_RDONLY = 1, /* Mount read-only. */ > #define MS_RDONLY MS_RDONLY > MS_NOSUID = 2, /* Ignore suid and sgid bits. */ > #define MS_NOSUID MS_NOSUID > MS_NODEV = 4, /* Disallow access to device special > files. */ > #define MS_NODEV MS_NODEV > ... > }; > > Can anyone explain the value of this programming style? Is this just an > example of the result of how programming is taught today? > > Be happy discuss this off-list. > > Jon > --00000000000077350805973ed3ca Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
>
> OK, this is a bit of a tangential topic for t= his list.=C2=A0 But, what's the
> point of obsessing on UNIX hist= ory unless it's coupled with some effort
> to communicate the phi= losophy to a new generation of programmers?
>
100 times this.
<= br>
A few hypotheses for why colleges teaching "theoretical program= ming"
(i.e. Computer Science).

- Universities, especially at= the undergraduate level, have a mission
to teach students how to think,= not how to do. This leads to more theory
and less practice.

- Un= iversities are top down institutions with lecturers. Theory is easier
to= teach in a top down institution than practical advice.

- Software e= ngineering is evolving so quickly, it would be hard to put
together a so= ftware engineering program which had economic value.
CMU has a MS in Sof= tware Engineering, but their cirriculum is vague so it's hard to tell w= hat they do.
If anybody here has taken it I'd love to hear what you = thought of it.

- A lot of good work needs to be done that doesn'= t require breaking
the JVM, python, or JS abstraction layer. Cycles are = cheap.
Memory is cheap.=C2=A0 And not all programs have latency or uptim= e requirements.
UNIX culture of course was lightyears ahead of knowing t= his and
economized for the most expensive resource of all: developer tim= e.

To bring this back to TUHS, how did (and do) UNIX developers teac= h
the UNIX way? As someone younger than Linux, I was only lucky enough t= o
read The Art Of Unix Programming by ESR and read Kernighan's books= .

=C2=A0Tyler


On Wed, Nov 13, 2019 at 8:03 PM= Jon Steinhart <jon@fourwinds.com> wrote:
arnold@skeeve.com = writes:
> Norman Wilson <norman@oclsc.org> wrote:
>
> > I am very disappointed that programming education seems not to ca= re
> > enough about this sort of thing, even today.
>
> I think this is the key. Universities focus (too much?) on the theory<= br> > and not enough on the practice, and "learn how to program" c= ourses
> and books focus on the mechanics (syntax, semantics) and not enough > (or at all) on the practicum of writing code well.
>
> We continue to rely on the school of hard knocks, and we continue
> to pay for this reliance.
>
> I also think there's a sliding scale. The fancier or higher-end > the university, the more the focus on theory, and vice versa. Sigh. >
> Arnold

OK, this is a bit of a tangential topic for this list.=C2=A0 But, what'= s the
point of obsessing on UNIX history unless it's coupled with some effort=
to communicate the philosophy to a new generation of programmers?

This has been a real concern of mine for a while.=C2=A0 As a friend of mine=
put it, processors are getting so cheap that pretty soon we won't be able to purchase pencils that don't contain them.=C2=A0 This puts us al= l
at the mercy of not-great programmers.=C2=A0 And of course, it's not ju= st
pencils, it's stuff like airplanes too.

In my opinion, the root of the problem is that programming today is
being taught in the abstract - as if programs don't run on computers. Programming today is taught as if it consists of importing libraries
and gluing function calls together.

I recently visited my daughter's college and attended a number of CS related presentations.=C2=A0 Was surprised that CS is taught in Java with some advanced work in Python.=C2=A0 One can almost get a CS degree there without ever using a compiler much less learning how computers function. Too be fair, other schools such as Dartmouth where Doug hangs out have
a better curriculum.

At the K-12 level, the stage is set by combination of the "everybody must learn to code" curriculum with "no child left behind".= =C2=A0 School
administrators dispense with any critical thinking about the value of
the curriculum in order to chase grant dollars.

I used to be able to get into my local schools to volunteer-teach
programming.=C2=A0 But, the learn to code curriculum has eclipsed that;
schools are led to believe that they're teaching the right stuff
(because Bill Gates says so) and aren't interested in anything else.
I recently turned my course notes into a book as an attempt to make
some small difference.=C2=A0 Too soon to tell if it will.

Anyway, my question for you all is, how do we as seasoned practitioners
leverage our experience to contribute to the state of the art?=C2=A0 Any of=
you found a way to pass on your knowledge?

BTW, I'm doing my first messing around with the Linux kernel these days= ;
if anyone knows the guts of the generic filesystem code I could use a bit of help.=C2=A0 Here's something that I came across on the way in <sy= s/mount.h>:

enum
{
=C2=A0 MS_RDONLY =3D 1,=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 /* Mount read-only.=C2=A0 */
#define MS_RDONLY=C2=A0 =C2=A0 =C2=A0 =C2=A0MS_RDONLY
=C2=A0 MS_NOSUID =3D 2,=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 /* Ignore suid and sgid bits.=C2=A0 */
#define MS_NOSUID=C2=A0 =C2=A0 =C2=A0 =C2=A0MS_NOSUID
=C2=A0 MS_NODEV =3D 4,=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0/* Disallow access to device special files.=C2=A0 */
#define MS_NODEV=C2=A0 =C2=A0 =C2=A0 =C2=A0 MS_NODEV
...
};

Can anyone explain the value of this programming style?=C2=A0 Is this just = an
example of the result of how programming is taught today?

Be happy discuss this off-list.

Jon
--00000000000077350805973ed3ca--