👋

ランタイムって聞くけど、結局のところなに?

2022/09/15に公開

概要

プログラミング言語を学んでいる際にたまに目にする「ランタイム」という言葉。ふだんでは、あまり重要視することなく、なんとなく読み飛ばしていました。

しかし、時折この「ランタイム」という言葉の意味がわからず、理解ができないケースにぶつかることがありました。具体的には、AWS Lambdaのランタイムがあります。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html

そのため、どういう意味なのか少し調べてみようと思い、本記事にまとめていきたいと思います。
※ 内容は誤っている箇所があれば、ぜひコメントいただけるとありがたいです。

ランタイムの定義

ランタイムとは、プログラムの「実行時」のことを指します。

プログラムを作成する場合、基本的な流れとしては以下となるかと思います。
「開発」 > 「コンパイル(言語による)」 > 「実行」

ランタイムは、この「開発」や「コンパイル」の後、コンピュータ上でプログラムを実行するフェーズのことを指します。

ただ、このプログラムの実行時という意味だけでは、先の AWS Lambda のランタイムで指すものがわからず、もう少し広義のランタイムの意味を調べる必要があります。

広義の意味でのランタイム

上の通り、ランタイムとは、プログラムの「実行時」という意味ですが、広義にはプログラムの実行時に必要なライブラリやパッケージのことを含むようです。

コードを書いたことがある方であればイメージしやすいと思いますが、基本的にプログラムはコード単独では動かず、依存するライブラリやパッケージが必要です。

例えば、以下の python コードであれば、外部ライブラリであるrequestsが必要です。

import requests

def main():
    result = requests.get("https://google.com")
    print(resulst.status_code)

このpythonコードにおいては、必要なライブラリであるrequestsランタイムにあたります。
この広義の意味でのランタイムという言葉から考えれば、先のAWS Lambdaのランタイムも理解がしやすいかと思います。

また、ランタイムと言われる時に、主には以下の言葉が含まれていることが多いようです。

  • ランタイムライブラリ
  • ランタイムパッケージ
  • ランタイムエンジン
  • ランタイムモジュール

まとめ

エンジニア用語って色々ありますが、ふと定義や意味を考えると、自分がまだまだ知らない・理解できていないことは多いなと痛感させられます。
日々精進、ということでこれからも勉強して記事などでアウトプットしていきたいと思います!

参照

Discussion