views:

1004

answers:

17

Being 32 years old, I did not follow debates in programming, language design, and platforms in the 1960s, 1970s, 1980s, and most of the 1990s. I sometimes hear glimpse of what the major debates were and how they turned the course of history. It makes me wonder what I take for granted.

I am curious, what were the debates. The ones I know are:

  • Procedural vs. Object Oriented Programming
  • Lisp vs. C
  • Software vs. Chips with Embedded Code
+18  A: 

Editor wars: vi vs emacs

clyfe
this is still ongoing
rmeador
@rmeador: but **we** won!
Joachim Sauer
No you didn't, *WE* won.
AShelly
+7  A: 

While I am not old enough to remember it, Dijkstra's Go To Statement Considered Harmful was controversial.

GreenMatt
+2  A: 

As far as I'm concerned, the procedural vs. object-oriented war is still going, or at least should be :)

MadKeithV
A: 
  • Structured vs. Unstructured programming (see Dijkstra "goto statement considered harmful")
  • PC vs. Mainframe
  • Shared-state concurrency vs. Asynchronous messages (started at the '70s, still going)
Little Bobby Tables
+1  A: 

This probably only counts as a border skirmish, but I'm a sucker for anything involving RMS spouting off, so I'll nominate The Tcl War.

Adam Crossland
The only problem with it is that people keep citing it in a non-historical way.
Donal Fellows
+23  A: 

The biggest war was about the GOTO statement, ignited by Djikstra's "Goto considered harmful" letter in March 1968 and masterfully capped by Knuth's "Structured programming with Goto statements" (PDF) essay in December 1974 (of course some people are still debating, but you can usually tell they haven't read Knuth's wonderful essay -- or haven't understood it at all;-). That war can be seen as part of the larger one about structured programming (which is why Knuth's essay's title is so perfect;-).

Alex Martelli
I think you meant 'goto' instead of 'gogo', huh?
Johannes Rudolph
Gogo statements? Interesting concept you have there ;)
Alex
I liked the humor in Frank Rubin's paper titled `'GOTO Considered Harmful' Considered Harmful` :)
Onion-Knight
And then there's ["Considered Harmful" Essays Considered Harmful](http://meyerweb.com/eric/comment/chech.html).
Jonathan Leffler
+11  A: 

The Tanenbaum-Torvalds debate.

IVlad
+4  A: 

I can't remember the name of the war, but Fortran won, and it's still winning.

High Performance Mark
I take the downvote as evidence that while Fortran is still winning there remain pockets of resistance. Come on, you know it's futile.
High Performance Mark
+1 for humor sake
dkackman
+2  A: 

Intendation and bracket placement?

mafutrct
That's still going as strong as when I first started programming, back in the 1960s.
David Thornley
Yea, I guess. I'll delete this later.
mafutrct
+6  A: 

RISC vs. CISC
Big-endian vs. Little-endian
Goto vs. ComeFrom :-)

+1 for RISC vs. CISC
uncle brad
+5  A: 

Integer representation: twos' complement (which won), ones' complement (on the Control Data Cyber series, first computers I programmed in assembler on), and signed magnitude (immortalized in the MIX machine in volume 1 of Knuth).

Whether computer languages should be natural-sounding (like COBOL) or more formal (like FORTRAN or ALGOL or LISP).

I could mention the mainframe vs. minicomputer wars, and the IT department vs. personal computers, but the centralization vs. decentralization struggle is going on now with personal computers and local servers vs. "the cloud". So far, decentralization has won every round, and we'll see if SaaS and cloud apps can offer comparably more business functionality in the way increasingly smaller computers did.

David Thornley
+5  A: 

OOP versus ... the world, really.

MPelletier
A: 

When I was growing up in UK it was...

ZX Spectrum (Z80A) vs Commodore 64 (6510, a modified 6502)

CP/M vs DOS

Dan Diplo
A: 

Amiga vs IBM/PCs Similiar to Apple vs IBM today.

Commodore vs everything else :)

Michael Dorgan
A: 

Going back a long while the word size was far from obvious. The IBM 360 chose 8 bit bytes, which was controversial (wasting two bits per byte!).

6502 vs Z80 in micros for many years.

Whether microcomputers were good for anything (mainframe and minicomputer folks assumed personal computers would be useless toys forever).

For many businesses a big decision was whether to go totally IBM or consider an alternative. General purpose computing vs specialized hardware (e.g. when designing a telephone network switch should it be custom hardware or off the shelf components?)

Fail fast versus tolerant computing (e.g. do you leave asserts enabled when your guiding the space shuttle through re-entry).

Ye olden days were just as full of uncertainty, confusion and debate as there are now (unless you were and IBM salesman, of course).

David Plumpton
A: 

Centralized Servers vs Distributed Computing

(Technically, this is still going on. It's just the marketing people keep changing the name.)

Kevin
A: 

Representing non-integral numbers (fixed point vs. floating point, exponent size vs. significand size, sign bit or complement, etc.) have been debated for a long time. Maybe this doesn't count as "previous generation" because debates continue, but I would say it was mostly settled with IEEE 754 and widespread adoption in hardware within the last 20 years.

James M.