Quora runs the question, that by now has plenty of awesome answers. But this one is my favorite so far:
The ‘true’ program in Unix from the 1970s was an empty file. The shell interpreted that as a shell script which ran and resulted in no error status, so the result was zero. Zero is the shell exit code value that represents ‘success’ or ‘true’ within if and while clauses.
So, no program can be shorter than that. And it was entirely effective at meeting its specification.
False was much longer, being
exit 1
Once lawers got in, both programs were sullied with plenty of copyrights. BSD also eventually established a format for identifying shell scripts explicitly, and those codes got added to the file too. Eventually, ‘true’ stretched to hundreds of bytes of copyrights on top of the shell script format intro code. Now, annoyingly, Linux and Mac OS have made it a compiled binary program. In Ubuntu, it is a 22K binary with an 18K code size. Ugh.
At least writing a correct C program for true can be very short. It is one of the few C programs that should require no #include files, and can be simply:
int main(void){return 0;}
Of course make sure to add lots of copyright notices.