Well even in Smalltalk, you typed the program text into browser
windows in the IDE. The browser really is much like most text editors
today with project/file system selection panes, like those in Textmate
or Vim/Emacs given appropriate plugins.
The real difference was how Smalltalk stores/d the source code,
traditionally there were no per-class source code files, code was kept
in a log and the IDE maintained pointers into the log for individual
methods/class definitions. Later, Smalltalk specific
version/configuration control systems like OTI's Envy/Developer
allowed for easier team development.
Like many things this was a blessing and a curse. Smalltalk at the
time had advanced features for browsing, sharing, and managing code
compared to the state of the art, but it did this in a way which was
incompatible with the state of the art file based techniques.
I haven't kept up, but recently some Smaltalk advocates have been
working on making environments which are more compatible with standard
practice here.
I do not know a programming language for which the basis is not text. So,
text usually comes first and then there are tools which help you produce
this text. =A0This is actually a quite nice separation IMHO because you c= an
pick the type of tool you prefer (text editor, UML, integrated IDE, GUI
builder).
There are some, most shrouded in the mists of the past.
For example there were online programming 'systems' in the early 1960s
like COLASYL and the Klerer-May system which used special hardware and
represented programs in a 'natural' 2 dimensional representation.
For example an 'ASCII Art' representation of a formula to calculate
the resistance of two resistors in parallel might be
R x R
1 2
R =3D ------------
eq R + R
1 2
But with more typographical control over such things as subscripting.
There was also a movement for 'visual' programming languages, where
you 'programmed' by direct manipulation of graphical objects.
The Apple Cocoa Interface builder is a partial example of this. The
original IBM VisualAge products, (starting with Smalltalk) started
with graphical construction and connection of UI objects along the
lines of the Interface Builder (which goes back to NeXTStep, and
originally to something written in Common Lisp before that) and took
it farther so that doing application logic visually was encouraged.
http://talklikeaduck.denhaven2.com/2007/11/17/cool-but-stupid-things-ive-do=
ne
Another example is Self which has an IDE which draw a graphical
network representation of object instances. You add methods to the
instance by typing code into a field associated directly with the
instance.
If you have a Mac you can play with self yourself
http://research.sun.com/self/
--=20
Rick DeNatale
Blog:
http://talklikeaduck.denhaven2.com/
Twitter:
http://twitter.com/RickDeNatale
WWR:
http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn:
http://www.linkedin.com/in/rickdenatale