"One picture is worth a thousand words."-- Fred Barnard
"Write one to throw away."-- Fred Brooks
Tomato is an experimental prototype of a Java application development environment. It aims to augment text-based Java programming with a point-and-click visual programming language.
The prototype works sufficiently to be used to help develop parts of itself. As parts of Tomato are developed in Tomato, the development process itself is being evaluated to find ways to improve Tomato. Thus, Tomato development is shaped by real-world development requirements, rather than adherence to a predetermined abstract design. This process of long-term ad-hoc prototyping1 should either produce a working visual programming system, or leave a trail of empirical evidence to indicate why general purpose visual programming systems aren't viable.
Once the Tomato prototype can handle most development tasks and demonstrate that general purpose visual programming is viable, it will be redesigned from scratch. The next generation Tomato will be developed entirely within the final evolution of the Tomato prototype.
To our knowledge, Tomato is the first open source development tool of its kind for the Java platform.
Specialised visual programming languages -- eg., National Instruments' LabVIEW, the shader language in Houdini, or ToonTalk -- have proven successful in niche markets or genres. In these contexts, visual programming has demonstrated advantages over traditional text-based programming.
Visual programming has not yet made a significant impact on general application development. While efforts like Sun's BeanBox or the BlueJ project are promising, they are limited in scope. Tomato was created to explore the use of visual programming for general purpose development.
The visual language supports dynamic execution of source code during development. Programs can be assembled from small, individually-tested units. Each unit can be assembled from even smaller units, and so on. All units can be run and tested during construction. Some units may even continue to execute while they are assembled into a whole.2 This may represent a uniquely powerful "run early, run always" development methodology.
The visual scripting and class authoring facilities are incomplete. It is possible to write useful Java classes, but inner classes are not yet supported, building expressions is laborious, parameters cannot be defined for new methods and constructors, and so on.
The documentation, including this document, is incomplete.
These and other limitations will be addressed in future versions.
In other words, this tomato ain't ripe! Tomato is being released at this embryonic stage in order to develop interest and solicit feedback on the design.
You will require a version 1.4.x Java 2 Platform and should have a Java compiler.
See the Download and Installation section below for URLs where you can obtain these.
The Java compiler is optional, but without it you cannot compile new classes; you will only be able to work with existing Java classes.
Tomato may not be used to test or develop applications where vertebrate lifeforms may be harmed by a possible malfunction. This includes but is not limited to medical, weapons, and aircraft flight control systems.
The Tomato source code is released under the Gnu Public License, a copy of which can be found at http://www.gnu.org.
Classes and applications created using Tomato are not bound by this license.
"Java" is a trademark of Sun Microsystems, Inc.
"Linux" is a trademark of Linus Torvalds.
"Windows" is a trademark of Microsoft Corporation.
None yet...
Download: http://sourceforge.net/project/showfiles.php?group_id=67296
Note: In the following instructions, replace <directory>
with the directory you created
in Step 4 under Download and Installation.
Windows: Select "Start | Run", enter
java <directory>/Tomato
UNIX or Linux: Type
cd <directory>; java Tomato
MacOS: Unknown.
The most annoying bug is that your visual programming source files -- 'Models' in the Tomato parlance -- may occasionally become corrupt when saved. Make frequent backups!
Compilation using Jikes does not work under Windows.
Some of the sample models may not work reliably under Windows.
1 I.e., "hacking" in the classic sense.
2 Modifying an
application while it executes is an unusual and strangely exhilarating
experience.
3 Botanically, a tomato is a fruit.
Copyright © 2002, 2003 Armchair Airlines Computer Services Inc. All Rights Reserved.