すぐにコードを書いて試せる!オンラインプログラミング実行環境8選 - paiza開発日誌

 
こんにちは。倉内です。
初心者がプログラミング学習を始めるときにつまずきがちな環境構築ですが、今はWebブラウザ上で書いたコードをすぐに実行できる「オンライン実行環境」が充実しているので利用しない手はありません。
ほとんどのオンライン実行環境が複数の言語に対応しており、プログラミング学習はもちろん、「普段使っていない言語だけどちょっと試してみたい」といったときにも非常に便利です。
しかし無料で利用できるサービスだけでも数が多く、どれを使うとよいか迷う方もいらっしゃるかもしれません。
そこで今回は、おすすめのオンライン実行環境を対応言語や入力補完機能の有無などの項目で比較してみました。各サービスの特徴も紹介しますので、目的に合わせて使い分けてみてください!

基本項目比較

今回取り上げるのは、無料で利用できる以下の8つのサービスです。表では以下の番号で示します。(順不同)
①paiza.IO、②codepad、③Repl.it、④ideone、⑤codingground、⑥Google Colaboratory、⑦Runstant、⑧SQL Fiddle
なお、対応言語については以降の「各サービスの特徴比較」で詳細を記載しています。
※情報は2020年9月29日調べ

各サービスの特徴比較

対応言語のバージョンについては、各サイトの表記をご確認ください。
対応言語:C, C#, C++, Java, Ruby, Rust, Python, PHP, Perl, Scala, Swift ほか全29言語
  • --
オンライン実行環境は海外のサービスが多い中、主要な24個のプログラミング言語に対応した国内サービスであることが大きな特徴です。
登録なしにすぐ利用できますが、ログインして利用するとコード実行でファイルが自動保存されます。(上部メニューの「一覧」から確認が可能)
保存されたファイルのURLを共有することで、他の人に自分の書いたコードを簡単に見せられるので、勉強会などでも便利に利用できます。
また、ファイルのアップロード機能、外部APIへの接続や、 スクレイピングなども可能となっています。
ちなみにpaiza.Cloudといって本格的な開発にも利用できるクラウドIDEもご用意しています。
対応言語:C, C++, D, Haskell, Lua, OCaml, PHP, Perl, Plain Text, Python, Ruby, Schema, Tcl
  • --
非常にシンプルかつ軽量なサイトで、思い立ったらすぐコードを書いて(ペーストして)手軽に実行できるのが特徴です。
ログインなしでも実行後に共有用のURLが発行されるのも便利です。
また、主要な言語で書かれたHello Worldの出力とFizzBuzzのサンプルコードが掲載されておりプログラミング学習を始めたばかりの人が「とりあえず何か書いて実行してみたい!」と思ったときにも活用できます。
1点だけ注意したいのは、対応言語のバージョンが古いので、利用前にはaboutページを確認してからにしましょう。
対応言語:Python, C, Java, C++, C#, Ruby, HTML/CSS, JavaScript, Go, Rust ほか50言語以上
  • --
Repl.itは入力の補完機能やデバッグ機能が非常に優れており、ログインすればデータベースも利用できますし、実行環境というよりはIDE(統合開発環境)と言ってもよいでしょう。
ファイル新規作成後にいくつかのサンプルコードを選ぶことができ、たとえばPythonでは、Hello Worldの出力、標準入力、ループ文、階乗の計算といったものが用意されています。初めて触る言語の特徴を掴んでみるのにも役に立ちそうです。
エディタのレイアウト、Light/Darkのテーマカラー、フォントサイズなど見た目のカスタマイズ項目が多いのも魅力です。
対応言語:Python, C, Java, C++, C#, Ruby, HTML/CSS, JavaScript, Go, Rust ほか50言語以上
  • --
マイナーな言語を含め対応言語が非常に多いideoneは、ひとつの言語でも異なるバージョンの実行環境が用意されているものもあり、動作を試してみたいといったときに重宝しそうです。
エディタの上部メニューからテンプレートとサンプルコードを選べるようになっているためスムーズに書き始めることができます。(「samples」というメニューをクリックすると一覧でサンプルコードを見ることができ、forkでエディタに反映することも可能です。)
デフォルトでシンタックスハイライトがONになっているので見やすく、実行時のタイムアウト値を5秒と15秒選択できる、書いたコードを公開にするかプライベートにするか選択できる…など細かい部分の設定も可能です。
対応言語:HTML/CSS, JavaScript, Ruby, Python, Java, C, C++, C#, Erlang, Go, R ほか50言語以上
  • --
codinggroundもただの実行環境というよりは、本格的なIDEと言ったほうがふさわしい機能の充実度を誇っています。
特にフロントエンドに強く、Angular.jsやVue.js、D3.jsといったJavaScriptのフレームワークやライブラリが利用できる環境が用意されています。
PHP+MySQL、Python+MySQLなどWebサービスの開発に欠かせないデータベース環境も選択でき、試してみたいと思った開発環境がほぼワンクリックで利用できると言っても過言ではないでしょう。
一部機能はログイン時のみ使えますが、ほとんどログインせずとも利用できるのでまずは一度実際に試してみるとそのよさが分かると思います。
対応言語:Python
  • --
Googleが提供するColaboratoryは、Pythonに特化したオンライン実行環境です。
Googleアカウントさえあれば利用でき、機械学習のための基本的な環境構築がすでに設定済のJupyter Notebook環境が提供されます。
ヒストグラムなど図表の描画もできるので機械学習初心者はもちろん、もう少し本格的に使ってみたいといった方にもおすすめです。
以下の記事ではアヤメの品種のデータを機械学習のSVMモデルで分類する方法について説明されているので、興味がある方はごらんください。
(補足)なお、paizaラーニングでは、声優さんの声を同じくSVMモデルで分類する学習講座も公開中です。
対応言語:HTML/CSS, JavaScript
  • --
国内サービスのRunstantは、HTML/CSSとJavaScriptが利用できるオンライン実行環境で、開発者の方の記事にはいくつかのテンプレートも紹介されています。
コードだけでなく、Generalタブに作品の説明やメモを残しておけるようになっているので、このままポートフォリオの作品としても利用できそうです。
トップ画面には利用ユーザーのプロジェクト(作った作品)が表示されるようになっており、いろいろな使い方ができることが分かるのもおもしろい点と言えるでしょう。
対応言語:SQL
  • --
SQLのオンライン実行環境も紹介しておきます。
他にもいくつかオンラインで利用できるサービスはありますが、SQL FiddleはMySQL、Oracle、PostgreSQL、SQLite、MS SQLServerといった主要なデータベース環境が用意されているのが最大の特徴です。
バージョンは少し古いですが、Oracleなど環境構築&設定が大変なものを手軽に試すことができるのは非常に便利ですし、データベースの種類によってSQLの書き方が異なる点を学習するのにも適しています。
自分でスキーマを作成する必要があるため、ある程度SQL(というよりデータベース)の知識が必要です。以下で紹介している学習サイトなどを利用して、あらかじめSQLの基礎を学んでおくとよいかもしれません。

まとめ

おすすめのオンライン実行環境8つをご紹介しました。
対応言語だけでなく機能や使い勝手など異なる点はいろいろとありますが、今回取り上げたサービスはすべて無料で利用できるので、まずは気になったものを試してみて自分に合ったものを見つけてみてください。
学習を始めたばかりで「なにを書けばいいか分からない…」という方は、paizaラーニングのようなオンラインでのプログラミング学習サービスを使ってみるのもよいでしょう。
paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。