C言語プログラミングレッスンの付録が目当て旧投稿画面が廃止だって?

2013年06月11日

最近のプログラミング環境は凄くイメージしやすい

このブログ内でも何度かプログラミング挫折経験を記して来た記憶があるが、実はここ数ヶ月前から私はちょっとずつプログラミングに対する挫折を克服することが出来るようになった。いくつか自分の為のWindowsアプリも作って使っている。こうしてブログを記す時の為の補助ツールも作った。

私が越えられなかった壁をなんとか超えた決定的な理由はMicrosoft社のVisual Studioという統合開発環境の存在である。MSの小規模事業主支援制度(BizSpark)のお陰で、昨年から私レベルのビギナーでもVisual StudioのPro版を無償で使えることになったからだ。

VSには定番のC++やVB等もあるが、私が選んだ言語はC#である。なぜC#にしたかという理由は簡単で、私にとっては読みやすかったからだ。ハッキリ言ってVBの構文は覚えにくかった。C++の構文は呪文の様に思えたし、過去にC++で挫折しているので触れたくないと思った。だからパッと見でイメージ的に一番しっくりきたC#を選んだ。結果的にC#はMSが力を入れている言語らしいので、一番優位にあるのではないかと思っている。

さて、プログラミング超苦手の私がそこそこ克服出来るようになったのは、VSという統合開発環境(IDE)が、GUIの部分をビジュアルに容易にデザイン出来る点にある。もちろん最近ではこういうIDEは結構存在していると思うが、MSのVS環境は歴史も長く、他のものよりも一歩先を行ってる気がする。

VSを使えば、Windows系のアプリをいじってきた人なら、プログラムの見た目をほぼ違和感無く作れてしまうだろう。後に分かるのだがGUIを持つプログラム(アプリケーション)のデザインはプログラミングの半分以上を占める面倒くさい作業である。その面倒くさい作業をVSのフォームデザイナなら、なんとなくで作れてしまう点が優位点だと思う。半分以上を占める面倒くさい作業が大した苦労も無く作れるから、実際のプログラミングは半分程度の労力で済んでしまうからだ。



VSのフォームデザイナでUI的なデザインを行い、テキストボックスやボタンに適切な名前をつけていく。こういうのが下ごしらえというか地道な作業で面倒くさいが、特にネーミングは機能と直結するので大事な儀式だと思ってきっちり行なっている。

フォームデザイナで作ったWindowsアプリの見た目は、そのままコンパイルしたらきちんと表示されて、ボタンをクリックしたり出来る。もちろんクリックしても何も起こらない。クリックした時の処理を埋め込んでいないからだ。ここからがプログラミングの開始だが、もう半分は終わっていると考えると気が楽にんなる。

実際に作ってみて処理を制御するプログラミングを記述する部分は、作りたいプログラムの構造を論理的に整理出来ているならば、大した労力が要らないということに気づいた。最初に作った自分の為のアプリはあっけない位に簡単に出来てしまったので拍子抜けした&感激した。

例えば、テキストフィールドが数個あり、それらに文字を入力し、OKボタンをクリックしたらそれらが連結して結果として表示される&クリップボードに記憶されるアプリケーション。

これだけのアプリなら、OKボタンをクリックした時の文字連結の挙動と、結果の出力先への代入、最後にクリップボードへの保存。これだけである。実際に記すのは数行の処理で済むと思う。

仕事でルーチンワークを行なっていると、毎回同じ作業の繰り返しでうんざりしてくることがある。こういうツールがあったら半分位の労力で済むのになぁというアイディアが有ったとして、それが本当に毎日繰り返されて数ヶ月先もそれを続けているであろうと想定されるなら、ツールを作ってしまう価値がある。

逆に一発ものの仕事には、Windowsアプリを作る(手間ひまをかける)価値は殆どない。こういうやっつけ仕事は、Excelを使うとか、awkで処理するとか、JavaScriptでリストを生成するとか柔軟にやっつけるのがベターだと思っている。あくまでもこれから何度も使うという所が、Windowsアプリを作る意味を持っていることで、そういう課題が降って湧いてきた時には、Windowsアプリを作ろうという、具体的な目標とモチベーションにつながる。

社会人経験が長いプログラミングビギナーが、プログラミングを学習するとなると、もはや実践で使えるアプリを作るしかないと思う。チュートリアルで「ハローワールド」と表示させて何が楽しいのか?

そんなものはどうでも良い。仕事、面倒くさい処理、こういうのを補助してくれるツールを作るのが一番良い素材(課題)だと思うし、そういうのを目の前に掲げないと、オヤジなビギナープログラマーは壁を越えられない。言い換えると壁を迂回して他の道を探しだしてしまうからだ。

誤解してほしくないのだが、別にMSのVSを買わせようなんて事は思ってない。実際MSのVSは無償版が配布されておりダウンロード出来る。機能にやや足りないものはあるが、何の問題もなく無償版でWindowsアプリを作ることが出来る。

私の感覚では、GUI部分を作るのはプログラミングとは違うと思っている。そのGUIに機能を埋め込んでいく(クリックすると期待した処理する)作業がプログラミングだと思っている。VSではここが非常に明確になっている割にシームレスに行き来出来て、難しく考えなくてもなんとか作れてしまうのがツボにはまった。

プログラミングってこういう事だったのか!

少なくとも私が作りたかったけど作り方が分からなかったちょっとしたツールの幾つかは、大した労力もかからず実現出来た。後に更に機能を追加したり、例外処理に対する配慮を組み込んだりしていたら、結構な行数のソースになっていた事もある。

最初は超シンプルに、そこから徐々に育てていくという方法でもプログラミングは可能だし、繰り返している内により高度な方法で作成するスキルが身に付いてくる。

プログラミング面白いなぁってちょっと思っている今日このごろです。


ひと目でわかるMicrosoft Visual C# 2010アプリケーション開発入門 (MSDNプログラミングシリーズ)ひと目でわかるMicrosoft Visual C# 2010アプリケーション開発入門 (MSDNプログラミングシリーズ)
著者:伊藤 達也
日経BP社(2010-11-05)
販売元:Amazon.co.jp
プロフェッショナルマスターVisual C# 2012 (MSDNプログラミングシリーズ)プロフェッショナルマスターVisual C# 2012 (MSDNプログラミングシリーズ)
著者:川俣 晶
日経BP社(2013-03-14)
販売元:Amazon.co.jp
C#クックブック 第3版C#クックブック 第3版
著者:Jay Hilyard
オライリージャパン(2008-08-25)
販売元:Amazon.co.jp



sasapurin at 12:02│Comments(0)TrackBack(0)このエントリーをはてなブックマークに追加 mixiチェック パソコン | Windows

トラックバックURL

コメントする

名前
 
  絵文字
 
 
C言語プログラミングレッスンの付録が目当て旧投稿画面が廃止だって?