Easier communication means faster coding means fewer coders means …

28

2

My father who was a really good APLer and taught me all the basics of APL (and much more), passed away on this day, five years ago. In preparation for 50 Years of APL, I found this patent letter (translated for the convenience of those who do not read Danish) for a handwritten logo. It explains a major reason for APL never gaining a large user base – a reason which of course applies to all of this community's amazing golfing languages too:


A 3497/77                           Req. 29th Aug. 1977 at 13

EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS …

Henri Brudzewsky, engineering consultancy company, Mindevej 28, Søborg,

class 9, including computers, especially APL coded computers,
class 42: IT service agency company, especially during use of APL coded computers.


Task

Produce infinitely repeating output of the text EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS with no newlines. You may begin the text with EASIER or FASTER or FEWER.

Adám

Posted 2017-05-07T06:33:52.780

Reputation: 37 779

I misinterpreted your challenge and what I did was https://i.imgur.com/qKnTj3q.png !

– sergiol – 2017-11-12T00:14:48.030

@sergiol Almost valid over here.

– Adám – 2017-11-12T00:23:51.120

Link to patent letter is dead. – pppery – 2019-10-20T04:24:34.157

@pppery Thanks. Updated. – Adám – 2019-10-20T12:32:22.763

Answers

14

05AB1E, 25 bytes

[‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘?

Try it online!

Explanation:

[‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘?
[                         Start infinite loop
 ‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘   Push the compressed string in uppercase, starting from FEWER, with a trailing space
                        ?  Print without trailing newline

Erik the Outgolfer

Posted 2017-05-07T06:33:52.780

Reputation: 38 134

13Honestly, I don't understand why Python solutions get explanations and this one doesn't. What in the world is happening here? – nluigi – 2017-05-07T20:39:46.117

3@nluigi black magic – Nic Robertson – 2017-05-07T22:10:27.320

2It's physically impossible to know what is going on here if you don't know the language, would you mind giving an explanation please. – George Willcox – 2017-05-08T07:23:46.503

@nluigi Because Python users normally go for readability in everyday life. 05AB1E is focused on code golf. – CodeMonkey – 2017-05-08T08:29:15.417

1@nluigi The [ means 'start of infinite loop', the ‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘ is a compressed version of EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS, and ? means print without newline. – Okx – 2017-05-08T10:35:36.347

@nluigi Explanation added, although what Okx said (I didn't have time to add an explanation yesterday) and not very impressive. – Erik the Outgolfer – 2017-05-08T10:42:42.240

But how does string compression work in 05AB1E? I couldn't find an explanation anywhere – Leo – 2017-05-08T12:04:24.780

1

@Leo That's greatly under-explained. First, you go to this file. To the right of some of the extended characters, you can see a number. If it's one-digit, pad with a leading zero. Two such chars form a 4-digit number with possible leading zeroes. Then, this number is used as an zero-based index to this dictionary. The behavior of each word then depends on the quotes, which you can find on the first file I linked by searching for compressed.

– Erik the Outgolfer – 2017-05-08T12:14:45.247

41

SVG(HTML5), 336 bytes

<svg width=500 height=500><defs><path id=p d=M49,250a201,201,0,0,1,402,0a201,201,0,0,1,-402,0></defs><text font-size="32"><textPath xlink:href=#p>EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS</textPath><animateTransform attributeName=transform type=rotate from=360,250,250 to=0,250,250 dur=9s repeatCount=indefinite>

Edit: Some people have found that the font doesn't quite fit for them so here is a version that allows you a few pixels of adjustment:

<p><input type=number value=0 min=0 max=9 oninput=p.setAttribute('d','M250,250m20_,0a20_,20_,0,1,1,-20_,-20_a20_,20_,0,1,1,-20_,20_a20_,20_,0,1,1,20_,20_a20_,20_,0,1,1,20_,-20_'.replace(/_/g,this.value))></p>
<svg width=500 height=500><defs><path id=p d=M250,250m200,0a200,200,0,1,1,-200,-200a200,200,0,1,1,-200,200a200,200,0,1,1,200,200a200,200,0,1,1,200,-200></defs><text font-size="32"><textPath xlink:href=#p>EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS</textPath><animateTransform attributeName=transform type=rotate from=360,250,250 to=0,250,250 dur=9s repeatCount=indefinite>

Neil

Posted 2017-05-07T06:33:52.780

Reputation: 95 035

This is beautiful, but can you make it inside out (top of letters facing out from the circle) and all uppercase? – Adám – 2017-05-07T15:38:42.833

@Adám How's this? I've had to tweak the dimensions slightly but it's the same byte count. – Neil – 2017-05-07T16:24:00.377

Stunning. It actually qualifies, as running your code snippet displays the text scrolling in a half-circle, so it really is infinitely repeating the required text. I was actually thinking of posting a challenge for a circular output too. – Adám – 2017-05-07T16:41:05.747

@Adám If you click "Full page" then you'll see the bottom half of the circle too... – Neil – 2017-05-07T16:58:04.610

1@Adám, you should; that's what I thought this challenge was going to be when I first read it. – Shaggy – 2017-05-07T18:25:56.627

@Shaggy Here you go.

– Adám – 2017-05-07T20:18:53.300

@Adám Now I'm conflicted. I've got 11 votes here... – Neil – 2017-05-07T20:39:53.410

Leave it. Your submission here is valid, and it is the shortest (only) SVG submission here. But head over there now… – Adám – 2017-05-07T21:10:34.243

8There's a space missing in "MEANSEASIER", which is present between other words. – ShreevatsaR – 2017-05-08T01:58:18.720

@ShreevatsaR I guess you must be using a slightly different font to me, I don't know of an easy way to fix that, except possibly through the use of a textbox to allow the output to be adjusted on a pixel-by-pixel basis. – Neil – 2017-05-08T07:37:15.133

@Neil My browser says that the font being used is Times. Note that this missing space is at the boundary between where the textpath ends (…MEANS) and where it begins (EASIER…). I tried simply inserting a space into the textpath but it didn't work. I get slightly better results if I change the textpath to move the E from the beginning to the end (that is: ASIER COMMUNICATIONCODERS MEANS E): then the E and A run into each other slightly. – ShreevatsaR – 2017-05-08T07:50:14.790

Anyone try this with the font in the original picture – Matthew Roh – 2017-05-08T09:36:14.943

1@ShreevatsaR I've added a second version which includes a textbox for making small adjustments, maybe that helps. – Neil – 2017-05-08T12:27:52.243

13

PHP, 76 Bytes

for(;;)echo strtr(EASI0MMUNICATION1FAST0DING1FEW0DERS1,["ER CO"," MEANS "]);

Try it online!

Jörg Hülsermann

Posted 2017-05-07T06:33:52.780

Reputation: 13 026

4Only in PHP.... – user253751 – 2017-05-08T04:18:50.937

@immibis What do you mean? – Jörg Hülsermann – 2017-05-08T08:55:05.060

I mean you managed to demonstrate at least 3 PHP "design quirks" in one line of code. This line of code is an illustration of why PHP is considered harmful. – user253751 – 2017-05-08T09:07:53.507

@immibis It is only harmful if you not know what you are doing. And with PHP 7 you can do it in a better way as before. – Jörg Hülsermann – 2017-05-08T09:27:45.920

1@immibis "mimimi don't like php" Thought we were past that point for like a decade. :-) – Zsolt Szilagy – 2017-05-08T15:40:10.163

@immibis Could you name those 'design quirks'? I need PHP for a certain project and I would definitely like to know what to avoid if I don't know when I'm doing. – Arc676 – 2017-05-09T09:26:28.830

4@Arc676 First, a name without a dollar sign is assumed to be a constant. Second, an undefined constant is assumed to be itself as a string. So in this code EASI0MMUNICATION1FAST0DING1FEW0DERS1 is treated as the string "EASI0MMUNICATION1FAST0DING1FEW0DERS1". Third, strtr expects an associative array (a "map" or "dictionary" in other languages), but this code passed in a regular array, so it treats the regular array as an associative array with keys 0 and 1. Finally, those integers 0 and 1 get treated as strings "0" and "1" because, you guessed it, the function needs strings. – wavemode – 2017-05-09T14:53:10.173

11

Vim 69 bytes

qqAFEWER CODERS MEANS EASIER COMMUNICATION M<C-n> FASTER CODING M<C-n> <esc>@qq@q

James

Posted 2017-05-07T06:33:52.780

Reputation: 54 537

I just love it when a straightforward Vim command sequence makes for a decent code golf solution. :-D – DevSolar – 2017-05-08T09:05:09.350

7

HTML, 122 bytes.

Sorry, can't help myself.

<marquee style="width:5em;word-spacing:5em;">EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS </marquee>

Mr Lister

Posted 2017-05-07T06:33:52.780

Reputation: 3 668

why the huge word spacing? – Adám – 2017-05-08T19:53:42.957

@Adám Because a marquee always leaves that amount of width between iterations (i.e. its own width). And I couldn't find a way to collapse that, so I had to improvise and put the same amount of space between each word as well. – Mr Lister – 2017-05-08T19:56:58.693

Can't you remove the end tag? – NoOneIsHere – 2017-11-12T17:10:20.457

@NoOneIsHere How would that help? Or did you mean it would golf it down by 10 bytes? I'm not sure I want to do that; the end tag is not actually optional. – Mr Lister – 2017-11-12T18:00:43.627

@MrLister I meant golf it down. I thought single-tag HTML documents didn't need the end tag. – NoOneIsHere – 2017-11-12T18:49:05.330

6

Python 2, 82 81 bytes

-1 byte thanks to Leaky Nun.

I'm probably doing something wrong but it's really late so meh. Note the trailing comma.

while 1:print'FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS',

Try it online!

Another solution, 85 bytes

I can probably golf this further.

while 1:print'%sER CO%s MEANS'*3%('FEW','DERS',' EASI','MMUNICATION',' FAST','DING'),

Try it online!

totallyhuman

Posted 2017-05-07T06:33:52.780

Reputation: 15 378

1You can delete the second space. – Leaky Nun – 2017-05-07T08:39:08.157

@LeakyNun How did I miss that? o0 Thanks! – totallyhuman – 2017-05-07T08:42:14.487

In the second one, you can move the spaces into the format string. – wizzwizz4 – 2017-05-07T10:36:57.803

@wizzwizz4 Leading whitespace is disallowed. – totallyhuman – 2017-05-07T14:23:58.387

2@totallyhuman Currently, you have a bug where it will output "FEWER CODERS MEANSEASIER COMMUNICATION MEANSFASTER CODING MEANSFEWER...". If you change the format string to '%sER CO%s MEANS ' and remove the spaces from the format items, it'll be golfier and work properly. – wizzwizz4 – 2017-05-07T16:01:24.157

@wizzwizz4 Erm... I don't see this bug. Are you sure you're including the trailing comma? – totallyhuman – 2017-05-09T15:20:11.000

@totallyhuman No, I wasn't. Your code works fine. However, making that change would save one more byte than I previously thought. – wizzwizz4 – 2017-05-09T16:20:28.223

5

Jelly, 33 29 bytes

4 bytes thanks to Erik the Outgolfer.

“©%5ÐƬwȮh¬Þ6.⁷ḷḊḥṫɠlḶṀġß»Œu⁶¢

Try it online!

Leaky Nun

Posted 2017-05-07T06:33:52.780

Reputation: 45 011

>

  • You can use a better compressed string: “©%5ÐƬwȮh¬Þ6.⁷ḷḊḥṫɠlḶṀġß» (still need to use Œu and ;⁶) 2) You can use ß instead of 1¿.
  • < – Erik the Outgolfer – 2017-05-07T07:28:46.190

    5

    Brachylog, 70 bytes

    "FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "w↰
    

    Try it online!

    How it works

    "..."w↰
    "..."     generate the string "..."
         w    print to STDOUT without trailing newline
          ↰   do the whole thing all over again
    

    Leaky Nun

    Posted 2017-05-07T06:33:52.780

    Reputation: 45 011

    4

    HTML/CSS (firefox only), 179 177 183 176 173 bytes

    <b id=a>EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS </b>E<a><style>*{margin:0;}a{position:fixed;left:0;right:0;height:1em;background:-moz-element(#a)}
    

    Certianly nowhere near the lowest scores, I just thought it would be fun to get infinite repitition in HTML/CSS, without any JS involved :)

    Changelog:

    • Removed quotes around id attribute
    • added "round" background-repeat to stretch the text so it wraps correctly
    • changed to single-line output
    • replace width:100% style with right:0 to save 3 bytes

    user371366

    Posted 2017-05-07T06:33:52.780

    Reputation: 141

    Nice try, but that starts over on every line. OP: with no newlines. – Adám – 2017-05-08T08:28:37.953

    Any of the answers that print to a terminal will wrap at the end of the row. Try zooming out; you'll see it continues on forever horizontally as well, it's just "hidden" by the browser window. – user371366 – 2017-05-08T08:37:41.883

    Also, I wasted a few bytes having the repeating image "round off" so that it wraps more convincingly, hope that helps – user371366 – 2017-05-08T08:38:45.930

    Wrapping is fine, but yours doesn't. It could be seen as "printing" infinitely many infinite lines. Just restrict the background to a single line. – Adám – 2017-05-08T08:39:20.903

    Since my original submission I edited it to pretend to "wrap"; it stretches the image the smallest amount necessary so that the last repitition of the sentence on each line ends at the edge of the screen. If this is not acceptable I can throw in a repeat no-repeat but that'll be costly :( – user371366 – 2017-05-08T08:44:24.463

    Yeah, well, you're not winning against other languages anyway… – Adám – 2017-05-08T08:46:29.810

    doesn't mean i'm not aiming to do the best I can given the constraints of the language! – user371366 – 2017-05-08T08:50:33.287

    Right, but you've got to stick to the OP specs. Won't it save you to avoid the rounding? – Adám – 2017-05-08T08:51:19.480

    1yes. i thought i would have to put repeat no-repeat or ; background-repeat: repeat-x, but figured out how to avoid it. Turns out obeying the spec saves bytes! – user371366 – 2017-05-08T08:56:29.420

    3

    Python 3, 87 bytes

    while 1:print(end="FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ")
    

    Try it online!

    Leaky Nun

    Posted 2017-05-07T06:33:52.780

    Reputation: 45 011

    What does end= do? – Adám – 2017-05-07T07:45:59.227

    @Adám It lets you print without a trailing newline. – Erik the Outgolfer – 2017-05-07T07:46:11.573

    3@Adám The default arguments to print are print("",end="\n"). – Leaky Nun – 2017-05-07T07:46:35.020

    I thought that substituting ER CO and MEANS (leading+trailing space) would save some bytes, but apparently not. – Erik the Outgolfer – 2017-05-07T07:55:27.867

    3

    C (gcc), 92 bytes

    main(){for(;printf("FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "););}
    

    Try it online!

    Leaky Nun

    Posted 2017-05-07T06:33:52.780

    Reputation: 45 011

    3

    LOLCODE, 116 bytes

    HAI 1
    IM IN YR O
    VISIBLE "FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "!
    IM OUTTA YR O
    KTHXBYE
    

    Try it online!

    Leaky Nun

    Posted 2017-05-07T06:33:52.780

    Reputation: 45 011

    I'm not familiar with LOLCODE. How does this output forever? – Esolanging Fruit – 2017-05-07T11:49:30.337

    @Challenger5 IM IN YR ... and IM OUTTA YR ... form an infinite loop. – Leaky Nun – 2017-05-07T12:09:30.033

    1You can remove HAI and KTHXBYE as compilers don't require them. Also, no exclamation at end of VISIBLE. – OldBunny2800 – 2017-05-07T17:14:23.817

    @OldBunny2800 What version of LOLCODE are you using? In this version, the trailing ! suppresses the carriage return after printing.

    – Arc676 – 2017-05-09T09:29:36.727

    Oh, I forgot about the no-line-break rule. I didn't realize LOLCODE had a way to do this! – OldBunny2800 – 2017-05-09T11:31:44.173

    3

    Ruby, 77 bytes

    assigning " MEANS " to a variable saved all of 1 byte :-)

    loop{$><<"EASIER COMMUNICATION#{m=" MEANS "}FASTER CODING#{m}FEWER CODERS"+m}
    

    Level River St

    Posted 2017-05-07T06:33:52.780

    Reputation: 22 049

    3

    JavaScript (ES6), 90 87 bytes

    while(1)console.log`EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS `
    

    Functioning Alternative, 100 bytes

    "Functioning" here meaning "won't crash your browser" (for a while, at least)!

    setInterval(_=>console.log`EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS `,1)
    

    Shaggy

    Posted 2017-05-07T06:33:52.780

    Reputation: 24 623

    1Your code does not work: document.write\EASIER COMMUNICATION${m=" MEANS "}FASTER CODING${m}FEWER CODERS`+mis equivalent todocument.write([ 'EASIER COMMUNICATION', 'FASTER CODING', 'FEWER CODERS' ], ' MEANS ', ' MEANS ') + ' MEANS ', which 1) will convert all arguments to strings and concatenate (printingEASIER COMMUNICATION,FASTER CODING,FEWER CODERS MEANS MEANS ), and 2) won't include the last' MEANS '` anyways since it's outside the function call... – Frxstrem – 2017-05-07T18:52:11.043

    2

    Befunge, 73 bytes

    " SNAEM GNIDOC RETSAF SNAEM NOITACINUMMOC REISAE SNAEM SREDOC REWEF">:#,_
    

    Try it online!

    Leaky Nun

    Posted 2017-05-07T06:33:52.780

    Reputation: 45 011

    Using Befunge 98, you can replace ">:#,_ with A"k, and save two bytes. Link

    – Hactar – 2017-05-07T16:49:54.140

    2

    Octave, 86 bytes

    while fprintf('FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ')end
    

    Explanation:

    This is fairly self-explanatory. The only real "trick" here is to use while fprintf. When fprintf is given a return argument, it will return the number of characters printed, and all non-zero numbers are considered true in Octave, so the loop condition will always be true.


    I desperately tried to make the more interesting approach shorter, but it turned out to be 9 bytes longer, unfortunately:

    while fprintf('FEW%sDERS%sEASI%sMMUNICATION%sFAST%sDING%s',{'ER CO',' MEANS '}{'ababab'-96})end
    

    This tries to insert the strings 'ER CO' and ' MEANS' into the string at the correct locations, using direct indexing where 'ababab'-96 is a shorter version of [1 2 1 2 1 2].

    This was a bit shorter (93 bytes), but still longer than the naive approach

    while fprintf('FEWER CODERS%sEASIER COMMUNICATION%sFASTER CODING%s',{' MEANS '}{[1,1,1]})end
    

    And another one (89 bytes), using Level River St's approach:

    while fprintf(['FEWER CODERS',s=' MEANS ','EASIER COMMUNIDATION',s,'FASTER CODING',s])end
    

    This should work in theory, for one less byte than the original solution, but it fails for some strange reason:

    while fprintf"FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "
    end
    

    This uses the buggy feature that fprintf('abc def') is equivalent to fprintf"abc def". The end must be on the next line, but it's still one byte shorter since two parentheses are skipped.

    And one more for 87:

    while fprintf('FEWER CODERS%sEASIER COMMUNICATION%sFASTER CODING%s',k=' MEANS ',k,k)end
    

    Well, don't say I didn't try :)

    Stewie Griffin

    Posted 2017-05-07T06:33:52.780

    Reputation: 43 471

    You do know that fprintf recycles arguments right? Your last version can be 6 bytes less, Try it online!

    – Sanchises – 2019-09-23T12:52:04.450

    2

    Alice, 70 bytes

    " SNAEM "k"SREDOC REWEF"e0j"GNIDOC RETSAF"e0j"NOITACINUMMOC REISAE"d&o
    

    Try it online!

    Explanation

    Unfortunately, reusing the MEANS (with spaces) only saves a single byte over just printing the whole thing in one go. Consequently, extracting the ER CO would actually cost a byte (or probably more, because it would be slightly more expensive to extract another section).

    " SNAEM "                Push the code points of " MEANS " in reverse.
    k                        If there is a return address on the return address stack (which
                             there isn't right now), pop it and jump there.
    "SREDOC REWEF"           Push the code points of "FEWER CODERS" in reverse.
    e0j                      Jump to the beginning of the line, pushing the location of the
                             j to the return address stack. Hence, we push the code points
                             of " MEANS " again, but then the k pops the return address and
                             jumps back here.
    "GNIDOC RETSAF"          Push the code points of "FASTER CODING" in reverse.
    e0j                      Jump to the beginning of the line again.
    "NOITACINUMMOC REISAE"   Push the code points of "EASIER COMMUNICATION" in reverse.
    d                        Push the stack depth.
    &o                       Print that many bytes from the top of the stack.
                             Afterwards the IP wraps around to the first column and the
                             program starts over.
    

    Martin Ender

    Posted 2017-05-07T06:33:52.780

    Reputation: 184 808

    2

    C#, 102 bytes

    _=>{for(;;)System.Console.Write("EASIER COMMUNICATION{0}FASTER CODING{0}FEWER CODERS{0}"," MEANS ");};
    

    TheLethalCoder

    Posted 2017-05-07T06:33:52.780

    Reputation: 6 930

    1

    Pyth, 69 bytes

    Wp"FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS 
    

    Try it online!

    How it works

    Wp"...
    W       while the following is true: (do nothing)
     p      print the following and return the following
      "...
    

    Leaky Nun

    Posted 2017-05-07T06:33:52.780

    Reputation: 45 011

    1

    Lua, 92 bytes

    while 1 do io.write("FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ")end
    

    Try it online!

    Leaky Nun

    Posted 2017-05-07T06:33:52.780

    Reputation: 45 011

    1

    Java (OpenJDK 9), 114 bytes

    static void f(){while(1>0)System.out.print("FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ");}
    

    Try it online! Stop the execution after a few seconds because it does not know when to stop.

    totallyhuman

    Posted 2017-05-07T06:33:52.780

    Reputation: 15 378

    Submissions have to be full programs or functions. – user41805 – 2017-05-07T09:53:56.417

    @KritixiLithos Can it be an anonymous lambda? – totallyhuman – 2017-05-07T10:04:14.240

    @totallyhuman Yes. In other languages that's allowed; I don't see why Java should be an exception. – wizzwizz4 – 2017-05-07T10:40:19.140

    Why stop execution? Just untick disable output cache. – Adám – 2017-05-07T15:46:08.627

    Can't you do while(1)? – OldBunny2800 – 2017-05-07T17:15:43.593

    @OldBunny2800 Nerp. Java is just wonderful like that. – totallyhuman – 2017-05-07T17:29:59.617

    3But you can do for(;;) – Brian McCutchon – 2017-05-08T04:52:33.783

    @KritixiLithos since Java 9 has REPL, I think whatever evaluates to required expression should be acceptable. – Sikorski – 2017-05-08T06:58:17.373

    You can remove static as it adds absolutely nothing to the answer. – Olivier Grégoire – 2017-05-08T15:06:52.600

    1

    C, 86 bytes

    f(){printf("FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ");f();}
    

    See it work online.

    2501

    Posted 2017-05-07T06:33:52.780

    Reputation: 748

    This depends upon the compiler doing tail-call optimization, but I guess most do. – Wayne Conrad – 2017-05-08T17:14:36.427

    @WayneConrad It is a valid answer without that optimization. Infinite recursion satisfies the requirement: Produce infinitely repeating output – 2501 – 2017-05-08T17:24:58.160

    Without tail call optimization, the stack will overflow eventually. Try compiling it with gcc (use default options, so no tail call optimization), and when you run it, redirect output to /dev/null in order to speed up the process. It'll seg fault. With the '-O2' option, which enables tail call optimization, it runs forever as intended. – Wayne Conrad – 2017-05-08T21:38:25.260

    @WayneConrad Infinite recursion is conceptually, infinite. The question doesn't constrain to a practical definition of infinite. By common consensus, infinite recursion is infinitely repeating, in other words, no logic within the program will stop it.. – 2501 – 2017-05-08T22:47:19.067

    I am not declaring that your solution is invalid. All I meant to point out is that, in order to execute properly, a little cooperation is needed from the compiler. – Wayne Conrad – 2017-05-09T00:08:55.283

    @WayneConrad Not necessarily. Enough memory will do just as well. – 2501 – 2017-05-09T07:28:25.967

    Can shave off a byte: f(){f(printf("FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "));} – gastropner – 2018-01-28T08:53:11.927

    1

    bc, 76 bytes

    while(1)"EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "
    

    Maxim Mikhaylov

    Posted 2017-05-07T06:33:52.780

    Reputation: 571

    1

    MATL, 68 bytes

    `'EASIER COMMUNICATION*FASTER CODING*FEWER CODERS*'42' MEANS 'Zt&YDT
    

    Try it online!

    Explanation

    `                                                     % Do...while
      'EASIER COMMUNICATION*FASTER CODING*FEWER CODERS*'  %   Push this string
      42                                                  %   Push 42 (ASCII for '*')
      ' MEANS '                                           %   Push this string  
      Zt                                                  %   String replacement
      &YD                                                 %   printf to STDOUT
      T                                                   %   Push true as loop condition
                                                          % End (implicit)
    

    Luis Mendo

    Posted 2017-05-07T06:33:52.780

    Reputation: 87 464

    1

    Perl 6,  81 80  79 bytes

    print ('EASIER COMMUNICATION','FASTER CODING','FEWER CODERS'X'MEANS'),' 'for ^Inf
    

    Try it

    loop {print ('EASIER COMMUNICATION','FASTER CODING','FEWER CODERS'X'MEANS'),' '}
    

    Try it

    loop {print [~] 'EASIER COMMUNICATION','FASTER CODING','FEWER CODERS'X'MEANS '}
    

    Try it

    Brad Gilbert b2gills

    Posted 2017-05-07T06:33:52.780

    Reputation: 12 713

    1

    Axiom, 92 89 bytes

    repeat fortranLiteral"EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "
    

    insert in one line to Axiom window. Possible there is one function shorter than "fortranLiteral" that not write "\n"

    RosLuP

    Posted 2017-05-07T06:33:52.780

    Reputation: 3 036

    1

    Braingolf, 78 bytes

    "FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "[!@66<1+>]
    

    or

    Braingolf, 77 bytes [non-competing]

    "FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "[!&@<1+>]
    

    This one's non-competing as I had to fix 2 bugs regarding using the greedy modifier (&) with the char print operator (@)

    Skidsdev

    Posted 2017-05-07T06:33:52.780

    Reputation: 9 656

    1

    Blank, 267 bytes

    [70][69][87][69][82][32][67][79][68][69][82][83][32][77][69][65][78][83][32][69][65][83][73][69][82][32][67][79][77][77][85][78][73][67][65][84][73][79][78][32][77][69][65][78][83][32][70][65][83][84][69][82][32][67][79][68][73][78][71][32][77][69][65][78][83][32]{p}
    

    Pushes FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS to the stack, then prints it. Never terminates as no {@}

    Also fun fact, I used the following Braingolf script to generate this code

    "FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "l>[<$_<91+2^9-@_ 91+2^7-@l>]"{p}"@3
    

    Skidsdev

    Posted 2017-05-07T06:33:52.780

    Reputation: 9 656

    1

    PowerShell, 100 97 bytes

    for(){"EASIER COMMUNICATION","FASTER CODING","FEWER CODERS"|%{Write-Host -NoNewLine "$_ MEANS "}}
    

    Try it online!


    Older answer:

    PowerShell, 100 bytes

    while(1){"EASIER COMMUNICATION","FASTER CODING","FEWER CODERS"|%{Write-Host -NoNewLine "$_ MEANS "}}
    

    Try it online!

    PowerShell is a little tricky for this because most dignified ways of outputting to the console also insert a new line. Write-Host is required because of this. However, it still demonstrates how pipelining can shorten the coding footprint.

    You will need to stop the execution after a short time because it will not return as it is an infinite loop.

    Edit: shaved off 3 bytes by changing a while loop to a for loop.

    Jeff Freeman

    Posted 2017-05-07T06:33:52.780

    Reputation: 221

    1

    Groovy 79 bytes

    m=" MEANS";for(;;)print"EASIER COMMUNICATION$m FASTER CODING$m FEWER CODERS$m "
    

    Uses groovy's string interpolation.

    staticmethod

    Posted 2017-05-07T06:33:52.780

    Reputation: 191

    1

    AWK, 85 bytes

    BEGIN{for(c=" MEANS ";;)printf"EASIER COMMUNICATION"c"FASTER CODING"c"FEWER CODERS"c}
    

    Try it online!

    Apparently I came up with the same shortcut as others. All other substitutions take up too much space. :(

    Robert Benson

    Posted 2017-05-07T06:33:52.780

    Reputation: 1 339

    1

    Ly, 75 bytes

    1[p"EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "&o1]
    

    Try it online!

    Explanation:

    1[p                                                                      1] # infinitely
       "EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "&o   # print the string
    

    LyricLy

    Posted 2017-05-07T06:33:52.780

    Reputation: 3 313

    1

    C# (.NET Core), 125 bytes

    class c{static void Main(){for(;;)System.Console.Write("EASIER COMMUNICATION{0}FASTER CODING{0}FEWER CODERS{0}"," MEANS ");}}
    

    This is a full program rather than just a function like the other C# answer.

    Test online

    snorepion

    Posted 2017-05-07T06:33:52.780

    Reputation: 43

    1

    Keg, 69 bytes

    { SNAEM GNIDOC RETSAF SNAEM NOITACINUMMOC REISAE SNAEM SREDOC REWEF(,
    

    Explanation:

    {#                                                                     Infinite loop
      SNAEM GNIDOC RETSAF SNAEM NOITACINUMMOC REISAE SNAEM SREDOC REWEF#   Pushing the string reversed
                                                                       (, #And outputting it reversed
    

    TIO

    user85052

    Posted 2017-05-07T06:33:52.780

    Reputation:

    1

    Retina, 64 60 bytes

    +>(`$
    EASI_MMUNICATION@FAST_DING@FEW_DERS@
    @
     MEANS 
    _
    ER CO
    

    Try it online!

    Explanation

    The program consists of three grouped replacement stages. The group as a whole is applied repeatedly until the output stops changing (which it never will) and the output is printed after each time (rather than just at the end, because there will be no end)

    The first stage adds the string EASI_MMUNICATION@FAST_DING@FEW_DERS@ at the end of the input. The input starts out empty, but keeps growing.

    The second stage replaces each of those @s with the string MEANS (surrounded by a space on each side).

    The third stage replaces the _s with the string ER CO.

    Sara J

    Posted 2017-05-07T06:33:52.780

    Reputation: 2 576

    1

    Hexadecimal Stacking Pseudo-Assembly Language, 810 bytes

    00000020002040000020005340000020004E40000020004140000020004540000020004D40000020002040000020005340000020005240000020004540000020004440000020004F40000020004340000020002040000020005240000020004540000020005740000020004540000020004640000020002040000020005340000020004E40000020004140000020004540000020004D40000020002040000020004740000020004E40000020004940000020004440000020004F40000020004340000020002040000020005240000020004540000020005440000020005340000020004140000020004640000020002040000020005340000020004E40000020004140000020004540000020004D40000020002040000020004E40000020004F40000020004940000020005440000020004140000020004340000020004940000020004E40000020005540000020004D40000020004D40000020004F400000200043400000200020400000200052400000200045400000200049400000200053400000200041400000200045400000140000010000
    

    Try it online!

    000000  Label Start:
    200020
    400000
    .
    .
    .       push letters
    140000  print string
    010000  jump to start
    

    Dorian

    Posted 2017-05-07T06:33:52.780

    Reputation: 1 521

    1

    Whitespace, 415 bytes

    (much whitespace)

    Try it online!

    lssl        label start:
    sssttssssstsststtsttstsststttsstttsstsstttssstsssttttsttttsttttsttttsststttsstssststtssssstttsttttsstssttsttssttsttsstsssstssttssssssttttttstttsttsttsttstsstssssssttssststttssttttttstttstssssssttsssttsssssttssttsststttstttttttstststsstsssstttstsstsssstsssstttstttsststsssstssssttttstttssstttssttssstsssstssl
                push base 24 sentence "EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "
    lsssl       label print:
    sssttsssl   24
    stsstl      copy 1
    stsstl      copy 1
    tstt        mod
    ssststttl   23
    tsst        sub
    lsl         dup
    ltstl       jz space
    ssstttsssl  push 56
    tsss        add
    lsstl       label space:
    ssstsssssl  push 32
    tsss        add
    tlss        printc
    tsts        div
    sls         dup
    ltsl        jz start
    lslsl       jump print
    

    Dorian

    Posted 2017-05-07T06:33:52.780

    Reputation: 1 521

    1Would zero as space be shorter since you wouldn't need the 23 sub dup part? – Jo King – 2019-10-21T12:15:39.703

    It also works with a zero for space (I did that in my 99 bootles of beer answer.) The problem is, the string must not end with a space. It only works with a leading space which is not allowed afaik.

    – Dorian – 2019-10-21T12:42:56.753

    That makes sense. How about duping the 24 rather than pushing 23 and then subtracting the mod from the duped value and jumping if negative? – Jo King – 2019-10-21T12:58:23.590

    1I don't know if I'm understanding something wrong. The mod values are in the range 0-23. If you subtract 24 from that, every value will be negative. If you swap it before subtraction, none of the values will be negative or zero. – Dorian – 2019-10-21T13:37:02.380

    0

    Tcl, 94 bytes

    while 1 {puts -nonewline "EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "}
    

    Try it online!

    sergiol

    Posted 2017-05-07T06:33:52.780

    Reputation: 3 055

    0

    Bash 68 bytes

    f()(printf "%sER CO%s MEANS " EASI MMUNICATION FAST DING FEW DERS;f)
    

    Try it online

    Nahuel Fouilleul

    Posted 2017-05-07T06:33:52.780

    Reputation: 5 582

    0

    brainfuck, 657 bytes

    +[++++[++++>---<]>++.----.>-[--->+<]>--.----------.----.+++++++++++++.--[----->++<]>.+[->++<]>+.[->+++++<]>.--..++++++++.-------.-----.------.--.>-[--->+<]>-.-----------.++++++.-.++[----->++<]>.++++++[->++<]>+.--------.----.+++++++++++++.+++++.+[--->+<]>++++.+++[->++<]>.-----.>-[--->+<]>--.+.[----->+<]>+.+++++++++++++.--[----->++<]>.+[->++<]>+.[->+++++<]>.-----------.+++++.+++++.-------.+[->++++<]>.++++++[->++<]>+.--------.----.+++++++++++++.+++++.+[--->+<]>++++.+++[->++<]>.-.>+[--->++<]>+.++[----->+<]>.+++++++++++++.--[----->++<]>.+[->++<]>+.[->+++++<]>.-----------.+.+++++++++++++.+.+[--->+<]>++++.++++++[->++<]>+.--------.----.+++++++++++++.+++++.]
    

    Try it online!

    Christopher

    Posted 2017-05-07T06:33:52.780

    Reputation: 3 428

    0

    APL NARS, 152 bytes, 76 chars

    f
    A:⍞←'EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS '⋄→A
    

    I don't know if there are some leak or the buffer for output is buffered in a way increase its size. Possible i see it wrong but it seems that the size mem in NARS increase, and afther some second the output of the line disappear.

    RosLuP

    Posted 2017-05-07T06:33:52.780

    Reputation: 3 036

    You don't need to count the f (or the newline, which you didn't count anyway), by every character is two bytes in NARS, so 75 chars=150 bytes. – Adám – 2018-01-11T18:45:08.950

    1Shorter: →≡⍞←'EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS ' – Adám – 2018-01-11T18:46:29.357

    →⍞←'EASIER.... Why not this? – RosLuP – 2018-01-11T20:38:54.087

    Because needs a line number to go to. Text is not a line number, but its depth (1) is the number you need. – Adám – 2018-01-12T08:14:34.460

    0

    MathGolf, 74 bytes

    1{"EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "_q}∟
    

    Try it online!

    Explantion:

    1                                                                          Loop condition
     {                                                                         Start block
      "EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "_q   Output the string
                                                                            }∟ Do without popping
    

    user85052

    Posted 2017-05-07T06:33:52.780

    Reputation:

    Mathgolf does have both a compressed string literal command as well as a dictionary lookup, either of which should shorten this somewhat (though I have no experience with them) – Jo King – 2019-10-13T09:20:49.263

    None of those methods (compressed string literals (they only support lowercase letters) and dictionary lookups (none of those words are completely upper-case)) can compress capital lettters. In addition, there isn't a built-in in MathGolf that will capitalize a whole string. – None – 2019-10-13T09:22:05.503

    Huh, that's weird, though you could use (map capitalise) to do so – Jo King – 2019-10-13T09:45:12.763

    Huh, this is weird, dictionary compression is actually longer than an uncompressed string.

    – None – 2019-10-13T09:53:26.710

    @JoKing Sorry, my compressed string is as long as the program.

    – None – 2019-10-13T10:25:55.047