Page 3 of 5

Re: Where's the joy in writing a chess engine?

Posted: Wed Sep 20, 2017 10:04 am
by Henk
Maybe creating a better original top engine only works when supported by government where people who are not interested in chess also pay (tax) money. Like Russian Chess School. Replace this by: Chess Engine School.

Re: Where's the joy in writing a chess engine?

Posted: Wed Sep 20, 2017 10:21 am
by Henk
We had Giraffe chess engine. Any Chinese successor?

Re: Where's the joy in writing a chess engine?

Posted: Wed Sep 20, 2017 10:23 am
by Daniel Anulliero
My job is far far away from a software developer ! I'm a service agent :)
I discovered the chess programs in the 80's years with the dedicated machines , like chess challenger , mephisto etc...
I bought à david Lévy 's book and I slowly started to understand how a computer can play chess .
Then I've got a first computer and learned the basic langage by myself in the 90's years, writing a very weak first chess engine (depth 4 in 30 seconds)
Then I started to learn the C by myself and now I have a not too bad engine .
Chess progrmaming is my main hobby , sometimes an addiction, sometimes is boring , but I never stopped it more than some months ! :wink:
Sometimes you come back with fresh ideas and the addiction come back with it !
So , I think "no need to be a software developer to play with a chess program "!
Best
Dany

Ps : for the Joy I have in chess programming , well ... service agent is a so boring job lol and chess programming is really an oxygen part in my life , even when Isa play badly or don't do the thing like I want ! :)

Re: Where's the joy in writing a chess engine?

Posted: Wed Sep 20, 2017 10:41 am
by Henk
What could be the joy of starting and stopping a tuner.

Re: Where's the joy in writing a chess engine?

Posted: Wed Sep 20, 2017 11:10 am
by Daniel Anulliero
Henk wrote:What could be the joy of starting and stopping a tuner.
Off topic

Re: Where's the joy in writing a chess engine?

Posted: Wed Sep 20, 2017 11:49 am
by Henk
Daniel Anulliero wrote:
Henk wrote:What could be the joy of starting and stopping a tuner.
Off topic
Of course off topic. Why am I posting. In the end phase of development only tuning remains. That means starting a batch or starting or stopping a tuner. If not then you did something wrong.

Re: Where's the joy in writing a chess engine?

Posted: Wed Sep 20, 2017 3:38 pm
by Tony P.
Henk wrote:What could be the joy of starting and stopping a tuner.
The strength of a tuner (and one of a neural network too) is limited by its design. I think the tuner should be rewritten dramatically once in a while too.

Re: Where's the joy in writing a chess engine?

Posted: Thu Sep 21, 2017 4:06 am
by Tony P.
duncan wrote:
Rebel wrote:
Tony P. wrote:Even then, it puzzles me that some people like to have a hobby that reminds them of their jobs. I'd rather have a hobby that's orthogonal to the job, to forget about the job at least for a while.
I can't imagine a programming job that is more creative than chess prgramming.
more than go programming ?
Speaking of, go indeed has deeper strategy and complexity than chess. I guess don't like positional play enough to like go, but in terms of tactics, chess is inferior to shogi. Either go or shogi must be more exciting than traditional chess to almost anyone. To those who'd like to stay within the Western culture, crazyhouse is a more tactical version of chess.

All that said, crazyhouse isn't popular enough yet; shogi is very popular in Japan, but, according to Larry's instructive experience, it's hard to get into the Japanese market as a foreigner; and as far as go and xiangqi, it's likely hard to get into the Chinese market as a Westerner as well.

As for the philosophy of hobbies in general, I think it's a bit different depending on one's affluence. In a poor country, it's hard to get bored or get too much free time and energy for such a consuming hobby as board game development.

I'm surprised to see a lot of Slav authors here, but it looks like they're primarily programmers. A likely reason is that software development is easy to outsource and gives rise to a lot of freelance jobs, so if a poor country resident learns to program at a level that's enough to write a decent engine, they'll be already good enough to earn more money by freelance coding than they'd earn in almost any non-programming local office job ('in a factory', as Russians jocularly put it).

However, chess coding will then take only a small percentage of their time, while most of it will be spent on more lucrative applications of the programming skills.

I regret it that I'm so bad at debugging, as self-written utility and data analysis scripts would certainly help my productivity. And I'm sure this is the direction where I should be heading if I ever want to learn to code well, even though it's not as artistic as chess (but as I hinted above, for any game / art that you're familiar with, there's almost always some lovelier game / art that you didn't know of).

In particular, I could benefit from forking one particular non-chess Python / SQL project, and Python is too slow to write a chess engine in - it's used to write a bearably working GUI with less effort, but the resulting code is slow.

Generally, I don't like the distinction between a job and a hobby. Somehow I fail to enjoy anything that doesn't make at least a modest profit, maybe because I can't afford to retire yet but dream of retiring asap.

Sorry for the thread, I needed it to make up my mind. Good luck to everyone :)

Re: Where's the joy in writing a chess engine?

Posted: Thu Sep 21, 2017 6:58 am
by Henk
If you write test cases (unit tests) then debugging is mostly debugging test cases. Disadvantage of test cases is that you have to write and maintain more code.

Writing generic code is important.

Re: Where's the joy in writing a chess engine?

Posted: Thu Sep 21, 2017 8:58 pm
by emadsen
Tony P. wrote:I have a conjecture that I'd like to check with the forum residents.

Namely, writing an engine can only be enjoyed by someone who already does software development as a job... The thing is that the actual development is too stressful for an uninitiated person. Algorithm design in terms of pseudocode is much easier than making code actually work fast... Thus I suppose that coding an engine can only be enjoyable if one is already very disciplined at debugging and testing.
Anton, I agree with your sentiments. It certainly helps to have prior programming experience. Any smart person can teach themselves to program. However, the difficulty (if one is not merely copying someone else's code) is how to chose among the dozen different ways of accomplishing a task- from what data structure to use to which algorithm to employ. This happens again and again in software development. The problem is not a dearth of options- the problem is how to chose from too many options. Experience helps one quickly sense the pro & con tradeoffs of different approaches without getting too deeply invested in a particular technique.
...it puzzles me that some people like to have a hobby that reminds them of their jobs. I'd rather have a hobby that's orthogonal to the job, to forget about the job at least for a while.
I'm a professional programmer and a hobbyist chess programmer. I admit at times I feel doubling up on programming projects is a bit drab. But part of the appeal is a personal programming project is not burdened by design-by-committee compromises, office politics, backward compatibility requirements, project planning / reporting / time tracking, and other corporate annoyances.

However, chess programming is not my only hobby. Last year I ran the Chicago marathon. I'm running it again next month. Training is a major time commitment, but I find the physical demands of marathon training- and the time spent outdoors- a pleasant distraction from the world of chess and computers. So yes, it helps to have other hobbies.