VisualWorks
   HOME

TheInfoList



OR:

VisualWorks is a cross-platform implementation of the
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan ...
language. It is implemented as a development system based on "images", which are dynamic collections of software objects, each contained in a
system image In computing, a system image is a serialized copy of the entire state of a computer system stored in some non-volatile form such as a file. A system is said to be capable of using system images if it can be shut down and later restored to exactly ...
. The lineage of VisualWorks goes back to the first Smalltalk-80 implementation by
Xerox PARC PARC (Palo Alto Research Center; formerly Xerox PARC) is a research and development company in Palo Alto, California. Founded in 1969 by Jacob E. "Jack" Goldman, chief scientist of Xerox Corporation, the company was originally a division of Xero ...
. In the late 1980s, a group of Smalltalk-80 developers spun off ParcPlace Systems to further develop Smalltalk-80 as a commercial product. The commercial product was initially called ObjectWorks, and then VisualWorks. On August 31, 1999, the VisualWorks product was sold to
Cincom Cincom Systems, Inc., is a privately held multinational computer technology corporation founded in 1968 by Tom Nies, Tom Richley, and Claude Bogardus. The company's best known product today is named Total (trademark ''TOTAL''). IBM mentions C ...
. VisualWorks runs under many operating systems, including
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for se ...
,
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lap ...
,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
, and several versions of
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, ...
. VisualWorks supports cross-platform development projects, because of its built-in multi-platform features. For example, a
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
application needs to be developed only once, and can then be switched to different widget styles. A VisualWorks application can be run on all supported platforms without any modifications. Only the
virtual machine In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized h ...
is platform-dependent.


Benefits and drawbacks

VisualWorks allows for very fast application development, as individual methods can be compiled even while the program to be developed is running. Compiling a Smalltalk method typically takes significantly less than a second, while doing the same for a C++ project often takes a minute or more, and cannot be done easily without restarting the process. The various code browsers of VisualWorks help the developer to quickly locate a class or method of interest. The performance and throughput of Smalltalk programs can approach the performance of static languages such as C++, Fortran,
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, Frenc ...
or
Ada Ada may refer to: Places Africa * Ada Foah, a town in Ghana * Ada (Ghana parliament constituency) * Ada, Osun, a town in Nigeria Asia * Ada, Urmia, a village in West Azerbaijan Province, Iran * Ada, Karaman, a village in Karaman Province, T ...
using a
just-in-time compiler In computing, just-in-time (JIT) compilation (also dynamic translation or run-time compilations) is a way of executing computer code that involves compilation during execution of a program (at run time) rather than before execution. This may c ...
by generating machine code that is specialised for frequently used types, but numeric processing and programs that benefit from precise memory layout may still run slower. The generational
garbage collector A waste collector, also known as a garbageman, garbage collector, trashman (in the US), binman or (rarely) dustman (in the UK), is a person employed by a public or private enterprise to collect and dispose of municipal solid waste (refuse) and ...
minimises most collection pauses, but may not be suitable for hard real-time and determinism requirements, as long full collections may occur, which may stop the world on the order of tens to hundreds of milliseconds proportional to heap size. However, garbage collection is preferable over manual memory management in an object-oriented language, and the programmer can take various actions to control when and for how long garbage collection occurs; so under most circumstances garbage collection is not a concern.


Installation

All components of the VisualWorks system are installed on Windows 7 or later in a Program Files\Cincom
directory Directory may refer to: * Directory (computing), or folder, a file system structure in which to store computer files * Directory (OpenVMS command) * Directory service, a software application for organizing information about a computer network' ...
named after the version number of the installed system – for instance, vw7.5nc. This directory contains several subdirectories including bin, doc, examples and many others.


Mouse buttons and menus

VisualWorks assumes a three-button mouse with buttons having logical names selects any interface object. brings up a menu of operations for the current view/selection. initiates actions (move, close...) on VisualWorks windows.


File-in format

File-in format is the original
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan ...
format for representing classes as text files. These can be "filed in" to the VisualWorks IDE to generate any classes not already contained in the Smalltalk
image An image is a visual representation of something. It can be two-dimensional, three-dimensional, or somehow otherwise feed into the visual system to convey information. An image can be an artifact, such as a photograph or other two-dimensio ...
. Every file-in document provides a simple textual representation of a Smalltalk class, or classes, in a text file with a .st suffix. It is still supported in VisualWorks, but has been superseded by a Parcels mechanism. There are examples in file-in format in the examples subdirectory.


Parcels

Parcels are external file representations of packages. An Examples Browser is provided as a parcel in the examples directory. Several image level switches are available to specify parcel loading on image startup. The parcel path is the list of directories where VisualWorks looks for parcels. This can be set using the System Settings tool. Parcels provide the
component technology Circuit Component may refer to: •Are devices that perform functions when they are connected in a circuit.   In engineering, science, and technology Generic systems *System components, an entity with discrete structure, such as an assemb ...
for VisualWorks. Packages and bundles organize the code and model the contents of parcels. Parcels are created by publishing packages/bundles. The term ''components'', in the VisualWorks sphere, is used to refer to parcels, packages, and bundles when it is not necessary to be specific. The parcel code's organization on loading is determined by its creation. If it was created by publishing a package, it is loaded into the same package. If created from a bundle, it can be reloaded as the bundle or as one package. The load sequence for a package is: # Any prerequisite components are loaded. # Any defined pre-load action is performed (e.g. undeclared variables initialized). # Objects in the package are installed. # Every class in the parcel is sent message post Load: the Package, and any action executed. This is often an application launch.


