クラウド活用のすすめ

文書やスプレッドシートを編集したり、音楽を聞いたり映画を鑑賞したりと、最近では大抵のことをクラウド上で済ませられるようになりました。
Webベースのクラウド技術の便利なところは、ローカル環境に特別なアプリケーションをインストールしたりデータファイルを溜め込まなくても、ブラウザとネット環境さえあれば何処にいてもローカル環境と同じような感覚で動かせる点に尽きるでしょう。
私の場合は、手持ちの音楽CDや映画DVD等をすべてリッピングして、ストリーミング再生のできるクラウドサービスに預けています。手持ちの書籍をスキャンした電子書籍やバックアップなどのデータもすべてクラウドストレージに保管しておき、必要になったときに適宜ダウンロードしています。クラウド技術のおかげでコンピュータを使った生活は便利になる一方です。

プログラミング学習に関しても、クラウド技術をうまく活用すると嬉しいことがたくさんあります。
たとえば、今日紹介するpaiza.ioというサービス。
C/C++/Python/Java/Clojure/Haskell/Schemeなど様々な種類のコンピュータ言語のコードをオンラインで実行できるサービスなのですが、似たようなサービスを提供するサイトがいくつもある中で、paiza.ioは
1)GitHubと連携できる(paiza.io上で作成したプログラムが自動的にGitHubに保存される)
2)簡単にコードを共有できる(ブログなどに埋め込める)
3)コードを修正すると共有先にも修正内容が反映される
4)国産サービスなので日本語の扱いに配慮されている
5)共有したコードを共有先で適宜書き換えて実行することができる

といったような特徴があります。

例として、PythonとSchemeとC言語で、シーケンスの簡単なソート(並べ替え)を行うプログラムを書いてみました。すでに実行結果が表示されていますが、実行ボタンを押せばその都度クラウド上でプログラムが実行されてその結果が表示されます。
試しに各言語に共通するsequenceというシーケンスの中身の数値を書き換えて実行してみてください。書き換えたシーケンスをソートした(並び替えた)結果がちゃんと表示されるはずです。

まずはPythonによるソートから。

プログラムとしては正味5行。実に簡潔で一目瞭然です。
なぜPythonがIT業界や教育業界で好まれるのか、ちょっとわかる気がしませんか?


次はScheme

正味5行ですのでPythonと同じ短さです。でも、多くのプログラマにとっては簡潔で一目瞭然…とは必ずしもならないかも知れませんね。
SchemeというのはLISP族に分類される言語のひとつです。LISP族で有名なものには他にCommon Lispがあります。Schemeはマサチューセッツ工科大学(MIT)の計算機科学のカリキュラムで長年にわたって使われていた言語ですので、プログラミングに興味のある方であれば一度くらいは聞いたことのある名前かも知れませんね。ちなみに、上述のMITのカリキュラムでは現在はSchemeに代わってPythonが使われています。
LISP族は関数型プログラミングの元祖のような存在でとにかく強力なのですが、いかんせん見た目がカッコだらけで初心者にはとっつきにくいようです。でも、LISP系言語はコンピュータ言語の世界では別格の存在です。モノにできれば、生まれてから一度も使っていなかった脳ミソの領域がギンギンに覚醒すること間違いありません。騙されたと思って、是非、若いうちにチャレンジしていただきたい!


最後はC言語です。

やたらと長い…ですね。PythonとSchemeでは数行で書けたものが、正味約30行にまで膨らみました。 見た目もなんだか雑然としていて難しそうですね。Pythonなどでは自動的に行ってくれることでも、Cでは何から何まで自力で制御してやらなければなりません。でも、コードは長くても実行速度は最速ですし、コンパイルして出来上がる実行ファイルのサイズも最小です!
コンピュータプログラミングに本当に精通したいなら、Cを勉強しない手はありません。言ってみれば、Cというのはコンピュータの世界の公用語のようなものです。オペレーティングシステムやデバイスドライバなど、コンピュータの内部に食い込むようなプログラムはCで書かれるのが普通です。システム内部に食い込んでいなくても、実行速度がシビアに要求されるプログラムの大部分がCもしくはC++で書かれています。
例えば、Pythonの機械学習やAIに関連するライブラリの中身は、かなりの部分がCで記述されています。なぜなら、大規模かつ高度な数値計算を行うためには実行速度がなによりも優先されるからです。Pythonのお手軽さと記述力の高さを裏で支えている縁の下の力持ちがCであることは、残念ながらあまり知られていません。


いかがでしょう?
このように、見た目もよく、例示された色々な言語のコードを自分でササッと改変して実行し直してみることができます。paiza.ioのアカウントを持っていれば、自分のアカウントにコードをforkして徹底的に弄り倒すこともできます。
プログラミングの学習では、自分の頭で考えて、とにかくいろいろやってみることが大切です。このような「打てば響く」環境それもクラウド上の環境というものは、プログラミング学習のための教材としてとても優れているのではないかと思います。

今後、Pythonを中心としたプログラミング情報ページを拡充していくにあたり、paiza.ioを積極的に活用していきたいと考える次第です。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください