見出し画像

プログラム=プログラミングについてザックリ考えてみます。基礎編

私自身、SESでプログラミングの仕事を続けるのはどうしたらいいのかなあと思っています。SESに関しては大した職歴もなければ、経験もないです。夢ばかり大きくて実際はあまり大したことがないという、ちょっと良くない感じですね。一応ITパスポートと基本情報技術者の資格はありますが。。

まあそれでもプログラムとは何でしょうか、と問うことはできるでしょう。ざっくり言ってしまえばプログラムとは祝詞のようなものです。コンピュータにその祝詞を捧げるといろいろ動いてくれるという、そんな感じです。人間がその祝詞を歌っても何も起こりません。

ではコンピュータとは何でしょうか。これはまず自分の持っているパソコン、携帯、タブレットがそれに該当します。いまあなたがこの画面を見ているために使っている端末はもちろんコンピュータであり、プログラムで動きます。

さて、それではnoteのサービスはどうでしょうか?そのプログラムはあなたのPCの中で動いていますか?答えはNOです。もしnoteのプログラムがあなたのPCの中にしかない場合は、ほかの人がアクセスできなくなります。そうですね、不特定多数からアクセスする必要のあるコンピュータをサーバーといいます。それはこの地上のどこかにあります。最近はクラウドという技術もあり、ますますサーバーがどこにあるのかわかりづらいことがあると思います。ただ正直、サーバーがどこにあるのかはここでは問題ではないのです。サーバーはこの地上のどこかに存在していて、IPアドレスとパスワードさえわかればそれに接続し、中をいじってプログラムをそのサーバーの中に入れることができます。(ちなみに他人のサービスが動いているサーバーの中に無断侵入することは犯罪です。)

つまり大事なのはプログラムとはコンピュータのためにある祝詞なのです。noteのプログラムを実際動かしているコンピュータはあなたのPCではありません。それはどこかにあるサーバーのはずです。ただ、ホームページのようにただ表示するだけでいいようなものはサーバーの中で特に重たい処理はないように思います。(ただ表示するだけのHPサーバーであったとしても、ApacheやNginXのようにサーバー用のプログラムが必要ですが。)

たとえば私がブログを投稿するということは、その情報をどこかのサーバーに載せることを意味します。私たちは他人のブログを見るときにはそのサーバーまで行って、それを表示してもらいます。もちろん、表示するには自分のPCのウェブブラウザが必要です。でもウェブブラウザ自体がコンピューティングする場合は確かにありますが、情報の大本はこの場合、サーバーから来ます。サーバーにデータを送ってもらいます。画面のデータの見え方が変わるとしたら、それはコンピュータがプログラムを実行したからです。最新の投稿が来たら、それを一番トップに表示する機能などはプログラムで実装され、それはたぶんサーバーで動きます。(javascriptという言語を使ってその処理をユーザー側のウェブブラウザで行うこともできるかもしれませんね。。どうなんでしょうね。この個所はケースバイケースかも?)

何が言いたいかといいますと、プログラムはパソコン、携帯、タブレット、サーバーなどで動きます。ほかにも自動車の中に組み込まれていたり、ラズベリーパイなど小型のコンピュータでも動きます。スマートウォッチもそうですね。携帯もAndroidかiPhoneかでも違います。はっきり言いますと、コンピュータを動かすためにプログラムという祝詞があるわけなんですが、そのコンピュータの種類がかなり多いということが問題です。プログラムを動かす仕組み自体が変わってきます。プログラムはコンピュータの中のCPUに依存しています。適切なCPUとプログラムの対でなければ、プログラムがあったとしても、それがコンピュータで動くことはありません。(正確に言うと、ビルドされて作られた実行ファイルはCPUに依存します。その前の段階のものであるソースコードは共通する場合が多いです)

でも一応そこまで難しいことでもないのです。きちんと適切にやりたいサービスに合わせて、対象であるコンピュータ(携帯なのか、パソコンなのか、サーバーなのか)を選定し、そこに合わせたフレームワークやプログラミング言語を使ってプログラムを作成し、そのコンピュータにそれを流し込めれば動くようになるはずです。

以上ざっくりとご説明をさせていただきました。初歩的なことですし、間違ったことも書いているかもしれません。ご指摘ありましたら、よろしくお願いします。また見ていただいて有難うございます。

この記事が気に入ったらサポートをしてみませんか?