Skip navigation

   ここはとあるソフトハウスの総務部総務課。事務用のオンボロPCの上で起動した『Visual C# 2008 Express Edition』のスタートページを見ながら、びぎなちゃんは張り切っています。
   

びぎな
「これで開発環境は出来たから、早くプログラミングを始めましょ」

   

まにあ
「アホ。開発ツールをインストールしたくらいで素人がプログラミングできるわけあらへんやろ。プログラミングに入る前にソフト開発の基礎を身に付けやなあかんで!」

   

びぎな
「これは実践型の勉強だから、C#の言語仕様とかは作りながら覚えればいいって……」

   

まにあ
「プログラミング言語のことやあらへん。もっと基本のことや。これが身についてないといくらプログラミング言語をマスターしても何も作れへんことになるで。素人が独学でプログラミングを学んだつもりで一番引っ掛かるとこや」

   

びぎな
「どういうことなの?」

   

まにあ
「ソフトには2種類ある。わかるか?」

   

びぎな
「PC用ソフトとゲーム機用ソフト?」

   

まにあ
「アホ、誰がゲームソフトの種類言えって言った? 2種類ちゅーんは、使えるソフト使えへんソフトや。使えるソフトは最初から使うことを意識してきちんと計画的に作ったソフトで、使えへんソフトはそういうこと何も考えずに適当に作っただけのソフトや。プログラミング言語のことしか頭にない連中はこの使えへんソフトしか作れへんけど、そんなソフト作っても意味あらへんで!」

   

びぎな
「じゃあ、どうすれば使えるソフトを作れるの?」

   

まにあ
「それが今から勉強するんやけど、それより前にもっと基本的な知識も無いと全体的なイメージがしにくいやろ。ま、いまソフトに2種類あるとか言ったけど、別の視点からソフトを分類することもできるわな。じゃ、動作環境という点からみたらどんなソフトがあると思う?」

   

びぎな
「PCで動くソフトとゲーム機で動くソフト。それにケータイで動く……」

   

まにあ
「いいかげんゲームソフトから離れや。ま、PCで動くソフトというんは基本的には汎用的なOSの上で動くアプリケーションやな。PCのアプリにはコマンドシェルで動くコンソールアプリと、Windowsの多くのソフトみたいに専用画面をもったGUIアプリの2つがある。これはOSがWindowsでもLinuxでも同じようなものや。OSそのものもソフトやし、OSとアプリ、あるいはOSと外部機器の間で動くミドルウェアとかドライバとかいう種類のソフトもあるけど、一般のアプリプログラマが作るものやあらへん」

   

まにあ
「あとはネットワークサービスでサーバーアプリとかクライアントアプリとかあるけど、これも動作するマシンがサーバーかクライアントかということとデータのやり取りにネットのプロトコルを使うってこと以外は根本的にPCで動いてるアプリと変わらへんな」

   

びぎな
「じゃあ、ゲーム機やケータイは?」

   

まにあ
「ケータイもiPhoneとかAndroidとか汎用的なOSが搭載されて来てるから、これらの上にユーザーがインストールして使うようなアプリはPCのアプリと同じようなものや。違うのはケータイそのものの上では開発できへんからPC上の開発環境を使ったクロス開発が必要なことやな。こういう汎用的なOSを積んでへんケータイは機器それぞれに特化したOSとか、ハードを直接叩くような処理も必要になるから、家電とかのマイコン機器で動く組み込みソフトに近い形になってくる」

   

まにあ
「ゲーム機のソフトもアプリケーションとして取り換え可能な形で提供されてるけど、ハードに特化した開発という点では組み込みソフトに近いんやろうな。ごく基本的な機能のライブラリとかはメーカーから提供されてるんやろうけど、ゲーム機は機種ごとの技術変化が激しいから機種ごとに違うプログラミング技術が必要になるのは避けられへん。ま、異種固有の機能をバリバリ使うんやないとかいうんなら違うかもしれないけど」

   

びぎな
「つまり、OSが共通してたらどんな機械でも動くソフトと、その機械でしか動かないソフトがあるって話ね」

   

まにあ
「そこまで簡単にまとめられるものやあらへんけど、大雑把に言ったらそんなところや。そりゃPCでもハードに依存したアプリは作れるけど、特定の外部機器を扱ういうんやない限り、そんなん自己満足にしかならへん」

   

びぎな
「よくわからない」

   

まにあ
「ま、早い話、単純に同じ処理を一定回数繰り返してタイミングを計るようなソフトを作ったって、そんなのCPUの処理速度に依存するから、自分のPCと他人のPCやったらタイミングが違ってくるから同じようには使えへんとかいう話や」

   

びぎな
「じゃあ、タイミングを計ったりするのはOSの機能を使えってことね」

   

まにあ
「一般的なPCアプリではそういうことや。ほな、次からは使えるソフトの作り方の具体的なところに入っていくで」

   
 

(つづく)

   
  (本来ならここでコンソールアプリやらGUIアプリやら組み込みソフトについて詳細な解説が入るはずですが、そんなものやったってこの連載でコンソールアプリとか組み込みソフトを作る予定は無いから、こんな程度で割愛させていただきます)
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。