読者です 読者をやめる 読者になる 読者になる

Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

【言語別】平均的なHello world!プログラム

スポンサードリンク

f:id:fa11enprince:20100930152341j:plain
Hello world!を画面に出力するのに平均的なHello worldのプログラムを書いてみました。
コーディング規約はその言語でメジャーなものに合わせて行数を計測しています。
僕が使ったことのある言語だけ短い順に並べています。
つまり下に行けばいくほど開発効率が悪いクソ言語ということです。異論は認める。
Visual Basicとなでしこだけ出力が豪華なのは仕様です。

bash 1行

echo "Hello world!"

Perl (5.10以降) 1行

say "Hello world!"

Python 1行

print "Hello world!"

Ruby 1行

puts("Hello, world!")

なでしこ 1行

「Hello wolrd!」と表示

Power Shell 1行

Write-Host "Hello world!"

Visual Basic 5行

Module Hello
    Sub Main()
        MsgBox("Hello world")
    End Sub
End Module

Java 5行

public class Hello World {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

C 6行

#include <stdio.h>
int main()
{
    puts("Hello world!");
    return 0;
}

C# 11行

using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            System.Console.WriteLine("Hello World!");
        }
    }
}

C++ 35行

#include <iostream>
template<char ORZ, char OTL=0 == 'e' ? 'e' : 0 > class x; 
template<char ORZ>
std::ostream& operator<< (std::ostream& m9, x<ORZ, 0>*)
{
    return m9 << ORZ;
}
template<char ORZ>
std::ostream& operator<< (std::ostream& m9, x<ORZ, 'o'>*)
{
    return m9 << static_cast<char>(ORZ - '!' + '/' - '.' );
}
template<>
std::ostream& operator<< <'~'>(std::ostream& m9, x<'~', 'o'>*)
{
    return m9 << ('w');
}
int main(int orz=3)
{
    std::cout
        << reinterpret_cast<x<'h', 'o'>*>(0)
        << reinterpret_cast<x<'e'>*>(1)
        << reinterpret_cast<x<'l'>*>(2)
        << reinterpret_cast<x<'l'>*>("(;´Д`)")
        << reinterpret_cast<x<'o'>*>(4)
        << reinterpret_cast<x<' '>*>(5)
        << reinterpret_cast<x<'~','o'>*>("( ゚Д゚)")
        << reinterpret_cast<x<'o'>*>(7)
        << reinterpret_cast<x<'r'>*>(8)
        << reinterpret_cast<x<'l'>*>("(´・ω・`)")
        << reinterpret_cast<x<'d'>*>(0)
        << reinterpret_cast<x<'!'>*>(1)
        << std::endl;
    return 0;
}