いろんな言語の Hello World の書き方

`Hello, World!` と改行を出力するプログラムのいろんな言語での書き方の一覧です。

## Ada

ソースコード

```ada:hello.adb
with Ada.Text_IO;

procedure Hello is
begin
   Ada.Text_IO.Put_Line ("Hello, World!");
end Hello;
```

コンパイルと実行

```shell-session:Terminal
$ gnatmake hello.adb -o hello_ada
x86_64-linux-gnu-gnatbind-10 -x hello.ali
x86_64-linux-gnu-gnatlink-10 hello.ali -o hello_ada
$ ./hello_ada
Hello, World!
```

または [Alire](https://alire.ada.dev/) を使う。

```shell-session:Terminal
$ alr build
ⓘ Building hello_ada/hello_ada.gpr...
gprbuild: "hello_ada" up to date
Build finished successfully in 0.60 seconds.

$ ./bin/hello_ada
Hello, World!
```

## C

ソースコード

```c:hello.c
#include <stdio.h>
int main() {
    printf("Hello, World!\n");
}
```

コンパイルと実行

```shell-session:Terminal
$ clang hello.c -o hello_c
$ ./hello_c
Hello, World!
```

## Coq

## Crystal

ソースコード

```crystal:hello.cr
puts "Hello, World!"
```

コンパイルと実行

```shell-session:Terminal
$ crystal build hello.cr -o hello_crystal
$ ./hello_crystal
Hello, World!
```

## C++

ソースコード

```c++:hello.cpp
#include <iostream>
int main() {
    std::cout << "Hello, World!" << std::endl;
}
```

コンパイルと実行

```shell-session:Terminal
$ clang++ hello.cpp -o hello_c++
$ ./hello_c++
Hello, World!
```

## C#

ソースコード

```c#:hello.cs
using System;

public class Hello {
    public static void Main() {
        Console.WriteLine("Hello, World!");
    }
}
```

コンパイルと実行

```shell-session:Terminal
$ csc hello.cs
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

$ mono hello.exe
Hello, World!
```

## D

ソースコード

```d:hello.d
import std.stdio;

void main() {
    writeln("Hello, World!");
}
```

コンパイルと実行

```shell-session:Terminal
$ dmd hello.d -of=hello_d
$ ./hello_d
Hello, World!
```

## Elixir

ソースコード

```elixir:hello.exs
IO.puts "Hello, World!"
```

実行

```shell-session:Terminal
$ elixir hello.exs
Hello, World!
```

## Elvish

## Erlang

## F#

ソースコード

```fsharp:hello.fs
printfn "Hello, World!"
```

実行

```shell-session:Terminal
$ dotnet run
Hello, World!
```

## Fish

```fish:hello.fish
echo "Hello, World!"
```

```shell-session:Terminal
fish hello.fish
```

## Fortran

ソースコード

```fortran:hello.f90
program hello
  print '(A)', 'Hello, World!'
end program hello
```

コンパイルと実行

```shell-session:Terminal
$ gfortran hello.f90 -o hello_fortran
$ ./hello_fortran
Hello, World!
```

## Go

ソースコード

```go:hello.go
package main

import "fmt"

func main() {
	fmt.Println("Hello, World!")
}
```

コンパイルと実行

```shell-session:Terminal
$ go build -o hello_go hello.go
$ ./hello_go
Hello, World!
```

## Haskell

```haskell
main = putStrLn "Hello, World!"
```

## Haxe

ソースコード

```haxe:Hello.hx
// Hello.hx
class Hello {
    static function main() {
        haxe.Log.trace("Hello, World!", null);
    }
}
```

コンパイルと実行

```shell-session:Terminal
$ haxe -main Hello --neko hello.n
$ neko hello.n
Hello, World!
```

## Java

ソースコード

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

コンパイルと実行

```shell-session:Terminal
$ javac -d java Hello.java
$ cd java
$ echo "Manifest-Version: 1.0\nMain-Class: Hello" > Manifest.txt
$ jar cvfm ../hello_java.jar Manifest.txt Hello.class
マニフェストが追加されました
Hello.classを追加中です(入=417)(出=287)(31%収縮されました)
$ cd ..
$ java -jar hello_java.jar
Hello, World!
```

## JavaScript

ソースコード

```js:hello.js
console.log("Hello, World!");
```

実行　

```shell-session:Terminal
$ node hello.js
Hello, World!
```

## Julia

ソースコード

```julia:hello.jl
println("Hello, World!")
```

実行

```shell-session:Terminal
$ julia hello.jl
Hello, World!
```

## Kotlin

ソースコード

```kotlin:hello.kt
fun main() {
    println("Hello, World!")
}
```

コンパイルと実行

```shell-session:Terminal
$ kotlinc hello.kt -include-runtime -d hello_kotlin.jar
$ java -jar hello_kotlin.jar
Hello, World!
```

## Lua

ソースコード

```lua:hello.lua
print("Hello, World!")
```

実行

```shell-session:Terminal
$ lua hello.lua
Hello, World!
```

## Matlab

## Nim

ソースコード

```nim:hello.nim
echo "Hello, World!"
```

コンパイルと実行

```shell-session:Terminal
$ nim -c -d:release -o:hello_nim hello.nim
︙
略
︙
$ ./hello_nim
Hello, world!
```

## Nushell

ソースコード

```nushell:hello.nu
"Hello, World!\n"
```

実行

```shell-session:Terminal
$ nu hello.nu
Hello, World!
```

## OCaml

ソースコード

```ocaml:hello.ml
print_string "Hello, World!\n";;
```

コンパイルと実行

```shell-session:Terminal
$ ocamlc hello.ml -o hello_ocaml
$ ./ocaml
Hello, World!
```

## Pascal

ソースコード

```pascal:hello.pas
program hello(output)
begin
    writeln('Hello, World!')
end.
```

コンパイルと実行

```shell-session:Terminal
$ fpc hello.pas -o"hello_pascal"
Free Pascal Compiler version 3.2.2 [2021/10/28] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Darwin for x86_64
Compiling hello.pas
Assembling hello
Linking hello_pascal
4 lines compiled, 0.6 sec
$ ./hello_pascal
Hello, World!
```

## Perl

ソースコード

```perl:hello.pl
print "Hello, World!\n"
```

実行

```shell-session:Terminal
$ perl hello.pl
Hello, World!
```

## PHP

ソースコード

```php:hello.php
<?php
echo "Hello, World!\n";
?>
```

実行

```shell-session:Terminal
$ php hello.php
Hello, World!
```

## PowerShell

ソースコード

```powershell:hello.ps1
Write-Host "Hello, World!"
```

実行

```shell-session:Terminal
$ pwsh hello.ps1
Hello, World!
```

## Python

ソースコード

```python:hello.py
print("Hello, World!")
```

実行

```shell-session:Terminal
$ python hello.py
Hello, World!
```

## R

```r
cat("Hello, World!")
```

## Ruby

ソースコード

```ruby:hello.rb
puts "Hello, World!"
```

実行

```shell-session:Terminal
$ ruby hello.rb
Hello, World!
```

## Rust

ソースコード

```rust:hello.rs
fn main() {
    println!("Hello, World!");
}
```

コンパイルと実行

```shell-session:Terminal
$ rustc hello.rs -o hello_rust
$ ./hello_rust
Hello, World!
```

## Scala

## Scheme

ソースコード

```scheme:hello.scm
(import (scheme base) (scheme write))
(display "Hello, World!\n")
```

実行

```shell-session:Terminal
$ sagittarius hello.scm
Hello, World!
```

## Shell

ソースコード

```shell:hello.sh
echo "Hello, World!"
```

実行

```shell-session:Terminal
$ sh hello.sh
Hello, World!
```

## Smalltalk

ソースコード

```smalltalk:hello.st
Transcript show: 'Hello, World!'; cr.
```

実行

```shell-session:Terminal
$ gst hello.st
Hello, World!
```

## Swift

ソースコード

```swift:hello.swift
print("Hello, World!")
```

コンパイルと実行

```shell-session:Terminal
$ swiftc hello.swift -o hello_swift
$ ./hello_swift
Hello, World!
```

## Vala

ソースコード

```vala
void main() {
    print("Hello, World!\n");
}
```

コンパイルと実行

```shell-session:Terminal
$ valac hello.vala -o hello_vala
$ ./hello_vala
Hello, World!
```

## Wolfram

## Xonsh

## Zig

ソースコード

```zig:hello.zig
const std = @import("std");

pub fn main() !void {
    const stdout = std.io.getStdOut().writer();
    try stdout.print("Hello, World!\n", .{});
}
```

コンパイルと実行

```shell-session:Terminal
$ zig build-exe hello.zig --name hello_zig
$ ./hello_zig
Hello, World!
```