On Thu, Jul 30, 2009 at 5:55 AM, Robert Klemme<shortcutter / googlemail.com> wrote: > On 30.07.2009 11:23, Mike Stephens wrote: >> >> I've just been re-reading Byte August 1981 - an edition dedicated to >> Smalltalk-80. Often people say Ruby has roots in Smalltalk (amongst >> other things) but the thing you notice is Smalltalk is visual ie it has >> a graphical interface. How is it that 28 years later we work by typing >> text into an editor? 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. ¨Βθιισ αγτυαμμω ρυιτξιγε σεπαςατιοξ ΙΝΘΟ βεγαυσωογα> 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 = ------------ 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-done 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/ -- 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