Hello World
はじめての投稿ということでHello Worldネタです。
Hello Worldとは、“Hello World”という文字列を画面に出力するプログラムのことです。 新しくプログラミング言語を学ぶときに慣例として、そのプログラムを作成・実行します。
この記事では、私がよく書いている言語によるHello Worldのプログラムと、その言語の特徴や所感を紹介します。
C言語
C言語は、プログラミング言語の原点とも言える言語です。 習得が難しいけれども、コンピュータの動作のしくみを学べる言語ですね。
CPUがメモリからデータを読み込み、データに対して何かしらの演算を行い、メモリに演算結果を書き込む。コンピュータはこれらの繰り返しで動作しています。
C言語は、データがメモリにどのように格納されているか、メモリに格納されたデータにどのようにしてアクセスするか、といったメモリについての知識が必要不可欠です。 C言語の難関ともいえるポインタは、まさにメモリ操作そのものです。
大学の演習ではC言語によるプログラミングがよくありましたが、ポインタにまつわるエラーやバグで結構苦戦した思い出があります。 C言語で書かれたプログラムは非常に高速に動作するのですが、他の言語と比べて不便な点が多いため、ここ最近はほぼ書いていないです。
#include <stdio.h>
int main(void) {
printf("Hello World\n");
return 0;
}
C++
C++は、C言語に便利なライブラリとオブジェクト指向を導入した言語です。
C言語と同様に非常に高速な動作が可能でありながら、標準でデータ構造やアルゴリズムが用意されているため、アルゴリズムの実装に向いている言語ですね。 実際に競技プログラミングサービスのatcoderで推奨されている言語であり、私もatcoderでよく書いています。
アルゴリズムとは、ある問題に対する解き方です。例えば、二次方程式を解くという問題の場合、二次方程式の解の公式を使う方法や、因数分解により解を導く方法、候補解をひたすら代入する方法など複数のアルゴリズムが存在します。
#include <iostream>
int main() {
std::cout << "Hello World" << std::endl;
return 0;
}
JavaScript
JavaScriptは、リッチなWebページを開発するときに必要不可欠な言語です。
表側ではWebページに動きをつけたり、裏側ではサーバーと通信を行ったりすることができます。 このブログも、ダークモードの切り替え機能や画像のギャラリー機能は、JavaScriptで書かれたプログラムによって動作しています。
C言語やC++と比べて書き方は緩いのですが、イベント処理や非同期処理といったJavaScript特有の処理に最初はかなり苦戦しました。 今では一番書いている言語になります。
console.log("Hello World");
Python
Pythonは、簡潔な文法と豊富なライブラリが特徴の言語です。
他の言語に比べて圧倒的に記述量が少ないため、さくっと実装することが可能です。 はじめてPythonに触ったとき、あまりにも簡潔すぎて感動を覚えたほどです。
また、ライブラリが豊富なため、行列演算のような科学技術計算や、画像処理、自然言語処理、データ分析、機械学習、深層学習、Webスクレイピングなど守備範囲が広い言語です。
ただし、欠点として処理速度が遅いため、大量のデータの処理には不向きです。
print("Hello World")
最後に
このブログは、私が学んだことや経験したことをクラウドストレージに置いていくというコンセプトで開発しました。まだまだブログの記事も機能も少ないですが、これからよろしくお願いします。