29.11.2014 Views

Smalltalk and Object Orientation: an Introduction - Free

Smalltalk and Object Orientation: an Introduction - Free

Smalltalk and Object Orientation: an Introduction - Free

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!