1st Annual 100 Line-of-Code Programming Language Competition Rules
The competition is open to entries beginning at 0:00 UTC on May 30, 2017. Since that was more than an hour ago, it will have to begin when you first read about it.
1. The deadline is 0:00 UTC June 30, 2017. If your calendar says June 30, the contest is probably already closed.
This competition is just for fun (perhaps some year prizes will be part of the contest, that would be cool) and winners will likely be promoted (no details, think of something modest) or at the very least have one more thing to brag about.
The rules are strict so people competing know what to expect.
2. All qualified entries will be implemented in a language that existed prior to May 30, 2017. Otherwise you could be really clever and create two languages with a 100-loc interface to whatever. If you intend to make a larger API that useful for creating other APIs, great-- publish it, and use it next year.
-- The language implementation should be in a single plaintext source file. If for some reason you require an exception to this part of the rule, please submit a request to me by PM, prior to June 14. Reasonable exceptions can be granted.
-- If you do not wish to post your entry to this subforum, please submit it to a timestamped forum that existed prior to May 30, 2017... and link to the entry on this subforum.
-- IF THESE RULES ARE POSTED ON ANOTHER FORUM: please first check the version posted here at:
-- If you are replying to these rules posted on another forum, at least ensure that those rules are linked to on this official forum:
"Post Competition Entries Here" so that your entry can be counted.
-- Please do not edit your timestamped entry. If you wish to edit your entry please append it to the same thread.
3. All qualified entries will be licensed under:
* a gpl-compatible license in this list:
* and/or one of the osi-approved licenses on this page under the heading "popular licenses"
* and/or the expat license included after the next line:
All qualified entries will include source code, and a commented line in the program with the string "license: " followed by a URL to one of the licenses specified in this rule. Alternatively you may include the text of the following license as comments in your program:
Copyright © 2017 your-name-goes-here
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4. All qualified entries will be exactly 100 LOC or fewer:
5. This means you can have up to 99 "newlines" whether your operating system or editor uses CR+LF, LF, or the obsolete CR as its newline. LF will count as 1 newline; CR+LF (used consecutively, without characters in between them) will count as 1 newline, no worries.
6. Any line or lines can be more than 255 characters in length; however, all qualified entries will be no more than 25500 characters. Whitespace counts, except leading at the top and trailing at the bottom of the program.
LICENSE COMMENTS WILL NOT COUNT towards this limit. (But other comments and whitespace will.)
7. (Perhaps the most interesting rule of all...)
Qualified entries do not have to be 100% original.
All qualified entries will provide credit and urls to any other works they use or adapt code from.
All qualified entries will be original, *or* based on works license-compatible with the license used for the entry.
All qualified entries will NOT be based on works from other authors entries to *this years* competition. In other words, if this were the 2nd annual competition instead of the 1st, you could base your entry from the 1st years entries but not the 2nd years entries. Since this is the 1st annual competition, you cannot base your entry on any other entry (except your own and works not yet entered.)
Just to clarify though: suppose the "Dragon Book" includes a license-compatible entry on page 70. In that case, 5 different people could base their entry on the program on that page. But they would all have to base it on that page; they couldnt base it on each others entries. (This will make judging originality and qualification more fun.) Either way, you get up to 15 points for originality.
8. Axes will be rated from 1 to 5 on the following criteria:
Originality * 3: This is the originality of the implementation foremost. Bonuses may be awarded for a really unique language.
Simplicity * 2: This is how approachable the language (or implementation) is to a beginner. You get points for simplicity, even though you may getting more points in other areas may complicate the language. This score will be at tradeoff for some, a boon for others.
Brevity * 2: Not at all the same as simplicity. Literally, shorter programs score higher. Probably based on actual number of characters or lines; to be determined. Criteria used for this score will be released when the contest closes.
Features * 2: This is a vague-sounding rating on "features" of the language. Like the other scores, it is possible to get a 1, 2, 3, 4 or 5 on this score, which is then multiplied (on this score, by 2.)
Documentation * 1: The lowest you can score on this is a 1, so this is a chance to increase your score by including quality documentation. Please make this documentation plaintext; it will not be scored on presentation, only usability.
-- Documentation will count towards the 25000-character, 100 LOC limit if it is not in a separate plaintext file. If it is in a separate plaintext file (which is not called by the language implementation) it will not count towards the limit.
-- Please limit this separate plaintext documentation to another 25000 characters, and consider releasing it under a GPL-compatible license (not required.)
(1 to 5) * 3 + (1 to 5) * 2 + (1 to 5) * 2 + (1 to 5) * 2 + (1 to 5) = minimum possible score of 10, maximum possible score of 50.
In the unlikely event that more than one person gets the highest score, more than one person will win.
Rule changes and suggestions are welcome, but would not have any effect on this years competition. Criteria / Rules may vary from year to year.
9. Apart from edits, multiple entries are allowed, at a potential cost-- judges are not required to review more than one entry from the same person.