• Coding
  • [Exercise] Happy Birthday golf

rtp: According to my wc that's 601characters. I think you're going to need much better than this to compete in code golf ;)
Matlab/Octave (I figured that the simplest way is the shortest):
fprintf('Happy Birthday to you,\nHappy Birthday to you,\nHappy Birthday dear name!\nHappy Birthday to you.\n')
Happy birthday who?
rahmu wrotertp: According to my wc that's 601characters. I think you're going to need much better than this to compete in code golf ;)
lol, lets just say this is the first strike :P
C Language:

#1 The native C code, runs on all compilers, without colored text.
main(){int i;for(i=0;i<4;i++){printf("Happy Birthday");i!=3?i==2?puts(" dear name!"):puts(" to you,"):puts(" to you.");}}
#2 This one is 100% accurate, tested on Pelles C. (Define compatibility names enabled in compiler settings)
main(){int i;for(i=0;i<4;i++){textcolor(3);printf("Happy Birthday");textcolor(7);i!=3?i==2?puts(" dear name!"):puts(" to you,"):puts(" to you.");}}
x = 'Happy Birthday '
print x + x.join('dear name!\n' if i==2 else 'to you,\n' for i in range(4))[:-2] + '.'
Number of characters: 108

Edit:
Without spaces
x='Happy Birthday '
print x+x.join('dear name!\n'if i==2 else'to you,\n'for i in range(4))[:-2]+'.'
Number of characters: 99
Here's my best one so far at 97 characters of Python code:
print "\n".join(map("".join,zip(['Happy Birthday ']*4,['to you,']*2+['dear name!']+['to you.'])))
I think I can go even lower by avoiding "to you" be repeated twice.

@mesa177: I wouldn't have posted the exercise if I didn't know how to beat your solution...

@ILIA_93: Good catch for the colored text, but in the interest of sanity, we can ignore the coloration of the text (which, quite frankly, is a problem with the formatting software of this forum and not at all intentional).
Put the text to print in a separated file. Let " f " be this file.

Using perl 48 chars:
open(FILE,"f");while(<FILE>){print$_;}closeFILE; 
Using Bash.. well 4 chars:
 cat f 

Cheating :) ?
Here's my shortest attempt in Ruby at 72 characters.
s="Happy Birthday to you,\n";puts s+s+s[0,15]+"dear name!\n"+s[0,21]+'.'
And some other ideas that are longer.
s="Happy Birthday to you,";[s,s,s[0,15]+"dear name!",s.chop+'.'].each{|l|puts l}
s="Happy Birthday to you,";puts [s,s,s[0,15]+"dear name!",s.chop+'.'].join("\n")
s="Happy Birthday to you,\n";puts s+s+s[0,15]+"dear name!\n"+s.chop.chop+'.'
s="Happy Birthday to you,\n";puts s+s+s[0,15]+"dear name!\n"+s.sub(',','.')
Fun stuff!
C++
#include <iostream>,<string>
using namespace std;int main(){string x="Happy Birthday",z=" dear name!",y=" to you";for(int i=0;i<2;++i)cout<<x+y+','<<endl;cout<<x+z<<endl<<x+y+'.';}
Didn't spend much on it and it kind of shows, 181 (or 179, if you disregard the obligatory new line) characters.
Print@Uncompress@"1:eJxTTMoPCs5iYGDwSCwoqFRwyiwqyUhJrFQoyVeozC/ViTEwNCJFJiU1sUghLzE3VRGnTj0AnLYm2g=="
Very close to zef's solution.

Javascript / 92 characters:
h="Happy Birthday to you,\n";console.log(h+h+h.slice(0,15)+"dear name!\n"+h.slice(0,21)+'.')
There's always this too:
s="Happy Birthday to you";print"%s,\n%s,\n%s dear name!\n%s."%(s,s,s,s)
php:
echo gzinflate(base64_decode("80gsKKhUcMosKslISaxUKMlXqMwv1eHyIEo4JTWxSCEvMTdVEbsGPS4A"));
@arithma nice simple and clean solution
@arithma your solution is incorrect.
%s dear name!
Output:
Happy Birthday to you dear name!
Should be:
s="Happy Birthday to you";print"%s,\n%s,\n%s dear name!\n%s."%(s,s,s[:14],s)
@m0ei: Damn that :D, good find.
Making up for my last hickup (70 chars):
s='Happy Birthday to you,\n'*4;print s[:61]+"dear name!"+s[68:90]+'.'
2 months later
@Arithma:

You can shorten that by one more character. By moving the newlines around and using one fewer character in array indices:
s='\nHappy Birthday to you,'*4;print s[1:62]+"dear name!"+s[:22]+'.'
4 days later
a='Happy Birtday'
b='to you'
print(a,b,',\n',a,b,',\n',a,'dear name!\n',a,b,'.')
81 char python
6 days later
a="happy birthday"
b=" to you,\n"
print a+b+a+b+a+" dear name!\n"+a+b[:7]+"."