12 ms·
Real Programmers Don't Use Pascal (1982)
- boznz 8y agoGlad I'm not a real programmer.
- dang 8y agoA 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
- RcouF1uZ4gsC 8y ago> 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)
- sb8244 8y agoI'll counter point that she/her is brought up at several points in this piece and, in general, the author seems to avoid using he/she at all, using they often.
- throwaway772398 8y agoMargaret 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 8y agoReal programmers don't reply to political bait.
- droptablemain 8y ago"Real programmers aren't afraid of GOTO"
- Zuider 8y agoReal programmers don't need to give explicit orders like GOTO. A scowl is enough.
- BrissyCoder 8y agoGOTO 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.
- jcranmer 8y agoI prefer the syntax of newer languages that instead have you label the loop and then break/continue the loop of that level. It tends to make it a little clearer that you're doing a multi-level exit.
- cr0sh 8y ago> 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...
- sys_64738 8y agoA node in a binary tree was dereferenced by a^.b if I recall.
- lakkal 8y agoBack in the mid 1980s, I learned Pascal immediately before learning C, and to this day I (internally) pronounce C's -> operator as "up dot".
- tom_ 8y agoThis document was written towards one end of my life. I wonder if I look as dated as it does.
- tomcam 8y agoProbably. Even your name is out of date. There aren’t that many people named Tom anymore.
- discreteevent 8y agoYour name seems to imply you monitor for Tom all day and then pounce on him in forums. Is this true?
- coreyp_1 8y agoAnd 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.
- peferron 8y ago2010+ 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.
- Zuider 8y agoReal 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.
- a1369209993 8y ago> 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
- analognoise 8y agoReal programmers only use punch cards for Jacquard looms.
- taneq 8y agoI love that story. In fact the whole Jargon File is a great source of elder geek lore. Another good source is http://www.folklore.org/ http://www.folklore.org/ for tales of the original Mac development team.
- leeman2016 8y ago> Real Programmers wrote in machine code. Not FORTRAN. Not RATFOR. Not, even, assembly language. Machine Code. Raw, unadorned, inscrutable hexadecimal numbers. Directly. Reading that brings back one of the best memories of my childhood.
- eesmith 8y agoThe first Real Programmers used decimal, and programmed on the plugboards and portable function tables of the ENIAC. See https://en.wikipedia.org/wiki/ENIAC https://en.wikipedia.org/wiki/ENIAC . The next Real Programmers programmed in octal, and sometime made mistakes balancing their checkbook by doing octal instead of decimal mathematics. See https://www.agnesscott.edu/lriddle/women/hopper.htm https://www.agnesscott.edu/lriddle/women/hopper.htm . You'll notice that Hopper and the ENIAC programmers are women. Programming at this time was seen as a woman's job. Then it became seen as a career for men. The early women programmers were overlooked; the ENIAC programmers weren't named in the early photos, and believed to be models - 'Refrigerator Ladies'. See http://mentalfloss.com/article/53160/meet-refrigerator-ladies-who-programmed-eniac http://mentalfloss.com/article/53160/meet-refrigerator-ladie... . As computers became more powerful, hex became the de facto. Much of the 'heroic literature of the olden days' comes from this era, so we view history through a decidedly - to quote the link text - "macho" lens. While it's certainly an enjoyable story, if we repeat it without the context, we continue to obscure the work of the first Real Programmers, and we propagate the false implication that "Real Programming" is intertwined with concepts of masculinity.
- ilovecaching 8y agoKids 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.
- Bud 8y agos/quiche/avocado\ toast
- 6ue7nNMEEbHcM 8y agocan't even terminate s command.
- willbw 8y agoTry it in vim, it works! It's an escape char for the space ;)
- DarkWiiPlayer 8y agoVim is for \(avocado toast | quiche\) eaters. It's bloated. Real programmers use ed.
- tempodox 8y agoExactly. ed(1) is the standard text editor: https://www.gnu.org/fun/jokes/ed-msg.html https://www.gnu.org/fun/jokes/ed-msg.html
- cryptonector 8y agoTECO users look down upon you with scorn and contempt.
- lonk 8y agoReal programmers don't use any programming language, they use other programmers.
- taneq 8y ago"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-1/ https://www.cringely.com/2013/02/04/accidental-empires-part-...
- sbmassey 8y agoSomeone needs to create a programming language called Real.
- anonymousiam 8y agoWow. 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...
- patrickg_zill 8y agoThere 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.
- deleted 8y ago[deleted]
- mysterydip 8y agoReal 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.
- yonder 8y agoIntegers are real numbers. Perhaps they are arguing with imaginary programmers.
- Crinus 8y agoI think this is a reference to an old joke about "God is Real, unless declared as Integer" since in Pascal Real and Integer are data types.
- alephnil 8y agoThe joke is actually about FORTRAN, where variables don't have to be declared, and is implicitly declared as Integer if it's first letter is in the range I-N and otherwise implicitly declared as the type Real (usually 32-bit floating point). Thus the variable GOD will implicitly be of type real. Pascal have the same type names, but does not allow implicit declarations.
- Crinus 8y agoOh, interesting. I suspected it might be from an older language, but i expected Algol, not FORTRAN :-P. Personally i associate it with Pascal because i first saw it on an IRC channel's topic back in the mid-90s :-).
- mcguire 8y agoIf it's a stupid programming joke, you can probably blame it on FORTRAN. COBOL programmers don't have senses of humor.
- sheikheddy 8y ago
- kkylin 8y agoThis seems appropriate: https://xkcd.com/378/ https://xkcd.com/378/
- billfruit 8y agoPerhaps 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 8y agoHave 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 8y agoWell then all complaints about the MATLAB language also apply to Octave.
- Graham24 8y agoWhat's a C programmer's favourite time of day? t_time.
- tempodox 8y agoReal programmers don't eat quiche! http://www.bernstein-plus-sons.com/RPDEQ.html http://www.bernstein-plus-sons.com/RPDEQ.html
- stesch 8y agoThe 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 8y ago> 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.
- svat 8y agoDonald 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.
- empath75 8y agoThis essay was entirely sarcastic, in case you missed that.
- svat 8y agoOf course. But it arose in the midst of, and makes explicit and implicit references to (and fun of), many debates and attitudes that were current at the time, not just concerning programming languages but also operating systems, structured programming, goto, etc. For instance, a few months before this essay Brian Kernighan had published “Why Pascal is Not My Favorite Programming Language” (https://www.lysator.liu.se/c/bwk-on-pascal.html https://www.lysator.liu.se/c/bwk-on-pascal.html) which ends with “Pascal is a toy language, suitable for teaching but not for real programming”.
- delish 8y agoVery interesting to hear Knuth augmented Pascal significantly to suit himself. Can I ask where you found that? I'd love to read more.
- 8y ago
- loa-in-backup 8y agoThen 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."
- peignoir 8y ago:) funny to reflect that I used to call JavaScript and html dev fake developers
- revskill 8y agoTo me, real programmers will eventually re-invent the better wheel at some points of time.
- aiCeivi9 8y agoI didn't know about this one https://en.wikipedia.org/wiki/Arithmetic_IF https://en.wikipedia.org/wiki/Arithmetic_IF
- jaclaz 8y agoOnly as a corollary, Real Programmers drink Coke: https://uranus.chrysocome.net/coke.htm https://uranus.chrysocome.net/coke.htm