活動報告

新着記事

カテゴリー

キーワード検索

2018.01/11 プログラミング(9)

オブジェクト指向によるプログラム設計の教科書は、初心者にとって、さらに60歳を過ぎた専門外の人間にとって睡眠剤にしかならない。眠れない夜に数ページ読めば疲れてぐっすり眠れる。

 

C++で初めてプログラミングをしようとチャレンジした30代でも2ページで眠りに就くことができた。おかげで高純度SiCの事業化でかなりストレスがかかり、本来ならば眠れない夜が続いた独身時代でも、ぐっすり眠ることができた。

 

オブジェクト指向のプログラミングを行う場合に、プログラム設計は重要である。しかしそこで要求される設計とは、問題解決のことであり、インスタンスがどうのこうのという訳の分からない話は、コーディングで考えれば良いだけである。

 

なぜこのように情報工学の教科書に書いていないのか不思議である、と思っていたら、問題解決の手法で訳の分からない説明にであった。TRIZだ。今はUSITとして知られ、その説明は、まさにオブジェクト指向そのものだ。

 

以前この欄でTRIZやUSITがなぜ実務の問題解決に役立たないのか書いたので繰り返し説明しないが、情報工学の教科書と同じ状況と簡単に説明できる。すなわち科学的にこだわり、手順の説明が難解だけでなく、科学的という理由でTRIZやUSITを用いたときに当たり前の答えしか出せないからである。

 

人間には第六感という優れた問題解決ツールがある。これを活かしているのは、弊社の問題解決手法だが、TRIZやUSIT同様にオブジェクト指向の教科書を読んでいて思いついた。オブジェクト指向の教科書通り説明しているのがUSITならば、「オブジェクト指向の効果を取り入れて考案されたのが弊社の問題解決法」といえる。

 

ゆえにUSITでは当たり前の解答しか出せない問題でも、弊社の問題解決法を使用すると、時には、「解決のために何もしない」などという名答まで出せる。

 

オブジェクト指向によるプログラミング設計では、コーディングの心配よりも、「どのように問題解決するのか」と考える手順が重要となってくる。C#はそのように専用設計されており、コーディング様式が似ているCのプリプロセッサーとして設計されたC++とは全くの別物である(ボーランドC++のようにCのプリプロセッサとして設計されていない処理系もある。)。

 

Cの機能をうまく活用して作られたC++は、betterC的な使い方でコーディングしても違和感のないプログラミングが可能でオブジェクト指向をよく理解していなくても使えるが、C#ではC++的な使い方も可能だが、豊富なオブジェクト指向の成果を利用すると、あたかも手抜き感覚でコーディングできるようになる。

 

一般的なデータ操作は、オブジェクト指向でもC++では煩雑なコーディングが要求されるが、C#ではオブジェクト指向で拡張されたLINQを使うと簡易言語のようにコーディングできる。C++かC#か迷ったら、今ならC#を使うのが正しい選択とまでいえる。

カテゴリー : 一般

pagetop