## Evolution of "Hello World!"

228

56

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.

@Calvin'sHobbies I think user23013 has more answers, so he is a clear winner here. You can give the bounty to him if you can do me a favor and help me in getting the Populist badge :) Simply accept any of his answer with upvotes > 10 but < 18 – Optimizer – 2015-01-05T23:22:17.183

@Optimizer Very Well, seems like a fair request. – Calvin's Hobbies – 2015-01-06T04:33:36.400

There's a very minor typo- 'Guacamolea' – Matthew Roh – 2017-03-19T15:43:33.883

2I can already see it's going to be really difficult to get a Whitespace answer in here. – Tal – 2014-10-27T06:29:55.307

The only problem I can see with this type of challenge is that it might encourage incremental answer - post an incomplete answer, then edit it to be a proper answer shortly after... – Sp3000 – 2014-10-27T06:39:05.773

61"Sort by oldest" is useful here. – xnor – 2014-10-27T06:39:15.287

@Sp3000 True, but I think that would fall under the "standard loophole" category. – Calvin's Hobbies – 2014-10-27T06:40:38.823

I'm not convinced you're going to get anything interesting here. It's hard to do anything except your language's print command followed by "Hello world." Maybe silly changes like "Hello"+" world". But we'll see... – xnor – 2014-10-27T06:40:51.723

How will you know that things got settled down ? :P – Optimizer – 2014-10-27T06:42:33.417

@Quincunx If someone has posted after you already, then no. – Optimizer – 2014-10-27T06:43:08.077

@Quincunx You can but if it is valid it would be better if you didn't. – Calvin's Hobbies – 2014-10-27T06:43:24.370

@xnor That's quite possible. I was trying to make this a lot more interesting but I couldn't think of anything good. I believe this kind challenge could have potential if it asked for the right things. – Calvin's Hobbies – 2014-10-27T06:48:28.127

@Optimizer See? Things have already settled...for 8 hours at least :P – Calvin's Hobbies – 2014-10-27T06:51:55.680

@Calvin'sHobbies - More new users can still answer. Specially the main ones are still sleeping ;) – Optimizer – 2014-10-27T06:52:51.200

8chatroom for discussion on this question – Justin – 2014-10-27T07:04:19.013

4I was hoping to do some HQ9+ here, but... That may be hard. – Kaz Wolfe – 2014-10-27T09:08:49.723

Does changing capitalization increase the distance? – Etheryte – 2014-10-27T09:42:12.237

1@Nit Yes, H and h are still different characters. – Calvin's Hobbies – 2014-10-27T09:43:23.440

Thanks, @Calvin'sHobbies. The answers are coming in so fast that it's hard to get one in. – Etheryte – 2014-10-27T09:57:24.213

5

@Mew HQ9+ prints the wrong message. But this one... http://esolangs.org/wiki/Huby

– Sp3000 – 2014-10-27T13:55:56.400

17

Maybe this can be interesting : http://migl.io/projects/hw/. This list automatically the answers and display their life time.

– Michael M. – 2014-10-27T15:00:30.373

@Mig that's neat. but it seems there is a problem with the times given: one would assume they would be increasing (from one answer to the next), or am I wrong? – plannapus – 2014-10-27T15:14:51.240

@plannapus, this is the time elapsed until a next answer is posted. – Michael M. – 2014-10-27T15:30:31.270

@Mig yes I understood that, but then Next Answer = previous answer + 8hours, no? – plannapus – 2014-10-27T15:31:06.903

Does it have to be stdout? That pretty much makes a TeX answer impossible. :( – nyuszika7h – 2014-10-27T18:42:44.577

TeX does have stdout via the \typeout macro, but the cost is too big. – nyuszika7h – 2014-10-27T19:31:30.083

@nyuszika7h Well, it's only slightly too big. With the right previous answer it could work. – Calvin's Hobbies – 2014-10-27T19:34:26.560

What do you think about the idea of allowing new answers per user once every n answers in addition to the time limit? Not sure how that would work out, just throwing the idea out there. One downside is that it would seriously handicap people who find the question later, however it might prove for a more interesting competition once there's already quite a few answers. – Etheryte – 2014-10-27T20:14:58.893

@Nit That might work in a future similar question but I'm not changing anything now since the current rules are too well established. Come to chat if you want to discuss more. Comments aren't for extended discussion.

– Calvin's Hobbies – 2014-10-27T20:25:42.663

Do multibyte chars count as one or two? – Etheryte – 2014-10-28T02:07:25.533

3@Nit You can't use them. See rules about printable ASCII. – Calvin's Hobbies – 2014-10-28T02:09:23.633

3C, Java, etc. usually requires some huge prologue #include <stdio.h> static final void Main() etc. Are these required, or could just the print statement (printf / System.out.println) be needed? – kennytm – 2014-10-28T13:16:05.147

@KennyTM So far, the comments, chat, and answers seem to point to requiring a full program. – Ypnypn – 2014-10-28T15:35:20.697

@KennyTM #include <stdio.h> isn't required if you can find at least one compiler which can compile without this line. – jimmy23013 – 2014-10-28T17:06:15.410

@Ypnypn I don't think the VHDL answer is a full program – Tymric – 2014-10-28T17:14:54.653

this might be useful – archaephyrryx – 2014-10-29T20:24:42.427

1I think that if anyone has less than 7 distance in their solution, they should dedicate the remaining swaps/removes/adds to cleaning up the code so that it is more portable, just as a public service. – archaephyrryx – 2014-10-30T11:05:41.517

It would be amazing if we could steer this towards the Malbolge "Hello World!" program, which luckily prints that exact text. – archaephyrryx – 2014-10-30T11:24:00.417

5@archaephyrryx Or, alternatively, Java - which would be just as hard. – Sp3000 – 2014-10-30T11:36:40.477

1So now it has come to this that I am unable to answer anymore ;) – Optimizer – 2014-10-31T10:11:56.580

@Optimizer Have you been answering every 8 hours? Wow! – Calvin's Hobbies – 2014-10-31T10:20:12.203

@Mig migl.io/projects/hw is showing only 100 records. Can you fix that? – jimmy23013 – 2014-10-31T12:14:23.510

@user23013, fixed – Michael M. – 2014-10-31T13:14:04.113

1Kinda sucks I can't submit the JRuby answer. It's the same as the Ruby one. At the very end you should display a list of the journey this "Hello World" challenge has taken....and then write a script that implements all of the answers, make a video, and post it on youtube. – Luminous – 2014-10-31T15:07:39.777

I know it's Levenshtein distance, but I keep memorising it as Leiningen distance. – None – 2014-11-03T21:25:57.807

If we reach 500 answers, this question becomes community wiki. Let's go for it!

– gerrit – 2014-11-04T00:06:45.163

@gerrit Actually, auto-CW has been removed entirely. Still, 500 wouldn't be a bad milestone ;) – Doorknob – 2014-11-04T01:34:10.810

6@gerrit Cause I could really use 350 more answer notifications... – Calvin's Hobbies – 2014-11-04T01:39:25.910

2@Sp3000 Java is done. ✓ Now for BF and Malbolge … – Christopher Creutzig – 2014-11-05T07:29:34.547

1@Sp3000 I read the spec of Malbolge and found it much harder, since it doesn't have a comment character. It is probably possible if the previous one is WhiteSpace. – jimmy23013 – 2014-11-05T09:36:44.397

Does pseudocode count as a language? – Chase Roberts – 2014-11-13T18:11:09.430

@ChaseRoberts Of course not. – Calvin's Hobbies – 2014-11-13T20:01:34.710

32

# Answer 85 - GDB (GNU Debugger)

#[]([.]c;main()&alert"  "
echo Hello World!
#[;]:;#bye;dnl</vsh>


I think this can also be qualified as a programming language. It has even if and while commands.

echo is another built in command in GDB.

To run this code:

gdb --batch -x file


Accepting this answer instead of giving Optimizer bounty as per his request. user23013 may be considered the official winner! – Calvin's Hobbies – 2015-01-06T04:35:40.320

@Calvin'sHobbies ...Well, why the bounty? – jimmy23013 – 2015-01-06T11:18:55.877

See the update at the top of the question. I had already paid for the bounty so I gave it to you. I hope you don't mind :P – Calvin's Hobbies – 2015-01-06T12:55:39.473

@Calvin'sHobbies Then I set a +100 bounty for Optimizer. (And I guess you can only start at least +400 bounty now...) – jimmy23013 – 2015-01-07T14:07:09.930

You guys are too generous :) even though I was being a bit of selfish there :P – Optimizer – 2015-01-07T14:08:41.077

@Optimizer I didn't find any better uses of reps after being 4k+... – jimmy23013 – 2015-01-07T14:29:03.153

Any link to GDB ? – Optimizer – 2014-10-29T11:10:09.760

1

@Optimizer http://www.gnu.org/software/gdb/ The Gnu Debugger.

– jimmy23013 – 2014-10-29T11:11:28.137

Its like running java project in Eclipse rather than Netbeans – Optimizer – 2014-10-29T11:15:50.060

"The program being debugged can be written in Ada, C, C++, Objective-C, Pascal (and many other languages)" ... It's not a language in and of itself – None – 2014-10-29T11:19:43.667

@Stacey echo is a command for debugging, which is neither Ada, C or C++, etc. – jimmy23013 – 2014-10-29T11:21:02.963

@user23013 echo is a function in the language similar to printf in C. Please delete this question as other answers are already coming in. – Optimizer – 2014-10-29T11:22:29.290

3

This answer is fine. GDB has a command language which is used to execute specific debug commands. This is done by running GDB in batch mode and specifying the command file using --batch -x <file>. This is a legit language. See here: https://sourceware.org/gdb/onlinedocs/gdb/Mode-Options.html (-batch flag)

– None – 2014-10-29T11:25:28.203

@Stacey Sorry I didn't see that edit. – jimmy23013 – 2014-10-29T11:42:32.777

54

print("Hello World!")


There's got to be dozens of languages this could morph into.

4If 4 more people upvote tomsmeding's comment and 2 more upvote nicael's earlier comment, then the pattern of votes will be 100, 80, 20, 30, 20, 5. (Not including this comment :-p) – gcampbell – 2016-05-28T14:03:58.967

119Why is this being up-voted but not the question? I guarantee you the question was harder to write ;) – Calvin's Hobbies – 2014-10-27T07:13:32.833

26@Calvin'sHobbies Answer upvotes are worth more, you shouldn't complain :-) – Angew is no longer proud of SO – 2014-10-27T12:20:18.857

33@tom Why is your comment being up-voted more than this answer? – nicael – 2014-10-30T17:39:09.503

27^ All of them regretting that there are no rep awarded for comment upvotes! – Optimizer – 2014-11-01T21:26:42.353

8@Opt oh... At least I can get Pundit badge for my 5+ score comments :D – nicael – 2014-11-03T19:00:51.667

47

What? No HTML ??

<echo o[.]c;cat<<;#&&alert" ">Hello World!</vsh

Distance from Answer 58 : 6

Voodoo Magic ? Nah. Here is how it works:

You can have any arbitrary tag in HTML, so the first part <echo o[.]c;cat<<;#&&alert" "> is an echo tag, which now becomes a blank tag with no CSS applied by default by the browser.

The o[.]c;cat<<;#&&alert" " part is actually two properties set on that tag separated by space. So the first property has the key o[.]c;cat<<;#&&alert" and second key is " and both the values are blank.

Second part is just plain text Hello World! which is the text contents of the echo tag.

Next up, HTML tries to find the closing echo tag, but instead, finds a closing vsh tag. It then ignores the closing vsh tag (i.e. </vsh) and auto closes the echo tag.

5

@Optimizer Required reading for people recommending w3schools. ;)

– Martin Ender – 2014-12-18T15:00:07.593

1Next up, HTML tries to find the closing echo tag, but instead, finds a closing vsh tag. It then ignores the closing vsh tag (i.e. </vsh) and auto closes the echo tag. This is just beautiful writing. – Amory – 2014-12-18T19:16:19.680

This isn't valid HTML for any version of HTML. Your browser may try to handle it anyway, because unfortunately that's what browsers do, but neither the SGML-based versions nor the latest version allow arbitrary characters in attribute names. – Peter Taylor – 2015-01-17T15:44:25.163

@PeterTaylor Thank you Peter for the down vote. I definitely deserved it for properly following the spec of the question and using certain characters which should have been no-ops as per HTML5 spec but because of browser's wrong implementation, end up being empty attributes. – Optimizer – 2015-01-17T16:49:50.397

I'd like to see a reference for "which should have been no-ops as per HTML5 spec", because by a plain reading what you've posted isn't HTML.

– Peter Taylor – 2015-01-17T18:42:20.490

