Subject Re: [Firebird-Architect] Object orientation
Author Jim Starkey
Paulo Gaspar wrote:

>All this too say that there is a significant gap of time between the
>moment you thing you "get" OOP and the moment you REALLY do "get it".
>Sometimes a gap of years. And during that dangerous gap of time, you are
>better learning by studying the right books and articles and playing
>with code that can not cause permanent damage (so, please, please stay
>away of defining long lived interfaces during that time).
Sage advice.

Virtually all programmers consider themselves to be quick studies.
Among other things, this a necessary survival adaption in an industry
where information turns over so quickly. But it doesn't apply to
learning new languages. A new language worth acquiring takes at least
six to nine months to master. This is true whether you study the
specification, get formal instruction, or invent the language yourself.
Around the time I was leaving Interbase (I), I was designing a language
called Jello (Jim's Eclectic Language for Objects). Jello was a
strongly typed, multiple inheritance, garbage collected, object oriented
language. Among its novel features where proper iterators and a
signaling facility that allowed up stack communication. It differed
from Java primarily in that Jello was bootstrapped (it required that
even the addition operator be defined before anything as added), which
preclude Java's lovely compilation units. I defined it, it worked as
planned, and it still took me almost a year reach a solid understanding
of the best way to use the language.

Learning a language doesn't mean that you can force a program through a
compiler. It means that you have ridden the full length of the learning
curse on how best to apply the language in a wide variety of conditions.

The only way to learn a language, of course, is to use it. But use it
experimentally, playing close attention to what is effective and what is
troublesome. A necessary part of the experience is when you think you
have mastered a technique, go back and revise what you had written
earlier. If it fights back, you've got more to learn, which you should
consider a good thing. The process is time consuming, certainly. But
if you want to master your craft, it is necessary.