はじめに
よく語学の教科書のはじめにいろんな国の言葉を掲載していますよね。
例えば「ありがとう」だったら
英:Thank you
仏:Merci
独:Danke schön
伊:Grazie
露:спасибо
みたいな感じで。今日はそんな感じで各言語の概要と「Hello,World!」の文法をまとめたいと思います。
最初の方に記載する言語は今でも大人気の言語となりますが、終盤の言語は半分古典みたいなものも取り扱っております。
※解説には主観が混じるので、誤った箇所がございましたらご指摘ください。
Python
1985年から1990年にGuidovan Rossumによって作成された初心者も学びやすいオブジェクト指向のスクリプト言語。Web上で最も広く使用されている言語の1つで現在もプログラミング言語界でトップ人気を誇る。近年は専ら機械学習用で注目されている印象
print("Hello,World!")
C
1972年にベル研究所のDennis M. Ritchieによって開発されたコンパイラ言語。UNIXを作成するために発明された。不動の人気言語
# include <stdio.h>
int main() {
printf("Hello,World!");
return 0;
}
C++
1979年にベル研究所で開始されたBjarneStroustrupによって開発された中水準プログラミング言語。ハードウェアに近く非常に高速な処理を行う。Win、Mac、LinuxなどのほとんどのOSの開発に使用されている上、FirefoxやChromeなどの多くのブラウザのコア部分にも使用されている。CPUの制御に長けていることからゲームエンジン開発にも重宝されている
# include <iostream>
using namespace std;
int main() {
cout << "Hello,World!";
return 0;
}
C#
Microsoftが開発した汎用オブジェクト指向プログラミング言語。
using System;
namespace HelloWorldApplication {
class HelloWorld {
static void Main(string[] args) {
Console.WriteLine("Hello,World!");
Console.ReadKey();
}
}
}
Objective-C
NeXT(Appleの前身に近い)によってNeXTSTEP OS用に開発され、そこからAppleによってiOS,Mac OSX用に引き継がれた言語
# import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello,World!");
[pool drain];
return 0;
}
Java
1995年にSun Microsystemsによって開発された高級プログラミング言語。さまざまなOSプラットフォームで動作する。Java仮想マシン(JVM)と併せて一旦バイトコードに変換することによってプラットフォームによる差異を抽象化している。スローガンは「Write once, run anyware」
public class MyFirstJavaProgram {
public static void main(String []args) {
System.out.println("Hello,World!");
}
}
JavaScript
フロントエンド言語はこれまでの言語と性質が違いますがWeb開発には欠かせない言語なので紹介。HTMLと統合されたクロスプラットフォームで動作する言語。jQueryやNode.JSなどのさまざまなjavascriptベースのフレームワークが充実している。求人市場で需要が高い
<html>
<body>
<script language = "javascript" type = "text/javascript">document.write("Hello,World!")</script>
</body>
</html>
Ruby
1995年にMatzことまつもと ゆきひろによって開発されたOSSの言語。氏の好みの言語をブレンドして作った言語だそう。Perlよりも強力でPython2よりもオブジェクト指向な言語を目標に開発された。日本人が考案した言語で最も世界に影響を与えた言語であり非常に親しみやすい
puts "Hello,World!"
Go
2007年にRobert Griesemer、Rob Pike、KenThompsonによってGoogleで最初に開発されたプログラミング言語。強く静的型付けされておりコンパイルが高速。
package main
import "fmt"
func main() {
fmt.Println("Hello,World!")
}
R
1993年にニュージーランドのオークランド大学のRossIhakaとRobertGentlemanによって作成され、現在R開発コアチームによって開発された統計分析、グラフィックス表現、レポート作成に用いられる言語。開発者2人のイニシャルを取ってRと名付けられた。配列、リスト、ベクトル、行列を計算する一連の演算子を提供する
cat("Hello,World!")
TypeScript
MicrosoftのAnders Hejlsberg(C#の設計者)によって設計された強く型付けされたオブジェクト指向コンパイル言語。JavaScriptの型付きスーパーセットであり、JavaScriptの追加機能的存在。実行時にJavaScriptに変換され、JavaScriptのフレームワークを再利用することができる
var message:string = "Hello,World!"
console.log(message)
Swift
iOSおよびOSX開発用にAppleによって開発された言語。既存のObj-Cシステムと同じランタイムを使用するため従来のiOSおよびOSXプラットフォームで動作する
import UIKit
var str = "Hello,World!"
Kotlin
JavaIDEの公式デザイナーであるJetBrainsによって導入された言語。2017年にGoogleはKotlinがAndroid開発の公用語であることを発表した。構文はほとんどJavaと同じでJava仮想マシン上で実行される。Javaの追加機能的存在
fun main(args: Array<String>) {
println("Hello,World!")
}
PHP
HypertextPreprocessorの再帰的イニシャルであり、データベースと相互作用するWeb開発言語。HTMLに埋め込まれているサーバサイドスクリプト言語。従来のWebサービスにおいて主要とされるLAMP(Linux,Apache,MySQL,PHP)の一つ。動的コンテンツ、データベース、セッショントラッキングの管理に使用される
<html>
<body>
<?php echo "Hello,World!";?>
</html>
</body>
Scala
ScalaとはScalableLanguageの略であり、2003年にMartinOderskyによって開発された言語。Java仮想マシンで動作するオブジェクト指向言語。Javaライクでありコンパイルの過程で一旦Javaバイトコードに変換される
object HelloWorld {
def main(args: Array[String]) {
println("Hello,World!")
}
}
RUST
GraydonHoareによって開発されMozillaによって買収されたコンパイラ言語。
fn
main()[
println!("Hello,World!");
}
Perl
Practical Extraction and ReportLanguageの略であり、1987年にLarry Wallによって開発されたWeb開発用言語。HTML,XML等のマークアップ言語で動作し、CGI(Common Gateway Interface)をプログラムできる
print "Hello,World!"
Haskell
記号計算およびリスト処理アプリケーションを処理するために特別に設計された関数型プログラミング言語。多数の数学的ライブラリが組み込まれている。とにかく数学に強い
main = putStrLn "Hello,World!"
Pascal
1970年にNiklaus Wirthによって公開された手続き型言語。お察しの通りフランスの数学者兼哲学者BlaisePascalにちなんで名付けられた。AppleLisaおよびMacの初期の開発に使用された高級言語。古い言語であるにも関わらずSkypeにも使用されていたとか
program HelloWorld;
uses crt;
begin
writeln('Hello,World!');
end.
COBOL
CommonBusiness Oriented Languageの略であり、高水準言語黎明期に最初に広く使用された言語。ユーザフレンドリーであり英語のようになっている。金融や国防ドメインで主に使用されていた。1959年に開発された言語でありとても古い。古すぎてQiitaの言語に登録されていない(そりゃあ、そう)
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Hello,World!'.
STOP RUN.
LISP
1958年にMITのJohn McCarthyによって発明された言語。2番目に古い高級言語であり、歴史の中で多くの方言が誕生した。AutoCadにも使われていたそう。古すぎてQiitaの言語に(ry
(write-line "Hello,World!")
Fortran
FORMulaTRANslatorの略であり、1957年にIBMによって開発された最古の高級プログラム言語。もともとは科学および工学アプリケーションのために開発された。メインフレームでよく使われていた。古すぎてQiitaの言語に……
登録されていた!
program hello
print *, 'Hello,World!'
end program hello
おわりに
各言語には成り立ちや系譜があることが分かりました。つまり、一つ一つが独立した言語体系であるわけではなく、幾つかの言語の特性をブレンドして作られているということです。これは言語を学ぶ順番に大きくも影響するんじゃないでしょうか。
また、初期の言語はIBMによって開発されていますが、時代が経つにつれてMicrosoft,Apple,Googleなどに開発企業が変化している点も面白いです。GAFAが提供しているのはプラットフォームやアプリケーションにとどまらず言語も開発しているということが分かりましたね。
以上です。長らくお付き合いいただきありがとうございました