@PeterTaylor I think you are not reading properly. That spec only tells about what is considered as an attribute name and value . It nowhere says treat anything not following this spec as invalid HTML. Sure that the two attributes should not have been attributes but that does not make it an invalid echo tag. In fact. The whole syntax spec for any attribute/custom element/standard HTML elements only says what is regarded as a valid (attribute|custom element|standard HTML element). [cont] – Optimizer – 2015-01-17T19:02:45.777

[cont] The W3C and whatwg spec say very little about syntax errors and parse errors but whatever they say simply suggest to ignore errors. Some links can be found here: 1 2 3

– Optimizer – 2015-01-17T19:03:18.923

Also, I am done discussing this with you. If this is invalid HTML, then browsers should not have rendered it. You can raise bugs in bugzilla.mozilla.org , https://bugs.webkit.org/ and https://code.google.com/p/chromium/issues/list .

– Optimizer – 2015-01-17T19:07:29.167

1

Actually it does say that anything not following the spec should be treated as invalid HTML when it says "Documents must consist of the following parts, in the given order" and then defines the grammar for those parts. So if you're claiming that this is HTML5 then the first error is the lack of doctype. And the strings not being attribute names does make it an invalid echo tag: see the continued use of the word must. Browsers will render any string of chars as best they can: that doesn't mean that any string of chars is HTML.

– Peter Taylor – 2015-01-17T19:30:47.677

@PeterTaylor Again, whatever are you linking is only for parsing the correct things out of the HTML. It still does not say anything about what to do in case of errors, for instance - "5. If there are extra characters inside of the opening tag body which do not belong to either of the attribute name, attribute value or tag name, treat the tag as invalid HTML and do not render it to the user". Since nothing like that is specified, the only reference of error handling are the 3 links I have provided earlier. Finally, about missing doctype 1st note.

– Optimizer – 2015-01-17T19:49:04.880

@PeterTaylor quoting a line from spec and changing its meaning. Wow. "Documents must consist of the following parts, in the given order" Still does not say anything about incorrect additional things in between and how to handle them. The three links I have provided clearly call out how to handle many error situations. – Optimizer – 2015-01-17T19:50:58.643

2The very fact that they're called errors should be all you need to know that they're invalid. The note you link to about the missing doctype says that the doctype is required and explains why: how on Earth can you claim that it justifies not including the doctype? – Peter Taylor – 2015-01-17T21:41:04.060

If a doctype is required to prevent the imminent destruction of the universe, perhaps we should amend our hello world?

– gcampbell – 2016-05-28T14:15:17.380

1i have never seen such type of html. any link to learn this html? – MAKZ – 2014-10-28T07:28:50.377

2

@MAKZ HTML is pretty free and loose. You can have unmatched opening closing tags and what not. XHTML is pretty strict. w3schools is a good starting point.

– Optimizer – 2014-10-28T07:30:57.377

1but what does <echo o[.]c;cat<<;#&&alert" "> mean ? – MAKZ – 2014-10-28T07:31:26.227

is it a dummy tag ? – MAKZ – 2014-10-28T07:31:53.330

3You can have any tag in HTML, so echo is a normal tag. o[.]c;cat<<;#&&alert" is a property on that tag and the last " is another property on that tag. You can see this using Inspector developer tool too. – Optimizer – 2014-10-28T07:38:41.910

yeah got it. very clever . +1 – MAKZ – 2014-10-28T07:44:19.403

3Pretty dang clever. Never would have thought of it. – RubberDuck – 2014-10-28T13:33:52.380

15I think this is what happens when you read standards documents at 3 am while on peyote. – David Conrad – 2014-10-31T17:13:56.240

41

//[]([.]c;
main()    {
puts("Hello World!");}
//#[;]#bye;dnl</>


39Bloody finally. – Etheryte – 2014-10-29T20:18:52.827

@Optimizer I didn't get any kind of runtime error using gcc 4.7.2 on my computer. – archaephyrryx – 2014-10-29T20:21:43.500

Where do the extra spaces in the third line come from? Is it possible that that is a mistake? – Emil – 2014-10-29T20:26:04.060

@Optimizer It printed Hello World! but returned exit code 13. I think that's also what happened on ideone. – jimmy23013 – 2014-10-29T20:26:06.677

1@Emil Just vim auto-indentation; OP's call on what to do about this (if it progresses too far to fix, you can just pretend that it's a tab and make the distance 7) – archaephyrryx – 2014-10-29T20:31:25.197

1@user23013 Because the program doesn't specify int as the return type for main and doesn't actually return an exit code; therefore, the return code is technically undefined behavior, hence the 13. – Qix - MONICA WAS MISTREATED – 2014-11-05T00:33:44.133

Not that I am complaining, but why is this the third most-highly rated answer ?_? – archaephyrryx – 2014-11-05T19:39:08.927

1Some of the previous answers (starting from 85 GDB) did extra work to prepare for C. – kernigh – 2014-11-21T20:27:32.120

30

//#
class jux{public static void main(String[] h){System.out.println(//;\#//Hello*}}print,
"Hello World!");}}//print"putsx;//-##[;]#bye</>%"


Distance from Answer 150 : 7

Try it here

(Thanks to Christopher Creutzig for being such a sport :) )

3Now for the C# answer! – rodolphito – 2014-11-05T01:31:00.850

29

VISIBLE "Hello World!"


Distance : 6

Looks like distance 6 to me - delete p, ut -> VI, tr -> IB, n -> E – isaacg – 2014-10-27T09:58:19.757

1Thanks. I think I copied different code while calculating distance. – Snack – 2014-10-27T09:59:35.393

27

# Answer 10 - GNU dc

[puts "\x48][Hello World!]p


Distance: 6

8Well this is hard. Haha. – Zaenille – 2014-10-27T07:51:32.580

@MarkGabriel Hint: Substring. – jimmy23013 – 2014-10-27T08:10:59.277

24

"Hello World!


This answer is a distance of 6 from the previous answer. Pyth strings do not need a closing quote if they are at the end of a line.

3Darn, I had a good one for the previous. – Justin – 2014-10-27T06:36:35.693

21

#[puts "\x48]
"Hello World!"


A distance of 5.

21

What ?? No Markdown ? :P

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


Try it here

Distance from Answer 82 : 7

e   -> [
:   -> ]
\n  -> (
o H -> o)H
:   -> [
#   -> ]
"   -> :


Voodoo magic ?? Nah!! Here is how it works:

• [text](link) creates a link.

So the first part of the code is

[](#[.]c;cat;#&&alert"  "
@echo)


Which creates an empty text link with location

#[.]c;cat;#&&alert"  "
@echo

• Next part Hello World! is printed as is

• Then [;]:;#bye;dnl</vsh> creates a reference link for ; which can be used anywhere in the markdown.

Ex:

[Some text][;] // Outputs a link with text "Some text" and url ";#bye;dnl</vsh>"


1

It's getting questionable whether that's a programming language. (Same for HTML actually.)

– Martin Ender – 2014-10-29T10:01:19.573

1Well, If HTML is a language, Markdown is too. Its the same relation between JS and Closure. Also, given this challenge (1 lang per ans), these rules ought to be loosened a bit. – Optimizer – 2014-10-29T10:03:04.697

1As I said, I don't think HTML is a programming language either by our standards. But for the purpose of this particular challenge it's probably fine to loosen those rules (but ideally Calvin's Hobbies should state that). – Martin Ender – 2014-10-29T10:04:34.073

1@MartinBüttner Both HTML and Markdown are at least better than HQ9+ (or Huby). And there are console browsers to convert them to text. – jimmy23013 – 2014-10-29T10:42:12.543

1@user23013 Everything is better than HQ9+, but that doesn't make them programming languages. – Martin Ender – 2014-10-29T10:47:48.403

4Can we have this discussion somewhere else rather than on my answer ? :) – Optimizer – 2014-10-29T10:52:10.240

2Still pretty impressive – Fabinout – 2014-10-31T09:17:00.967

19

print("Hello World!")


Distance = 6

Full circle.

Full circle indeed. – Alex A. – 2015-03-28T05:04:54.157

18

#[puts];
"Hello World!"


Distance of 7. Attempting to clear up some of that mess.

16

# Answer 6 - Befunge 98

<@,kb"Hello World!"


Distance of 5 from the previous answer. There was originally a bug where the k wasn't there; I know it was there when I wrote this program, though. I guess it just didn't make it into this post.

I should have inflated this, but oh well. – Justin – 2014-10-27T06:43:29.367

I'm just going to post answer 7 based on the inflated version... – jimmy23013 – 2014-10-27T06:44:14.610

@user23013 sure – Justin – 2014-10-27T06:44:29.423

@user23013 when you do post it, please edit this back to what you used; but ensure that the a is a b, or this program is invalid... – Justin – 2014-10-27T06:47:50.120

Now I decided to wait longer for some other answers. – jimmy23013 – 2014-10-27T06:49:56.173

@user23013 But if you use the longer version, we might be able to eventually get languages like Java in here! – Justin – 2014-10-27T06:50:33.160

6@Quincunx I can't imagine us ever being able to get up to System.out.println... – Sp3000 – 2014-10-27T06:52:43.220

@Sp3000 I can't imagine getting up to class a{public static void main(String[]a){, but my point is that we might be able to get more interesting answers if we make it bigger. And it would make it harder to post trivial answers if we made it bigger. – Justin – 2014-10-27T06:53:48.037

4@Sp3000 We can firstly write the Java program in a comment. Then turn everything else into a comment. – jimmy23013 – 2014-10-27T06:56:01.593

4I had considered allowing multiple responses per answer so it could branch out like a tree. Then you guys could go on your little Java tangent. That would be way too confusing though... – Calvin's Hobbies – 2014-10-27T07:02:02.393

I think you're missing a k before the , – ninjalj – 2014-11-01T21:09:26.547

@ninjalj Indeed; I have no idea where the k went. It was there at some point in time. However, I managed to fix this without any invalidation of any answer. Thanks for pointing it out. – Justin – 2014-11-01T21:20:16.220

15

"Hello World!"


This is a distance of 7 from the first answer

Try it online here

15

report "Hello World!";


Distance: 6

1wow :) ........ stubborn huh? – MAKZ – 2014-10-27T09:43:26.870

3Haha, I've been waiting for a code golf question that allows me to use an HDL :p – None – 2014-10-27T09:46:34.400

14

 "Hello World!"


Distance: 7

2the W must be capitalized to print "Hello World!". – None – 2014-10-27T10:18:13.857

13

<?="Hello World!"?>


Please note that the string "Hello World!" verbatim, which is obviously distance 0 from answer 2, is a valid PHP program outputting the required string, and explicit print statement is unnecessary. – hijarian – 2014-10-28T11:55:10.400

@hijarian: That's only true for the PHP shell, which makes it invalid for this challenge. – Dennis – 2014-10-28T21:02:22.540

1@Dennis If you write a script helloworld.php, and put the 12 symbols Hello World! in there and then you run this script with php helloworld.php, you'll get Hello World! printed to stdout as PHP treat everything outside of <?php ?> processing instruction as raw text to output. – hijarian – 2014-10-29T04:30:14.520

I have realized that you'll need to remove quotation marks (which makes it Levenstein distance 2) to be fully compliant. – hijarian – 2014-10-29T04:30:35.673

Well, I didn't want to go that way. I could've called it Text if I just put the contents there, so I added the extra PHP syntax.

– PurkkaKoodari – 2014-10-29T06:02:15.493

You don't need the closing ?> – Petah – 2014-10-31T02:28:54.507

4@Petah So? This is not code golf. We are not supposed to make it as short or as easy to continue as possible. – PurkkaKoodari – 2014-10-31T08:04:43.300

@Pietu1998 Haha, well, indeed. Without PHP syntax it's pretty weird to think of the source to actually be the PHP program. :) – hijarian – 2014-11-05T05:46:10.783

13

]trace=:('Hello World!')


Distance = 5 from Answer 27

And J could have been answer 2, by deleting the print and replacing the double with single quotes, ending up with ('Hello World!'). – bcsb1001 – 2014-12-21T17:10:32.197

1] + = + : + ' + ' = 5, right? – None – 2014-10-27T10:37:55.397

3Sure. Missed it being quick... This type of question surely adds a real time feeling to code challenges :P. – jpjacobs – 2014-10-27T10:40:09.627

one of the oddest notations for a language with such a simple name... – CodeManX – 2014-11-05T02:15:37.073

13

## Answer 33 - Extended BF Type III

a#="*#[.>]trac": "@Hello World!


Well, I have not found an interpreter for that extension but the code seems to fit the specs of the language.

a //ignored
#="*# //comment
[.>] //print each character until an empty cell
trac" //ignored
: //move pointer, do not impact result
" //ignored
@ //end of source
Hello World! //Injected in cells before execution


