Smalltalk and Object Orientation: an Introduction - Free
Smalltalk and Object Orientation: an Introduction - Free
Smalltalk and Object Orientation: an Introduction - Free
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.4.3.4 <strong>Smalltalk</strong> environments are not geared up for project development<br />
<strong>Smalltalk</strong> environments such as VisualWorks, are derived from the early Smalltal k development<br />
systems (see chapter 4). These early development environments were originally designed for a single<br />
programmer to develop their own personal programs. This me<strong>an</strong>s that the environment provides a great<br />
deal of support for developing a single sy stem within a single process, however it provides little or no<br />
support for group working. This me<strong>an</strong>s that when <strong>Smalltalk</strong> is used as the basis of a group project (such<br />
as is the norm in today’s software industry), the project team members must use the facil ities provided<br />
by the host operating system to share data <strong><strong>an</strong>d</strong> code.<br />
In most development environments the above issue is not a problem. However, in VisualWorks the<br />
situation is rather different. This is because of the way in which source code <strong><strong>an</strong>d</strong> executabl e code are<br />
held by the “environment”. It actually takes a conscientious act on the part of the programmer to<br />
“extract” their code from the environment <strong><strong>an</strong>d</strong> save it onto the host operating system’s file system. It is<br />
therefore all to easy to get out of “sync ” with other members of the team, to forget to obtain the latest<br />
version of source code or to have problems when attempting to merge code written by different<br />
developers for the same class.<br />
This obviously me<strong>an</strong>s that <strong>Smalltalk</strong> is unsuited to this type of development! Doesn’t it? In fact, it is<br />
not difficult to provide suitable protocols to ensure that the above situation does not happen. These c<strong>an</strong><br />
in some cases be used to program extensions to the basic environment to make group working easier. It<br />
is also po ssible to purchase support software which does provide extremely good support for group<br />
project working. It is therefore incorrect to say that <strong>Smalltalk</strong> does not support team based software<br />
development.<br />
2.5 The move to object technology<br />
At present you are stil l acclimatizing yourself to object orientation. It is extremely import<strong>an</strong>t that from<br />
now on you do your utmost to immerse yourself in object orientation, object technology <strong><strong>an</strong>d</strong> (in the case<br />
of this book) <strong>Smalltalk</strong>. This is because, when you first encounter a new l<strong>an</strong>guage/paradigm, it is all to<br />
easy to say that it is not good because you c<strong>an</strong>’t do what you could do in l<strong>an</strong>guage/paradigm X. We are<br />
all subject to the “better the devil you then the devil you don’t” style syndrome. If you embrace object<br />
orientation, warts <strong><strong>an</strong>d</strong> all, at least for the present, you will gain most.<br />
In addition, it is often a fact of life that most of us tend to fit in learning something new around our<br />
existing schedules. This may me<strong>an</strong> for example, that you are trying to read this book <strong><strong>an</strong>d</strong> do the<br />
practicals presented while working in C, VisualBasic, Ada etc. either for various assignments or for<br />
your employer. From personal experience, <strong><strong>an</strong>d</strong> from teaching others about <strong>Smalltalk</strong>, you will gain most<br />
by putting aside a signific<strong>an</strong>t amount of time <strong><strong>an</strong>d</strong> concentrating on the subject matter involved. This is<br />
not only because object orientation is so different, but also because you need to get familiar not only<br />
with the concepts but also with <strong>Smalltalk</strong> <strong><strong>an</strong>d</strong> its development environment.<br />
So have a go, take a “leap of faith” <strong><strong>an</strong>d</strong> stick with it until the end. If at the end you still c<strong>an</strong>’t see the<br />
point then fair enough, but until then accept it.<br />
2.6 Summary<br />
In this chapter we have reviewed some of the terminology introduced in the previous chapter. We have<br />
also considered the types of hierarchy which occur in object oriented systems <strong><strong>an</strong>d</strong> which c<strong>an</strong> at first be<br />
confusing. We have then considered the pros <strong><strong>an</strong>d</strong> cons of object oriented programming. You should now<br />
be ready to start to think in terms of objects. As has alre ady been stated, this will at first seem a str<strong>an</strong>ge<br />
way to develop a software system, but in time it will become second nature. In the next chapter we<br />
examine how <strong>an</strong> object oriented system might be developed <strong><strong>an</strong>d</strong> structured. This will be done without<br />
reference to <strong>an</strong>y source code as the intention is to familiarize you, the reader, with objects rather th<strong>an</strong><br />
<strong>Smalltalk</strong>. This is because it is all to easy to get through a book on <strong>Smalltalk</strong>, C++, Java etc. <strong><strong>an</strong>d</strong><br />
underst<strong><strong>an</strong>d</strong> the text but still have no idea how to start developing <strong>an</strong> object oriented system.<br />
32