What the computer chess community needs to decide

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
hgm
Posts: 27808
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: What the computer chess community needs to decide

Post by hgm »

paulo wrote:The business case of a chess engine is to get, at the end, the strongest engine possible by kicking hard in the ass the previous #1 (once more, congratulations to Robert Houdart).
Well, not for everyone, and certainly not for me. There are many design goals of engines. Some authors want to write clear code structured in a didactic way to serve educatonal purposes. Some authors want to build the smallest engine possible. Some authors want to write a flexible code they could easily adapt to evaluate many different search strategies. Some authors want to build an engine that can be configured to play in many different styles. Some authors want to build and engine that is enoyable to play against. Some authors want to build an engine with very flexible data structures and generalized move generator, so it can play many variants, etc., etc. The list is endless.
paulo
Posts: 53
Joined: Wed Dec 15, 2010 7:31 pm

Re: What the computer chess community needs to decide

Post by paulo »

hgm wrote:
paulo wrote:The business case of a chess engine is to get, at the end, the strongest engine possible by kicking hard in the ass the previous #1 (once more, congratulations to Robert Houdart).
Well, not for everyone, and certainly not for me. There are many design goals of engines. Some authors want to write clear code structured in a didactic way to serve educatonal purposes. Some authors want to build the smallest engine possible. Some authors want to write a flexible code they could easily adapt to evaluate many different search strategies. Some authors want to build an engine that can be configured to play in many different styles. Some authors want to build and engine that is enoyable to play against. Some authors want to build an engine with very flexible data structures and generalized move generator, so it can play many variants, etc., etc. The list is endless.
Exactly. That's why I gave my answer.
What would you answer in your particular case?
Gian-Carlo Pascutto
Posts: 1243
Joined: Sat Dec 13, 2008 7:00 pm

Re: What the computer chess community needs to decide

Post by Gian-Carlo Pascutto »

paulo wrote: Exactly. That's why I gave my answer.
Well, a few posts ago you were claiming all software development works as you say (i.e. by plagiarizing) and now you're backtracking again?
paulo
Posts: 53
Joined: Wed Dec 15, 2010 7:31 pm

Re: What the computer chess community needs to decide

Post by paulo »

Gian-Carlo Pascutto wrote:
paulo wrote: Exactly. That's why I gave my answer.
Well, a few posts ago you were claiming all software development works as you say (i.e. by plagiarizing) and now you're backtracking again?
What?? What do you mean with backtracking? And with "again"??
My dear, I've been super consistent from the beginning and know exactly what I'm talking about.
User avatar
hgm
Posts: 27808
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: What the computer chess community needs to decide

Post by hgm »

paulo wrote:Exactly. That's why I gave my answer.
What would you answer in your particular case?
I have a number of engines, all built with different purposes. Some to have maximum strength/size ratio, some for experimenting with pruning strategies, or programming techniques, some to do research in variant piece values.

So your engine aims to be top dog? What was the name of your engine again?
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What the computer chess community needs to decide

Post by bob »

paulo wrote:
bob wrote:
paulo wrote:
SzG wrote:
paulo wrote:Today only a complete asshole would start coding a new engine from scratch, i.e., ignoring all the (best) available ideias and resources.
The two are not the same. You can start from scratch using all the available ideas together with yours. And you can start from a complete code and put in your ideas.
Nope. It's exactly the same thing as long as you agree the existing code you are basing is the best. Furthermore I strongly believe any experienced software developer agrees with this.
Here is one that does not. Copying source is not "software development" by the way, it is "software plagiarism". HUGE difference...
I respect your opinion but I don't see it that way and don't consider copying. Furthermore, modern sw development is heavily based on code-reuse, either yours or, in most cases, from other sources.

regards
Let's modify your statement to "based on _legal_ code re-use." Libraries are the oldest example of this idea. Who wants to keep writing their own printf(), malloc() and such? Or for SMP, a lock()/unlock() function + something to create a new thread?

And a business always modifies the old version rather than rewriting from scratch.

But we are _way_ beyond "legal code re-use" here. Since the GPL is quite explicit in what one has to do if they copy GPL code...
User avatar
Harvey Williamson
Posts: 2011
Joined: Sun May 25, 2008 11:12 pm
Location: Whitchurch. Shropshire, UK.
Full name: Harvey Williamson

Re: What the computer chess community needs to decide

Post by Harvey Williamson »

hgm wrote: What was the name of your engine again?
Give him 10 minutes and he will go and recompile/hex edit and then he will have a top engine :P
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What the computer chess community needs to decide

Post by bob »

paulo wrote:
Don wrote:
Sven Schüle wrote:
paulo wrote:
bob wrote:
paulo wrote:
SzG wrote:
paulo wrote:Today only a complete asshole would start coding a new engine from scratch, i.e., ignoring all the (best) available ideias and resources.
The two are not the same. You can start from scratch using all the available ideas together with yours. And you can start from a complete code and put in your ideas.
Nope. It's exactly the same thing as long as you agree the existing code you are basing is the best. Furthermore I strongly believe any experienced software developer agrees with this.
Here is one that does not. Copying source is not "software development" by the way, it is "software plagiarism". HUGE difference...
I respect your opinion but I don't see it that way and don't consider copying. Furthermore, modern sw development is heavily based on code-reuse, either yours or, in most cases, from other sources.