1Just so you know, the above answer is invalid as it has a distance of 8. That should be fixable by removing some spaces though, so you might want to fix yours after the other guy does. – Scimonster – 2014-10-27T12:26:55.720

1It's corrected. My apologies. – RubberDuck – 2014-10-27T12:29:42.457

1My answer is also fixed. – Michael M. – 2014-10-27T12:30:34.487

1I got a neat one lined up for this, can't wait for the 8-hour timer. – Etheryte – 2014-10-27T14:04:47.207

13

#[][.]#i
#main()    {
print("Hello World!");
#[;]#bye;dnl</>


8WOOO. #100! Have +10 rep. – Kaz Wolfe – 2014-10-29T23:04:22.060

12

print"Hello World!"


12

echo Hello World!


This is a distance of 7 from the sixth answer.

1A lame distance zero from here would be Batch.... Quick @RandomUserViewingThisComment, go post it! – Justin – 2014-10-27T06:59:34.007

@Quincunx Distance 1 with the @ character. – jimmy23013 – 2014-10-27T07:01:46.960

@user23013 Good point; I'm very poorly acquainted with Batch.... But it would work in commandline. – Justin – 2014-10-27T07:03:25.080

@Quincunx Or it will print \nX:\Your\Working\Directory>echo Hello World!\nHello World! in a script. Or I should mean \r\n for \n. – jimmy23013 – 2014-10-27T07:08:05.043

@user23013 Oh, that makes sense. – Justin – 2014-10-27T07:11:04.903

12

echo "\x48ello World!"


Distance of 6 from the last answer.

1There's not supposed to be a comma. – feersum – 2014-10-27T07:04:17.280

12

#[put
print("Hello World!")


Distance = 7

8Aaand we're back to the start, good job. – Etheryte – 2014-10-27T09:04:16.187

hi @Timmy, I'm sorry but I had to change my answer from print to cat. – Zaenille – 2014-10-27T09:04:38.037

12

putStrLn "Hello World!"


Distance: 7

@ceasedtoturncounterclockwis data W=World;data H=Hello W; Hello World – Esolanging Fruit – 2017-12-08T04:27:51.557

4Am I the only one who thinks Haskell's version of print is dafter than LOLCODE's? – Pharap – 2014-10-28T08:30:43.270

5@Pharap: Haskell's version of print is called print, and it does something rather un-daft: print some value, of any¹ type – but in valid Haskell notation! So print 5 yields 5 as output, and print "Hello World!" yields "Hello World!"; but the challenge asked for Hello World, without quotation marks (which wouldn't be valid Haskell). – ceased to turn counterclockwis – 2014-10-28T10:43:53.573

3@Pharap ¹It doesn't actually work with any type, only with Showable types. – ceased to turn counterclockwis – 2014-10-28T10:45:45.520

1@leftaroundabout Well, suum cuique pulchrum est I suppose. – Pharap – 2014-10-28T10:52:26.853

12

## Answer 26 - TI-BASIC (NSpire)

Disp "Hello World!"


(Tested on a TI-NSpire calculator)

2I see you have an NSpire calculator; that should be noted in the title as TI-83/84/+/SE do not have lowercase letters. – Timtech – 2014-10-27T11:15:45.453

2

@Timtech They actually do have lowercase letters. If you have MirageOS or another custom OS, you can enable them. Here's a screenshot of a program I wrote a while ago that uses lowercase letters.

– wchargin – 2014-10-28T19:20:49.207

11

## Answer 29 - MS Windows Powershell

#]trace=:(
'Hello World!'


Distance = 3 from Answer 28

3Actually, I liked how the punk-haired smiley just appeared... =:( – agtoever – 2014-10-28T10:59:43.157

2From this point on, the answers accumulate junk (usually commented out). Answer 85 (GDB) added a "main", and the answers eventually reached C and then Java. – kernigh – 2014-11-21T22:07:02.443

11

{#ah="*#[.>]trac";cat<<@
?} "Hello World!
"


Levenshtein distance from #41 is 7. Tested with this online implementation of FALSE. I used some leftover edit-distance slots to remove some cruft...

I should have done some of that cruft cleaning myself, but I can't now. I'd break the chain. – TecBrat – 2014-10-28T15:00:14.700

3random upvote for being answer 42 - the answer is false :P – CodeManX – 2014-11-05T02:24:21.093

11

//#class jux{public static void main(String[] h){System.out.println(;\#//Hello*}}print,
"Hello World!"//print"putsx;//-##[;]#bye</>%"


EDIT: Added “ h” to move the chain forward.

Ah... If you could have just put an h after the String[], next answer would have been in Java ;) – Optimizer – 2014-11-04T15:45:55.680

2In the interest of getting a long chain, I guess I'll just cheat and edit that in right now. ;-) – Christopher Creutzig – 2014-11-04T15:47:49.343

10

/#]trac
"Hello World!"


I think this works, an interpreter is here (Kona). / begins a one-line comment in K. I've cleaned up some of the #]trace=:( mess.

10

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


9

println("Hello World!")


1Which answer 15 have you used? – Beta Decay – 2014-10-27T09:21:39.450

1@BetaDecay I had linked to it, but I've changed it now that the C one was deleted. – Martin Ender – 2014-10-27T09:22:17.410

9

alert("Hello World!");


Lev. Dist from A#17 = 5

