Tuesday, December 25, 2007

Christmas

The previous two posts were to emphasize a point, that Jesus is fully God and fully man. At Christmas we celebrate the time when God became a man (stop for a second and consider that! Wow!). Interestingly, it is commonly agreed that Jesus could not of been born in December (the shepherds would not of been in the fields). I have seen compelling evidence for a September date, that would put conception sometime in December...

Sometimes people ask, "Isn't 100% God and 100% man equal to 200%?"

So time for some more code. This using some advanced C++ stuff, so I'll probably need to explain it.

I love the Trinity. It is so basic to proper Christian doctrine. Yet, it is nearly impossible to wrap your brain around. Should we be able to understand an infinite God? At any level?

So God has attributes or properties. In C++, that is a "class":

class God
{
protected:
//God(void); // no constructor, God simply "is"

public:
bool isLove_; // God is love
bool isJust_;
//etc.
};


In C++, we say that one thing is a specialized version of some more general thing using "inheritance" (class Specific : public General, for example class Rectangle : public Shape). So:

class Father : public God // the Father is God
{
};

class HolySpirit : public God // the Holy Spirit is God
{
};

class Jesus : public God, public Man // Jesus is both fully God and fully Man
{
};
// Java lacks multiple inheritance, evidence that it is the language of the devil! :)

So far so good. Now how do we resolve conflicts between being God and being a man? For example:

God does not change (Malachi 3:6).
Men do change (and Jesus grew, Luke 1:80)

The programming term is "adapter". A class which resolves one group of calls into other calls.

For example, there is no function God::change().

Jesus::change()
{
Man::change();
}

God is omniscient, but men are not.

Jesus::isOmniscient()
{
return God::isOmniscient();
}

Etc.

No comments: