On Tue, Feb 28, 2023 at 3:00 AM <arnold(a)skeeve.com> wrote:
As Dan said, this is nuanced.
That is so true - I suspect it is a multi-edged sword, probably more than
two edges.
While I'm sure there's lots of mediocre programmers writing mediocre code,
(a) there probably always has been [think COBOL on mainframes] and (b) it
is not universal.
Sure. CS students are still not getting introduced to FORTRAN even though
over 90% of all production supercomputer code uses it. Again I don't
program it, but I accept that modern Fortran is not a terrible language -
because I looked at it and know a bit about it (I'm not too snooty
to do so). So modern FORTRAN courses are now taught in science departments
and passed from professor to student (and it paid my salary as long as I
made systems that ran it well). My 30 yr CS major daughter, who has
been at Google for a few years, never saw FORTRAN (or Snobol - much less
awk/sed) in her comparative languages course. I think that's a sin. She's
fluent in Python and Java - as well as a ton of tools for 'cloud
development and deployment.' Clearly these are valuable skills and the way
a lot of modern programs are deployed. She can work with C++ and Go (and
I think Rust) and saw a dialect of LISP (racket) in her
comparative languages course. In her university time, they taught they all
about regular expressions and made her and her classmates all use
grep/awk/sed in her original algorithms course years ago.
I have generally been fortunate to find interesting
and challenging work in a fairly long career; there's lots of interesting
problems out there that need solving which can't be dealt with by just
stringing together existing class libraries using an IDE on autopilot.
You have to look for it, and then hope you're qualified enough that they'll
hire you.
Exactly.
However, the cool things that we are yet to see will be created by Matt and
my daughter's generation, and I'm sure they will be great and *just as
important in the long run* as some of the neat things a few of us on this
list created. As Dan said, CS did not stop in 1989. Dennis said it well: *“From
an operating system research point of view, Unix is if not dead certainly
old stuff, and it’s clear that people should be looking beyond it.”*
The important thing is not to reject something just because it is old and
jump to something because it's new. I find the current
class-library/frameworks cruft as bad (and not a lot different from) the
'access methods' that IBM created in the 1960s, and Multics and UNIX boldly
rejected with all the worlds a 'segment' or later file.
This is the importance of teaching and exposing students to ideas (good and
bad) from the past so as not to repeat them. BTW: just because an idea
failed previously does not mean it will not work later or that such an
idea is a good or bad one now. This is why experience is so important -
for a >>great read<< Peter Novigs Teach Yourself Programming in Ten Years
<https://streaklinks.com/BaVcbV1trZMtU5LmFQEiYZUD/https%3A%2F%2Fwww.norvig.com%2F21-days.html>
I often refer to this as picking up 'good taste.' I agree with Arnold
that learning an IDE often seems like you are losing the ability to have a
foundation. I've pointed out reading >>and doing the exercises<< in
Rob
and Brian's excellent text: The Unix Programming Environment
<https://streaklinks.com/BaVcbV1WlnjOWWT1lgopkCVD/https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FThe_Unix_Programming_Environment>
really
should be part of all young programmers' experience (even learning to use a
document compiler like the runoff family. Once you master ed, regular
expressions and the like make you a better programmer. I'm not
saying you must be fluent/use vi or emacs as your primary editor to be a
great programmer. Still, I would place a large bet that the best
programmers all know how to use at least one of those tools - and I'll also
bet that they all could use a QED-derived line editor if that is what was
available.
The key to the UNIX philosophy is teaching to think *vs.* spoon-feeding a
current answer.
Sometimes, the latter has its place (I use many GUI-based applications on
my mac), but I always have several 'iterm2' windows open with a shell
prompt. The problem is that when the former is all you know, your only real
experience, I think people that have a wider field of view and a more open
mind are going to understand that your experience is quite limited and thus
the ability to judge the good/bad-ness of a something might be a tad
suspect.
Curmudgeon-ly yours,
Clem
ᐧ
ᐧ