awww, so close! you beat me by 15 secs :( – None – 2014-10-27T09:31:27.637

@Stacey maybe.... – MAKZ – 2014-10-27T09:32:22.593

An alert window isn't stdout...? – zamnuts – 2014-10-27T18:59:44.217

2@zamnuts It is commonly accepted on PPCG to use alert in Javascript as it has no real stdout. – Ingo Bürk – 2014-10-27T19:01:46.797

@IngoBürk console.log would be stdout. classifying alert as stdout is like saying document.write is stdout... IMO the latter would be better if console wasn't available. – zamnuts – 2014-10-27T19:03:16.853

3@zamnuts console.log has nothing to do with stdout. It's a debug tool. Again, this is commonly accepted here. We shouldn't litter the comments of this answer with this discussion; feel free to start a discussion on meta about it (if it doesn't exist yet). – Ingo Bürk – 2014-10-27T19:05:00.020

9

say [Hello World!]


Distance: 5

1the W must be capitalized to print "Hello World!". – None – 2014-10-27T10:18:44.173

Typo, thanks for pointing it out. – Scimonster – 2014-10-27T10:21:11.737

1Well, now I know why I've never heard of M30W. +1 – Pharap – 2014-10-28T08:33:31.807

9

display "Hello World!"


Distance: 6 ([-> ", ]-> ", and addition of di and pl)

9

Heck, if HTML counts…

<vsh  o[.]c;cat;#&&alert" ">Hello World!</vsh>


Distance from Answer 59 : 7

I remember learning that HTML was SGML. This isn't true today; HTML syntax is not SGML syntax (https://html.spec.whatwg.org/multipage/syntax.html#parsing), so HTML is not SGML.

– kernigh – 2014-11-21T20:08:46.590

@kernigh, I know. I was merely saying that if HTML counts sufficiently as a language to post an answer in it (see the preceding answer, #59), then why not SGML.

– msh210 – 2014-11-23T00:08:37.933

8

## Answer 27 - ActionScript 2

trace("Hello World!")


Distance: 7 (Disp -> trac = 4, +e( = 2, +) = 1 = 4+2+1 = 7)

Why 2? This is ActionScript 1. – Pierre Arlaud – 2014-10-28T08:58:10.193

I used to program in AS2. I did so in flash, on the timeline. There I can have a single line of code. Then I moved to AS3, and I've been using document classes ever since. I wasn't sure whether one can use a single line of code like this in ActionScript 3, so I labelled it AS2. – None – 2014-10-28T09:02:24.337

8

;ah="*#[.>]trac":;cat<<@
(pr"Hello World!"
)


; makes the rest of the line a comment, and (pr "Hello World!") does the printing

Love the use of the commenting – sydan – 2015-02-13T11:51:27.547

8

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


Happy Halloween!

Distance 7 from Answer 120. Nothing fancy: added three # comment characters, and added rint after p.

Boo has syntax inspired by Python, but is a separate language with unique features built on the .NET CLI.

1What happened to answer 120? – None – 2014-10-31T17:19:38.097

@hosch250 seemed to just be a typo, it was relative to 120 and linked, just mislabeled. Edited – HostileFork says dont trust SE – 2014-10-31T17:21:57.737

OK, I thought that might be the problem. – None – 2014-10-31T17:25:16.513

Derp, thanks for fixing that. – nneonneo – 2014-10-31T17:26:12.337

LOL Boo . We now need Yeah! – Optimizer – 2014-10-31T17:29:53.397

@Optimizer is that a language? Linky? – John Dvorak – 2014-10-31T17:39:22.863

@JanDvorak: it isn't a language yet. He's comparing Yeah! to Boo! – nneonneo – 2014-10-31T17:41:19.013

Ah. What a shame... – John Dvorak – 2014-10-31T17:42:21.793

1I meant to complete it like Boo Yeah! – Optimizer – 2014-10-31T17:43:06.083

2Appropriate language given today's date. – Amory – 2014-10-31T21:47:04.593

8

(*#class jux{public static void main(String[] h){#
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)
print "Hello World!"(*)#X ;}}//printputsx;//-##E;]bye</>%#*)


Distance 7 from Answer 166, removed _string

Nothing special, most difficult part was finding the language.

(* *) makes a multiline comment, print prints the string

7

puts "\x48ello World!"


Distance: 4

7

#[puts];
cat("Hello World!")


Distance = 5

7

answer "Hello World!"


Distance: 7

7

# Answer 31 - Visual FoxPro

*#]trac
? "Hello World!"


Not tested of course, but * begins a comment and ? "String" prints String.

How on earth have you ever come across and vFox? Well done/sorry :-)! – Ben – 2014-10-27T22:20:44.240

2@Ben By browsing the list of "hello world" examples on Wikipedia and looking for short ones ;) – Doorknob – 2014-10-27T23:55:08.427

7

a="*#]trac":? "Hello World!"


Runs from the immediate window. The colon : is a line sepator that allows multiple lines of code to be written on the same line. (Anything run from the immediate window has to be a one liner.) The ? is a shortcut for printing to the immediate window.

I count more than 5: a = " is already 5, and then there is ": and the newline transformed into a space. – plannapus – 2014-10-27T12:22:40.790

You might want to dump the spaces, because right now it's 8. – Scimonster – 2014-10-27T12:26:06.440

Shoot. I forgot to remove the extra space and there is already another answer @Scimonster. – RubberDuck – 2014-10-27T12:27:34.920

I left a comment on the other answer notifying them so they can fix it after you do. – Scimonster – 2014-10-27T12:28:19.683

Fixed @Scimonster. Thanks and sorry about that. – RubberDuck – 2014-10-27T12:29:02.753

3I like how you introduced a variable. More "programmatic" solution than just commenting some things out. – agtoever – 2014-10-28T11:02:29.677

Thanks @agtoevee, but it was out if necessity. I had to one line it to stay within the distance, so a comment wouldn't work. – RubberDuck – 2014-10-28T11:51:38.277

7

## Answer 70 - Emacs Lisp

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


Distance of 7 from Answer 69. Didn't need any changes to compile, but cleans up a bit.

2I would've cleaned up some of the odd things like 'dnl<vsh' instead of the common comment characters. – agweber – 2014-10-28T15:12:03.507

@agweber why make things too easy? :P – resueman – 2014-10-28T15:16:39.823

1@resueman Because in the question it was stated that the goal was to make the chain as long as possible. – 11684 – 2014-10-31T21:17:33.717

7

# Answer 107 - MediaWiki markup

{|--#[][.]#i--#main()   {puts(,
Hello World!
|--#[;]#bye;dnl</>"%


There is already HTML, SGML and Markdown. Why not MediaWiki?

You can see it here.

1Note: The spaces after main() is a tab (introduced for Makefile). I didn't change it. – jimmy23013 – 2014-10-30T06:47:56.683

Someone should get rid of it ... – Optimizer – 2014-10-30T09:49:37.620

7

(*#class jux{public static void main(String[] h){#
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)
pint)(Hello World!)S(#X ;}}//printputsx;//-##E;]bye</>%#*)


6

disp("Hello World!")


Distance = 6 to Answer 16

I'm way late, but this won't work: MATLAB uses single quotes for strings, not double quotes... that might have derailed the whole train :(

– Dang Khoa – 2014-10-27T23:47:44.347

I haven't tried running it, but changing this to Scilab might fix it – Sp3000 – 2014-10-27T23:58:25.687

@DangKhoa Aww, that's too bad. But it's fixed now. – Calvin's Hobbies – 2014-10-27T23:59:02.107

sorry for the clumsiness, and thanks for the fix! – titus.andronicus – 2014-10-28T08:18:03.413

6

;@echo o#[.>]tac";cat<<;#&&alert
(print "Hello World!");\


Distance is 7 from the previous answer. Needs to be run in the shell.

6

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


Distance: 6

6

%#[]([.]c;main()
/eco (Hello World!)=
%#[;]:;#bye;dnl</>


Distance: 6 insertions to answer 87.

Back to real programming languages.

6

# Answer 96 - Rust 0.13

fn//[]([.]c;
main()    {
print!("Hello World!");}
//#[;]#bye;dnl</>


I was sluggishly monitoring this for "C" answer to finally appear in order to try Rusting it... – Vi. – 2014-10-29T21:08:17.780

6

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


• { and } are asymmetric string delimiters for an alternate representation of strings permitting balanced nested pairs, embedded quotes, etc. {Hey {it's} "legal"}. Add one at the beginning then two braces to create a balanced string after the .* cost 3

• Standalone string literals not passed to any function are skipped by the evaluator, so that literal has no effect.

• At the outset of the program, P is a single character abbreviation for PR, itself an abbreviation for PRINT. (If you wanted you could overwrite it and use as a variable in code golf and still access printing through PR, and if you overwrite that you could use PRINT. Or set X to point to the function value of P before you override it, etc.) cost 1

• Parentheses are structural elements that can be used for arbitrary purposes (imagine if Lisp had [] and () as different "flavors" of series you could metaprogram with, with [] having the traditional "list" behavior). In the default evaluator parens just do precedence, so there's no significance to putting it around a string literal. Added a paren instead of subtracting in case it would be helpful, either way it's cost 1

• Semicolon comments to end of line, get rid of last line using that with an insertion so that the comment comes after it. (Would have been 1 cheaper to do that with the first 2 lines but this is perhaps a better setup.) cost 1

• Spend extra random character to join println onto main(){ cost 1

6

#class jux{public static void main(String[] h){#
#System.Console.Wrinteln(//@\//Hello*}}print,cat<<<
print"Hello World!"#X ;}}//print#putsx;//-##E;]#bye</>%"


5

ah="*#[.>]trac":;<<@
Hello World!
@


5

Since I can't craft the solution I wanted to go with from the previous one, here's another solution instead:

*#//;ah="*#[.>]trac":;cat<<@
? "Hello World!"


NB: There is a trailing space at the end of line 2.
Distance: 6

Clipper is unique in that it has four different commenting techniques of which I've used two above:

* A comment
// A comment
&& A comment
/* A multiline
comment */


? is obviously the print command.

5

;@echo o#[.>]trac";cat<<
(princ "Hello World!");\


Distance = 7

5Is that supposed to be princ? – TRiG – 2014-10-27T23:09:43.480

5

– Etheryte – 2014-10-27T23:17:21.843

1This doesn't say which Lisp. I guess this was meant to be Common Lisp. – kernigh – 2014-11-21T20:00:11.417

5

~//echo o[.>]c;cat<<;#&&alert (printf
"Hello World!"$ Distance 7 from Answer 53. 4 I just realized what this is starting to remind me of... – Calvin's Hobbies – 2014-10-28T01:40:27.977 upvote for cat & mouse :) – CodeManX – 2014-11-05T02:26:13.630 5 ## Answer 61 - M4 dnl<vsh o[.]c;cat;#&&alert" "> Hello World!dnl</vsh>  Distance from Answer 60 : 7 5 # Answer 63 - TeX %;dnl<vsh o[.]c;cat;#&&alert" ">w " Hello World!\bye";dnl</vsh>  Distance 7 from answer 62. 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 – 2014-10-29T13:19:03.703 Anyway, it's probably too late now, not worth breaking the chain. – nyuszika7h – 2014-10-29T13:24:58.650 @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 – 2014-10-29T13:31:00.683 It might be LaTeX-specific then, I didn't know. – nyuszika7h – 2014-10-29T13:33:30.013 5 # Answer 67 - bc #%# %;dnl<vsh o[.]c;cat;#&&alert" ">w ".in( print "Hello World!" #%!#bye";dnl</vsh>  Distance: 7 from answer 66. 5 ## Answer 69 - Scheme ;#%# %;dnl<vsh o[.]c;cat;#&&alert" ">w ".in ( print "Hello World!") ;%!#bye";dnl</vsh>~  Distance of 7 with Answer 68: addition of newline, deletion of ~, newline and $, substitutions of ~ to ;, ~ to ) and # to ;

5

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


Distance of 7 from Answer 70.

Online Interpreter

5

e:
@echo Hello World!
:;#";#bye;dnl</vsh>


Distance 4 from Answer 81: add e \t del ; sub ?->\n
Tested on Ubuntu

1There is a literal tab before the @echo. (Stack Exchange stupidly converts tabs to spaces.) – kernigh – 2014-11-21T20:17:09.317

5

#[]([.]c;main()
eco Hello World!
#[;]:;#bye;dnl</>


Unlike Hello, H9+, HQ9+ and HQ9++, H9Q+- actually prints Hello World!. The creator's website clearly says so, and it offers an interpreter (standard untar-make approach) which I have tested.

2"eco" - I see what you did there. ;) – nyuszika7h – 2014-10-29T13:23:41.137

2

We seem to be using a rather loose definition of programming language here, but for the record, H9+ derivatives are not programming languages.

– Martin Ender – 2014-10-29T13:28:13.637

5We should really fix our definition of programming language. Rules like detecting prime numbers, taking input and manipulating it to output etc are somewhat baised imo. To me, this PPCG is an SE where esolangs are honored the most and esolangs can have any kind of rules. some might not even have the concept of integers, forget determining prime numbers. – Optimizer – 2014-10-29T13:40:27.003

@MartinBüttner: That definition seems to exclude a lot of interesting languages, such as Deadfish x. – Dennis – 2014-10-29T13:42:32.257

@Optimizer Regex and /// don't have the concept of numbers either and still fulfil that definition. Feel free to post your own definition as an answer to that question. – Martin Ender – 2014-10-29T13:43:39.353

The best (or worst) use of HQ9+- should be "Hello World!" -> "HelloW -> h(); -> stuck. – jimmy23013 – 2014-10-29T21:06:13.127

@user23013 Well, I could have messed with the Hello World! string, but I'm trying to win this contest... – Dennis – 2014-10-29T22:20:20.463

5

"--#[][.]#i
--#main()    {
Print("%"Hello World!"d");
--#[;]#bye;dnl</>"%


Distance 7 from Answer 101. (added ""%d""%)

An interpreter does not, in fact, exist. However, the code is fairly straightforward. It pushes a big string, then pops it ("..."%). It then pushes the string "Hello World!" and prints it (d). Lastly, it pushes another string and pops that one as well.

This is invalid, you have a random percent sign that is not in quotes... – Timtech – 2014-10-30T18:59:39.700

@Timtech Yes; why does that make this invalid? – Doorknob – 2014-10-30T19:00:44.477

It appears that multi-line strings aren't supported in forobj – Timtech – 2014-10-30T19:12:44.753

@Timtech What makes you think that? Forobj does support multiline strings, to my knowledge. – Doorknob – 2014-10-30T19:15:05.777

5

'--#[][.]#i--#main(){puts(
?"Hello World!
'--#[;]#bye;dnl</>"%


Distance 7 from Answer 107 (I could do it in 4, but I spent the rest on getting rid of unnecessary fluff like that annoying tab from the Makefile.)

Yes, SmallBASIC does not require closing strings.

For a second I thought it was the other Small Basic. Was slightly disappointed. Great answer nonetheless! – Hugo Zink – 2015-10-06T11:16:20.907

5

#B00class jux{public static void main(String[] h){#
#System.Cont.Wrintln(//;\//Hello*}}print,cat<<<"#Hello World! ;}}//print#putsx;//-##[;]#bye</>%"


Distance from Answer 156 : 7

Everything

• in # ... # is a comment
• in  ...  is output to STDOUT
• after ; is ignored as program has exited

5

#B00class jux{public static void main(String[] h){#
#System.Cont.Wrintln(//;\//Hello*}}print,cat<<<
:"Hello World!"# ;}}//print#putsx;//-##[;]#bye</>%"


Distance 5.

5

(*#class jux{public static void main(String[] h){#
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)
print "Hello World!"(*)#X ;}}//printputsx;//-##E;]bye</>%#


5

(*#class jux{public static void main(String[] h){#
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)
print "Hello World!"(*)#X ;}}//printputsx;//-##E;]bye</>%#*)


This could be any SML dialect, including Alice — but answer 164 isn't valid SML: only Alice allows an unterminated comment.

(MLton is now within reach.)

5

(*#class jux{public static void main(String[] h){#
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)
print_string "Hello World!"(*)#X ;}}//printputsx;//-##E;]bye</>%#*)


Yes, I'm finally marking this answer as this official end of the contest. Amazing job everyone! – Calvin's Hobbies – 2015-01-04T08:01:49.093

@Calvin'sHobbies Can I make a new submission? – Def – 2015-01-09T16:06:21.237

@Deformyer Sure. Feel free to keep it going if possible. – Calvin's Hobbies – 2015-01-09T17:29:40.673

2So, is OCaml the final submission? – Vi. – 2014-12-04T21:30:30.987

5

## Answer 171 - Fexl 7.0.3

#03w!(*#class jux{public static void main(String[] h){#
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)
put
"Hello World!"#(O).g!)S(#X ;}}//printputsx;//-##E;]bye</>%#*)


I don't have enough reputation to comment on others' posts yet but I think that the other Answer 171 is invalid because it uses non-printable-ASCII chevrons (» and «).

For future reference, you can always drop by in chat and ping me ;)

– Conor O'Brien – 2016-01-04T00:29:27.387

5

# Answer 179, Fuzzy Octo Guacamole

#^.4mrZ"#03w(*#class jux!{public static void main(String[] h){#\
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)\
#put"

#^
is~ob"Hello World!"@)
gx#(O)X.g!)S(#X ;}}//printputs;//-##E;]bye</>#*)kX


Pretty standard.

Since # is a comment, most of the lines are skipped.

After removing the comments, you get this:

is~ob"Hello World!"@)
gx


Everything after the @ is not executed, since @ is end.

is~ob"Hello World!"@


The important parts is the "Hello World!"@ which pushes and prints (implicit output).

The rest:

i is invert, s is switch. This doesn't do anything important, moves 1 to the inactive stack (invert 0 and move).

~ob negates (bitwise) pushing -1, and sets the rest ToS (as a string) to b. This basically says b now pushes -1 to the stack.

4

ah="*#[.>]trac":;cat<<@
Hello World!
@


At this point, we have answers in bash, zsh, and dash. I reckon bash and dash to be dialects of the same Bourne shell language (zsh is more different), but bash and dash do count as two languages under the "different names" rule, and bash has many more features than dash. – kernigh – 2014-11-21T19:57:12.510

4

;ah="*#[.>]trac":;cat<<@
type"Hello World!"


Distance 5 from from Answer 36

4

//;ah="*#[.>]trac":;cat<<@
print"Hello World!"


7 distance from 37

Try it here

4

#//;ah="*#[.>]trac":;cat<<@


6 distance from 38

Try it here

1I am skeptical about having both JS and CS :P – Optimizer – 2014-10-27T17:16:19.170

Could be, but this one uses different syntax than the JS one :P – BrunoJ – 2014-10-27T17:17:43.040

That's because it had to :P – Optimizer – 2014-10-27T17:19:20.170

3@Optimizer I think that it's OK because they use different syntax. – Scimonster – 2014-10-27T17:28:22.390

1@Optimizer then you could also disqualify all languages compiled to binary after the first. I think that the runtime doesn't matter, because you could write a CoffeScript compiler which doesn't compile to JavaScript but to binary. Or JVM bytecode. Or C# (which would need to be compiled once more). – 11684 – 2014-10-31T21:10:52.333

4

# Answer 44 - GNU Octave

#ah="*#[.>]trac";cat<<
disp "Hello World!"


Levenshtein distance from #43: 5 (1 removed, 4 replaced)

4

;#ah="*#[.>]trac";cat<<
(print "Hello World!");\


distance = 7

4

//echo o#[.>]tac";cat<<;#&&alert
println("Hello World!");


Distance = 7

4

#//echo o[.>]tac;cat<<;#&&alert (printf
log"Hello World!"


I knew AppleScript had -- comments but not # comments. Seems that AppleScript added # comments in AppleScript 2.0. – kernigh – 2014-11-21T20:02:23.267

4

//echo o[.>]c;cat<<;#&&alert"(
printfn "Hello World!"//)


7 distance from 55

Try it here

4

"#sh  o[.]c;cat;#&&alert"  "
echo "Hello World!"
";#bye";dnl</vsh>~


4

# Answer 80 - mIRC script

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


Distance 7 from Answer 79: 1 comment marker (;), 6 removals ($e=""~). 4 # Answer 81 - Microsoft Batch :?;#[.]c;cat;#&&alert" " @echo Hello World! :;#";#bye;dnl</vsh>  Distance 7 from Answer 80: 3 additions, 4 cleanup. Tested in Windows 7. 4 # Answer 90 - Oz %#[]([.]c;main() {Show 'Hello World!'} %#[;]:;#bye;dnl</>  Distance: 6 to answer 89 9Let's keep up the flow and continue aiming for C – Optimizer – 2014-10-29T14:01:13.923 4 # Answer 124 - Swift //#{//-##[][/]#i--#main(){println(;\#//sel/.*}} print("Hello World!") //#;//"-##[;]#bye</>%  Distance 7 from answer 123. I have a good one derived from answer 121 but... – jimmy23013 – 2014-10-31T20:41:41.033 2Please continue the flow towards Java only. – Optimizer – 2014-11-01T05:27:52.650 @Optimizer But only if I can find more languages... – jimmy23013 – 2014-11-01T05:33:55.383 @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 – 2014-11-01T05:48:34.370 1@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 – 2014-11-01T05:50:49.367 @Optimizer If I can derive from 121, I can use Awk which has BEGIN and is a big step toward Pascal, without using the comment trick. – jimmy23013 – 2014-11-01T06:05:06.210 Too late for that now :P – Optimizer – 2014-11-01T06:09:27.083 4 # Answer 125 - BeanShell //#{//-##[][/ void main(){println(;\#//sel/.*}} print("Hello World!"); //#;//"-##[;]#bye</>%  Distance from Answer 124 : 7 Trying to move towards Java 4 # Answer 128 - Suneido //#class{//-##[][/void main(){//println(;\#//sel/.*}} Print("Hello World!") //#;//"-##[;]#bye</>%  Distance 7 from answer 127: deleted newline, changed w into P, inserted n, deleted e, then ; and }, and because I'm nice I used my last one to add the last s of class. Never heard of Suneido before today but according to the language specs, Print("...") is the print statement and // the comment chars for single line comments. 4 # Answer 129 - AWK //#class{//-##[][ void main(){//println(;\#//sel/.*}} END{print("Hello World!")} //#;//"-##[;]#bye</>%  Distance from Answer 128 : 7 Run it online here Well Pascal is no longer likely to be possible now... – jimmy23013 – 2014-11-01T18:09:47.177 1Oh! I tried with BEGIN, but it was 1 char too much :( – Optimizer – 2014-11-01T19:11:32.813 4 # Answer 154 - S+ #//#class jux{public static void main(String[] h){ #System.out.println(//;\#//Hello*}}print, cat('Hello World!')#;}}//print#putsx;//-##[;]#bye</>%"  Distance 7 from answer 153. 4 # Answer 155 - Hexish 0B00class jux{public static void main(String[] h){ #System.Cont.Wrintln(//;\#//Hello*}}print, cat('Hello World!')#;}}//print#putsx;//-##[;]#bye</>%"  Distance 7 from 154 Im going for c# now! 1Too bad all the shells I can think of are already taken. I'd have loved to take cat<<<'Hello World!' next. – Christopher Creutzig – 2014-11-05T07:40:11.607 4 # Answer 159 - brat #B00class jux{public static void main(String[] h){# #System.Console.Wrinteln(//;\//Hello*}}print,cat<<< p "Hello World!"# ;}}//print#putsx;//-##[;]#bye</>%"  Distance from Answer 158 - 7 2 necessary and 5 for flowing towards C# Should I add two more chars to my answer so you can add them to yours? – Lynn – 2014-11-06T13:11:13.713 @nooodl Please don't edit now as it will effect the other 2 answers too. – Optimizer – 2014-11-06T13:12:51.973 4 # Answer 160 - Busybox built-in shell #class jux{public static void main(String[] h){# #System.Console.Wrinteln(//;\//Hello*}}print,cat<<< echo "Hello World!"# ;}}//print#putsx;//-##[;]#bye</>%"  4 necessary changes, removed 3 characters to move towards C#. Busybox uses a modified Almquist shell (http://git.busybox.net/busybox/tree/shell). It seems to be almost the same language as dash (the portable Almquist shell), and Dash was taken in answer 35. – kernigh – 2014-11-21T21:22:09.750 4 # Answer 161 - Gammaplex #class jux{public static void main(String[] h){# #System.Console.Wrinteln(//@\//Hello*}}print,cat<<< RrXoX"Hello World!"X ;}}//print#putsx;//-##E;]#bye</>%"  Distance 7 from answer 160. Despite the positions of @ and E, they are necessary. Sorry for editing late. Rollback if you already started working on this. Gammaplex is yet another 2D language. The official interpreter will ignore all new lines, then rearrange all characters into a rectangle with the same width of the first line. The above code is like this in Gammaplex: #class jux{public static void main(String[] h){# #System.Console.Wrinteln(//@\//Hello*}}print,cat <<<RrXoX"Hello World!"X ;}}//print#putsx;//-##E ;]#bye</>%"  2you killed the chain haha... – rodolphito – 2014-11-10T20:01:27.517 @Rodolvertice It is still possible with some Basic dialects... – jimmy23013 – 2014-11-10T22:20:06.867 @user23013 maybe you should do it, 5 Days are over and the required wait time is only 8 hours. – Sebb – 2014-11-11T17:38:48.987 There cant be 2 answers in a row by the same person. – rodolphito – 2014-11-11T18:44:44.980 4 # Answer 163 - ALGOL 68 #class jux{public static void main(String[] h){# #System.Console.Writeln(//@\//Hello*}}print,cat<<# print("Hello World!")#X ;}}//printputsx;//-##E;]bye</>%#  Distance 7 from answer 162. 3 ## Answer 41 - B.A.S.I.C. #//;ah="*#[.>]trac":;cat<<@ #&&alert ? "Hello World!"  Distance 2 from 40 You can test it here First 2 lines are just REMs and the question mark is interpreted as PRINT My testing link no longer works and in a quick search I have not yet found an online B.A.S.I.C. interpreter that accepts the hash and question marks the way I used them, but I'm almost entirely certain that this worked in MS QBasic. – TecBrat – 2016-08-05T19:13:33.130 Yes, the question mark is a valid alias for print in many versions of Basic. – user3234709 – 2021-02-15T06:32:12.617 1Sorry, I posted an answer before you. Also, that distance is incorrect. – Etheryte – 2014-10-27T18:05:17.277 I'll update my answer – TecBrat – 2014-10-27T18:07:40.490 Neat, nicely done. – Etheryte – 2014-10-27T18:12:19.557 3 # Answer 43 - fish shell #ah="*#[.>]trac";cat<< #&&alert echo "Hello World! "  Levenshtein distance from #42: 7 (2 removal, 3 substitutions, 2 additions) I hope an extra newline is okay. 3 # Answer 45 - TCL #ah="*#[.>]trac";cat<< #&&alert puts "Hello World!";#\  Distance 7 from #44 ;#\ is useless but I wanted to make the future answer more challenging. http://ideone.com/P0PqMd 1What's the point of the final comment? – Ypnypn – 2014-10-27T20:52:30.320 1Absolutely useless ! – Michael M. – 2014-10-27T20:54:12.477 3It's only challenging for a language that doesn't use # for comments ;) – None – 2014-10-27T20:55:12.247 2I thought I can get if 0 [puts "Hello World!"] at some point... to make it not only challenging but also confusing. – jimmy23013 – 2014-10-27T21:39:53.490 7-1 for deliberately making future answerers' job harder. Some of us are trying to do the exact opposite, because that first line is really annoying. – nyuszika7h – 2014-10-27T21:40:14.270 1The final comment was just unfair.. – Beta Decay – 2014-10-28T07:19:49.770 3 ## Answer 49 - SMT-LIBv2 ;@echo o#[.>]trac";cat<< ;#&&alert (echo "Hello World!");\  Distance = 5 3 # Answer 58 - Burlesque "//echo o[.>]c;cat<<;#&&alert" "Hello World!"/vsh  Distance 7 from answer 57. 3 ## Answer 64 - Forth \ %;dnl<vsh o[.]c;cat;#&&alert" ">w " .( Hello World!)\ bye";dnl</vsh>  Distance from Answer 63 : 7 Try it online here That's too late now, and it's not a big deal, but it would have been nicer if you had edited and undeleted your previous (now deleted) answer, instead of adding a new one. There is already way too many deleted answers in that challenge. – plannapus – 2014-10-28T13:12:01.767 1@plannapus - The undeleted answer still tells the older timestamp, which was earlier than 8 hrs :( – Optimizer – 2014-10-28T13:39:11.273 3 ## Answer 68 - Betterave ~#%# %;dnl<vsh o[.]c;cat;#&&alert" ">w ".in( print ~$"Hello World!"~ #%!#bye";dnl</vsh>~


Distance from Answer 67 : 7

3

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


3

## Answer 91 - CASIO BASIC

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


Distance from Answer 90 : 7

I can only get a distance of 8 with the language I am trying...curses! – archaephyrryx – 2014-10-29T19:17:13.110

4bwahahahahahahah – Optimizer – 2014-10-29T19:20:57.917

Ack, also 8 away :/ – Sp3000 – 2014-10-29T19:34:49.433

1You all just got beaten by VBScript – Optimizer – 2014-10-29T19:38:24.140

3

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


Better if you have removed the Show... – jimmy23013 – 2014-10-29T19:43:09.507

@user23013 Unless there's a way to free up another 4 changes, I didn't really have the ability to do so :P – resueman – 2014-10-29T19:45:12.210

You can replace the Show\n with \nMsgBox. The space isn't required in VBScript. – jimmy23013 – 2014-10-29T19:46:49.807

If you have space, cleanup other stuff too! – Optimizer – 2014-10-29T19:48:54.000

Okay, I made the suggested changes. Little bit of cleanup got done – resueman – 2014-10-29T19:50:58.190

3

//[]([.]#i
//main()    {
//#[;]#bye;dnl</>


Distance: 7

Does it count if it's exactly JavaScript syntax, but technically a different language?

3

//[][.]#i
//main()    {
print("Hello World!");
//#[;]#bye;dnl</>


I had no idea that print was a valid command in Algoid... I thought it was just text.output. – Beta Decay – 2014-10-30T13:25:08.420

@BetaDecay print and text.output seem to be equivalent when I run them, although they are documented under different sections in the reference page

– Tymric – 2014-10-30T13:29:23.890

1Well that'll help with golfing :) – Beta Decay – 2014-10-30T13:31:29.453

3

--#[][.]#i--#main(){puts(
select "Hello World!";
--#[;]#bye;dnl</>%


Distance 7 from Answer 109: modifed ay into el, added ect followed by a space, and ;.

3

## Answer 113 - SQL (postgres)

--##[][.]#i--#main(){puts(
select'Hello World!' "
"--##[;]#bye;dnl</>%"


Distance 7 from 112

• remove "
• inserted carriage return before select
• substitute " with '
• remove carriage return," and space
• insert ' after !

I didn't know the ; can be skipped in SQL... – plannapus – 2014-10-31T06:53:05.617

When I tested this in postgres it didn't seem to mind. Try it here sqlFiddle. It's probably because it's the only query

– MickyT – 2014-10-31T16:11:11.730

Interesting. Thanks for the tip, that's good to know! – plannapus – 2014-10-31T16:13:58.600

3

#a/-##[][/]#i--#main(){
puts(
#sel/.*
/Hello World!/)
#b/"-##[;]#bye;nl</>%"


Opal is a Ruby dialect compiled to Javascript. Opal's stdout points to the browser console.

Changes:

• line comment (3x)
• newline (2x)
• fix puts. Putsing regexes works surprisingly well...
• right parenthesis on L4.

3

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


Distance from Answer 117 : 7

Try it here

1+1 for bringing main() back again. – jimmy23013 – 2014-10-31T12:05:21.083

3

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


Distance 7 from Answer 118: deleted newline, replaced fby ln, deleted } and ;nl.