regards
Code reuse is good - as long as it is allowed based on existing copyright and license situation.

For most SW companies "code reuse" means to reuse existing *own* code mainly.

Sven
Yes, and code reuse generally applies to the generous use of external libraries, or clever reuse of classes by extending them, etc. I hope "modern SW development" does not ever become synonymous with software plagiarism.
You don't need to hope anymore because according to your viewpoint all modern sw development _already_ is sw plagiarism, either you like it or not.
How? Find any code in Crafty that came from another program. There are other examples. One doesn't have to plagiarize to develop a program. We teach kids how to design and write programs every day in our CS program.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What the computer chess community needs to decide

Post by bob »

paulo wrote:
frcha wrote:
paulo wrote:
Don wrote:
Sven Schüle wrote:
paulo wrote:
bob wrote:
paulo wrote:
SzG wrote:
paulo wrote:Today only a complete asshole would start coding a new engine from scratch, i.e., ignoring all the (best) available ideias and resources.
The two are not the same. You can start from scratch using all the available ideas together with yours. And you can start from a complete code and put in your ideas.
Nope. It's exactly the same thing as long as you agree the existing code you are basing is the best. Furthermore I strongly believe any experienced software developer agrees with this.
Here is one that does not. Copying source is not "software development" by the way, it is "software plagiarism". HUGE difference...
I respect your opinion but I don't see it that way and don't consider copying. Furthermore, modern sw development is heavily based on code-reuse, either yours or, in most cases, from other sources.

regards
Code reuse is good - as long as it is allowed based on existing copyright and license situation.

For most SW companies "code reuse" means to reuse existing *own* code mainly.

Sven
Yes, and code reuse generally applies to the generous use of external libraries, or clever reuse of classes by extending them, etc. I hope "modern SW development" does not ever become synonymous with software plagiarism.
You don't need to hope anymore because according to your viewpoint all modern sw development _already_ is sw plagiarism, either you like it or not.
I think you are probably thinking of cases such as javascript where programmers just use the jquery library.
You can use jquery to do a lot of things that would otherwise take longer -- yet even in this case -- you can program from scratch .. its not that hard for example to program a rollover from scratch . Don't need jquery -- nor is it necessary to use jquery to toggle a div on or off.. that can be done directly too ..

EVEN if programmers does use a library to implement something, they're not claiming credit for a "creation" just getting the job done.


As a programmer outside of the chess engine scene, and if I am good enough I too might be tempted to just make an improvement to ippo code but what did I create? Just added ELO to Ippo not create a new engine as you think.

The issue here is giving credit where credit is due.
I agree with almost you said, in particular when you say:
"EVEN if programmers does use a library to implement something, they're not claiming credit for a "creation" just getting the job done."

The point here is precisely about getting the job done.
Nowadays is all about it, modern computer programming focus solely on the business case and only when that is not possible you have to handle technical issues.

Now a question for all SW developers around here:
For you, what is the business case of a computer chess engine?

My answer:
The business case of a chess engine is to get, at the end, the strongest engine possible by kicking hard in the ass the previous #1 (once more, congratulations to Robert Houdart).
You still need the "while following existing national and international laws." Copying Fruit clearly does not pass that test because of the GPL.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What the computer chess community needs to decide

Post by bob »

paulo wrote:
Sven Schüle wrote:
paulo wrote:
bob wrote:
paulo wrote:
SzG wrote:
paulo wrote:Today only a complete asshole would start coding a new engine from scratch, i.e., ignoring all the (best) available ideias and resources.
The two are not the same. You can start from scratch using all the available ideas together with yours. And you can start from a complete code and put in your ideas.
Nope. It's exactly the same thing as long as you agree the existing code you are basing is the best. Furthermore I strongly believe any experienced software developer agrees with this.
Here is one that does not. Copying source is not "software development" by the way, it is "software plagiarism". HUGE difference...
I respect your opinion but I don't see it that way and don't consider copying. Furthermore, modern sw development is heavily based on code-reuse, either yours or, in most cases, from other sources.

regards
Code reuse is good - as long as it is allowed based on existing copyright and license situation.

For most SW companies "code reuse" means to reuse existing *own* code mainly.

Sven
Sven Schüle wrote: Code reuse is good - as long as it is allowed based on existing copyright and license situation.

For most SW companies "code reuse" means to reuse existing *own* code mainly.
Code reuse is not just good is strongly encouraged. Only short-minded SW companies would ignore all the existing **free** libraries and sources available at a mouse click.
Why do you keep talking about "free" or "public domain" libraries and sources? That is not the subject we are talking about here. Fruit can't be copied unless the copier follows the GPL requirements... A commercial program can't be disassembled, converted to C, then modified and used/distributed. So somehow you have veered away from the discussion at hand and jumped into a sub-set of software development without considering the larger picture where code-reuse only applies within a single company or product of theirs, not across companies, and certainly not across all instantiations of a particular software idea.