233 lines
9.7 KiB
Plaintext
233 lines
9.7 KiB
Plaintext
![]() |
What is a Real Software Engineer?
|
|||
|
(Downloaded from The Cave, Wgtn.)
|
|||
|
|
|||
|
Real Software Engineers Don't Read Dumps
|
|||
|
----------------------------------------
|
|||
|
|
|||
|
Real Software Engineers don't read dumps. They never generate them, and on
|
|||
|
the rare occasions that they come across them, they are vaguely amused
|
|||
|
|
|||
|
Real Software Engineers don't comment their code. The identifiers are so
|
|||
|
mnemonic tat they don't have to
|
|||
|
|
|||
|
Real Software Engineers don't write applications programs; they implement
|
|||
|
algorithms. If someone has an application that the algorithm might help
|
|||
|
with, that's nice. Don't ask them to write the user interface, though
|
|||
|
|
|||
|
Real Software Engineers don't eat quiche
|
|||
|
|
|||
|
If it doesn't have recursive function calls, Real Software Engineers don't
|
|||
|
program in it
|
|||
|
|
|||
|
Real Software Engineers don't program in assembler
|
|||
|
They become queasy at the very thought
|
|||
|
|
|||
|
Real Software Engineers don't debug programs; they verify correctness. This
|
|||
|
process doesn't necessarily involve executing anything on a computer, except
|
|||
|
perhaps a Correctness Verification Aid program
|
|||
|
|
|||
|
Real Software Engineers like C's structured constructs, but they are
|
|||
|
suspicious of it because they have heard that it lets you get "close to the
|
|||
|
machine"
|
|||
|
|
|||
|
Real Software Engineers don't play tennis. In general, they don't like any
|
|||
|
sport that involves getting hot and sweaty and gross when out of range of a
|
|||
|
shower. (Thus mountain climbing is Right Out.) They will occasionally wear
|
|||
|
their tennis togs to work, but only on very sunny days
|
|||
|
|
|||
|
Real Software Engineers admire PASCAL for its discipline and Spartan purity,
|
|||
|
but they find it difficult to actually program in. They don't tell this to
|
|||
|
their friends, because they are afraid it means that they are somehow
|
|||
|
unworthy
|
|||
|
|
|||
|
Real Software Engineers don't write in languages that have not actually been
|
|||
|
implemented for any machine and for which only the formal spec (in BNF) is
|
|||
|
available. This keeps them from having to take any machine dependencies into
|
|||
|
account. Machine dependencies make Real Software Engineers very uneasy
|
|||
|
|
|||
|
Real Software Engineers don't write in ADA, because the standards bodies have
|
|||
|
not quite decided on a formal spec yet
|
|||
|
|
|||
|
Real Software Engineers like writing their own compilers, preferaby in
|
|||
|
PROLOG. (They also like writing them in unimplemented languages, but it
|
|||
|
turns out to be difficult to actually RUN these)
|
|||
|
|
|||
|
Real Software Engineers regret the existence of COBOL, FORTRAN, and BASIC.
|
|||
|
PL/1 is getting there, but it is not nearly disciplined enough - far too much
|
|||
|
built in functions
|
|||
|
|
|||
|
Real Software Engineers aren't too happy about the existence of users,
|
|||
|
either. Users always seem to have the wrong idea about what the
|
|||
|
implementation and verification of algorithms is all about
|
|||
|
|
|||
|
Real Software Engineers don't like the idea of some inexplicable and greasy
|
|||
|
hardware several aisles away that may stop working at any moment. They have
|
|||
|
a great distrust of hardware people and wish that systems could be virtual at
|
|||
|
ALL levels. They would like personal computers except that they need 8
|
|||
|
megabytes to run their Correctness Verification Aid packages
|
|||
|
|
|||
|
|
|||
|
Real Programmers Don't Write Specs
|
|||
|
----------------------------------
|
|||
|
|
|||
|
Real Programmers don't write specs - users should consider themselves lucky
|
|||
|
to get any programs at all and take what they get
|
|||
|
|
|||
|
Real Programmers don't comment their code. If it was hard to write, it
|
|||
|
should be hard to understand
|
|||
|
|
|||
|
Real Programmers don't eat quiche. They eat Twinkies and Szechwan food
|
|||
|
|
|||
|
Real Programmers don't write in COBOL. COBOL is for wimpy applications
|
|||
|
programmers
|
|||
|
|
|||
|
Real Programmers' programs never work right the first time. But if you throw
|
|||
|
them on the machine, they can be patched into working in "only a few" 30-hour
|
|||
|
debugging sessions
|
|||
|
|
|||
|
Real Programmers don't write in FORTRAN. FORTRAN is for pipe stress freaks
|
|||
|
and crystallography weenies
|
|||
|
|
|||
|
Real Programmers never work 9 to 5. If any Real Programmers are around at
|
|||
|
9AM, it's because they were up all night
|
|||
|
|
|||
|
Real Programmers don't write in BASIC. Actually, no programmers write in
|
|||
|
BASIC, after the age of 12
|
|||
|
|
|||
|
Real Programmers don't write in PL/1. PL/1 is for programmers who can't
|
|||
|
decide whether to write in COBOL or FORTRAN
|
|||
|
|
|||
|
Real Programmers don't play tennis, or any other sport that requires you to
|
|||
|
change clothes. Mountain climbing is OK, and Real Programmers wear their
|
|||
|
climbing boots to work, in case a mountain should suddenly spring up in the
|
|||
|
middle of the machine room
|
|||
|
|
|||
|
Real Programmers don't document. Documentation is for simps who can't read
|
|||
|
the listings or the object deck
|
|||
|
|
|||
|
Real Programmers don't write in PASCAL, or BLISS, or ADA, or any of those
|
|||
|
pinko computer science languages.
|
|||
|
Strong typing is for people with weak memories
|
|||
|
|
|||
|
Real Programmers can recite powers of 16 up to infinity, write language
|
|||
|
translators in SNOBOL to produce COBOL source code, use FORTRAN only for
|
|||
|
tricky little programs, never drink lager, never drink decaffelnated coffee,
|
|||
|
never smoke low-tar cigarettes
|
|||
|
|
|||
|
Real Programmers explain their work (if ever) to their managers in baby-talk
|
|||
|
so they will understand it
|
|||
|
|
|||
|
Real Programmers don't talk to support center 2nd level people. (Their
|
|||
|
working hours are mutually exclusive)
|
|||
|
|
|||
|
Real Programmers start assembly of the whole system at 9AM at high priority
|
|||
|
so it will be finished by their evening stand-alone time
|
|||
|
|
|||
|
Real Programmers don't write in APL
|
|||
|
Any fool can be obscure in APL
|
|||
|
|
|||
|
Real Programmers think structured programming is a Communist plot
|
|||
|
|
|||
|
Real Programmers don't use schedules
|
|||
|
Schedules are for managers toadies
|
|||
|
Real Programmers like to keep their man suspense
|
|||
|
|
|||
|
Real Programmers do it middle out
|
|||
|
|
|||
|
Real Programmers enjoy getting CP/M to work on 370 machines and MVS on their
|
|||
|
ZX81s
|
|||
|
|
|||
|
Real Programmers write their own assemblers, preferably in LISP
|
|||
|
|
|||
|
Real Programmers know that good human factors design requires only the
|
|||
|
application of common sense. Besides, no one cares about users. Programs
|
|||
|
are written for aesthetic beauty
|
|||
|
|
|||
|
Real Programmers do not wonder where the bits went following a shift
|
|||
|
operation. They do not care
|
|||
|
|
|||
|
|
|||
|
Real Computer Scientists Don't Write Specs
|
|||
|
------------------------------------------
|
|||
|
|
|||
|
Real Computer Scientists don't write code. They occasionally tinker with
|
|||
|
"programming systems", but those are so high level that they hardly count,
|
|||
|
and rarely count accurately. (Precision is for applications)
|
|||
|
|
|||
|
Real Computer Scientists don't comment their code. The identifiers are so
|
|||
|
long they can't afford the disk space
|
|||
|
|
|||
|
Real Computer Scientists don't write the user interfaces; they merely argue
|
|||
|
over what they should look like
|
|||
|
|
|||
|
Real Computer Scientists don't eat quiche. They shun Szechwan food since the
|
|||
|
hackers discovered it. Many Real Computer Scientists consider eating an
|
|||
|
implemenation detail
|
|||
|
|
|||
|
If it doesn't have a programming environment complete with interface
|
|||
|
debugger, structure editor, and extensive cross-module checking, Real
|
|||
|
Computer Scientists won't be seen tinkering with it. They may have to use it
|
|||
|
to balance their checkbooks, as their own systems can't
|
|||
|
|
|||
|
Real Computer Scientists don't program in assembler. They don't write in
|
|||
|
anything less portable than a Number Two pencil
|
|||
|
|
|||
|
Real Computer Scientists don't debug programs; they dynamically modify them.
|
|||
|
This is safer, since no one has invented a way to do anything dynamic
|
|||
|
to FORTRAN, COBOL, or BASIC
|
|||
|
|
|||
|
Real Computer Scientists like C's structured constructs, but they are
|
|||
|
suspicious of it because it is compiled. (Only batch freaks and efficiency
|
|||
|
weirdos bother with compilers)
|
|||
|
|
|||
|
Real Computer Scientists play Go. They have nothing against the concept of
|
|||
|
mountain climbing, but the actual climbing is an implementation detail best
|
|||
|
left to programmers
|
|||
|
|
|||
|
Real Computer Scientists admire ADA for its overwhelming aesthetic value, but
|
|||
|
they find it difficult to actually program in, as it is much too large to
|
|||
|
implement. Most computer scientists don't notice this because they are still
|
|||
|
arguing over what else to add to ADA
|
|||
|
|
|||
|
Real Computer Scientists work from 5pm to 9am because that's the only time
|
|||
|
they can get the 8 megabytes of main memory they need to edit specs. (Real
|
|||
|
work starts around 2am when enough MIPS are free for their dynamic systems.)
|
|||
|
Real Computer Scientists find it hard to share 3081s when they are doing
|
|||
|
"real" work
|
|||
|
|
|||
|
Real Computer Scientists only write specs for languages that might run on
|
|||
|
future hardware. Nobody trusts them to write specs for anything homo sapiens
|
|||
|
will ever be able to fit on a single planet
|
|||
|
|
|||
|
Real Computer Scientists like planning their own environments to use
|
|||
|
bit-mapped graphics. Bit-mapped graphics is great because no one can afford
|
|||
|
it, so their systems can be experimental
|
|||
|
|
|||
|
Real Computer Scientists regret the existence of PL/1, PASCAL, and LISP. ADA
|
|||
|
is getting there, but it still allows people to make mistakes
|
|||
|
|
|||
|
Real Computer Scientists love the concept of users. Users are always real
|
|||
|
impressed by the stuff computer scientists are talking about; it sure sounds
|
|||
|
better than the stuff they are being forced to use now
|
|||
|
|
|||
|
Real Computer Scientists despise the idea of actual hardware. Hardware has
|
|||
|
limitations; software doesn't. It's a real shame that Turing machines are so
|
|||
|
poor at I/O
|
|||
|
|
|||
|
Real Computer Scientists love conventions. No one is expected to lug a 3081
|
|||
|
attached to a bit-map screen to a convention, so no one will ever know how
|
|||
|
slow their system runs
|
|||
|
|
|||
|
Real Computer Scientists don't run IBM hardware. If someone will fix it when
|
|||
|
it breaks, it's not spacey enough
|
|||
|
|
|||
|
|
|||
|
Real users Don't
|
|||
|
----------------
|
|||
|
|
|||
|
Real Users don't define requirements...
|
|||
|
...If these computer folks are so smart, they should KNOW what we want
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|