1I like alliterations :) – plannapus – 2014-10-31T13:03:24.770

-1 for removing main() back – Optimizer – 2014-10-31T13:05:08.430

I don't get that one: isn't it here still? – plannapus – 2014-10-31T13:05:32.973

I meant back in comment ;) See this

– Optimizer – 2014-10-31T13:11:25.487

ah ok :) Is there still a lot of languages using it that haven t been done yet? – plannapus – 2014-10-31T13:12:47.853

Does "Scala" mean "Java" is on the way? – Vi. – 2014-10-31T13:18:32.393

What if people used their extra changes and started writing the java one in the comment? :0 – Luminous – 2014-10-31T14:54:25.530

1@Luminous I'm afraid we don't have much time anymore – John Dvorak – 2014-10-31T17:37:42.757

3

# Answer XXX - Commodore BASIC

Verdict by @CalvinsHobbies, OP:

Sorry but as clever as this may be, PETSCII isn't ASCII. If this kind of shifting was allowed then arguably any 97 unique characters could be used. This is invalid.

...but for those who want the cleverness anyhow:

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


The "trick" comes from the fact that there are some little-known abbreviations in C64 BASIC. There's no abbreviation for REM, but it turned out dA for DATA served just as well...as long as you never try to read it!!

Technically speaking one has to bend the rules at least a little, as the Commodore 64 doesn't use ASCII...it uses PETSCII. Here is the "shifted" PETSCII equivalent. Thus a lowercase a is actually 0x41 (dec 65)...and an uppercase A maps to 0xC1 (dec 93) in the "shifted PETSCII" character set.

