Skip to main content
added 270 characters in body
Source Link
Kaveh
  • 3.6k
  • 1
  • 15
  • 15

This is a view from Computer Science/Theoretical Computer Science/Mathematics.

Ask yourself: who is the target audience of an academic paper?

It is not end-users. It is reviewers! Do reviewers want code? Depends on the situation. Sometimes they do. Often they don't.

Think about this: why mathematicians don't provide formal proofs but use informal arguments?

It is costs vs. benefits. Providing a formally verified proof is possible but usually needs too much work, work that authors are not trained for and don't have much experience with. On the other hand, what do authors gain from it? Does it help convincingconvince the reviewers about the correctness of the results? No, usually reviewers prefer short informal explanation that allows them to understand and see why the result is true. A formal proof usually will not help much. There are people who don't like computer-assisted proofs which cannot be verified and understood directly by humans.

The same costs vs. benefits thinking applies to programs. If providing code will not help convince the reviewer about the correctness of the paper, then why waste resources (time/money/pages/...) to do so? Do reviewers have time to read codes with thousands of lines to check there is no bug in them?

On the other hand, sometimes the software resulting from the paper is of primary interest. Having the code is helpful in verifying the claims. E.g. you claim you have a faster algorithm for SAT. Then it is helpful to provide the code. In such cases authors provide their code. This is mainly in more experimental parts. We don't care about the correctness of the code but obtaining results better than existing algorithms. In such situations there are typically standard benchmarks to compare algorithms. (See for example SAT competitions.) If there aren't established benchmarks then why publish code? If it is a theoretical result where the asymptotic benefits take place over instances which are too large to test what is the benefit of have the code? More so considering the fact that large code developed by non-professional programmers is highly likely to be buggy? Employing professional software developers to develop quality code is costly (the median annual income for a person with a bachelors in CS is around 100K in the US) (except possibly as graduate students ;) and doesn't typically have any profits afterwards.

But does itcode need to be inside the paperincluded in papers? Of course not! There are better ways to provide itpublish code, e.g. having a link in the paper to an online copy (on their website or a public repository like github). Why would one prefer to include a code with thousands of lines inside a document which is supposed to be read by humanshumans?

This is a view from Computer Science/Theoretical Computer Science/Mathematics.

Ask yourself: who is the target audience of an academic paper?

It is not end-users. It is reviewers! Do reviewers want code? Depends on the situation. Sometimes they do. Often they don't.

Think about this: why mathematicians don't provide formal proofs but use informal arguments?

It is costs vs. benefits. Providing a formally verified proof is possible but usually needs too much work, work that authors are not trained for and don't have much experience with. On the other hand, what do authors gain from it? Does it help convincing the reviewers about the correctness of the results? No, usually reviewers prefer short informal explanation that allows them to understand and see why the result is true. A formal proof usually will not help much. There are people who don't like computer-assisted proofs which cannot be verified and understood directly by humans.

The same costs vs. benefits thinking applies to programs. If providing code will not help convince the reviewer about the correctness of the paper, then why waste resources (time/money/pages/...) to do so?

On the other hand, sometimes the software resulting from the paper is of primary interest. Having the code is helpful in verifying the claims. E.g. you claim you have a faster algorithm for SAT. Then it is helpful to provide the code. In such cases authors provide their code.

But does it need to be inside the paper? Of course not! There are better ways to provide it, e.g. having a link in the paper to an online copy (on their website or a public repository like github). Why would one prefer to include a code with thousands of lines inside a document which is supposed to be read by humans?

This is a view from Computer Science/Theoretical Computer Science/Mathematics.

Ask yourself: who is the target audience of an academic paper?

It is not end-users. It is reviewers! Do reviewers want code? Depends on the situation. Sometimes they do. Often they don't.

Think about this: why mathematicians don't provide formal proofs but use informal arguments?

It is costs vs. benefits. Providing a formally verified proof is possible but usually needs too much work, work that authors are not trained for and don't have much experience with. On the other hand, what do authors gain from it? Does it help convince the reviewers about the correctness of the results? No, usually reviewers prefer short informal explanation that allows them to understand and see why the result is true. A formal proof usually will not help much. There are people who don't like computer-assisted proofs which cannot be verified and understood directly by humans.

The same costs vs. benefits thinking applies to programs. If providing code will not help convince the reviewer about the correctness of the paper, then why waste resources (time/money/pages/...) to do so? Do reviewers have time to read codes with thousands of lines to check there is no bug in them?

On the other hand, sometimes the software resulting from the paper is of primary interest. Having the code is helpful in verifying the claims. E.g. you claim you have a faster algorithm for SAT. Then it is helpful to provide the code. In such cases authors provide their code. This is mainly in more experimental parts. We don't care about the correctness of the code but obtaining results better than existing algorithms. In such situations there are typically standard benchmarks to compare algorithms. (See for example SAT competitions.) If there aren't established benchmarks then why publish code? If it is a theoretical result where the asymptotic benefits take place over instances which are too large to test what is the benefit of have the code? More so considering the fact that large code developed by non-professional programmers is highly likely to be buggy? Employing professional software developers to develop quality code is costly (the median annual income for a person with a bachelors in CS is around 100K in the US) (except possibly as graduate students ;) and doesn't typically have any profits afterwards.

But does code need to be included in papers? Of course not! There are better ways to publish code, e.g. having a link in the paper to an online copy (on their website or a public repository like github). Why would one prefer to include a code with thousands of lines inside a document which is supposed to be read by humans?

