Domain: pbm.com
Stories and comments across the archive that link to pbm.com.
Comments · 104
-
Re:Clement Lefebvre, Linux Mint leader
It's a warning about using Linux distros lead by sardonic Frenchmen.
Those quiche eaters cannot be trusted. Remember Agincourt!
-
Re:The first crappy language I encountered!
It was a teaching language; it resembles assembly, Fortran, and COBOL; pushed into production and was very harmful; http://c2.com/cgi/wiki?BasicCo...
But of course since we learn nothing in IT and software development we had to do it again; http://www.pbm.com/~lindahl/re... . It was a teaching language for the love of Mike.
Probably because larval PHBs had only one computing class in college and so it was what they dictated when placed in a decision making position over IT and programming departments. Footnote, I see the same thing happing with Python these days. Being pushed into unsuitable roles because that is all anyone knows.
-
Re:if they float they are guilty
-
Because Real Programmers don't need anything else
From the still clever, still humourous, and still applicable 1983 Letter to the Editor in Datamation Real Programmers Don't Use Pascal. Just replace "Pascal" with your language of choice. Enjoy.
-
Re:This is why I started using MATLAB
I'm sure you meant 'real programmers don't use Pascal'.
http://www.pbm.com/~lindahl/re...Matlab is a nice piece of software. I like especially how the GUI keeps running when the matlab engine crashes. Matlab is slow, so you can get better-than-tenfold speedups by doing the heavy lifting inside C libraries.
-
Re:Tied this
He has an unfair advantage in the area of unmaintainable code since he is writing about C/C++.
No, that's just not trying. To make your programs truly unmaintainable, you should write self-modifying assembly code, so it'll take a Real Programmer to understand it. And he will be much too busy destroying the planet to bother. Mwahahahaha...
-
Re: Return of the acoustic modem
It is entirely unfit that any discussion of drum-memory machines should take place these days without someone mentioning the Story of Mel. It seems this honor has fallen to me, so enjoy!
-
Re:Well
You declared it.
You should have said
Regulations == Safety.Not in Pascal.
-
Re:Cobol is self-documenting
Sure, COBOL has a GOTO. But if you're old enough to have programmed in COBOL (i.e. when you didn't get the projects involving Fortran and assembler), you should be old enough to know that Real Programmers aren't afraid to use GOTO.
Now excuse me a moment while I just go shoot this velociraptor... ;-) -
Contemplate
the story of Mel and then about Real Programmers of ages past.
-
Contemplate
the story of Mel and then about Real Programmers of ages past.
-
kudos
It is nice to see that in this world of plenty (at least as far as system memory and CPU speed goes) some people find joy in efficiency; and they go so far as to pull something like that off, just for the fun of it. Needless to say, the dude that did this is a real programmer.
-
Re:You're a contractor. Your "secrets" are yours
Oh, I like this suggestion. Experience and knowledge isn't a matter of secrets, it is a product of time, effort and study. If you're to train a replacement to handle your work with your competency then by all means attempt to spend the time on the education and experience it takes to match your own. It's practically a job for life. (Even if you train to today's competency, you won't catch up to the level you'll have after doing that training.)
Unless your secret is that you're overpaid or an idiot. If that's the case and you want to continue to get paid for it, then lay traps, misdirect and discourage. If you can get him to quit in disgust after damaging various things and costing the company loads of money only to swoop in for the rescue yourself, then you're set.
If you're unfamilar with either, you should read The story of Mel and The story of Terry Childs.
-
Re:wow
Both DE are fine, i personally choose Gnome because i like C over C++, it is clutter free and if i want to change something i can always edit the the text file configuration or hack the code. Real powerusers do not complain about a mere desktop environment...
C and C++? Bah! Real programmers write in FORTRAN!
-
Re:Mighty broad definition of "language" there
Real Programmers must spend their first year writing Pascal code [...]
-
Re:An even longer way
OK, I'll get off your lawn without even making a snarky comment... Are you Mel by any chance ?
-
Re:Logical Reason for the Dearth
Heh. I wrote lots of Fortran IV code back in the day, and I wouldn't be too surprised if a lot of it was still in use. As the famous article says, "If you can't do it in Fortran, do it in assembly language. If you can't do it in assembly language, it isn't worth doing."
I sort of missed the boat with F77. By the time that came around, I was already playing with C. However, I always found FTN a lot more concise. -
Re:And high school biology students
Pascal programming to demonstrate those concepts, along with good coding techniques...
Oh dear. You obviously have no idea how much ridicule to which you've exposed yourself by mentioning "Pascal" and "good coding techniques" in the same sentence. ;-) Here you go: Real Programmers Don't Use Pascal. It's old, but some of the ideas would be worth at least bringing up in modern CS courses. -
Re:Experience is a Gift...
"Programming requires long nights staring blankly at mind-muddling objective languages."
Actually, no, it doesn't
...How come? But the real programmers do it? citing
...The Real Programmer is capable of working 30, 40, even 50 hours at a stretch, under intense pressure. In fact, he prefers it that way. Bad response time doesn't bother the Real Programmer-- it gives him a chance to catch a little sleep between compiles. If there is not enough schedule pressure on the Real Programmer, he tends to make things more challenging by working on some small but interesting part of the problem for the first nine weeks, then finishing the rest in the last week, in two or three 50-hour marathons. This not only impresses the hell out of his manager, who was despairing of ever getting the project done on time, but creates a convenient excuse for not doing the documentation.
-
Re:Because the Article Breaks Down the Claim Fully
I don't see why you couldn't do the same with DNA without understanding all the physics and chemistry that makes it work.
Because software is designed by humans who only have enough attention and memory capacity for a bit of it at a time and use layered abstractions to manage complexity. Evolution faces no such cognitive constraint, and so is less prone to building systems with easily comprehensible structure. It's perfectly happy to exploit whatever awkward wart or weird side effect it left in by accident ten million years earlier if it's what happens to work.
Human beings are made of nothing but random hacks that happened to work crufted together for eons, The Story of Mel repeated endlessly for a billion years.
-
Re:Some truths are eternal
The exact quote is: "Besides, the determined Real Programmer can write Fortran programs in any language." It comes from a letter to the editor titled "Real Programmers Don't Use Pascal," attributed to an Ed Post.
-
Re:Because it's the worst Sci-Fi movie ever
If a computer engineer goes back in time to the 1950's, it's a stretch, but it's possible, that he will be able to program the 50's hardware he'll see. But if a computer engineer from the 1950's is confronted with a 2000's computer, he wouldn't have a clue what to do. And especially, he won't be able to stick a virus coded on a punchcard into the new computer!
Gee, why don't you show me how easy it is to program on something as bog-standard for the 50s as a drum memory computer? And you are telling me Mel would have a problem with an almost picture-perfect implementation of a Von Neumann architecture?
-
And the other challenge...
...namely that million-dollar reward for finding the cause of unwanted acceleration is probably fairly safe if nobody will reveal their source code.
It would be interesting if this flushed a few Real Programmers out of the woodwork, but most of them are in retirement, fly-fishing for salmon by now. -
Re:Real Programmers
Since the link to the article didn't get embedded in the post, here it is. http://www.pbm.com/~lindahl/real.programmers.html
-
Re:"Need" an IDE
The original Usenet posting from 1983 actually wasn't pseudo-poetry; it was prose. The original groups.google.com article has disappeared, but a web version of the article in its original prose is here.
-
Re:Should have used Java
I was being completely serious
http://www.pbm.com/~lindahl/real.programmers.html -
Re:The Story of Mel
If you're going to talk about old school, you gotta mention Mel.
What a good story. I remember the LGP-30 very well, all 16 instructions in the set...and the ever familiar H-E-M-A combination to compute numeric values from hex digits. I wrote a lot of LGP-30 machine code in those days. It too had a Jump address in each instruction, for optimizing the location of the next instruction on the drum. As I recall, the "Royal McBee" (i.e., Librascope) LGP-30 had only 4K 32-bit words of drum memory, and lots of very sophisticated programs were written with that little bit of memory. Brings back both fond and ugly memories of loading in a big roll of paper tape, only to find at the end that the program didn't load properly, and to have to try again and again. It was my first computer. That was in circa 1959.
-
Re:Someone doesn't get data compression
This thread requires a reference to The Story of Mel.
-
The Story of Mel
If you're going to talk about old school, you gotta mention Mel.
-
Re:Worms copying each other
The worm would need some way to compile itself, of course (unless written in Javascript or other scripting language where the interpreter is included with Windows).
A way of getting around this would be to code your virus in a self-modifying assembled object. Ah, there's hope for us old Real Programmers yet. Just when you kiddies thought we were all getting a bit smelly... ;-P -
Re:Going against the grain...
I know this will seem foreign to most of the current generation of graduates, but I would suggest a strong grounding in assembly coding for any processor. If the programmer really understands assembly, s/he should "intuitively" acquire a sound grasp of what makes a good program written in C, Fortran or whatever.
Many of the current commercial languages belong in toyland. They are designed for programmers who really don't have any idea about managing resources efficiently.
I think you're dead wrong. In many, many situations, minimizing program complexity, development time, and bugs is a far more pressing concern than minimizing CPU time, memory usage, etc.
Understanding assembly has its benefits, but I'd much rather work with someone who's learned how to keep a 100k line program maintainable and correct, than someone who's learned how to write something in 50 assembly instructions rather than 60.
I have the feeling that you and Mel would get along just fine.
-
Re:So you want to learn object oriented now?
I would read it as sarcasm. Try reading this manifesto and updating Fortran to C to account for 20 years of shift in the industry. Anyone not using C is just eating Quiche.
Although his joke went over your head, it is worth pointing out that OO is not a paradigm. I know wikipedia thinks that it is, and so do a hoard of practically illiterate researchers publishing crap papers in junk conferences. But that doesn't make it true. Object Orientation is just a method of organisation for procedural languages. Although it helps code maintenance and does a better job of unit management that modules alone, it doesn't change the underlying computational paradigm. I say procedural languages because class-based programming in functional languages is actually a different type of beast although it gets called OO to appeal to people from an imperative background.
-
Maybe I'm being too obscure....
-
Re:Upgrade
A quote from the famous "Real programmers don't use Pascal" article written in 1983.
Some of the most awesome Real Programmers of all work at the Jet Propulsion Laboratory in California. Many of them know the entire operating system of the Pioneer and Voyager spacecraft by heart. With a combination of large ground-based Fortran programs and small spacecraft-based assembly language programs, they are able to do incredible feats of navigation and improvisation-- hitting ten-kilometer wide windows at Saturn after six years in space, repairing or bypassing damaged sensor platforms, radios, and batteries. Allegedly, one Real Programmer managed to tuck a pattern matching program into a few hundred bytes of unused memory in a Voyager spacecraft that searched for, located, and photographed a new moon of Jupiter.
The current plan for the Galileo spacecraft is to use a gravity assist trajectory past Mars on the way to Jupiter. This trajectory passes within 80 +/- 3 kilometers of the surface of Mars. Nobody is going to trust a Pascal program (or Pascal programmer) for navigation to these tolerances.
If you have never read it, it's still a great read (at least for us old-timers).
http://www.pbm.com/~lindahl/real.programmers.html
Hey - don't forget the folks at the NASA research facility at Langley
:( -
I bet these guys don't eat...
...quiche.
-
Re:Upgrade
A quote from the famous "Real programmers don't use Pascal" article written in 1983. Some of the most awesome Real Programmers of all work at the Jet Propulsion Laboratory in California. Many of them know the entire operating system of the Pioneer and Voyager spacecraft by heart. With a combination of large ground-based Fortran programs and small spacecraft-based assembly language programs, they are able to do incredible feats of navigation and improvisation-- hitting ten-kilometer wide windows at Saturn after six years in space, repairing or bypassing damaged sensor platforms, radios, and batteries. Allegedly, one Real Programmer managed to tuck a pattern matching program into a few hundred bytes of unused memory in a Voyager spacecraft that searched for, located, and photographed a new moon of Jupiter. The current plan for the Galileo spacecraft is to use a gravity assist trajectory past Mars on the way to Jupiter. This trajectory passes within 80 +/- 3 kilometers of the surface of Mars. Nobody is going to trust a Pascal program (or Pascal programmer) for navigation to these tolerances. If you have never read it, it's still a great read (at least for us old-timers). http://www.pbm.com/~lindahl/real.programmers.html
-
Maybe...
Maybe Mel did it... http://www.pbm.com/~lindahl/mel.html
-
Re:What's the crisis?
Just in case there are a few slashdotters not familiar with The Story of Mel, you owe it to yourself to take a few minutes to read it.
-
The tale of Paula Bean, Java Programmer
http://thedailywtf.com/Articles/The_Brillant_Paula_Bean.aspx
And for those of you under the age of ten, the real truth about programming:
http://www.pbm.com/~lindahl/real.programmers.html
Tell me a woman could do that...go on, I dare you. -
Re:Hey! I resemble that remark!
Essentially they just modify the executable itself rather than having the code and recompiling it. The types of people who do this also tend to be good at things like debugging programs by reading a raw core dump. From the quintessential article on the matter: "For this reason, Real Programmers are reluctant to actually edit a program that is close to working. They find it much easier to just patch the binary object code directly, using a wonderful program called SUPERZAP (or its equivalent on non-IBM machines). This works so well that many working programs on IBM systems bear no relation to the original Fortran code. In many cases, the original source code is no longer available. When it comes time to fix a program like this, no manager would even think of sending anything less than a Real Programmer to do the job-- no Quiche Eating structured programmer would even know where to start. This is called "job security"." http://www.pbm.com/~lindahl/real.programmers.html
-
Re:Always be there
Which brings us to the Story of Mel.
-
I agree one thousand percent (long)
The CS program at my University is a joke and apparently it is as I have always feared: my University is on par with CS programs at other Universities. Partially you can blame the Universities, but mostly you have to blame the students. Let me tell you why:
I've been programming since I was 8 when my father (who has worked for IBM since before I was born) taught me C (I am now 25). My Junior year in high school (10 years ago), I stopped using Windows and started using Linux, and have never turned back because I immediately fell in love with Bash.
When I went to school, I started as a Music Major and actually stayed one for quite a while, but I was never very good at it since, instead of practicing my sax for three hours a day like I was supposed to be doing, I was coding about six hours a day. In my first three years of college, I taught myself Java, Lisp, Ruby, and OCaml, and not just the languages but the libraries as well. I read everything I could find about algorithms, data structures, software engineering (URL, Design Patterns, etc.), compilers, theory (FSAs/PDAs/TMs), and even some true graphics programming (ray tracing). All of this I learned from the internet, completely isolated from any direct contact with other computer science professors or students. I did it because I wanted to learn it because it was interesting, and not because anyone told me I had to.
When I realized I was going to starve as a musician I decided to get a minor in CS, since it was something I had always just done for fun, and it would look good on my resume. My first month into the minor, I was already tutoring seniors in their classes, and simultaneously laughing at how easy their assignments were and being horrified that they couldn't do them. I had done more complex projects for fun and threw away the code because I didn't think anyone would want such trivial junk. I quickly found out that I had essentially put myself through a CS degree on my own and completely by accident!
The next semester, I changed majors, was in senior level classes and was actively involved in a research project with one of the professors. Whenever I got an assignment due in two weeks, I would complete it in class, and then spend the next two weeks implementing it in other languages and extending it to something that isn't incredibly trivial. For example, we had two weeks to implement a Turing machine, and because the majority of the class couldn't do it, it got extended to almost a month. I wear shirts from ThinkGeek and my peers don't get the jokes. When I pull up a terminal their eyes glaze over, as if I'm performing some mystical black magic.
The point is that any and all the information for the CS degree is out there and publicly available, but the students are simply not willing to go out and find it. I think the only positive thing I have gleaned out of the CS degree is what they are stripping from the degree programs: being forced to take the advanced math classes. My math classes taught me how to think formally about something that has always been intuitive and have been the most enlightening classes I have ever taken in college!
Whenever I get frustrated with my University or my peers, I just reread theses and remind myself that there are others out there:
http://www.pbm.com/~lindahl/mel.html[The Story of Mel]
http://www.pbm.com/~lindahl/real.programmers.html[Real Programmers Don't Use Pascal]Also, the point of the above article is by no means a new idea. Edsger Dijkstra said it over a decade ago in one of my favorite EWDs:
http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html[On the Cruelty of Really Teaching Computer Science] -
I agree one thousand percent (long)
The CS program at my University is a joke and apparently it is as I have always feared: my University is on par with CS programs at other Universities. Partially you can blame the Universities, but mostly you have to blame the students. Let me tell you why:
I've been programming since I was 8 when my father (who has worked for IBM since before I was born) taught me C (I am now 25). My Junior year in high school (10 years ago), I stopped using Windows and started using Linux, and have never turned back because I immediately fell in love with Bash.
When I went to school, I started as a Music Major and actually stayed one for quite a while, but I was never very good at it since, instead of practicing my sax for three hours a day like I was supposed to be doing, I was coding about six hours a day. In my first three years of college, I taught myself Java, Lisp, Ruby, and OCaml, and not just the languages but the libraries as well. I read everything I could find about algorithms, data structures, software engineering (URL, Design Patterns, etc.), compilers, theory (FSAs/PDAs/TMs), and even some true graphics programming (ray tracing). All of this I learned from the internet, completely isolated from any direct contact with other computer science professors or students. I did it because I wanted to learn it because it was interesting, and not because anyone told me I had to.
When I realized I was going to starve as a musician I decided to get a minor in CS, since it was something I had always just done for fun, and it would look good on my resume. My first month into the minor, I was already tutoring seniors in their classes, and simultaneously laughing at how easy their assignments were and being horrified that they couldn't do them. I had done more complex projects for fun and threw away the code because I didn't think anyone would want such trivial junk. I quickly found out that I had essentially put myself through a CS degree on my own and completely by accident!
The next semester, I changed majors, was in senior level classes and was actively involved in a research project with one of the professors. Whenever I got an assignment due in two weeks, I would complete it in class, and then spend the next two weeks implementing it in other languages and extending it to something that isn't incredibly trivial. For example, we had two weeks to implement a Turing machine, and because the majority of the class couldn't do it, it got extended to almost a month. I wear shirts from ThinkGeek and my peers don't get the jokes. When I pull up a terminal their eyes glaze over, as if I'm performing some mystical black magic.
The point is that any and all the information for the CS degree is out there and publicly available, but the students are simply not willing to go out and find it. I think the only positive thing I have gleaned out of the CS degree is what they are stripping from the degree programs: being forced to take the advanced math classes. My math classes taught me how to think formally about something that has always been intuitive and have been the most enlightening classes I have ever taken in college!
Whenever I get frustrated with my University or my peers, I just reread theses and remind myself that there are others out there:
http://www.pbm.com/~lindahl/mel.html[The Story of Mel]
http://www.pbm.com/~lindahl/real.programmers.html[Real Programmers Don't Use Pascal]Also, the point of the above article is by no means a new idea. Edsger Dijkstra said it over a decade ago in one of my favorite EWDs:
http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html[On the Cruelty of Really Teaching Computer Science] -
Re:The Python Paradox by Paul Graham
Wrong reasoning, right conclusion?
I (personally, etc.) do not like Python. I'm from the school of language design that thinks it's not good that white space is significant. It reminds of FORTRAN and punch cards. However, I have my admiration for obscure languages as well (Caml is great according to me, but not really everyone's cup of tea). And there are good programmers that work almost exclusively in one language, some of them might even work in Java...
And don't get me started on Perl: while ( && ) anyone? That aside, Perl's superficial ugliness is no problem to you, yet exactly opposite to the reason your friend chooses Python. Still you laud his choice. Weird. Conclusion 2:
And strangely enough, your conclusion looks valid to me: such things probably set apart the real programmers from the merely "not more than 1 bug per 100 lines" types.
I think it is now time we all read "Real programmer" again: http://www.pbm.com/~lindahl/real.programmers.html. -
Re:Ah, kids these days...
Sounds cool, the guy isn't called Mel by any chance is he?
-
Re:Amazing!No disrespect to Lajos, but have we really fallen so far in programming standards that it's considered "amazing" to disassemble a 1024 byte program?
I dunno. I'm certain I could look at any given one kilobyte program and tell you "that opcode is adding the results of those two", but it takes a certain kind of cleverness to figure out why it's using opcodes for constants and how they manage to pack a shift-right-branch-if-odd into two bytes plus an index register.
See also "The Story Of Mel". Now imagine being tasked with turning that into readable, understandable code. That's the real accomplishment.
-
For those who don't know the reference
I'm still pretty much in awe of Mel
http://www.pbm.com/~lindahl/mel.html -
Re:IBM's been doing this for-ever, dude.
But I did learn about optimizing instruction fetches by scattering the compiled code around the circumference of a magnetic drum so that the drum would have rotated around beneath the read head in time for the next instruction.
Mel?? Is that you? -
Holy "Story of Mel" Batman!From the Fine Article:
I couldn't afford what's called a rental system, where you can type it into a computer, and you type in your program, and it will give you back the 1's and 0's. So I figured out the 1's and 0's in my own head, and wrote them down on the piece of paper. Everything for the Apple II was done by hand.
Woz never ceases to blow my mind. (Story of Mel link for the uninitiated.)
-
Re:Plus one addressing
Mel? Is that you?