Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
hyperlook [2007-07-17 10:45] – created nik | hyperlook [2020-07-17 09:49] (current) – nik | ||
---|---|---|---|
Line 5: | Line 5: | ||
---- | ---- | ||
- | http:// | + | via;: http:// |
* Date: Thu Dec 28 10:58:09 EST 2006 | * Date: Thu Dec 28 10:58:09 EST 2006 | ||
Line 12: | Line 12: | ||
* Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] | * Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] | ||
- | I love the ideas behind Smalltalk, EToys and HyperCard, and would like | + | > I love the ideas behind Smalltalk, EToys and HyperCard, and would like |
- | to combine them with ideas from visual programming languages like Robot | + | > to combine them with ideas from visual programming languages like Robot |
- | Odyssey, KidSim, Klik-and-Play, | + | > Odyssey, KidSim, Klik-and-Play, |
- | Max/ | + | > Max/ |
Here are some ideas about HyperLook and other systems, that could be | Here are some ideas about HyperLook and other systems, that could be | ||
Line 23: | Line 23: | ||
for the NeWS window system, which Arthur van Hoff created at the Turing | for the NeWS window system, which Arthur van Hoff created at the Turing | ||
Institute in Glasgow. | Institute in Glasgow. | ||
+ | |||
http:// | http:// | ||
Line 29: | Line 30: | ||
non-editable runtime, and I used it to port SimCity to Unix, and develop | non-editable runtime, and I used it to port SimCity to Unix, and develop | ||
other components and applications . | other components and applications . | ||
+ | |||
http:// | http:// | ||
- | http:// | + | |
+ | {{http:// | ||
HyperLook was inspired by HyperCard, but it additionally provided a | HyperLook was inspired by HyperCard, but it additionally provided a | ||
Line 47: | Line 50: | ||
the first to admit the X11/NeWS merge was quite a hodge-podge and | the first to admit the X11/NeWS merge was quite a hodge-podge and | ||
huge-kludge!) | huge-kludge!) | ||
+ | |||
NeWS had an object system based on the simple dynamic ideas of | NeWS had an object system based on the simple dynamic ideas of | ||
Smalltalk, implemented with the PostScript dictionary stack, supporting | Smalltalk, implemented with the PostScript dictionary stack, supporting | ||
multiple inheritance and runtime modification of objects and classes. | multiple inheritance and runtime modification of objects and classes. | ||
- | http:// | + | |
+ | {{http:// | ||
HyperLook was a gui development framework and desktop environment, | HyperLook was a gui development framework and desktop environment, | ||
Line 60: | Line 65: | ||
manager, gui editor, clipboard and other desktop tools and services, all | manager, gui editor, clipboard and other desktop tools and services, all | ||
designed around the PostScript graphics format and message passing system. | designed around the PostScript graphics format and message passing system. | ||
- | http:// | + | |
- | http:// | + | {{http:// |
- | http:// | + | |
- | http:// | + | {{http:// |
+ | |||
+ | {{http:// | ||
+ | |||
+ | {{http:// | ||
Users could create their own integrated applications, | Users could create their own integrated applications, | ||
Line 71: | Line 80: | ||
handlers, sending and receiving messages between other stacks and | handlers, sending and receiving messages between other stacks and | ||
applications, | applications, | ||
- | http:// | + | |
+ | {{http:// | ||
It provided a user-editable window manager, that allowed you to draw and | It provided a user-editable window manager, that allowed you to draw and | ||
Line 78: | Line 88: | ||
controls, as well as combining and scripting together multiple | controls, as well as combining and scripting together multiple | ||
application components and custom graphics. | application components and custom graphics. | ||
+ | |||
Because everything was based on PostScript, you could print any window | Because everything was based on PostScript, you could print any window | ||
to a PostScript printer or copy it to the clipboard, and iconified | to a PostScript printer or copy it to the clipboard, and iconified | ||
windows were just live miniaturized views. | windows were just live miniaturized views. | ||
- | http:// | + | |
+ | {{http:// | ||
Developers could create back-end services (like audio mixing) and | Developers could create back-end services (like audio mixing) and | ||
Line 87: | Line 99: | ||
shared memory for efficient bitmap animation, and share services like | shared memory for efficient bitmap animation, and share services like | ||
audio mixing with other applications. | audio mixing with other applications. | ||
- | http:// | + | |
- | http:// | + | {{http:// |
+ | |||
+ | {{http:// | ||
I developed SimCity in parallel with HyperLook, so there was a powerful | I developed SimCity in parallel with HyperLook, so there was a powerful | ||
synergy, SimCity drove the development of many of HyperLook' | synergy, SimCity drove the development of many of HyperLook' | ||
and the other way around. | and the other way around. | ||
+ | |||
SimCity extended HyperLook with client/ | SimCity extended HyperLook with client/ | ||
city editor, map view, graph display, which could be copied and pasted | city editor, map view, graph display, which could be copied and pasted | ||
and placed anywhere in the interface. | and placed anywhere in the interface. | ||
+ | |||
It was great to have a demanding application like SimCity as an acid | It was great to have a demanding application like SimCity as an acid | ||
test, to shake out bugs and limitations of the platform, and prove the | test, to shake out bugs and limitations of the platform, and prove the | ||
abilities of general purpose components like bitmap animation and audio | abilities of general purpose components like bitmap animation and audio | ||
mixing. | mixing. | ||
- | http:// | + | |
- | http:// | + | {{http:// |
+ | |||
+ | {{http:// | ||
HyperLook was a commercial product, with a WYSIWYG interface development | HyperLook was a commercial product, with a WYSIWYG interface development | ||
environment for developers, and a freely redistributable non-editable | environment for developers, and a freely redistributable non-editable | ||
runtime. | runtime. | ||
+ | |||
We released it at the same time as SimCity (using SimCity as bait to | We released it at the same time as SimCity (using SimCity as bait to | ||
entice people to try out the included HyperLook runtime). | entice people to try out the included HyperLook runtime). | ||
+ | |||
http:// | http:// | ||
+ | |||
http:// | http:// | ||
Line 118: | Line 139: | ||
components around, and edit their scripts (enabling user interface | components around, and edit their scripts (enabling user interface | ||
vandalism). | vandalism). | ||
+ | |||
Personally, I think all users should have a user-editable development | Personally, I think all users should have a user-editable development | ||
environment, | environment, | ||
it, so casual user's can't accidentally break the system, or get | it, so casual user's can't accidentally break the system, or get | ||
confused with unnecessary details. | confused with unnecessary details. | ||
- | http:// | + | |
+ | {{http:// | ||
HyperLook included a " | HyperLook included a " | ||
Line 128: | Line 151: | ||
script to create your own HyperLook applications, | script to create your own HyperLook applications, | ||
interactive presentations, | interactive presentations, | ||
- | http:// | + | |
- | http:// | + | {{http:// |
+ | |||
+ | {{http:// | ||
Like HyperCard, you could copy and paste components around (including | Like HyperCard, you could copy and paste components around (including | ||
per-object customizations like scripts, properties and graphics) to | per-object customizations like scripts, properties and graphics) to | ||
construct and edit your own interfaces. | construct and edit your own interfaces. | ||
+ | |||
Like HyperCard, you could open up a property sheet or script editor on | Like HyperCard, you could open up a property sheet or script editor on | ||
- | any object. | + | any object. |
Unlike HyperCard, the scripts were written in object oriented | Unlike HyperCard, the scripts were written in object oriented | ||
PostScript. (Arthur van Hoff also wrote PdB, an object oriented C to | PostScript. (Arthur van Hoff also wrote PdB, an object oriented C to | ||
PostScript compiler, and later went on to write the first Java compiler | PostScript compiler, and later went on to write the first Java compiler | ||
in Java at Sun!) | in Java at Sun!) | ||
+ | |||
Unlike HyperCard, the property sheets were implemented as HyperLook | Unlike HyperCard, the property sheets were implemented as HyperLook | ||
stacks themselves, which made it easy to develop new components or | stacks themselves, which made it easy to develop new components or | ||
Line 164: | Line 192: | ||
clock editor property sheet, and paste your original creations back into | clock editor property sheet, and paste your original creations back into | ||
the warehouse to use again: | the warehouse to use again: | ||
- | http:// | + | |
- | http:// | + | {{http:// |
+ | |||
+ | {{http:// | ||
Here's a cellular automata laboratory that uses the shared memory raster | Here's a cellular automata laboratory that uses the shared memory raster | ||
Line 174: | Line 204: | ||
screen backgrounds, | screen backgrounds, | ||
component clipped into a lava-lamp shaped window!): | component clipped into a lava-lamp shaped window!): | ||
- | http:// | + | |
+ | {{http:// | ||
The nice thing about having a standard PostScript based structured | The nice thing about having a standard PostScript based structured | ||
Line 187: | Line 218: | ||
automata, | automata, | ||
graphics between various HyperLook applications. | graphics between various HyperLook applications. | ||
+ | |||
http:// | http:// | ||
+ | |||
http:// | http:// | ||
Line 194: | Line 227: | ||
PostScript, but including Encapsulated PostScript or modern equivalents | PostScript, but including Encapsulated PostScript or modern equivalents | ||
like PDF, SVG, PNG, etc). | like PDF, SVG, PNG, etc). | ||
+ | |||
It's also essential to have a reusable structured graphics editor | It's also essential to have a reusable structured graphics editor | ||
component, and also that all of the property sheets and applications | component, and also that all of the property sheets and applications | ||
Line 207: | Line 241: | ||
tools for playing with the live cellular automata pixels through shared | tools for playing with the live cellular automata pixels through shared | ||
memory). | memory). | ||
+ | |||
Something like Photoshop or GIMP would be too complicated and | Something like Photoshop or GIMP would be too complicated and | ||
monolithic, unless it could be stripped down and re-packaged as an | monolithic, unless it could be stripped down and re-packaged as an | ||
light-weight, | light-weight, | ||
- | I've worked on and programmed in some interesting visual programming | + | > I've worked on and programmed in some interesting visual programming |
- | languages like Bounce (aka Body Electric, VPL's VR scripting language), | + | > languages like Bounce (aka Body Electric, VPL's VR scripting language), |
- | SimAntics (The Sims behavior scripting language) and PSIBER (visual | + | > SimAntics (The Sims behavior scripting language) and PSIBER (visual |
- | PostScript and NeWS debugger), and played around with others like | + | > PostScript and NeWS debugger), and played around with others like |
- | Max/ | + | > Max/ |
- | which was at once point actually implemented in ProGraph!). | + | > which was at once point actually implemented in ProGraph!). |
Visual programming languages are great fun, and can be extremely | Visual programming languages are great fun, and can be extremely | ||
Line 222: | Line 257: | ||
have more differences than similarities, | have more differences than similarities, | ||
looking at the world. | looking at the world. | ||
+ | |||
There is no one best way to design the ultimate visual programming | There is no one best way to design the ultimate visual programming | ||
language, but there are many good ideas to be tried (and bad ideas to be | language, but there are many good ideas to be tried (and bad ideas to be | ||
Line 256: | Line 292: | ||
compile the visual graph notations into (or interpret the visual | compile the visual graph notations into (or interpret the visual | ||
languages directly in Python, if practical). | languages directly in Python, if practical). | ||
- | So kids could easily create a high-level graphical scripts like The | + | |
- | Learning Company' | + | > So kids could easily create a high-level graphical scripts like The |
- | developers could meticulously create low-level behind-the-scenes scripts | + | > Learning Company' |
- | in visual languages like "Body Electric" | + | > developers could meticulously create low-level behind-the-scenes scripts |
- | like Python (or a hybrid of the visual and text languages -- check out | + | > in visual languages like "Body Electric" |
- | how PSIBER implements a new visual interface to the existing PostScript | + | > like Python (or a hybrid of the visual and text languages -- check out |
- | language, and how Cycling 74's Max/Jitter integrates JavaScript with the | + | > how PSIBER implements a new visual interface to the existing PostScript |
- | visual programming language: JS code inside icons, JS objects on wires!): | + | > language, and how Cycling 74's Max/Jitter integrates JavaScript with the |
- | http:// | + | >visual programming language: JS code inside icons, JS objects on wires!): |
- | http:// | + | > http:// |
- | http:// | + | > http:// |
+ | > http:// | ||
Just imagine a visually scriptable version of SimCity, that lets you | Just imagine a visually scriptable version of SimCity, that lets you | ||
Line 353: | Line 390: | ||
Flash 9 (AVM2)! | Flash 9 (AVM2)! | ||
- | http:// | + | * http:// |
- | http:// | + | |
- | http:// | + | |
It turns out that AVM2 does not totally suck. (There are no benchmarks | It turns out that AVM2 does not totally suck. (There are no benchmarks | ||
Line 399: | Line 436: | ||
NeWS Toolkit at Sun, and various NeWS tools and applications for other | NeWS Toolkit at Sun, and various NeWS tools and applications for other | ||
companies. | companies. | ||
+ | |||
http:// | http:// | ||
I developed lots of other fun stuff with NeWS, including various | I developed lots of other fun stuff with NeWS, including various | ||
implementations of pie menus and tab windows: | implementations of pie menus and tab windows: | ||
+ | |||
http:// | http:// | ||
http:// | http:// | ||
Line 410: | Line 449: | ||
entirely in NeWS PostScript, which I helped develop at Sun, and | entirely in NeWS PostScript, which I helped develop at Sun, and | ||
integrated with HyperLook, and used to develop pie menus and tab windows. | integrated with HyperLook, and used to develop pie menus and tab windows. | ||
+ | |||
http:// | http:// | ||
Pizza Tool was a graphical Open Look gui for editing and ordering pizzas | Pizza Tool was a graphical Open Look gui for editing and ordering pizzas | ||
via FAX, that I wrote as a programming demo for The NeWS Toolkit: | via FAX, that I wrote as a programming demo for The NeWS Toolkit: | ||
+ | |||
http:// | http:// | ||
The HyperTIES hypermedia browser, with pie menus and " | The HyperTIES hypermedia browser, with pie menus and " | ||
in PostScript (for Ben Shneiderman at the UMCP HCIL): | in PostScript (for Ben Shneiderman at the UMCP HCIL): | ||
+ | |||
http:// | http:// | ||
Line 423: | Line 465: | ||
Emacs), with pie menus and multiple tab windows, and an authoring tool | Emacs), with pie menus and multiple tab windows, and an authoring tool | ||
for HyperTIES: | for HyperTIES: | ||
+ | |||
http:// | http:// | ||
Line 429: | Line 472: | ||
I worked on HyperLook with Arthur van Hoff at the Turing Institute, and | I worked on HyperLook with Arthur van Hoff at the Turing Institute, and | ||
used it for various applications. | used it for various applications. | ||
+ | |||
http:// | http:// | ||
Line 434: | Line 478: | ||
I ported SimCity to HyperLook and X11, and designed a multi player | I ported SimCity to HyperLook and X11, and designed a multi player | ||
scriptable user interface using TCL/Tk. | scriptable user interface using TCL/Tk. | ||
+ | |||
http:// | http:// | ||
Line 439: | Line 484: | ||
NeWS. | NeWS. | ||
I developed it at the UMCP HCIL and Grasshopper Group. | I developed it at the UMCP HCIL and Grasshopper Group. | ||
+ | |||
http:// | http:// | ||
Line 450: | Line 496: | ||
extension system, and multimedia support, with David Levitt at Levity | extension system, and multimedia support, with David Levitt at Levity | ||
and Interval Research Corporation. | and Interval Research Corporation. | ||
+ | |||
http:// | http:// | ||
Line 458: | Line 505: | ||
developed its user interface (Edith) and primitives (character | developed its user interface (Edith) and primitives (character | ||
animation, etc), with Will Wright at Maxis: | animation, etc), with Will Wright at Maxis: | ||
+ | |||
http:// | http:// | ||
Line 467: | Line 515: | ||
is free speech, and why all election software should be open source and | is free speech, and why all election software should be open source and | ||
publicly inspectable. | publicly inspectable. | ||
+ | |||
http:// | http:// | ||
Line 480: | Line 529: | ||
+ | ---- | ||
+ | [[category animation]] | ||