added 270 characters in body
Source Link
Kaveh
  • 3.6k
  • 1
  • 15
  • 15

This is a view from Computer Science/Theoretical Computer Science/Mathematics.

Ask yourself: who is the audience of an academic paper?who is the target audience of an academic paper?

It is notnot end-users. It is the reviewersreviewers! Do the Do reviewers want code? Depends on the situation. Sometimes they do. Often they don't.

WhyThink about this: why mathematicians don't provide formal proofs but use informal arguments? 

It is a costcosts vs. benefit analysisbenefits. Providing a formally verified proof is possible but usually needs too much work, work that authors are not trained for and don't have much experience with. On the other hand, what does the authordo authors gain from it? Does it help convincing the reviewers more convinced thatabout the result is correctcorrectness of the results? No, usually reviewers prefer short informal explanation that allows them to seeunderstand and see why the result is true. A formal proof usually will not usually addhelp much to it. There are people who don't like computer-assisted proofs which cannot be verified and understood directly by humans.

The same costs vs. benefits thinking applies to programs. If providing the full source code will not help convince the reviewer about the correctness of the paper, then why waste resources (time/money/pages/...) to do so?

On the other hand, sometimes the software resulting from the paper is of primary interest. Having the code is helpful in verifying the claims. E.g. you claim you have a faster algorithm for SAT. Then it is helpful to provide the code. In such cases authors provide their code.

But does it need to be inside the paper? Of course not! There are better ways to provide it, e.g. having a link in the paper to an online copy (on their website or a public repository like github). Why would one prefer to include a code with thousands of lines inside a document which is supposed to be read by humans?

This is a view from Computer Science/Theoretical Computer Science/Mathematics.

Ask yourself: who is the audience of an academic paper? It is not end-users. It is the reviewers! Do the reviewers want code? Depends on the situation.

Why mathematicians don't provide formal proofs but use informal arguments? It is a cost vs. benefit analysis. Providing a formally verified proof is possible but usually too much work. On the other hand what does the author gain from it? Does it help convincing the reviewers more convinced that the result is correct? No, usually reviewers prefer short informal explanation that allows them to see why the result is true. A formal proof will not usually add much to it.

The same applies to programs. If providing the full source code will not help convince the reviewer about the correctness of the paper, then why waste resources (time/money/pages/...) to do so?

On the other hand, sometimes the software resulting from the paper is of primary interest. Having the code is helpful in verifying the claims. E.g. you claim you have a faster algorithm for SAT. Then it is helpful to provide the code. In such cases authors provide their code.

But does it need to be inside the paper? Of course not! There are better ways to provide it, e.g. having a link in the paper to an online copy (on their website or a public repository like github). Why would one prefer to include a code with thousands of lines inside a document which is supposed to be read by humans?

This is a view from Computer Science/Theoretical Computer Science/Mathematics.

Ask yourself: who is the target audience of an academic paper?

It is not end-users. It is reviewers! Do reviewers want code? Depends on the situation. Sometimes they do. Often they don't.

Think about this: why mathematicians don't provide formal proofs but use informal arguments? 

It is costs vs. benefits. Providing a formally verified proof is possible but usually needs too much work, work that authors are not trained for and don't have much experience with. On the other hand, what do authors gain from it? Does it help convincing the reviewers about the correctness of the results? No, usually reviewers prefer short informal explanation that allows them to understand and see why the result is true. A formal proof usually will not help much. There are people who don't like computer-assisted proofs which cannot be verified and understood directly by humans.

The same costs vs. benefits thinking applies to programs. If providing code will not help convince the reviewer about the correctness of the paper, then why waste resources (time/money/pages/...) to do so?

On the other hand, sometimes the software resulting from the paper is of primary interest. Having the code is helpful in verifying the claims. E.g. you claim you have a faster algorithm for SAT. Then it is helpful to provide the code. In such cases authors provide their code.

But does it need to be inside the paper? Of course not! There are better ways to provide it, e.g. having a link in the paper to an online copy (on their website or a public repository like github). Why would one prefer to include a code with thousands of lines inside a document which is supposed to be read by humans?

Source Link
Kaveh
  • 3.6k
  • 1
  • 15
  • 15

This is a view from Computer Science/Theoretical Computer Science/Mathematics.

Ask yourself: who is the audience of an academic paper? It is not end-users. It is the reviewers! Do the reviewers want code? Depends on the situation.

Why mathematicians don't provide formal proofs but use informal arguments? It is a cost vs. benefit analysis. Providing a formally verified proof is possible but usually too much work. On the other hand what does the author gain from it? Does it help convincing the reviewers more convinced that the result is correct? No, usually reviewers prefer short informal explanation that allows them to see why the result is true. A formal proof will not usually add much to it.

The same applies to programs. If providing the full source code will not help convince the reviewer about the correctness of the paper, then why waste resources (time/money/pages/...) to do so?

On the other hand, sometimes the software resulting from the paper is of primary interest. Having the code is helpful in verifying the claims. E.g. you claim you have a faster algorithm for SAT. Then it is helpful to provide the code. In such cases authors provide their code.

But does it need to be inside the paper? Of course not! There are better ways to provide it, e.g. having a link in the paper to an online copy (on their website or a public repository like github). Why would one prefer to include a code with thousands of lines inside a document which is supposed to be read by humans?