You are not logged in or registered. Please login or register to use the full functionality of this board...
SIGN IN Join Our Community For FREE


Contest Rules
05-30-2017, 12:51 AM
Post: #1
 (Print Post)
Contest Rules
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.

Submissions may be implemented in any language from before this date, implementing any language (including existing languages or parts or combinations of existing languages, such as QBasic + Smallbasic + Javascript) as an interpreter, or compiler which compiles to any language existing prior to this date. Weird compiler/interpreter and/or interpreter/compiler hybrids (comterpreters) are also acceptable.

-- 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:

Code Snippet: [Select]
http://www.thejoyfulprogrammer.com/qb64/forum/forumdisplay.php?fid=521


-- If you are replying to these rules posted on another forum, at least ensure that those rules are linked to on this official forum:

Code Snippet: [Select]
http://www.thejoyfulprogrammer.com/qb64/forum/forumdisplay.php?fid=522
"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:

Code Snippet: [Select]
http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses
* and/or one of the osi-approved licenses on this page under the heading "popular licenses"

Code Snippet: [Select]
https://opensource.org/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.
Find all posts by this user
Like Post
05-30-2017, 09:38 AM
Post: #2
 (Print Post)
RE: Contest Rules
I must react on rules...
I disagree that coder can use hybrid aproach...why?
simply because that is not fer..so no combination if you say before strict-way..right?
So lang must be created in qb,sb js,py or any other but using just one language.
Second and maybe more important ...
NO INCLUDES,NO IMPORT ..do we can agree about that
so no importing external library...
look if i whish i can let say Include "myLang.inc" and that is ..
i create my language in one line of code
so if we remove import/include we will see how powerful are all this scripting
languages like py,ruby,lua,js etc..etc..
heh most of them dont have real string handling so they cannot work with strings
so what would be ?

basicPro forum:
http://basicpro.mipropia.com/smf/index.php
EU Radioboard forum:
http://euradioboard.createmybb3.com/index.php
AurelSoft main site:
http://aurelsoft.ucoz.com
Find all posts by this user
Like Post
05-30-2017, 10:27 AM
Post: #3
 (Print Post)
RE: Contest Rules
Quote:
I must react on rules...

thats good, all suggestions will be considered for next years competition.

Quote:
I disagree that coder can use hybrid aproach...why?
simply because that is not fer..so no combination if you say before strict-way..right?
So lang must be created in qb,sb js,py or any other but using just one language.

i cant think of any reason to limit it to one language.
i doubt many people would try to use more than one.
either way that is not whats meant with "hybrid."


Quote:
NO INCLUDES,NO IMPORT ..do we can agree about that
so no importing external library...

"pure qb" in other words? thats a good idea but its not how freebasic and qb64 work. if we are to be fair, its already 100 line limit.

this is (a little) about showing off, but its also very much about finding out "whats possible." so too many limits dont help.

whats better than saying "you cant do this" is "you get extra points if you do it this way."

so perhaps next year have a points bonus for "no calls to libraries." theres already a points bonus for good documentation Smile


Quote:
look if i whish i can let say Include "myLang.inc" and that is ..
i create my language in one line of code

good point. thats why it says any language you use must exist before may 30, 2017.

otherwise you can just shell "import gnu/linux sudo apt-get install python gpp lua ; cat /usr/bin/* > mylang ; ./mylang -c 'hello world'"

i get what youre saying--

originality counts triple in this, more than any other thing-- its 15 out of 50 points.


Quote:
heh most of them dont have real string handling so they cannot work with strings
so what would be ?

its well off-topic but im very curious what you think "real string handling" is like.
Find all posts by this user
Like Post
05-30-2017, 11:31 AM
Post: #4
 (Print Post)
RE: Contest Rules
I don't know whay you think that my reply is a joke
and i don't like your attitude 'for next year'
You Fig post this ,so i think that you know the knowlege but i am not
sure now.
No is not a joke...
First i know that FreeBasic don't need external libs to create program
so it is possible with FreeBasic to create programming lang without include.
Then no import is not limitation just we can see how language is powerful without import/includes
String handling ..you probably forgot that even C need string.h include ?

basicPro forum:
http://basicpro.mipropia.com/smf/index.php
EU Radioboard forum:
http://euradioboard.createmybb3.com/index.php
AurelSoft main site:
http://aurelsoft.ucoz.com
Find all posts by this user
Like Post
The following 1 user Likes Aurel's post:
figosdev
05-30-2017, 11:57 AM (This post was last modified: 05-30-2017 11:59 AM by STxAxTIC.)
Post: #5
 (Print Post)
RE: Contest Rules
I like the idea of this. I kinda blazed through the rules and the arguments that followed, but the TLDR seems to be "make a language in 100 lines or less and feel free to borrow lightly or heavily from other work". It would be off-color for me to simply #include sxript.h and submit a 5-line answer, so we hope the included libraries don't carry *too* much specificity to the task. Even if I have the rules wrong, I like the idea. Seems fun to try out... if only Father Time will bless me before 2017-06-30... If I write about 3 lines of code per day, I might make it.
Find all posts by this user
Like Post
05-30-2017, 12:25 PM (This post was last modified: 05-30-2017 12:26 PM by figosdev.)
Post: #6
 (Print Post)
RE: Contest Rules
Quote:
It would be off-color for me to simply #include sxript.h and submit a 5-line answer

