
Real Programmers Don't Use Pascal (1982) - lelf
https://web.mit.edu/humor/Computers/real.programmers
======
ilovecaching
Kids these days do a lot of disgusting things. They don't know how to write
their own linker scripts, read assembly, or code in a real man's language (C).
They think dynamic typing is "fun" and "productive". They don't even know how
to manage threads or memory and use entire megabytes of RAM to send messages
to each other using an inferior version of irc. Primarily they constantly
waste precious cycles, eat quiche, and spend the rest of their time trying to
solve the trivial problem of generating and consuming html in as many ways as
possible. They don't even know who Ken is.

~~~
siberianbear
This reminds me of the famous quote by Socrates:

“The children now love luxury; they have bad manners, contempt for authority;
they show disrespect for elders and love chatter in place of exercise.
Children are now tyrants, not the servants of their households. They no longer
rise when elders enter the room. They contradict their parents, chatter before
company, gobble up dainties at the table, cross their legs, and tyrannize
their teachers.”

~~~
palad1n
Sorry.

[https://quoteinvestigator.com/2010/05/01/misbehave/](https://quoteinvestigator.com/2010/05/01/misbehave/)

~~~
jhbadger
But a similar quote about the young is completely real -- just not by Socrates
(who after all wrote nothing), but rather by Aristotle -- Book II, Part 12 of
his "Rhetoric" has him complaining about young people -- it's a long passage,
but some gems "They have exalted notions, because they have not yet been
humbled by life or learnt its necessary limitations; moreover, their hopeful
disposition makes them think themselves equal to great things-and that means
having exalted notions. They would always rather do noble deeds than useful
ones: their lives are regulated more by moral feeling than by reasoning."

~~~
zoom6628
"Millenials" described to a tee. Socrates quote was also pretty much right on.
"Millenial" might be the most ingenious modern scam amongst software vendors,
marketing, and every other person hangle their shingle and selling the
millenials-are-unique nonsense.

Ive ranted before about this but as the learned ancients have already spoken
about it then it should be obvious to all by now - each generation is more
lenient in its upbringing of the next generation, sees problems arise from
that, and then tries to explain it away by any means other than accepting
blame for the trouble self-inflicted.

Im old enough to have seen this repeated 3x in my own lifetime and a small
amount of reading can show to anybody else that this has been the case for
over 2000 years. Neither Tim, Jeff, Satya, Richard or (name your fav 'modern'
CEO here) can solve this. Its a human psychology problem which we have been
happily creating, recognising, refusing blame for, and buying snake-oil
solutions for, for as long as the world has had the written word.

Wake up people.

For the record: Im huge fan of freepascal but write most of my own code in
python out of laziness(batteries included is powerful motivator for me).
Sometimes dabble in C#, now learning ecmascript(again), and next trying again
to learn nim and C. Father, product manager.

~~~
Zuider
In regard to ecmascript, have you considered Haxe?

~~~
zoom6628
Thanks for the reminder and yes i have Haxe on my 'to review' list.

------
svat
Donald Knuth wrote TeX in Pascal. I think he chose it because it was the
language most widely available at the time in universities where people wanted
to use TeX; many were already using Pascal for teaching. (The first version
had been written in SAIL, because it was the language available at the
Stanford AI Lab where he had computer access.)

Because Pascal did not have good support for strings and variable-length
arrays, TeX manages all its own memory (allocating and freeing from a single
giant Pascal array called “mem”); because Pascal did not have “break” or
“return” he implemented those features himself with a preprocessor and a
certain disciplined use of goto; because Pascal required certain things (type
declarations, labels) to be all in the same place and other things to be
scattered apart, he wrote a preprocessor to rearrange sections of a program in
any order; because Pascal compilers varied in their support for features like
pointers and nested procedures, TeX uses only a very restricted subset of
Pascal.

Real programmers do whatever it takes.

~~~
delish
Very interesting to hear Knuth augmented Pascal significantly to suit himself.
Can I ask where you found that? I'd love to read more.

~~~
svat
Sure! The entire source code of TeX has been published as a book called _TeX:
The Program_ , which is Volume B of Knuth's _Computers and Typesetting_ series
(the TeX and METAFONT manuals and source code, and the definitions of the
Computer Modern fonts):
[https://cs.stanford.edu/~knuth/abcde.html#abcde](https://cs.stanford.edu/~knuth/abcde.html#abcde)
The major part of the book (just the program itself, without the book's 1-page
preface, 2-page bibliography, 6-page instructions on how to read the program,
mini-indices on each two-page spread, 1-page diagram of approximate memory
requirements, and hand-tweaked typesetting) are also available in any TeX
distribution or online e.g. [http://texdoc.net/texmf-
dist/doc/generic/knuth/tex/tex.pdf](http://texdoc.net/texmf-
dist/doc/generic/knuth/tex/tex.pdf)

It is written using a system called WEB, and Knuth calls the idea literate
programming — see article at
[http://www.literateprogramming.com/knuthweb.pdf](http://www.literateprogramming.com/knuthweb.pdf)
and the WEB manual at [http://texdoc.net/texmf-
dist/doc/generic/knuth/web/webman.pd...](http://texdoc.net/texmf-
dist/doc/generic/knuth/web/webman.pdf)

All this is somewhat hard to read for most modern programmers IMO. In my free
time I hope to make these more readable, and I've started with simply reading
and annotating the simplest of the programs written in WEB:
[https://shreevatsa.github.io/tex/program/pooltype/](https://shreevatsa.github.io/tex/program/pooltype/)
[https://shreevatsa.github.io/tex/program/tangle/](https://shreevatsa.github.io/tex/program/tangle/)
— if anyone reading this is interested let me know (create an issue on the
GitHub repo or something).

------
mysterydip
Real programmers don't actually use any language, as their time is best spent
in forums and chat rooms arguing with non-real (integer?) programmers why they
aren't real programmers.

~~~
sheikheddy
Actually, integers are a subset of the real numbers. I think you mean complex
numbers with a non-zero imaginary component.

~~~
mysterydip
I'm so used to talking data types I forgot in math you're absolutely correct!

Cooncidentally in Pascal, real and integer are the names of two numeric data
types.

~~~
sheikheddy
That's good to know! I was born after Pascal's peak, so I've never used it, so
I wasn't aware that I was wrong in a sense :D

------
dang
A few previous discussions (these are just for curiosity; reposts are ok after
a year or so).

2015:
[https://news.ycombinator.com/item?id=10214480](https://news.ycombinator.com/item?id=10214480)

2015:
[https://news.ycombinator.com/item?id=9422622](https://news.ycombinator.com/item?id=9422622)

2012:
[https://news.ycombinator.com/item?id=3585286](https://news.ycombinator.com/item?id=3585286)

From 2018, this has a good comment:
[https://news.ycombinator.com/item?id=17105233](https://news.ycombinator.com/item?id=17105233)

------
Zuider
Real programmers can glance at a plate of spaghetti and tell where each strand
of pasta begins and ends. Even when it is covered in bolognese sauce. And
cheese. Can you do that with quiche? Thought not.

------
sbmassey
Someone needs to create a programming language called Real.

------
a1369209993
> Real Programmers use FORTRAN.

Ahem. No. Real Programmers use machine code.

[http://www.catb.org/jargon/html/story-of-
mel.html](http://www.catb.org/jargon/html/story-of-mel.html)

~~~
tomcam
The story features a programmer who coded in hexadecimal. It sounds a little
apocryphal, but I worked with such a man myself – Tim Paterson, the creator of
QDOS, which became MS-DOS. At the time he was on the Visual Basic compiler
team at Microsoft, and I would go into his office while he was looking at hex
dumps, which he found faster than reading disassembly.

~~~
Gibbon1
I haven't thought of this in years. Sr Engineer wanted me to build a 'chamber
simulator'. IE simulates a pressure chamber with a bunch of valves and
interlocks.

Wanted me to implement it with analog circuits and jungle logic.

I went fuck that and hand built a board with an 8051. Wrote the program in
assembly on paper. Hand translated it to hex. And then used a hex editor to
generate the hex file. Which I used to burn the epprom. Took two days to debug
it.

------
tom_
This document was written towards one end of my life. I wonder if I look as
dated as it does.

~~~
tomcam
Probably. Even your name is out of date. There aren’t that many people named
Tom anymore.

~~~
coreyp_1
And yet, it used to be that everyone had a friend named Tom. In fact, Tom was
your first friend. But that was a different time and Space.

------
anonymousiam
Wow. I haven't seen this since 1982. It circulated on the RCP/M BBSs for a
while and then I never saw it again until now. What memories...

------
loa-in-backup
Then there are monk programmers:

[http://www.mit.edu/~xela/tao.html](http://www.mit.edu/~xela/tao.html)

"The Silent Void

Thus spake the Master Programmer:

When you have learned to snatch the error code from the trap frame, it will be
time for you to leave."

~~~
neferbast
That's definitely one of the funniest things I've the chance to read recently.

------
stesch
The popularity of this essay in the 1980s poisoned so many minds and is one of
the reasons we have to deal with so much bullshit today.

~~~
jcelerier
> The popularity of this essay in the 1980s poisoned so many minds and is one
> of the reasons we have to deal with so much bullshit today.

If the people who read this essay don't get that it's a joke after at most the
first sentence, you have bigger problems than that.

------
boznz
Glad I'm not a real programmer.

------
peferron
2010+ version is that real programmers don't use JavaScript. After all, it's a
scripting language—don't try to deny it, there's "script" right there in the
name—and scripting languages are not real programming languages; it is known.

------
Graham24
What's a C programmer's favourite time of day?

t_time.

------
aiCeivi9
I didn't know about this one
[https://en.wikipedia.org/wiki/Arithmetic_IF](https://en.wikipedia.org/wiki/Arithmetic_IF)

------
billfruit
Perhaps how much of MATLAB is influenced by Pascal,etc, but it is particularly
clumsy and inelegant, as if it stuck in the 80's, not to mention proprietary,
I wait for the day when we can move out of it.

~~~
creatornator
Have you checked out Octave? They target (bug-for-bug?) compatibility with
MATLAB, so most pure MATLAB code will port over with no edits necessary. It's
also a GNU project

~~~
billfruit
Well then all complaints about the MATLAB language also apply to Octave.

------
kkylin
This seems appropriate:

[https://xkcd.com/378/](https://xkcd.com/378/)

------
tempodox
Real programmers don't eat quiche!

[http://www.bernstein-plus-sons.com/RPDEQ.html](http://www.bernstein-plus-
sons.com/RPDEQ.html)

------
sys_64738
A node in a binary tree was dereferenced by a^.b if I recall.

~~~
lakkal
Back in the mid 1980s, I learned Pascal immediately before learning C, and to
this day I (internally) pronounce C's -> operator as "up dot".

------
jaclaz
Only as a corollary,

Real Programmers drink Coke:

[https://uranus.chrysocome.net/coke.htm](https://uranus.chrysocome.net/coke.htm)

------
droptablemain
"Real programmers aren't afraid of GOTO"

~~~
BrissyCoder
GOTO is still a legit way to cleanly break out of nested loops. I cringe
whenever I hear normie programmers lament on how blanketly bad it is.

~~~
cr0sh
> break out of nested loops

-deeply- nested loops at that.

I once was on a thread in a forum discussing state machines, and somewhere in
the convo the use of GOTO popped up. I wasn't for it, but somebody made
mention of how it could be used to implement a state machine very compactly.

Then he showed his code - it was done in PBASIC. I saved a copy of that code,
because it was very, very elegant. While I knew there were certain very niche
cases for GOTO, I never thought that a state machine would qualify. For me, it
does now.

I don't have the code handy, but it reminded me of Duff's device, if you know
what that is - just done in BASIC - and not as a SWITCH-CASE of course...

------
RcouF1uZ4gsC
> It was largely due to the efforts of thousands of Real Programmers working
> for NASA that our boys got to the moon and back before the Russkies.

Keep in mind that despite Real Programmers being referred to as "he"
throughout the article, the Real Programmer who headed that effort was a "she"
\-
[https://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist)](https://en.wikipedia.org/wiki/Margaret_Hamilton_\(scientist\))

~~~
throwaway772398
Margaret Hamilton did not head the effort. She was a manager on the project,
but she didn’t join until relatively late. At the time of Apollo 11 she was in
charge of the Command Module’s software
([https://www.doneyles.com/LM/ORG/index.html](https://www.doneyles.com/LM/ORG/index.html)),
but most of the work had been done by the time she assumed that position. She
later became head of the whole software department, and had a lot of
responsibility for modifications for later missions and Skylab, but she and
others have greatly exaggerated her role on the project.

~~~
Asooka
Real programmers don't reply to political bait.

------
revskill
To me, real programmers will eventually re-invent the better wheel at some
points of time.

------
lonk
Real programmers don't use any programming language, they use other
programmers.

~~~
taneq
"By hiring inexperienced workers and indoctrinating them into a religion that
taught the concept that metaprogrammers were better than mere programmers and
that Bill Gates, as the metametaprogrammer, was perfect, Microsoft created a
system of hero worship that extended Gates’s will into every aspect of the
lives of employees he had not even met." \- Cringley, _Accidental Empires_

And oh wow, it appears that some large portion (if not all) of the book is
available on Cringley's web site:
[https://www.cringely.com/2013/02/04/accidental-empires-
part-...](https://www.cringely.com/2013/02/04/accidental-empires-part-1/)

------
peignoir
:) funny to reflect that I used to call JavaScript and html dev fake
developers

------
patrickg_zill
There was book in the early 80s called "Real Men Don't Eat Quiche", BTW.

As well, TRS-80's from Radio Shack were often called "TRASH-80s" to disparage
them.

"As all Real Programmers know, the only useful data structure is the Array."

As someone trying to learn APL this is hilarious and apt!

A proud moment in tech support for me (akin to the telephone and front panel
switches story) was walking a non-technical user through using vi to edit a
file, over the phone.