Next there are some characters with no exact equivalent. For instance, ASCII open brace { 0x7B (dec 123). The PETSCII standard would show that as a cross (✚). Yet if you write it directly into screen memory (as with POKE 1024,123) you get a box in the lower left, like Unicode's "quadrant lower left" character (▖). Unfortunately there are no PETSCII equivalents for the likes of [ 0x5B (dec 91)...only screen memory codes.

Hence I've substituted the screen memory equivalents into source for the codes of the five characters that have no ordinary mapping:

• { (0x7B) => screen code 0x7B => quadrant lower left (solid) CBM+F key
• } (0x7D) => screen code 0x7D => quadrant upper left (hollow) CBM+X key
• [ (0x5B) => screen code 0x5B => cross bar no known key combo
• ] (0x5D) => screen code 0x5D => vertical line SHIFT+minus key
• \ (0x5C) => screen code 0x5C => left half filled in block CBM+J key

Because I don't actually know how on the keyboard to get the cross bar other than POKE-ing into screen memory, that's what I did. I typed the program in with a dummy character at first in the three positions where open braces existed and then wrote some poke statements as shown. You could put any character there really, but I wanted the code to be as true to the ASCII values as possible.

Voila. Of course when you're done with the POKE statements you'll have to cursor back up and hit ENTER on the code lines again so the source changes will take.

Be sure to get into shifted PETSCII mode before you run it, with CBM-shift or POKE 53272,23. How the program is produced isn't that relevant, as it could be saved and loaded, but this just gets it all on one screen.

This has distance 13. Please delete this ASAP. – Optimizer – 2014-11-01T05:48:22.197

You added 1dA, 2, 3dA and modified void to ]#i--# – Optimizer – 2014-11-01T05:52:40.973

@Optimizer, oh I missed your extra edits in the paste. I'll put those back. That was just an oversight. – HostileFork says dont trust SE – 2014-11-01T05:53:22.117

Next time, read and think carefully before accusing and frowning upon others. – Optimizer – 2014-11-01T05:54:14.047

1@Optimizer Next time, how about assume good faith instead of ordering people to delete things. Your edit came in the midst of a post, I had to delete it to fix up and accommodate, and I copied the wrong line. – HostileFork says dont trust SE – 2014-11-01T05:55:09.883

@Optimizer In fact, I want Pascal. – jimmy23013 – 2014-11-01T05:56:05.677

Those are the rules. Invalid entries should be taken care of immediately so as to give others a chance. Since you already deleted, undeleted, edited etc. I was assuming that editing was out of question anymore, delaying others even more. – Optimizer – 2014-11-01T05:56:29.210

@user23013 Sure. – Optimizer – 2014-11-01T05:57:09.153

7@Optimizer It's a little hard in a challenge where your entry came in during mine, and I had to delete it, and adjust it. The nature of the challenge is a little difficult and I assure you entering these things by hand in a commodore emulator are difficult and the reasoning is difficult. In any case, it's fixed, and for all the desperation you suggest about the importance of worrying about the efforts of others consider the effort this took which was...well, more than I'd planned to spend. It's a game. Be nicer. – HostileFork says dont trust SE – 2014-11-01T05:59:16.143

Your answer is invalid because of this rule : "You may only use tabs, newlines, and printable ASCII." – Optimizer – 2014-11-01T05:59:27.000

Be nicer has nothing to do with trying to follow rules. – Optimizer – 2014-11-01T06:00:25.220

@Optimizer I believe the goal of that requirement is not to prohibit entries of this nature, but to keep people from introducing oddball characters into the source that others have to use and base their code upon. If one can argue a mapping of ASCII values into your domain that seems legitimate to me, vs. trying to map your domain into the program source. – HostileFork says dont trust SE – 2014-11-01T06:01:31.823

Let's ask OP in chat. – Optimizer – 2014-11-01T06:02:08.580

2@Dr.Rebmu Sorry but as clever as this may be, PETSCII isn't ASCII. If this kind of shifting was allowed then arguably any 97 unique characters could be used. This is invalid. – Calvin's Hobbies – 2014-11-01T06:30:51.867

3

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


Distance from Answer 125 : 4

3

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


3

//#class{//-ta[][
void main(){//println(;\#//Hello*}}

print("Hello World!");}
//#;//"-##[;]#bye</>%


Distance from Answer 130 : 7

3

"/#class jux{//-ta[][static void main(){//println(;\#//Hello*}}

print""Hello World!"i"#!puts
#;//-##[;]#bye</>%"


Distance 7 from answer 134. (5 necessary, 2 for ic in static)

3

#class jux{//-ta][static void main(String[]){System.out.println(;\#//Hello*}}print,
"Hello World!"#;write"putsx;//-##[;]#bye</>%"


1. remove ;
2. remove /
3. remove /
4. removed \n (newline) to have print on above line
5. added # after "Hello World" to comment out the rest of the trash.
6. u int out
7. t in out (hoping to see that java answer)

At this point I'm just looking through EVERY language in esolangs.org... haha

3

#class jux{public static void main(String[]){System.out.println(;\#//Hello*}}print,
"Hello World!"print"putsx;//-##[;]#bye</>%"


Distance 7 from answer 148 (6 necessary, 1 for the space after public).

Io supports both write("...") and "..."print, but not print("...") or "..."write unfortunately.

This question has most answers in this site now.

3

//#class jux{public static void main(String[] h){
System.out.println(//;\#//Hello*}}print,
'Hello World!');//}}//print#putsx;//-##[;]#bye</>%"


Note due to incorrect syntax the last line was changed... 2014-11-18 (OP)

... Anyone has ideas fixing answer 154? – jimmy23013 – 2014-11-20T02:57:19.793

About that.. :3 – Timtech – 2014-11-20T19:24:20.490

3

#B00class jux{public static void main(String[] h){
#System.Cont.Wrintln(//;\#//Hello*}}print,
cat<<<"Hello World!" #;}}//print#putsx;//-##[;]#bye</>%"


Distance 7 from answer 155 (5 necessary, 2 change the single quotes to double quotes, to make next answers easier).

I'll stop looking for new languages now. And I'll be no longer answering so fast. I'll only post answers with languages that I have found but yet didn't have chance to use.

I also found apt-cache search useful. And if you want more languages that only a few people use, you can try something like this. If you want it to be uninteresting, you can also see here.

There are also many esolangs and serious languages in those long lists not have been used yet, I think.

– Vlo – 2014-11-05T14:35:26.337

3

## Answer 170 - Minkolang 0.9

03w!(*#class jux{public static void main(String[] h){#
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)
pint)(!
"Hello World!"(O).g!)S(#X ;}}//printputsx;//-##E;]bye</>%#*)


The two additions are 03w at the beginning, which jumps it to the beginning of the fourth line and (O). after "Hello World!", which prints out the whole stack as characters. Very, very, very conveniently, this is exactly 7 characters!

2Rise of the new golfing langs! – Conor O'Brien – 2015-10-26T22:54:46.250

3

"#03w(*#class jux!{public static void main(String[] h){#\
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)\
put"
a"Hello World!'#(O).g!)S(#X ;}}//printputsx;//-##E;]bye</>#*)


Guide:

• Five insertions; "s at beginning and after put; \ after first two lines; a before "Hello World!
• 1 substitution; ' to " on the last line
• 1 deletion; the % towards the end.

Try it here!

Are languages newer than the challenge allowed? – mbomb007 – 2016-02-24T21:37:07.933

@mbomb007 Yes, they are. – Conor O'Brien – 2016-02-24T21:49:36.270

3

4mrZ"#03w(*#class jux!{public static void main(String[] h){#\
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)\
put"
a
"Hello World!";#(O).g!)S(#X ;}}//printputsx;//-##E;]bye</>#*)


Oh, geez, that was easier than I expected it to be.

Explanation:

4mrZ inserted (4 chars), which calls the 4th index of code (the 5th line), reverses the stack, and then outputs everything in the stack as a char. I can get away with no newline due to the # character, which will teleport to the 90th character in the first line (which doesn't exist) (Z in ASCII), throwing an error and exiting the program.

Newline inserted before "Hello... (one char) to designate a new method line.

" substituted for ' at the end of World!' (one char) to end the quotes.

; inserted after the newly substituted " (one char), which is a return character. This leaves Hello, World! on the stack.

More interestingly, if you want to know what Vitsy is actually reading, here's the verbose mode version (any lines starting with : designate a newline):

push 4;
goto top method;
reverse stack;
output stack as chars;
toggle double quote;
teleport to top instruction;
push 0;
push 3;
wait top seconds;
if (int) top is 0;
multiply top two;
teleport to top instruction;
push 12;
push length of stack;
push 10;
push inverse sine of top;
push inverse sine of top;
;
j;
flatten top two stacks;
x;
!;
rotate stack left;
push whether (int) top item is prime;
flatten top two stacks;
push 11;
push length of stack;
push input item;
push 12;
;
push inverse sine of top;
push inverse tangent of top;
push 10;
push inverse tangent of top;
push input item;
push 12;
;
save top as temporary variable;
capture stack as object with next;
push input item;
push 13;
;
goto top method;
push 10;
push input item;
eval(stack);
if (int) top is 0;
push sine of top;
push inverse tangent of top;
reverse stack;
push input item;
eval(stack);
g;
begin recursive area;
end recursive area;
;
factorize top item;
if (int) top is not 0;
rotate stack left;
teleport to top instruction;
repeat next instruction set top times;
:teleport to top instruction;
push sine of top;
push number of stacks;
push inverse sine of top;
push inverse tangent of top;
push 14;
goto top method;
.;
push cosine of top;
capture stack as object with next;
eval(stack);
push inverse sine of top;
capture stack as object with next;
push length of stack;
push 14;
.;
STDIN;
reverse stack;
push input item;
push inverse tangent of top;
push 14;
push length of stack;
eval(stack);
if (int) top is 0;
divide top two;
divide top two;
get top specified item;
repeat next instruction set top times;
divide top two;
divide top two;
push all ints between second to top and top;
push 14;
push length of stack;
push length of stack;
capture stack as object with next;
multiply top two;
rotate stack right;
rotate stack right;
push whether (int) top item is prime;
reverse stack;
push input item;
eval(stack);
push inverse tangent of top;
,;
push 12;
push 10;
push inverse tangent of top;
go backward;
go backward;
teleport to top instruction;
multiply top two;
if (int) top is not 0;
repeat next instruction set top times;
:push whether (int) top item is prime;
flatten top two stacks;
push inverse tangent of top;
toggle double quote;
:push 10;
:toggle double quote;
push all ints between second to top and top;
push 14;
push length of stack;
push length of stack;
capture stack as object with next;
;
STDIN;
capture stack as object with next;
reverse stack;
push length of stack;
push 13;
!;
toggle double quote;
generic exit;
teleport to top instruction;
if (int) top is 0;
output top as character;
if (int) top is not 0;
.;
g;
!;
if (int) top is not 0;
push sine of top;
if (int) top is 0;
teleport to top instruction;
remove top;
;
;
generic exit;
rotate stack right;
rotate stack right;
divide top two;
divide top two;
push whether (int) top item is prime;
reverse stack;
push input item;
eval(stack);
push inverse tangent of top;
push whether (int) top item is prime;
flatten top two stacks;
push inverse tangent of top;
push inverse sine of top;
x;
generic exit;
divide top two;
divide top two;
subtract top two;
teleport to top instruction;
teleport to top instruction;
push e;
generic exit;
end recursive area;
push 11;
push number of stacks;
push 14;
go backward;
divide top two;
go forward;
teleport to top instruction;
multiply top two;
if (int) top is not 0;

Try it Online!

3

Distance 7 from answer 173. Try it here!

"4mrZ""#03w(*#class jux!{public static void main(String[] h){#\
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)\
put"

^
"Hello World!"gx;#(O).g!)S(#X ;}}//printputs;//-##E;]bye</>#*)


Surrounded 4mrZ with quotes (2); added two characters gx after "Hello, World!". Added a newline after put", replaced the a with a ^, removed the x from printsputsx;// on the last line. Both 4mrZ and the long text after it are quoted and pushed to the stack; ^ probably does something, but nothing relevant, "Hello World!" pushes that sting to the stack, and g prints one item from the stack. x terminates the program. Fun fact: removing the x gives infinite "Hello World!"s because of the X, which wraps around to the beginning of the section.

@mbomb007 my pleasure! – Conor O'Brien – 2016-02-24T22:24:27.577

3

x4mrZ"#03w(*#class jux!{public static void main(String[] h){#\
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)\
put"

^
Hello World!
gx#(O).g!)S(#X ;}}//printputs;//-##E;]bye</>#*)
<empty>


The last line is simply an empty line, so the next person should remove <empty>. I used free-spacing mode so that # starts a comment. This takes care of the unmatched brackets and parentheses. I guess the g is the last replace's configuration string is ignored?

Try it online

3

H.4mrZ"#03w(*#class jux!{public static void main(String[] h){#\
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)\
put"

^
disp"Hello World!")
gx#(O)X.g!)S(#X ;}}//printputs;//-##E;]bye</>#*)kX
<empty>


