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.

Compatibility (or code generation) for <strong>Smalltalk</strong>. For <strong>Smalltalk</strong> to continue as a commercial success it<br />

is essential that it gains a similar level of support in this area as C++.<br />

33.4 The internet <strong><strong>an</strong>d</strong> objects<br />

The world wide web (or just the Web for short) is one of the phenomena of the last few years. It is set to<br />

revolutionize the way we think about computers <strong><strong>an</strong>d</strong> computing. However, at present most information<br />

available on the web is in the form of static web pages. These are useful in providing information but<br />

are fairly limited in their ability to do much more. Java has of course allowed Web pages to possess at<br />

least some dynamic element, however the majority of Java applets on the Web make little cartoon<br />

characters do something. To gain the full benefits of the Web it is necessary to be able to connect<br />

applets, downloaded form the Web, into corporate databases or to existing programs. Such <strong>an</strong> ability<br />

will open the Web up to a huge r<strong>an</strong>ge of applications both within <strong><strong>an</strong>d</strong> between corporations.<br />

Java, of course, has already guar<strong>an</strong>teed that object technology will play <strong>an</strong> import<strong>an</strong>t role in the<br />

development of such applications. Java is in m<strong>an</strong>y ways just <strong>an</strong>other object oriented l<strong>an</strong>guage, which<br />

like <strong>Smalltalk</strong>, is not compiled into <strong>an</strong> executable but into byte codes which are then “executed” by <strong>an</strong><br />

interpreter (or virtual machin e). Thus <strong>an</strong>y Java applet is <strong>an</strong> object or set of objects which communicate<br />

with each other via message passing. Thus these applets should be capable of communicating, relatively<br />

easily, with a distributed object system. Indeed developments are already under way to link Java applets<br />

to CORBA compli<strong>an</strong>t ORBs, <strong><strong>an</strong>d</strong> to OLE/COM.<br />

To simplify this sort of task, special OO WEB site development tools will be (<strong><strong>an</strong>d</strong> are being)<br />

developed. It is also likely that m<strong>an</strong>y of the existing OO CASE tools will provide Web additions s o that<br />

they too c<strong>an</strong> be used with the Web <strong><strong>an</strong>d</strong> for Web development.<br />

However, which l<strong>an</strong>guage will dominate, <strong><strong>an</strong>d</strong> which type of distributed system will be adopted, are<br />

two different questions. Java will certainly be the domin<strong>an</strong>t Web l<strong>an</strong>guage, although there is no great<br />

reason why Java should be <strong>an</strong>y better as a Web l<strong>an</strong>guage th<strong>an</strong> <strong>Smalltalk</strong> or <strong>an</strong>y other interpreted OO<br />

l<strong>an</strong>guages such as <strong>Object</strong>ive-C or Eiffel, other th<strong>an</strong> the fact that Java got there first <strong><strong>an</strong>d</strong> has the backing<br />

of both Netscape <strong><strong>an</strong>d</strong> Sun. However, in earl y 1996, ParcPlace-Digitalk released VisualWave. This is <strong>an</strong><br />

application development environment (ADE) for building live applications on the Web. VisualWave<br />

runs on VisualWorks <strong><strong>an</strong>d</strong> hides all the HTML (Hyper Text Markup L<strong>an</strong>guage) <strong><strong>an</strong>d</strong> CGI (Common<br />

Gateway Interface) details from the developer. Instead, the developer c<strong>an</strong> concentrate on creating Web<br />

applications in a <strong>Smalltalk</strong> environment. This allows the user to access multiple databases, use<br />

interactive window building tools, <strong>Smalltalk</strong> classes <strong><strong>an</strong>d</strong> the VisualWork s browsers to develop<br />

applications. At present VisualWave relies on the use of a CORBA compli<strong>an</strong>t ORB, however it claims<br />

that it will be able to access OLE components soon.<br />

It is interesting to compare <strong><strong>an</strong>d</strong> contrast Java <strong><strong>an</strong>d</strong> <strong>Smalltalk</strong>. <strong>Smalltalk</strong> appears to be the better OO<br />

l<strong>an</strong>guage for the internet as it is not a hybrid l<strong>an</strong>guage <strong><strong>an</strong>d</strong> has m<strong>an</strong>y features built into it which would<br />

work well with the Web. This me<strong>an</strong>s that it is likely that comp<strong>an</strong>ies which already have signific<strong>an</strong>t<br />

<strong>Smalltalk</strong> experience will stick with <strong>Smalltalk</strong> <strong><strong>an</strong>d</strong> use VisualWave, although m<strong>an</strong>y others will swallow<br />

the hype surrounding Java, <strong><strong>an</strong>d</strong> go with it.<br />

The question of which distributed object technology will be adopted is more complex. OMG would<br />

certainly like CORBA to be adopted as the accepted st<strong><strong>an</strong>d</strong>ard, while Microsoft would prefer their own<br />

OLE/COM infrastructure st<strong><strong>an</strong>d</strong>ard. An open question is what will Netscape do? It is probable that<br />

Netscape will do both. For examp le, Sun have already linked Java with CORBA <strong><strong>an</strong>d</strong> Sun <strong><strong>an</strong>d</strong> Netscape<br />

are closely linked, but a great deal of the world uses Microsoft products.<br />

33.5 <strong>Object</strong> oriented databases<br />

An object oriented database system is one which relies on <strong>an</strong> object-oriented view of the world, that is,<br />

uses classes <strong><strong>an</strong>d</strong> objects as the basic storage mech<strong>an</strong>ism rather th<strong>an</strong> forms <strong><strong>an</strong>d</strong> tables. In general these<br />

databases are also quite flexible about the type of data they hold including text, programs, graphics,<br />

video <strong><strong>an</strong>d</strong> sound. However OO databases have been fairly thin on the ground until recently. The main<br />

players in this field have tended to concentrate on <strong>Smalltalk</strong> based systems. Either providing <strong>Smalltalk</strong><br />

binding or in some cases implementing the system in Sm alltalk <strong><strong>an</strong>d</strong> treating <strong>Smalltalk</strong> as the database<br />

281

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

Saved successfully!

Ooh no, something went wrong!