<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<page name="Alltalk - An interactive object-oriented programming language">

<s name="Introduction">

	<p>
	Alltalk is a programming language designed in the tradition of Smalltalk. 	
	Unlike Smalltalk, it features conventional syntax and doesn't 
	require garbage collection just to operate. This pays off in
	readability and performance. 
	</p>

	<h4>Features</h4>
	<ul>
	<li>Interactive programming</li>
	<li>Integrated browser and debugger</li>
	<li>Concurrent processes</li>
	<li>Single inheritance</li>
	<li>Read/Write syntax (Source code can be understood by others)</li>
	<li>True dynamic binding (Smalltalk/Objective C style, not C++/Java style)</li>
	<li>Interoperates with external code (libraries/dlls/etc.)</li>
	<li>Creates stand-alone applications</li>
	<li>Themeable GTK+ graphics</li>
	<li>Portability - Windows, Mac, Linux</li>
	</ul>
</s>

<s name="Browser">
	<p>
	The browser is the primary interface for developers. You can study
	the class hierarchy, modify existing code, or create new classes
	and methods. A debugger is integrated with the browser.
	</p>

	<p>
	<picture name="The browser" url="images/Browser.jpg"/>
	</p>
</s>

<s name="Listener">
	<p>
	The listener window executes expressions and displays results as
	you type.
	You can create objects, send messages, and observe the effects.
	There are no modes: you modify your application while it runs.
	</p>

	<p>
	<picture name="The listener" url="images/Listener.jpg"/>
	</p>
</s>

<s name="Getting started">
	<p>
	Download and unpack the archive using the links below.
	Inside the <i>Documents</i> folder, right-click on <i>Install.reg</i>
	and select "Merge" from the pop-up menu.
	Run <i>Alltalk.exe</i> and three windows should appear:
	the browser, the listener, and an empty workspace.
	</p>

	<p>
	To uninstall Alltalk, right-click and merge the settings in
	Documents\Remove.reg - they remove all the registry changes.
	Then throw away the Alltalk folder.
	</p>
</s>

<s name="Using the browser">
	<p>
	The left window pane is for selecting a category. The middle pane is for
	selecting a class. The right pane is for selecting a method. A great
	many classes have a self-contained help files you can execute.
	To try this, select a class from the middle pane and select <i>Help</i>
	from the <i>File</i> menu. If a help file is available, a new workspace
	window will appear full of source code. In the workspace window, use
	the <i>Compile</i> menu to select <i>All:</i> A new window or some other
	tutorial will appear. A few (very few) help files are designed to be 
	compiled one section at a time so you can see incremental changes. 
	The comments will suggest how these examples should be executed.
	</p>
</s>

<s name="Using the workspace">
	<p>
	Workspace windows are simply text editors with the ability to
	execute selected source code.
	</p>
</s>

<s name ="Using the listener">
	<p>
	The listener window is actually a telnet session connected to
	the Alltalk compiler. In this window, you can type one or more
	lines of Alltalk expressions and execute them immediately. Because
	Alltalk doesn't recognized line boundaries, you have to tell the
	listener when you've finished entering the expression you'd like
	to evaluate. To do that, type a semi-colon and then the Enter key.
	An alternative terminator is the colon: this tells Alltalk to
	evaluate the expression and display the result.
	</p>

	<p>
	The right and left arrow keys can be used to edit a line before you
	press Enter. The up and down arrows allow you to scroll through
	previously typed expressions.
	</p>
</s>

<s name="More about the Alltalk language">
	<p>
	Alltalk is a simple language. There are five basic constructs:	
	</p>

	<ul>
	<li>Classes</li>
	<li>Methods</li>
	<li>Variables</li>
	<li>Control structures</li>
	<li>Message expressions</li>
	</ul>

</s>

<s name="Download the current version (Alltalk 3 with Gtk+)">
	<ul>
	<li><a href="archive/Alltalk-3.4077.zip">Windows: Alltalk 3.4077</a></li>
	</ul>
</s>

<s name="Download old Windows versions (Alltalk 2)">
	<p>
	"These fragments I have shored up against my ruins." - T.S. Eliot
	</p>

	<ul>
	<li><a href="archive/Alltalk-2.974.zip">Alltalk 2.974</a></li>
	<li><a href="archive/Alltalk-2.974e.zip">Alltalk 2.974e</a></li>
	<li><a href="archive/Alltalk-2.978.zip">Alltalk 2.978</a></li>
	<li><a href="archive/Alltalk-2.999d.zip">Alltalk 2.999d</a></li>
	<li><a href="archive/Alltalk-2.999h.zip">Alltalk 2.999h</a></li>
	<li><a href="archive/Alltalk-2.999i.zip">Alltalk 2.999i</a></li>
	<li><a href="archive/Alltalk-2.999k.zip">Alltalk 2.999k</a></li>
	<li><a href="archive/Alltalk-2.999m.zip">Alltalk 2.999m</a></li>
	</ul>
</s>

<s name="Other operating systems">
	<p>
	Alltalk should run on any platform that support Gtk2.
	This includes nearly all Linux distributions, MacOSX,
	and Windows XP through Windows 11. Sometimes I get behind
	on updating an O.S. - If your'e willing to test it, I'll
	try to build it for you.
	</p>
</s>

<s name="Questions and complaints">
	<p>
	<a href="mailto:hugh@csparks.com">Send an email...</a>
	</p>
</s>

</page>