Parcel manager

The Parcel Manager is used to load and unload all parcels on the parcel path. A Suggestions view lists Categories containing key add-in parcels-by selecting a category, you get a list of recommended parcels. For example, the UI Painter is located in the Essentials category. There is also a Directory-tree view of the parcel path, for finding parcels outside the Suggestions view. A Loaded view lists all parcels already in the image. Only loaded parcels can be browsed. A supported VisualWorks product parcel is represented by an icon that looks like a parcel. Parcels from other vendors look like a shopping sack. Because of the convoluted history of Smalltalk class development this can be very useful. For instance, a parcel icon indicates that the
Arbor hypertext system Arbor(s) or Arbour(s) may refer to: Arts and entertainment * ''Arbor'' (installation), a 2013 public artwork in Indianapolis, Indiana, US * Arbor, a counterweight-carrying device found in theater fly systems * ''The Arbor'', a 1980 play by Andr ...
is now VisualWorks supported. One can also load and unload parcels programmatically from the application.


Packages

When a parcel is loaded it is organized as a package, or bundle of packages. When looking for code loaded from a parcel, one can locate the bundle or package with the same name in the System Browser. Packages are categories that organize classes into related groups, according to component. Packages can be grouped into bundles. Packages and bundles can be saved (published) as parcels, or saved into a source code repository.


Loading code libraries

The initial visual.im image contains minimal development facilities, using basic class libraries. Additional class libraries are provided by VisualWorks or third-party vendors, usually as parcel files. For most non-Smalltalk development environments, code libraries are imported at compile time, using an include command. In
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan ...
, code libraries are loaded into the running system, and become part of the environment. For example, the UI Painter is loaded as a parcel.


VisualWorks Launcher

The VisualWorks Launcher, usually just called ''the Launcher'', is the control centre for the VisualWorks system. It is the launching pad for all the major tools.


Smalltalk basics

Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan ...
is a pure
object oriented programming language Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pr ...
, which means the only way to get something to happen within Smalltalk is by sending messages to objects. VisualWorks uses the Smalltalk-80 language as standard, but comes with its own set of classes and methods. So even basic classes, like Object, differ from those in other Smalltalk-80 IDEs like Squeak and Dolphin Smalltalk. The illustrative examples here work in VisualWorks Smalltalk, but may not work in other Smalltalks because the classes and/or methods may differ.


Browsing and editing Smalltalk code

In traditional
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
environments a developer directly edits a plain text
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
file containing
class Class or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used differently ...
and
method Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to: *Scien ...
definitions. In VisualWorks, like all Smalltalks, everything is an executing object, including classes. In browsing Smalltalk classes the developer gleans definitions from executing objects. The main browser/editor in VisualWorks is the System Browser. It allows the developer to browse classes either in the overall class hierarchy or through their packages. It is launched from the VisualWorks Launcher. List panes in the System Browser allow developers to navigate to class and method definitions. They can then be viewed or edited in a code view, or modified with a new definitions.


Undeclared variables

When a variable is deleted while references to it still exist, or is loaded via a parcel but never declared, its name enters the Undeclared name space. Undeclared variables can cause certain program errors.


String and files


Cincom's first tutorial on VisualWorks
illustrates how VisualWorks can be used to manipulate
server Server may refer to: Computing *Server (computing), a computer program or a device that provides functionality for other programs or devices, called clients Role * Waiting staff, those who work at a restaurant or a bar attending customers and su ...
log files. It illustrates how things like strings and files can be easily subsumed into the object structure within VisualWorks. Consider the Smalltalk expression: 'ws000101.log' asFilename edit One can evaluate this expression as-is in a VisualWorks workspace using one command in the operate menu. This creates: # An
object Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Object (abstract), an object which does not exist at any particular time or place ** Physical object, an identifiable collection of matter * Goal, an ...
of class ByteString containing the string (as
byte The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable uni ...
s) and the
methods Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to: *Scien ...
for manipulating it; # An object of class NTFSFilename (in
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
); and # An editor object. The latter is a simple
notebook A notebook (also known as a notepad, writing pad, drawing pad, or legal pad) is a book or stack of paper pages that are often ruled and used for purposes such as note-taking, journaling or other writing, drawing, or scrapbooking. History ...
-like editor containing the contents of the file. That is, the evaluation created a filename object as a gateway to the file ws000101.log and opened an editor onto it. The editor itself is an object, as are all its components (down to and including the characters in its menus). The source code is available for all these objects, and VisualWorks has a plethora of inspectors, browsers, and other tools for anyone to evaluate and inspect the code in static or dynamic mode.


Tutorials

There are dail
tutorials
produced for Cincom Smalltalk, and there's
Seaside tutorial
as well.


References


External links

* , Cincom
VisualWorks wiki
at UIUC archived at archive.org {{DEFAULTSORT:Visualworks Integrated development environments Smalltalk programming language family