On 27 April 2016 at 20:15, Swift Griggs <swiftgriggs at gmail.com> wrote:
On Wed, 27 Apr 2016, Liam Proven wrote:
I wish to apologise for this. It was unjustified
and unfair, and
unjustly ad-hom as well.
Well, that's mighty big of you Liam.
You're welcome, Swift. I'll try to learn from this.
You are clearly a brilliant guy with
a storied career and bristling with skills I only wish I had.
I don't know about that! I'm "only" 48 and my career was always more
in the sense of a verb than a noun. ;-)
I just have dabbled in a lot more systems and platforms than most. I
never specialised.
That came back to bite me in the fundament by my 40s. :-(
As I read
through your post here, I also got a lot more grit and understanding of
why folks get as irritated as they do when I associate my bumbling college
profs with something like LISP. It's silly of me to associate a language
with a group of people. It's human, but still not very bright of me. LISP
certainly has a lot of smart people advocating for it. It seems to
represent a lost ideal or paradigm to them and it's I can see it's nasty
of me to step on that, even if that's not my direct design to hurt them.
I guess I have picked up some of the esteem it's held in by contact.
This essay made the argument originally, I think:
http://www.paulgraham.com/avg.html
If you go and survey people with broad comparative knowledge, everyone
looks down on some languages and up to others.
https://www.youtube.com/watch?v=4VxkltwS9g0
But whereas you can find fans of all sorts of languages who look up to
Lisp, Lispers don't look up to anyone. It seems to be the peak.
I don't program in anything modern and haven't coded for 25y or so. I
don't do Lisp or any FP language. But I've read a lot /about/ Lisp and
it seems to be something special and unique.
My contention
is that a large part of the reason that we have the crappy
computers that we do today [...] is not technical, nor even primarily
commercial or due to business pressures, but rather, it's cultural.
I share your lament.
the culture was that Real Men programmed in
assembler and the main
battle was Z80 versus 6502, with a few weirdos saying that 6809 was
better than either.
One thing that also keeps jumping out at me over and over is how I meet
people with the same kind of experiences you describe and they are often
much more skilled and better critical thinkers than folks I know from my
generation or younger. Don't get me wrong, there are plenty of young
shining stars, but they just don't seem to occur with the same frequency.
I have surmised that I am standing on the shoulders of giants going all
the way back to folks like Grace Hopper, and that it's more and more
difficult to grow in this field in the same way as the "old timers" (which
for me is anyone who worked in the industry before 1989, I realize it's
all relative).
There seems to be part of that. As ESR said, if one learns Lisp, /even
if one never uses it/ it makes one a better programmer. I cannot
verify this myself but the excitement of the Java folk getting into
Clojure now seems to bear it out to some degree.
All "you guys" seemed to start out with math
or EE
background and filling in the CS parts seems to be trivial for you. I look
up to your generation, believe it or not.
I was an undergrad biologist. :-) I've never studied CS.
But I think you have a point.
I've long felt that universities should teach /methods/ not skills.
They aren't for vocational training -- that's for polytechnics,
colleges and trainee jobs. But that's another thing we've screwed up
in recent decades: education.
The labs had
Acorn BBC Micros in -- solid machines, *the* best 8-bit
BASIC ever,
I'm a bit sad those never caught on in the states. They are neat machines.
NIH syndrome?
But a new wave
was coming. MS-DOS was already huge and the Mac was
growing strongly. Windows was on v2 and was a toy, but Unix was coming
For me, as a teen in the 1990s. I associated Unix with scientists,
engineers, and "thinkers" in general. I'd walk into somewhere to fix a
monitor or printer (I was a bench tech for a while) and the Unix guys
wouldn't want me near their stuff. They could fix it themselves and they
didn't want some punk kid who knew MSDOS to touch them. Meanwhile all the
people I didn't respect (PHBs and other business-aligned folks) used beige
boxes running DOS. I knew I was in the wrong place.
Yep, me too. I only learned it because it was the best choice for
multiuser accountancy systems in the late '80s. That is the one
function we sold it for. Some of the boxes replaced Concurrent CP/\M
systems with much more primitive DOS-based accountancy apps.
A new belief
started to spread: that if you used C, you could get
near-assembler performance without the pain, and the code could be
ported between machines. DOS and Mac apps started to be written (or
rewritten) in C, and some were even ported to Xenix.
Wasn't that kind of true, though? I've heard it said "C is nothing more
than a macro assembler". I'm a C programmer as you might expect. I'd
heartily agree. However, being a C programmer I also see C's warts. It's
not big on syntactic sugar, but it does get the job done in a
straightforward and pragmatic way.
Ah but that is the exact thing. Yes, it does seem to deliver on that.
But there is a very very high price to pay for it, and that's almost
never mentioned, never discussed.
I do plenty of OO in other languages,
but I still prefer procedural & structured coding techniques most of the
time (as long as it effectively solves the problems). However, I'd reach
for an OO language or heavily abuse callbacks in C if I needed to do a
simulation.
You're clearly a far more advanced programmer than I am, then. I never
mastered OO at all.
[...] Apple
merged with NeXT and switched to NeXTstep.
I still like to show non-coders how all these OSX library calls often
*still* start with "ns" (next step).
Yup.
Some describe it as a stealth takeover of *Apple* by NeXT. A lot of
the Apple tech & methods (and people) were tossed out, replaced by
NeXT stuff.
Now, Windows
is evolving to be more and more Unix-like, with GUI-less
versions, clean(ish) separation between GUI and console apps, a new rich
programmable shell, and so on.
It reminds me of the famous statement "Those who do not learn from Unix
are doomed to re-invent it... poorly."
Yep, definitely.
Henry Spencer, I believe.
Windows 10 inclusion of bash seems
to me to be a white flag on the part of Microsoft saying "You guys were
right." Especially after pushing Powershell so hard. Of course, I'm sure
the devils advocate would say "It's just a greater diversity in a massive
constellation of functionality in Windows"
Yup, to both.
While the Mac
is now a Unix box, albeit a weird one.
A very weird one. Most of my Unix zealot friends use Macs now. I still use
the console :-) If I must, then I'll use fluxbox in X11 on top of NetBSD.
Ubuntu laptops, Mac desktop, for me. :)
Commercial
Unix continues to wither away. OpenVMS might make a modest
comeback.
Go VMS. I hope VSI can pull it off. I also hope they change their
licensing terms to be less draconian. IMHO, that's what hurt them so badly
in the 90s after Ken Olsen left. They wanted to LMF license every little
bit of Tru64 and VMS. There is the hobbyist program, yes. However, you
don't need to mess with that to download Linux, and that's still an
accessibility gap.
Agreed.
IBM has
successfully killed off several efforts to do this for z Series.
In order to prevent your goose that laid the golden egg from losing her
value (as a dead or emulated goose), you need to kill the goose hunters.
:-)
I guess so. But I'm not sure that total extermination was the only way.
So now,
it's Unix except for the single remaining mainstream proprietary
system: Windows. Unix today means Linux, while the weirdoes use FreeBSD.
Everything else seems to be more or less a rounding error.
Color me weirdo and rounding error since I mainly use NetBSD. It doesn't
change the truth of your statement, though. :-)
:-)
Even the safer
ones run on a basis of C
IMHO, C is the most portable language in the world, not Java. IIRC, many
java runtimes are still written in C. Anytime someone makes a new
processor one of the first things they do is port a C compiler, making a
lot more stuff possible.
At a very low-level, rudimentary form of portability, yes.
Perl has
abandoned its base, planned to move onto a VM, then the VM went
wrong, and now has a new VM and to general amazement and lack of
interest, Perl 6 is finally here.
I started learning and using Perl until all this weirdness happened and
they bolted on OO etc... I'm not anti OO but it was all just too much more
me. I bolted to Ruby and Lua. No disrespect to the Perl Monks, I just
couldn't hang anymore.
Never got over the line noise aspect.
So they still
have C like holes and there are frequent patches and
updates to try to make them able to retain some water for a short time,
while the "cyber criminals" make hundreds of millions.
I mostly agree, but I would like to say a few things about security issues
and C.
* Buffer overflows and string format exploits are the biggest
side-effects, security wise. They aren't nearly as common as they were.
There is greater awareness among programmers, compilers, and scanning
tools now (valgrind, rats, etc). Plus the exploit writers have found
more fertile ground in things like SQL injection and CGI interfaces.
Both good points, but the thing is, all that stuff shouldn't be
necessary. Safer languages can be fast, predictable, suitable for
low-level systems work as well as app work. Rich OSes have been built
on Oberon, Lisp and other languages.
I think the main reason for C's success is culture, not any technical
virtue. It's like Paris Hilton or the Kardashians -- famous for being
famous. C is popular because C is popular.
* They are pretty easy to prevent most of the time,
especially if you care
enough to check or use something like stack-smashing prevention in your
compiler. Also thinks like OS heap randomization has made exploits much
harder.
True, but again, *you shouldn't have to*. It means programmer effort,
brain power, is being wasted on thinking about being safe instead of
spent on writing better programs.
* Yes, they still happen, and still *can* happen, so I
don't dispute that.
Anything else is "uncommercial" or
"not viable for real world use".
I think this is some phrase I often throw around a little too cavalier.
It's not just you.
Just because a language isn't popular doesn't
mean I can't learn something
from it.
Borland totally dropped the ball and lost a nice
little earner in
Delphi, but it continues as Free Pascal and so on.
It boggles me, actually.
Yeah, me too.
But Delphi was a business tool, mostly internal or in small
specialised commercial products. It didn't get any academic mindshare,
so it didn't get used in OSes -- it was of course proprietary -- and
so it never got taken seriously by the big boys.
Sun did the right thing open-sourcing Java. Borland should have done the same.
There were some awesome Delphi coders out there.
I thought they'd never be derailed, because they were actually *very*
effective coders I'd seen really powering certain businesses.
Yup.
Did Borland
hork things up or what ?
One of the biggest fsck-ups in the history of the PC industry, and
possibly the single biggest one in programming language history. And
barely reported.
Apple goes its
own way, but has forgotten the truly innovative projects
it had pre-NeXT, such as Dylan.
And amazing things like Amoeba, Sprite, MOSIX and others have also sort of
dried up and died on the vine. There were some great ideas there.
Absolutely, yes.
The Lisp
Machines and Smalltalk boxes lost the workstation war. Unix
won, and as history is written by the victors, now the alternatives are
forgotten or dismissed as weird kooky toys of no serious merit.
I also get that things are lost in this type of "war" the merits and
interesting side of LISP machines etc.. It's not a good thing.
Exactly.
CP/M evolved
into a multiuser multitasking 386 OS that could run
multiple MS-DOS apps on terminals, but it died.
Hmm, was that before or after things like Desqview came along? I'd
probably guess that's why or just the momentum DOS had for a while.
Around the same time.
I don't remember the exact timeline -- it was fading away just as I
entered the industry.
My impression is that the postcard-length summary is:
[Before my time]
* CP/M lost out to MS-DOS on the PC.
* So DR reconsidered, rolled some MP/M tech into it, and launched
Concurrent CP/M. CCP/M was a multitasking multiuser CP/M.
* This did OK but never had many apps. So, they took some tech from
DOS Plus and made it able to run DOS apps: Concurrent DOS.
* Now it offered limited multitasking of DOS apps, but only "clean"
ones, in text mode only.
* But now PC LANs were becoming competitive, so CDOS got enhanced into
a 386-native version, using the 386's 86VM tech.
This meant that CDOS could run "unruly" DOS apps, including graphics.
[This is about when I came in.]
* However CDOS only offered limited driver support and couldn't use
MS-DOS drivers, networking etc. LAN workstations could. Also, altho'
CDOS 386 could handle graphics terminals, they were expensive, rare,
limited, and the performance wasn't great.
[Now we're around the time of the lacklustre MS-DOS 4.0 and Windows 3]
* So DR turned its efforts into making a single-tasking "better DOS
than DOS" -- DR-DOS
* DR-DOS 3.41 was out there, a slightly better DOS than MS-DOS 3.3,
with large disk support.
* DR opened up the _retail_ DOS market with DR-DOS 5, with memory
management, a MOVE command, etc.
* Some DR-DOS tech was merged into CDOS, which was then sold off -- it
survived as Concurrent Controls & Datapac's Multiuser DOS & IMS
Real32.
* MS rejoined with MS-DOS 5.
* Novell bought DR; DR-DOS 6 had disk compression
* MS-DOS 6 copied that (literally -- it was stolen from STAC's Stacker)
* DR-DOS 7 added peer-to-peer networking
However, by then, Windows for Workgroups had MS-standard P2P, and
DR-DOS 7's Netware-style P2P was too late.
* Then MS killed the DOS market by building MS-DOS 7 in as part of Windows 95.
So the
hacked-together GUI for DOS got re-invigorated with an injection
of OS/2 code, as Windows 3. That took over the world.
Which was hard to believe for me, too. It must have been a cost thing.
Folks could have had an Amiga, ST, Acorn, Mac, OS/2 (depending on how far
back), a low-end Unix box, etc.. However, I guess ultimately people wanted
whatever they could go to their local software shop and get software for.
It still is a mystery to me why DOS was so popular.
Critical mass of apps; cheap clone hardware.
OS/2 1 didn't support DOS apps well enough -- a later comment explains
why well. OS/2 2 did but was too late.
Win3 was technically /very/ clever and supported DOS apps *and drivers*.
But the
marketing men got to it and ruined its security and elegance, to
produce the lipstick-and-high-heels Windows XP. That version, insecure
and flakey with its terrible bodged-in browser, that, of course, was the
one that sold.
I know, man, there is no accounting for taste.
I never even liked the looks. W2K was the last good version for me. :-(
Linux got nowhere until it copied the XP model.
Now, as you also allude to, they have started to copy Windows. Linus seems
to have shifted his attitudes greatly. Check out what he says about GGI
then what he says about Systemd:
From:
http://marc.info/?l=linux-kernel&m=89089527200744&w=2
"I don't see the world in black-and-white. I don't actually like
Linux-only features unless they have a good reason for them, and I
really like Linux to be a "standard" system " -Linus 1998
" I'm distrustful of projects that do not have well-defined goals, and
well-defined interfaces. They tend to bloat and do "everything" over
time. This is what gives us horrors like GNU emacs and Mach: they
don't try to do one thing well, they try to do _everything_ based on
some loose principle [..]" -Linus 1998
Now fast forward to 2015:
"I have to say, I don't really get the hatred of systemd. I think it
improves a lot on the state of init, and no, I don't see myself getting
into that whole area." -Linus 2015
I'll leave the readers to decide if that's hyperbole or there is something
real there. It'll probably split right down the fracture point with
systemd haters vs advocates, I suppose. It still seems pretty emblematic
to me.
Good point, well made, and food for thought. Thanks!
[...]
plumbing, huge complex systems, but it looks and works kinda like
Windows and a Mac now so it looks like them and people use it.
My theory is that once folks woke up to the potential the Internet had for
improving their real lives, they didn't care how much they polluted the
computing world to get access to that power, and they weren't about to
abide having to learn anything new if they didn't have to.
True. OTOH a good enough rich WWW client doesn't need to be either
Windows or Unix.
Android looks
kinda like iOS and people use it in their billions.
Newton? Forgotten. No, people have Unix in their pocket, only it's a
bloated successor of Unix.
My personal opinion is that though those devices might give devs a taste
of *some* of the power of Unix, none of those devices show the *user* any
of the so-called "Unix philosophy" (KISS, everything is a file, etc..).
What's also sad is that those users don't give a hoot. However, I'm not
really surprised. I grew up in an era when computers were NOT cool for
kids. If you liked them or wanted to play games on a computer, that made
you a "nerd" or "geek" when those words were purely pejorative. Now
those
same people can't look up from their phones long enough to keep from
falling down stairs, walking in front of subway trains, or uhh.... living.
It's odd, isn't it?
I still carry a Symbian phone since I find both
Android and iOS so
invasive and annoying. It's a strange shake up on the world I grew up in.
Oh, nice! Which one?
The efforts to
fix and improve Unix -- Plan 9, Inferno -- forgotten.
Plan 9 is still being (very slowly) developed. Ken is still involved last
I heard.
It is, true, but it's a sideline now. And the steps made by Inferno
seem to have had even less impact. I'd like to see the 2 merged back
into 1.
We have less
and less choice, made from worse parts on worse foundations
-- but it's colourful and shiny and the world loves it. That makes me
despair.
Right there with you, Liam. Someone posted today about the good parts of
the Internet that we got with the deal. Massive communication and
documentation are truly positive side effects for the most part. However,
I suppose I have mixed feelings, nonetheless.
I seem to be exceptionally gloomy. Few seem to share it. I turned my
comment into a blog post too...
http://liam-on-linux.livejournal.com/48669.html
... That is getting some very harsh feedback both on FB and on LJ itself.
We have
poor-quality tools, built on poorly-designed OSes, running on
poorly-designed chips.
Yes, and even though there is *more* overall documentation on the
Internet, the docs you get with hardware and tools are nowhere near as
good as they were in the 80s AFAIK. Nobody ships manuals with source code
and schematics. The last I saw of that was BeOS and The Be Book.
I dunno... Web fora and Stack Overflow aren't documentation per se. :-/
I loved BeOS but never saw the Be Book. :-(
Occasionally
someone comes along and points this out and shows a better
way -- such as Curtis Yarvin's Urbit. Lisp Machines re-imagined for the
21st century, based on top of modern machines. But nobody gets it, and
its programmer has some unpleasant and unpalatable ideas, so it's
doomed.
Well, when it comes to that front, I've been in this business for about 20
years now, and I don't understand those efforts.
It might be because it's sort of orthogonal to, well, the PC industry
since the '386, maybe before.
Looked at from the POV of study of Lisp machines and so on, it makes
perfect sense -- but Yarvin has a political/economic agenda. That
obfuscates it. OTOH it also gives it a selling point.
And the kids
who grew up after C won the battle deride the former
glories, the near-forgotten brilliance that we have lost.
I see that and I can better appreciate where you are coming from when you
couch it this way. Only the good die young. "Some will rise by sin and
some by virtue fall." -Shakespear
Nice!
I apologise
unreservedly for my intemperance. I just wanted to try to
explain why I did it.
I completely understand. I am sorry for associating LISP with some crappy
experiences I had in school 20 years ago. You and other folks come from a
noble tradition. It was wrong of me to scorn that, even for an unrelated
reason.
Thanks for that.
I don't really come from that tradition, I think. I'm just a student
of it, trying to understand what, why, and how it all disappeared.
--
Liam Proven ? Profile:
http://lproven.livejournal.com/profile
Email: lproven at cix.co.uk ? GMail/G+/Twitter/Flickr/Facebook: lproven
MSN: lproven at
hotmail.com ? Skype/AIM/Yahoo/LinkedIn: liamproven
Cell/Mobiles: +44 7939-087884 (UK) ? +420 702 829 053 (?R)