The last line is intended to be empty; SE doesn't like blank lines at the end of code blocks.

Modifications:

+ H. (at the start, prints "Hello, World!")
+ X  (before the first . on the last line; prevents extraneous printing by clearing the stack)
+ kx  (at the end, finishes a function definition and clears the stack to prevent printing)


@mbomb007 This solution is intended to also have the empty line; SE apparently doesn't like blank lines in code blocks (which I didn't realize). – None – 2016-03-08T21:08:45.710

^ yeah. It's annoying. It allows them if you use <code><pre> or something like it, but then it removes any < or >, which sucks for copy-paste purposes... – mbomb007 – 2016-03-08T21:54:46.147

2

i#^.4mrZ"#03w(*#class jux!{public static void main(String[]ih){#\
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)\
#put"

#^
is~ob]"Hello World!"q@)
gx#(O)X.g!)S(#X ;}}//printputs;//-##E;]bye</>#*)kX


Distance 4 from Answer 179. Try it online!

## Explanation

The program starts with an if statement. Since the stack is empty, that makes all of i#^.4mrZ"#03w(*#class jux!{public static void main(String[ no-ops. When it gets to ], it closes all if statements, loops, etc. But, right ahead of that is another if. Once again the stack is still empty, so all of

ih){#\
#System.Console.Writeln(//@\//Hello*}


is a huge no-op. Next, p checks if top of stack is prime. Yet again the stack is empty, so it's also a no-op. Same goes with r; it just reverses the (empty) stack. Then the program encounters i with an empty stack again, so

int,cat<<#*)\
#put"

#^
is~ob


is yet another no-op. Again, the ] exits all if statements, loops, etc. Next 05AB1E parses "Hello World!" as a literal string and pushes it to the stack. Finally, q exits the program, making the rest of the code a no-op, and implicitly outputs top of stack.

2

#ah="*#[.>]trac";cat<<
println("Hello World!")#\


Distance 7.

I haven't actually run this. It may be that # comments must only have whitespace in front of them, in which case this is invalid, but I really doubt that.

I wonder if we could work backwards with unused languages and make the first two lines useable again. The second doesn't seem too hard, the first one is a different story though. – Etheryte – 2014-10-27T21:58:27.730

2

#//echo o[.>]tac;cat<<;#&&alert
(printf "Hello World!");


1Missing name for redirect. Too many )'s. – jimmy23013 – 2014-10-27T23:42:48.080

1It doesn't work. The first line gives Missing name for redirect. The second gives Too many )'s. It never prints Hello World! – Gavin S. Yancey – 2014-10-27T23:49:53.510

1Not my day. It should work now. – Dennis – 2014-10-28T00:03:34.217

3The first error is still there. But it doesn't have any messages if it is in a script. I think this is acceptable. – jimmy23013 – 2014-10-28T00:07:37.780

2@user23013: Interactive tcsh doesn't seem to have comments. – Dennis – 2014-10-28T00:41:57.720

2

## Answer 55 - Pixie; fallback option: ClojureCLR

"//echo o[.>]c;cat<<;#&&alert"(printf
"Hello World!")


The language is in early alpha and seem to have only REPL. Example session:

$./pixie-vm Pixie 0.1 - Interactive REPL (linux, gcc) ---------------------------- user => "//echo o[.>]c;cat<<;#&&alert"(printf //echo o[.>]c;cat<<;#&&alert user => "Hello World!") 12 Hello World!user =>$


When run outside REPL, I expect it to output just "Hello World!", without additional things.

The language is inspired by Clojure. The script works in Clojure too (without messy additional REPL output)

Here is example of ClojureCLR session (used clojure-clr-1.3.0-Debug-3.5.zip):

$mono Clojure.Main.exe hello.clj ; echo Hello World!$


(Question "Why 12?") -> Result of printf - 12 bytes outputted. – Vi. – 2014-10-28T01:31:18.190

Is 12 also in the output? If so, it doesn't qualify: "The output should only be Hello World! and no other characters (a leading/trailing newline is not an issue)." – Etheryte – 2014-10-28T01:38:21.827

112, //echo o[.>]c;cat<<;#&&alert and user => are printed by REPL, not by the program. But as the language currently have only REPL so far, I can't test in "in real". – Vi. – 2014-10-28T01:39:27.237

I'll say this is allowed since it seems the best Pixie can currently do. But I would prefer you to change the language if possible. – Calvin's Hobbies – 2014-10-28T01:45:05.280

Note: now Pixie can run the program properly: ./pixie-vm hello.clj -> Hello World!. – Vi. – 2014-12-11T13:29:38.300

2

//echo o[.>]c;cat<<;#&&alert"(
> "Hello World!"//)


Distance: 7

2

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


2

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


Distance: 7

2

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


Distance of 7 from Answer 71 (3 deletions of random stuff).

P.S. For those who argue about invalidity of different dialects of Lisp, you should post on the first dialect..

2

I don't think this should qualify as 1) AutoLISP is just a dialect of LISP and 2) it's practically identical to the already existing LISP answer. The question's author will be in a better position to say if it's okay or not though.

– Etheryte – 2014-10-28T18:39:40.593

6This will be the 4th version of LISP. Practically identical is not identical, given the princ instead of print. Many many other answers are practically identical, hell, some are even are identical. Where do we draw the line? – agweber – 2014-10-28T19:10:17.333

@agweber The plain Lisp answer also uses princ. The question isn't how similar (or different) it is to other language answers, but to that answer. If we allow answers like this then I got at least 10 identical Lisp dialect answers coming right up. – Etheryte – 2014-10-28T19:39:00.563

Is it safe to add #73 based on this one? – user3490 – 2014-10-28T20:16:05.163

1@user3490 yes.. – Optimizer – 2014-10-28T20:34:11.370

1There is no plain Lisp. Answer 48 did not specify which "Lisp". If it was Common Lisp, then there are many Lisps that are not Common Lisp. – kernigh – 2014-11-21T20:14:48.710

2

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


Distance from Answer 73 - 7

Anything followed by ; till newline is comment in Rebol

2

#sh  o[.]c;cat;#&&alert"  "print
"Hello World!";#bye";dnl</vsh>~


2

#sh  o[.]c;cat;#&&alert"  "
echo -en "Hello World!"
#";#bye;dnl</vsh>~


2

//[]([.]c;main()    {
print("Hello World!");
//#[;]#bye;dnl</>


Undeleted again, since it's now clear what answer 93 is. – Emil – 2014-10-29T20:13:36.243

2

//[]([.]#i
main()    {
print('Hello World!');}
//#[;]#bye;dnl</>


Distance: 7

It's about time we got an #include of some sort.

What will you do with #include ? C answer is already done. – Optimizer – 2014-10-29T20:35:16.423

2@Optimizer include and import both start with i, and lots of languages use them. – archaephyrryx – 2014-10-29T20:36:00.317

2

--#[][.]#i
--#main()    {
Print("Hello World!");
--#[;]#bye;dnl</>


I know, I just commented on this post because it was the latest one at the time that I made the comment, just so that future posters would see it. Sorry if I made it seem like I was commenting on your post specifically. – archaephyrryx – 2014-10-30T02:36:08.557

2

--#[][.]#i
--#main()    {
Print('Hello World!');
--#[;]#bye;dnl</>"%


2

--#[][.]#i
--#main()    {
put("Hello World!")
--#[;]#bye;dnl</>"%


should be run from the message box in multiline mode

2

--#[][.]#i
--#main()    {
puts(1,"Hello World!")
--#[;]#bye;dnl</>"%


2

$--#[][.]#i--#main() {puts(1, "Hello World!"$ --#[;]#bye;dnl</>"%


Distance from Answer 105 : 7

2

--##[][.]#i--#main(){puts(select"
Hello World!
--##[;]#bye;dnl</>%


Distance 7 from Answer 110: moved select " to the line above and removed the space (2 deletion2), changed --# to --## on both lines (2), removed the "; from the end of the second line (2), and changed the space between select and " to a newline (1). As my sed post was deleted, I am assuming that I can post without waiting 8 more hours. This doesn't print "Hello World!", but displays it instead. If this is an unsatisfactory answer, let me know.

I count 8. changed the space between select and " to a newline isn't quite what you did. – Muqo – 2014-10-30T19:12:30.450

@Muqo what do you mean? – archaephyrryx – 2014-10-30T19:37:00.830

Moving select " from the second line to the first line takes 2, and removing the space takes 1. You're counting only 2 (your first step and your fourth step). – Muqo – 2014-10-30T20:40:49.227

1OOPs. I will put back the period and let Timtech know. At least that won't actually break his answer. – archaephyrryx – 2014-10-30T21:02:48.490

2

"--##[][.]#i--#main(){puts(select"
" Hello World! "
"--##[;]#bye;dnl</>%"


Yes the spaces are required and no they're not printed

3

– Oriol – 2014-10-30T19:01:14.833

@Oriol Fixed ;) – Timtech – 2014-10-30T19:07:04.807

1It helps if people explain their answers some. Without research, one can't tell if this outputs leading or trailing spaces. The problem statement says: "The output should only be Hello World! and no other characters (a leading/trailing newline is not an issue)." so if there is (for instance) a rule by which leading and trailing spaces are stripped somehow that would be nice to point out the nuances of. Or whatever mad science is happening to meet the requirements; if " Hello World! " isn't a string constant but the quotes mean something else, etc. – HostileFork says dont trust SE – 2014-10-30T19:36:56.443

The wiki page says like Forth, quotes must be space separated so I think the lines with out the space separation are ignored and the Hello World! line prints correctly. Now mine finally fits I login and I can't answer cos it's protected! Noooooooooooooooo

– Matt – 2014-10-30T20:17:41.713

1Yes the spaces are required and no they're not printed – Timtech – 2014-10-30T20:20:04.323

@Timtech I changed my answer to re-include the period; you should as well. I proposed an edit, but you can beat me to it, – archaephyrryx – 2014-10-30T21:08:16.513

Okay thanks! :) – Timtech – 2014-10-30T21:09:16.270

@Timtech Okay, cool, but when I said without research I mean literally as in you don't have to click to the wiki to investigate what the rules are because there's a lot to read here in the chain given we're up to 112. – HostileFork says dont trust SE – 2014-10-30T21:15:24.903

@Dr.Rebmu Well I follow the rules so only if you're like "gotta make sure everyone is obeying" then yes you will have to do some work – Timtech – 2014-10-30T23:33:57.143

2

a/-##[][/]#i--#main(){pu/s(
sel/.*/Hello World!/
b/"-##[;]#bye;nl</>%"


Distance from Answer 114 : 7

RegXy is based on Regular Expressions, perl styled.

label/regex/target_label means if the regex matches, go to the target_label line

label/regex/replacement/ means replace the regex match with replacement text.

Is there a working interpreter? The first line in your code doesn't seem valid. It has 3 /s. – jimmy23013 – 2014-10-31T02:16:19.833

The second / is inside a regex. -##[][/]#i--#main(){pu – Optimizer – 2014-10-31T02:18:33.260

The VB interpreter (from archive.org) seemed not parsing [/] correctly, although I don't know how to compile it. It will be better if there is another good interpreter. (But it also ignores invalid lines so your code works anyway.) – jimmy23013 – 2014-10-31T02:27:22.933

2

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


2

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


Distance from Answer 122 : 7

2

