Jerry Feldman wrote:
Long before the Americans got computers underway the English military built a programmable computer with valves and relays. It was used to break the German codes during WW II.
What you are talking about is Alan Turing's Enigma machine. But, what I was referring to is the coining of the word, "bug". I was fortunate to have had lunch with Grace Hopper once back around 1980.
Unusually, you are wrong here. The machine was called Colossus and was built by an obscure Post Office engineer called Tommy Flowers. Enigma was the name of one of the toughest German encryption machines but was not a computer. Turing worked at Bletchley Park during the war and played a large part in working out how to break enigma codes, but the British had obtained an enigma machine at the start of the war. I'm far to young to have met Turing and never met flowers though I was fortunate to have had lunch with one of the people who worked out how the German high command machine worked once back in 1999. http://www.picotech.com/applications/colossus.html I believe object-oriented programming developed from an algol based language called Simula in the 1960s. Simula was designed for discrete event dimulation and object-oriented languages are very good for this purpose - I first looked at object oriented languages when I found that FORTRAN was almost useless for discrete event simulation in the late 1980s: no function pointers means you have to use hard-coded tables to find which function actually needs to be called at runtime even though you end up writing dozens of functions with identical parameter lists. One thing that irritates me is people insisting on using object oriented programming even when it's clearly not appropriate. Some things are best just done procedurally or recursively. Many algorithms work much better and faster when the polymorphism is resolved at compile time rather than run time - so use templates. My view is: use the method that is appropriate for the task and the language that is appropriate for the method. -- JDL