0207|09|
2007|09|10|12|
2008|01|02|03|
2009|01|05|08|10|11|12|
2010|01|02|03|04|09|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

2021-10-10 『私にとってのモデル化とは、登場させる"モノ"を、自分の目で見えるままに、クラス(構造体)で記述するだけ。以上』が、私の手法です。 [長年日記]

時々、『江端さんは、シミュレータを作る時に、どういうモデル化をして、I/F(インターフェース)を規定しているんですか』という質問をされることがあります。

Sometimes I am asked, "Mr. Ebata, when you create a simulator, what kind of modeling do you do to define the interface (I/F)?"

私の答はいつも同じです。

My answer is always the same.

『何も考えていないです』

"I don't think about it."

-----

私のプログラミングは、現実にある世界のモノを、構造体(クラス)に記述して、モノ同士で通信が必要になったら、後でI/Fを追加しているだけです。

In my programming, I just describe things in the real world in a structure (class) and I/F later when things need to communicate with each other.

私は、こういう設計思想を「オブジェクト設計」といい、この思想に基づくプログラミングを「オブジェクト指向プログラミング」というだけのこと ―― と思っています。

I believe that this kind of design concept is called "object design" and programming based on this concept is just called "object-oriented programming".

このプログラミングのメリットはただ一つです ――

There is only one advantage to this programming --

『ラク』。この一言に尽きます。

"Easy". This is the only word that comes to mind.

ただ、この『ラク』を実現する為には、「オブジェクト指向プログラミング」の特徴と言われているものを、何一つとして使わない、という腹の括り方が必要です。

However, in order to make this "easy", you need to be willing to not use any of the features of "object-oriented programming".

ちなみに、「継承」や、「汎化」なんぞ、使いません。デバッグする時に面倒くさいからです。

I don't use "inheritance" or "generalization" because they are too much trouble when debugging.

「多重継承」なんぞ、確実に混乱します。

"Multiple inheritance" is sure to be confusing.

「ポリモーフィズム」が必要なら、作り方が下手くそなのだ、と思っています。

I believe that if you need "polymorphism," you're not very good at making it.

"private"とか"public"など死ぬほどうっとうしいので、私は全部"public"にしてしまいます。

I find "private" and "public" annoying to death, so I just use "public" for everything.

こういうものを使うと、プログラムの可読性メチャクチャ悪化します。とても、読めたものではありません。

If you use this kind of thing, the readability of your program will get really bad. It's not very readable.

-----

まあ、ここまで割り切った考え方ができるのは、これは「研究員の個人レベル」のプログラミングだからできるのかもしれませんが、

Well, maybe it's because this is a "personal level" programming of a researcher that we can think this way, but

『私にとってのモデル化とは、登場させる"モノ"を、自分の目で見えるままに、クラス(構造体)で記述するだけ。以上』が、私の手法です。

For me, modeling is simply describing the "things" that I want to appear in a class (structure) as I can see them. That is my method.

それ以外のことは、「必要になった時に覚えればいいんじゃないかなー」と思うんですよ ―― 『必要になる時なんて、あるのかなあ?』とも思っていますが。

Other than that, I think it's fine to learn when you need it -- although I wonder if the time is coming.