sje wrote:One must wonder if some of the early programs like Kotov's, Greenblatt's, Slate and Atkin's, etc. would have been stronger if only the authors had used algebraic notation instead of the more complicated descriptive and so spent more time on improving playing ability.
I can't really comment on
Kotok's program, other than saying it took them a long time to just develop the basic chess playing stuff. The notation wouldn't have taken much time in comparison.
For Greenblatt, he worked on his program for many years. The initial program version was developed pretty quick, but he spent years tinkering, experimenting, refining, etc. with it. It just wasn't in the public eye in those later years.
For Slate & Atkin, the descriptive notation stuff was developed early on, and then reused in the later programs. Modified, ported, etc., but basically reused. So it was pretty much a 'one time' cost. Considering they had many versions spread out over many years, I'd say the cost was darn near zero. (As a side note, they developed Chess 4.0 in just 4 months. It was heavily based on 3.6, but it was still mostly a rewrite / re-thought / re-organization.)
Also, although FEN wasn't around 45 years ago, there was plain old Forsyth position notation and it dates from the late 1800's; Kotov would have saved a good deal of programming time using it rather than his descriptive board scan with up to three characters per square.
It's not unique in Chess programming to spend extra time on fancy I/O. Heck, even I've spent days playing around with output statements and formats just to make something look 'pretty', even though I was the only one going to see it and it wasn't that important.
Also, for chess positions, a board printout is *much* easier to look at and understand, especially by novices and people who don't even play chess (such as programming advisors, thesis review board, etc. etc.)
On the other hand, Kotov's use of console switches for program control and move entry is understandable given that a terminal wasn't always available.
Yup. That's true of the earlier programs, too.
And considering the operating systems of the time prefered batch processing over any form of interactive input, using the sense switches was a good way to do it.
Ironically, that complicates trying to bring the program back into working order on a modern system. I long ago thought of doing a port of it, but assuming I could manage to read the faded assembly listings, trying to do the sense switches would have been too inconvenient to do portably.