//#class{//-ta[][ void main(){//println(;\#//Hello*}}
END
{$print("Hello World!")} //#;//"-##[;]#bye</>%  Distance 7 from answer 129. C# don't need public. It can come earlier. – jimmy23013 – 2014-11-01T18:31:08.447 Console.WriteLine is a bigger task to achieve. Isn't it ? – Optimizer – 2014-11-01T19:14:01.993 1@Optimizer There is also Console.Write. – jimmy23013 – 2014-11-02T02:08:24.113 2 # Answer 132 - gosu //#class jux{//-ta[][ void main(){//println(;\#//Hello*}} print("Hello World!"); //#;//"-##[;]#bye</>%  Distance 6 from Answer 131 1class jux :D :D – Optimizer – 2014-11-02T09:14:49.317 This gives errors on https://gosu-lang.github.io/play.html . Am I doing something wrong ? – Optimizer – 2014-11-02T09:23:57.243 I tested it offline and it works. It looks like the online player isn't working. I couldn't get any of the online examples to work. – None – 2014-11-02T09:39:37.677 You have to disable insecure content protection first for anything to compile. After that, all three samples work. – Optimizer – 2014-11-02T09:43:53.787 2 # Answer 133 - V "/#class jux{//-ta[][ void main(){//println(;\#//Hello*}} print""Hello World!"puts #;//"-##[;]#bye</>%  Distance 7 from answer 132. 2 # Answer 134 – ALAGUF "/#class jux{//-ta[][stat void main(){//println(;\#//Hello*}} print"0"Hello World!"#!puts #;//"-##[;]#bye</>%  Distance 7 from answer 133. Moving towards Java... There is already a ta which is in static. – jimmy23013 – 2014-11-02T14:50:42.560 Duh, didn't notice that. Well, too bad. It's after a // so shouldn't be too hard to cure. – PurkkaKoodari – 2014-11-02T15:46:04.123 2 # Answer 137 - Caché ObjectScript  //#class jux{//-ta[][static void main(){y//println(;\#//Hello*}} write "Hello World!" ;!puts #;//-##[;]#bye</>%"  Distance 7 from Answer 136. What's with the yst ? – Optimizer – 2014-11-02T16:52:36.840 1I was going to do ystem but I needed more bytes to adjust the comments. – nneonneo – 2014-11-02T16:56:15.857 @Optimizer: edited the post, sorry; I apparently suck at comments. – nneonneo – 2014-11-02T17:02:08.993 Ah System.out.println !! – Optimizer – 2014-11-02T17:03:30.907 3@Optimizer: eventually, yeah. That's what all the class and static void bits have been building to. We can do either C# with System.Console.WriteLine or Java with System.out.println, and I think both are possible if we can find enough intermediate languages. – nneonneo – 2014-11-02T17:44:34.280 2 # Answer 138 - owl #//#class jux{//-ta[][static void main(Str){y//println(;\#//Hello*}} write "Hello World!"#;!puts #;//-##[;]#bye</>%"  Distance 7 from Answer 137 (4 necessary, 3 to add int). Doesn't main in Java take String[]? Or are we going for C++? – PurkkaKoodari – 2014-11-02T21:21:52.660 Right, I changed. – Timtech – 2014-11-02T21:53:15.533 2 # Answer 139 – Cardinal x//#class jux{//-ta[][static void main(Str){Sys//println(;\#//Hello*}} write %"Hello World!";x!puts x;//-##[;]#bye</>%"  Distance 7 from answer 138 (5 necessary, 2 for adding Sys). 2 # Answer 140 - Parser #//#class jux{//-ta[][static void main(Str){Syst//println(;\#//Hello*}} write Hello World! #x!putsx;//-##[;]#bye</>%"  Distance 7 from answer 139 (6 nessasary, 1 for Syst). I think I'd better change #x to #/ instead. – jimmy23013 – 2014-11-03T08:19:54.067 2 # Answer 141 – Grin [//#class jux{//-ta][static void main(Str){Syste//println(;\#//Hello*}} write] (Hello World!)x!putsx;//-##[;]#bye</>%"  Distance 7 from answer 140 (6 necessary, 1 for Syste). 2 # Answer 142 - Kitten //#class jux{//-ta][static void main(Str){Syste//println(;\#//Hello*}} write] "Hello World!"say"putsx;//-##[;]#bye</>%"  Distance 7 from answer 141. 2 # Answer 144 - Asymptote //#class jux{//-ta][static void main(String[]){System..println(;\#//Hello*}} write("Hello World!");//y"putsx;//-##[;]#bye</>%"  Distance 7 from Answer 143 - 4 (->\n, ]->(, and );) + 3 free changes (Syste//->System..)) I swear I am not picking on you specifically, but I think you didn't count deleting the \n after write(. – Muqo – 2014-11-04T17:56:08.400 Sorry about that. The Lehvenstein distance calculator linked to by the OP doesn't distinguish newlines and spaces, so I didn't catch that. While the upper bound of 7 should be a strict global rule, I feel that cases like this might reasonably be allowed, as I would be able to do it in 5 changes if I didn't make other modifications, so it doesn't violate the true spirit of the challenge. It is a bit late to do anything about it, but a single character doesn't make much of a difference in the long run, IMO. – archaephyrryx – 2014-11-05T19:34:35.053 2 # Answer 145 - Cat //#class jux{//-ta][static void main(String[]){System..println(;\#//Hello*}} "rite""Hello World!"write"putsx;//-##[;]#bye</>%"  Distance 7 from answer 144. Tested in the C# interpreter. It doesn't work in the online interpreter. 2 # Answer 146 - IDL ;//#class jux{//-ta][static void main(String[]){System.o.println(;\#//Hello*}} print,"Hello World!";write"putsx;//-##[;]#bye</>%"  Distance 7 from answer 145. 1. Inserted ; before / 2. Replaced " by p 3. Replaced t by n 4. Replaced e by t 5. Inserted ; before w 6. Inserted , after print And: 1. Added o after System. For those unfamiliar, see this PDF introduction, which shows that ; is comment character and includes a Hello World example. Surprising that after 145 answers, there is low-hanging fruit in non-esoteric languages left. – gerrit – 2014-11-04T00:02:49.697 2 # Answer 148 - WTFZOMFG #class jux{public[static void main(String[]){System.out.println(;\#//Hello*}}print, 'Hello World!"#;write"putsx;//-##[;]#bye</>%"  Distance from Answer 147 : 7 First language that I have seen which has unmatched quotes as syntax :D 1TI-BASIC has unmatched quotes as syntax btw ;) – Timtech – 2014-11-04T13:19:10.557 Ah. Didn't know. – Optimizer – 2014-11-04T13:27:08.647 1I've never seen 'String" before, TI-BASIC just allows unmatched quotes like Disp "HELLO – QuadmasterXLII – 2014-11-04T16:44:00.947 Right. That's what I thought was meant, also Game Maker Language (GML) doesn't differentiate between ' and " (they probably still have to match each other though). – Timtech – 2014-11-04T17:04:26.373 2 # Answer 152 - Onyx #/#class jux{public static void main(String[] h){System.out.println(//;\#//Hello*}}print, Hello World!'#);}}// print#putsx;//-##[;]#bye</>%"  Distance 7 from answer 151. I found these languages here: http://concatenative.org. 2 # Answer 176 - Codename Dragon x4mrZ"#03w(*#class jux!{public static void main(String[] h){#\ #System.Console.Writeln(//@\//Hello*}}print,cat<<#*)\ put" ^ disp"Hello World!") gx#(O).g!)S(#X ;}}//printputs;//-##E;]bye</>#*) <empty>  Distance 7 from Answer 175. For some reason, this works without the leading (. The seven chars added were disp" (5) followed by ") (2). (NOTE THAT THE LAST LINE IS AN EMPTY LINE.) To execute the program, go the github in the header and paste CDragon.js into a jsfiddle or something, then call the wrapper function with the above code. 2 # Answer 178 - Reng v.3.3 ^.4mrZ"#03w(*#class jux!{public static void main(String[] h){#\ #System.Console.Writeln(//@\//Hello*}}print,cat<<#*)\ put" ^ <isp~;ob"Hello World!") gx#(O)X.g!)S(#X ;}}//printputs;//-##E;]bye</>#*)kX  Distance 7 from Answer 177. Changes: • H^ (1) • d< (2) • inserting ~;ob (6) • removing the final newline (7) Here is the code passed over: ^ < ~;ob"Hello World!") g  g and ) are no-ops. Otherwise, this is a pretty standard HW submission. Try it here! 1 # Answer 76 - FreeBASIC '#sh o[.]c;cat;#&&alert" " print "Hello World!" ';#bye";dnl</vsh>~  Distance: 5 1 # Answer 79 - Hack <?hh #[.]c;cat;#&&alert" " echo$e= "Hello World!"
;#";#bye;dnl</vsh>~


1

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


• Added #
• Removed @
• Changed ( to  
• Added 2 "'s
• Added #

Yes, bash and dash have been done, but I'm just taking the opportunity here as sh has not...

Added the quotes just to get some difficulty up.

4-1 for "Added the quotes just to get some difficulty up". The OP clearly stated that the goal is to have the chain go as long as possible, and we should be cleaning up the mess instead of adding more. – nyuszika7h – 2014-11-01T20:48:37.377

On most computers today, sh is really bash or dash or ksh. All those languages are taken. But on older System V systems, sh was the classic Bourne shell, the predecessor to those other shells. Heirloom sh is a current implementation of the classic language. – kernigh – 2014-11-21T20:20:57.167

1

#[]([.]c;main()&al
echo Hello World!
#[;]:;#bye;dnl</vsh>


Distance: 7

2bring on all the shell variants ... ;p – None – 2014-10-29T11:17:19.647

ps: #85 is still under debate – None – 2014-10-29T11:17:56.373

@Stacey Figured if Lisp variants are okay then why not. And yeah, I noticed the comments there, if 85 is invalid I can just update this answer. – Etheryte – 2014-10-29T11:19:21.280

1#85 is perfectly valid, I found the documentation. See my comment on #85. – None – 2014-10-29T11:27:52.963

1

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


C is possible now.

2CCCCCCCCCCCCCCCCCCC – Optimizer – 2014-10-29T19:54:56.750

Mine was first. I refreshed the two pages until the timestamps differed and mine was posted before this one was undeleted. – feersum – 2014-10-29T20:00:13.820

I never saw yours before posting. I just checked the undeletion timestamp on http://codegolf.stackexchange.com/posts/40645/revisions

– feersum – 2014-10-29T20:02:29.560

@feersum I was just about to delete my answer. But mine is 19:53:13Z in that page. And yours is 19:53:36Z. – jimmy23013 – 2014-10-29T20:07:13.633

How do you get the time in seconds? I can only see minutes. – feersum – 2014-10-29T20:07:47.920

Heh. Should have known not to trust JavaScript! – feersum – 2014-10-29T20:10:36.260

Note: print is usually upper case in QBASIC, and the () is redundant. They only makes it easier for languages like C, or we'll run out of languages soon. – jimmy23013 – 2014-10-29T20:35:26.807

@feersum Hover over the timestamp. – nyuszika7h – 2014-11-01T20:50:43.630

1

--#[][.]#i--#main(){puts(
say"Hello World!"
--#[;]#bye;dnl</>%


Distance from Answer 108 : 7

Try it online here

1

/-##[][/]#i--#main(){puts(
select/Hello World!/
"-##[;]#bye;nl</>%"


I saw so many Lisp, sh, Basic and SQL dialects here. This time it's a /// dialect.

1

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


1

# Answer 136 - Flaming Thunder

#/#class jux{//-ta[][static void main(){//println(;\#//Hello*}}

write"Hello World!".#!puts
#;//-##[;]#bye</>%"


Distance from Answer 135 : 7

1

//#class jux{//-ta][static void main(String[]){Syste//println(;\#//Hello*}} write]
"Hello World!"//y"putsx;//-##[;]#bye</>%"


Distance from Answer 142 - 7 (2 for // 5 for ing[])

1

# Answer 169 - Simplex v.0.6

!(*#class jux{public static void main(String[] h){#
#System.Console.Writeln(//@\//Hello*}}print,cat<<#*)
pint)(!
"Hello World!"g!)S(#X ;}}//printputsx;//-##E;]bye</>%#*)


• 3 ! inserted
• 1 newline inserted
• 2 " inserted
• 1 g inserted

Hopefully the newline helps a bit. Anything of the form !...! not in a string is treated as a comment, and a matching ! is not required, as an EOF closes everything/does not care if something is closed. I'll extract the portion of the code I used to make it more clear:

!...!\n"Hello World!"g!...
!...!                      ~~ comment
\n                    ~~ newline
"            "      ~~ consecutively add each character to the strip