unclebobmartin's avatar
unclebobmartin
unclebobmartin@nostrplebs.com
npub19mun...jnft
Uncle Bob, Software Craftsman. http://cleancoder.com http://cleancoders.com
Iran did this because they want the war. That means that this is only one step in their plan. What the next step might be is anybody’s guess; but the worst guess is that there is no next step. It might be wise to consider the US southern border.
Hello Nostr, We've returned from our Northern Hideaway, and are looking forward to the week ahead. I'm continuing my historical research. Does anyone have any technical information on the ARRA computer from the Netherlands in 1953? This was the first machine that Dijkstra used, and I'd love to look under the covers a bit.
Hello Nostralites. We have arrived at our Northern Hideaway. This morning is a chilly 45°F, but the skys are clear and it looks to be a lovely day to wear a sweater. Today I'm continuing my deep dive into the life and times of Edsger Dijkstra. I expect to be amazed.
Good morning Nostroids. My lovely wife and I are off to our nothern hideaway today. I'm neck deep into Dijkstra history, and it's really interesting. More later.
"The alternative, however, is to recognize that [new machines are] faster and that, hence, time does not matter so much any more [...] Hence, it becomse more realistic to invest some of the machine's speed in other things than sheer production, such as programming comfort, elegance, and reliability." Dijkstra, 1962
In the late '50s there was a big debate amongst the programmers of the day. Should recursion be a feature in our languages. The Algol 60 commitee debated this for some time; and the debate was not entirely civil. Dijkstra was a big proponent of recursive functions. He thought all functions in Algol should allow recursion. He was nearly laughed out of one meeting for making that case. Others, who were far more concerned about efficiency of memory and time thought that recursion was too costly to allow. They accused Dijkstra of just wanting to "play". And who can blame them, the computers of the day were vacuum tube monstronsities with memories maintained in accoustic waves in big tubes of Mercury that had to be maintained at 45C. Cycle times were barely sub-millisecond. Stacks were not part of any computer hardware at the time. Dijkstra took the long view. He thought that recursion added to the expressivity of a language; and that the biggest cost of an automated system was going to be _programmers_. This was not true at the time. Even very expensive programmers were cheap compared to computer time. If a programmer could save one hour per week of computer time, it would pay back his salary in relatively short order. In those days, efficiency at the bit and millisecond level was a top priority. In the end, after much cajoling and nasty argumentation, Dijkstra won the day. Algol 60 was a recursive language. It's not clear to me, however, whether this helped, or hindered the acceptance of Algol 60. Most Americans of the day felt that the language was too academic (translation: slow and impractical) for commercial application.
Happy Wednesday Nostriches... Today I'm teaching a class, getting my hair cut, getting a regular eye checkup, and then (if I can see after the dilation) reading more about Dijkstra and Turing. This deep dive into software history is a lot of work, but it's really fun.
Good morning all. Happy Monday. Today I’ll be writing more on my chapter about the history of C and Unix. What a fun tale!
Unix began as the scheduling algorithm for a finicky disk drive on a PDP-7. The author, Ken Thompson, wrote it after writing a nice space-travel game on that same PDP-7.
Shameless plug: my recent book, Functional Design, is a deep dive into the union of the three paradigms. Functional Design: Principles, Patterns, and Practices (Robert C. Martin Series) https://t.co/CHAjFUZCft
Structured Programming is discipline imposed upon direct transfer of control. Object Oriented Programming is discipline imposed upon indirect transfer of control. Functional Programming is discipline imposed upon assignment. Discipline is a good thing.
I’m a big fan of Functional Programming; I think it’s great. I’m a big fan of Object Oriented Programming; I think it’s great. I’m a big fan of Procedural Programming; I think it’s great. I’m a really big fan of using all three together at the same time. I think that should be our standard.
If you pin your hopes and fears on AI you will be disappointed.
I just finished a draft of chapters on Grace Hopper and John Kemeny. Stone knives and bearskins doesn't begin to describe what those folks had to deal with.
I am not a climate change denier. I’m just not a climate change catastrophist. I’m also a systems expert, and I well understand the risks of making drastic untested changes to complex systems.
The UNIVAC I was a decimal machine. It stored 1000 words of 12 decimal digits in mercury delay lines. The digits were stored in XS-3 format which is just BCD + 3. So 0=0011, 1=0100, 5=1000. Why? Because the machine subtracted by adding 9’s complement. And in XS-3 you can convert to 9’s complement just by inverting the bits. Try it!