in order to fully disqualify such a move, a lot of decent solutions could get caught up in the rule. so lets pretend you did and rate it with both fairness and the very qualitative human element:

originality * 3: 2, because there are original elements (though a lot of us would think of something like this) = 6
simplicity * 2: 3, because its right in the middle (its simple but its also a cheap trick) = 6
brevity * 2: 5, because this might as well get a full score, right? = 10
features * 2: 1, because 3 is in the middle and some kind of penalty is certainly called for = 2
documentation * 1: up to 5, depending on documentation...

6 + 6 + 10 + 2 + 1 to 5 =

25 to 29 (out of 50) depending on the documentation (youd *really* have to be stellar to get more than a 4 for documenting this.) is 28 too much? probably. better to judge the other entries and simply rate this below them.

im curious how well you would be willing to document that when you could probably score higher with a real entry. in any case, its not an affront; the rules go against creating a language like sxript only for this purpose, but (so far) not if you do it this year and use it the next.

a 5-line interface to an api is still a 5-line interface to an api. it could never rightfully win if someone else did something a lot cooler and more in the spirit of the thing.
Find all posts by this user
Like Post
05-30-2017, 12:33 PM (This post was last modified: 05-30-2017 12:40 PM by figosdev.)
Post: #7
 (Print Post)
RE: Contest Rules
Quote:
I don't know whay you think that my reply is a joke

i dont, i took it seriously.

Quote:
and i don't like your attitude 'for next year'

not attitude, fairness-- the rules for this year are stuck that way; i talked to walt about that before they were even posted.

Quote:
No is not a joke...

never thought you were kidding.

Quote:
First i know that FreeBasic don't need external libs to create program

that is incorrect. it uses c libs. perhaps we have a miscommunication, though it certainly has external libs. this is about what style of binding it uses then?

Quote:
so it is possible with FreeBasic to create programming lang without include.

so it is about the style of bindings.

i dont think its a joke, i think its too arbitrary a line to draw.

Quote:
String handling ..you probably forgot that even C need string.h include ?

doesnt freebasic emit that very sort of thing? i mean im not trying to disqualify freebasic at all, ive asked someone if they would post the rules to the fb forum.

dont worry about the rules if they arent holding you back, just post something. or dont. id rather you did, but its more important to participate (i think) than to quibble over whether the rules restrict other people enough.

someone is going to do the best job of this competition-- if the rules are any good at all, they will allow that person to score well, or hopefully even the highest. thats the idea. but they cant score anything if they dont enter.

i cant score anything, but im working on an automatically-disqualified entry just for fun. it gets an official 0 score but thats alright, its fair then.
Find all posts by this user
Like Post
05-30-2017, 03:22 PM (This post was last modified: 05-30-2017 04:11 PM by Waltersmind.)
Post: #8
 (Print Post)
RE: Contest Rules
ALL FUTURE COMMENTS, SUGGESTIONS, OR DEBATES SHOULD BE POSTED ON THE "RULES & COMPETITION DISCUSSIONS" THREAD.

My goal is to bring joy, excitement, fun and education to all computer programming hobbyists, tinkerers, and amateurs. I also enjoy helping and working with those who aspire at becoming masters of their craft.
Find all posts by this user
Like Post



Forum Jump:


User(s) browsing this thread: 1 Guest(s)




QB64 Member Project - ARB Checkers
QB64 Member Project - Kobolts Monopoly
QB64 Member Project - 9 Board
QB64 Member Project - Martin Fractals version two
QB64 Member Project - RGB Color Wheel
QB64 Member Project - Martin Fractals version four
QB64 Member Project - Rubix's Magic
QB64 Member Project - STxAxTIC 3D World
QB64 Member Project - OpenGL Triangles
QB64 Member Project - Full Color LED Sign
QB64 Member Project - Touche
QB64 Member Project - Algeria Weather
QB64 Member Project - Kings Court
QB64 Member Project - Overboard
QB64 Member Project - Red Scrolling LED Sign
QB64 Member Project - Bowditch curve
QB64 Member Project - Qubic
QB64 Member Project - MAPTRIANGLE
QB64 Member Project - Input
QB64 Member Project - Pivot version two
QB64 Member Project - Sabotage
QB64 Member Project - Spinning Color Wheel
QB64 Member Project - Basic Dithering
QB64 Member Project - Martin Fractals version one
QB64 Member Project - Exit
QB64 Member Project - Color Rotating Text
QB64 Member Project - Martin Fractals version three
QB64 Member Project - Score 4
QB64 Member Project - Connect Four
QB64 Member Project - Othello
QB64 Member Project - Domain
QB64 Member Project - Inside Moves
QB64 Member Project - Isolation
QB64 Member Project - Pivet version one
QB64 Member Project - Swirl
QB64 Member Project - Dreamy Clock
QB64 Member Project - Splatter
QB64 Member Project - Kings Valley verion one
QB64 Member Project - Blokus
QB64 Member Project - Rotating Background
QB64 Member Project - Kings Vallery version two
QB64 Member Project - Spiro Roses
QB64 Member Project - Foursight
QB64 Member Project - Point Blank
QB64 Member Project - Quarto
QB64 Member Project - Amazon
QB64 Member Project - Line Thickness
QB64 Member Project - Dakapo
QB64 Member Project - Color Triangles