# Evolution of “Hello World!”

This contest is officially over, the winner is jimmy23013. Congratulations!

The challenge is to make a program that prints Hello World! to stdout. The catch is that your program must have a Levenshtein distance of 7 or less from the program in the answer submitted before yours.

# How This Will Work

Below I have already submitted the first answer using Python: print("Hello World!").

The next person to answer must modify the string print("Hello World!") with up to 7 single character insertions, deletions, or substitutions so that when it is run in any language that hasn't been used so far (only Python in this case) the output is still Hello World!.

For example the second answerer might use 1 substitution (r -> u), 2 deletions (in), and 1 insertion (s) to make the string puts("Hello World!") which prints Hello World! when run in Ruby.

The third person to answer must do the same thing in a new language, but using the program of the second person's answer (e.g. puts("Hello World!")) as their starting point. The fourth answer will be in relation to the third answer and so on.

This will continue on until everyone get stuck because there is no new language the last answer's program can be made to run in by only changing 7 characters. The communal goal is to see how long we can keep this up, so try not to make any obscure or unwarranted character edits (this is not a requirement however).

# Formatting

#Answer N - [language]

[code]

[notes, explanation, observations, whatever]


Where N is the answer number (increases incrementally, N = 1, 2, 3,...).

You do not have to tell which exact characters were changed. Just make sure the Levenshtein distance is from 0 to 7.

# Rules

There should never be two answers with the same N. If two people happen to simultaneously answer for some N, the one who answered later (even if it's a few seconds difference) should graciously delete their answer.

Furthermore...

• A user may only submit one answer per 8 hour period. i.e. Each of your answers must be at least 8 hours apart. (This is to prevent users from constantly watching the question and answering as much as possible.)
• A user may not submit two answers in a row. (e.g. since I submitted answer 1 I can't do answer 2, but I could do 3.)
• Each answer must be in a different programming language.
• Different versions of the same language count as the same language.
• Languages count as distinct if they are traditionally called by two different names. (There may be some ambiguities here but don't let that ruin the contest.)
• You may only use tabs, newlines, and printable ASCII. (Newlines count as one character.)
• The output should only be Hello World! and no other characters (a leading/trailing newline is not an issue).
• If your language doesn't has stdout use whatever is commonly used for quickly outputting text (e.g. console.log or alert in JavaScript).

Don't edit answers unless absolutely necessary.

# Scoring

Once things settle down, the user who submits the most (valid) answers wins. Ties go to the user with the most cumulative up-votes.

(user must have at least 2 valid answers)

### Languages used so far:

(Feel free to edit these lists if they are incorrect or out of date.)

This question works best when you sort by oldest.

NOTE: This is a trial question for a new challenge type I have in mind where each answer depends on the last and increases in difficulty. Come discuss it with us in the chatroom for this question or in meta.

• "Sort by oldest" is useful here. – xnor Oct 27 '14 at 6:39
• chatroom for discussion on this question – Justin Oct 27 '14 at 7:04
• @Mew HQ9+ prints the wrong message. But this one... esolangs.org/wiki/Huby – Sp3000 Oct 27 '14 at 13:55
• Maybe this can be interesting : migl.io/projects/hw. This list automatically the answers and display their life time. – Michael M. Oct 27 '14 at 15:00
• @gerrit Cause I could really use 350 more answer notifications... – Calvin's Hobbies Nov 4 '14 at 1:39

%;dnl<vsh  o[.]c;cat;#&&alert" ">w "
Hello World!\bye";dnl</vsh>


• I'm not quite convinced whether this is valid, as the OP said you can use another output format if the language doesn't have stdout. Technically, there's \typeout in TeX (no pun intended). – nyuszika7h Oct 29 '14 at 13:19
• Anyway, it's probably too late now, not worth breaking the chain. – nyuszika7h Oct 29 '14 at 13:24
• @nyuszika7h: At least my version of TeX (3.1415926 (TeX Live 2014/dev)) doesn't seem to have \typeout. It works in LaTeX, which came with the same package. – Dennis Oct 29 '14 at 13:31
• It might be LaTeX-specific then, I didn't know. – nyuszika7h Oct 29 '14 at 13:33

#%# %;dnl<vsh  o[.]c;cat;#&&alert" ">w ".in(
print "Hello World!" #%!#bye";dnl</vsh>


;#%# %;dnl<vsh  o[.]c;cat;#&&alert" ">w ".in
( print "Hello World!") ;%!#bye";dnl</vsh>~


# Answer 81 - Microsoft Batch

:?;#[.]c;cat;#&&alert"  "
@echo Hello World!
:;#";#bye;dnl</vsh>


Tested in Windows 7.

%#[]([.]c;main()
{Show 'Hello World!'}
%#[;]:;#bye;dnl</>


• Let's keep up the flow and continue aiming for C – Optimizer Oct 29 '14 at 14:01

//#{//-##[][/]#i--#main(){println(;\#//sel/.*}}
print("Hello World!")
//#;//"-##[;]#bye</>%


• I have a good one derived from answer 121 but... – jimmy23013 Oct 31 '14 at 20:41
• Please continue the flow towards Java only. – Optimizer Nov 1 '14 at 5:27
• @Optimizer But only if I can find more languages... – jimmy23013 Nov 1 '14 at 5:33
• @Optimizer While I think collusion to make matters more "fun" is an idea among those who want to, the challenge isn't to get to Java (a language people already know) but to introduce a wide variety of ideas and have fun. Moreover, that's not how evolution works...and although I like to argue on the merits of intelligent design, Java is not that (in my book). – HostileFork says dont trust SE Nov 1 '14 at 5:48
• @Dr.Rebmu - Challenge is not to get wide variety of languages. But to tackle the fact that things will start becoming more and more complex. Amongst that complexity, getting a language which requires so much syntax is awesomeness. – Optimizer Nov 1 '14 at 5:50

//#{//-##[][/ void main(){println(;\#//sel/.*}}