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.
“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.”
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."
"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.
As a counterpoint I would say that the old people that in that high level language called C, (real men use Punch cards ;) ), had no clue about user interfaces, developer productivity, used waterfall models for planning, and in general, creating something that was somewhat horizontal and useful ended up being a titanic task, and also with crazy price tags. Wait let me write that client/server software again using CORBA :(.
Most old POTS phone switches still had the older pulse interface, so you dialed by hitting the hangup button really fast. The new fancy frequency encoding from 300-3300Hz was faster but not proper hacking anymore, you needed extra HW for this. Doable, but generating pulses was much easier.
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.
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 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
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/tangle/ — if anyone reading this is interested let me know (create an issue on the GitHub repo or something).
Of 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) which ends with “Pascal is a toy language, suitable for teaching but not for real programming”.
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.
The 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.
In Pascal Real’s aren’t necessarily a superset of Integer’s (both can be four bytes, with, for example, 2^30+1 representable as an Integer, but not as a Real)
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.
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.
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.
I 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/ for tales of the original Mac development team.
> 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.
The first Real Programmers used decimal, and programmed on the plugboards and portable function tables of the ENIAC. See 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 .
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-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.
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.
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.
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
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...
I 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.
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), 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.
I'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.
"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
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.