Freeware (not to be confused with free software) is programming that is offered at no cost and is a common class of small applications available for downloading and use in most operating systems. Because it may be copyrighted, you may or may not be able to reuse it in programming you are developing. The least restrictive “no-cost” programs are uncopyrighted programs that are in the public domain. When reusing public domain software in your own programs, it’s good to know the history of the program so that you can be sure it really is in the public domain.
Free software, a somewhat newer and unrelated concept, is software that can be freely used, modified, and redistributed with only one restriction: any redistributed version of the software must be distributed with the original terms of free use, modification, and distribution (known as copyleft). The definition of free software is stipulated as part of the GNU project and by the Free Software Foundation. Unlike freeware, free software may be distributed for a fee. Freeware is liable to be more limited in capability than free software.