
Gallery of programming UIs - panic
https://docs.google.com/presentation/d/1MD-CgzODFWzdpnYXr8bEgysfDmb8PDV6iCAjH5JIvaI
======
rdsubhas
Expected to see TUI (Terminal UI) IDEs here (the likes of
DBase/Foxbase/Foxpro/etc). Disappointed, because they were hugely used
"programmer interfaces" for a long time and influenced GUIs when they came up.

Heck, a lot of retail TUIs still run on them (and some of them are in process
of being changed to "web apps" bypassing desktop apps). They were yesterday's
full stack (design a database, build forms, run CLI commands, write OO code,
package and distribute - all in one shell).

I think the post should be titled "programming _GUIs_ " and not "programming
UIs".

~~~
vog
*> TUI (Terminal UI) IDEs here (the likes of DBase/Foxbase/Foxpro/etc).

Don't forget the classic DOS IDEs, such as QBasic or Turbo Pascal / Turbo C.
The latter were based on a very nice framework named "Turbo Vision".

~~~
woodrowbarlow
my first programming class (high school, 2008) used Borland Turbo Pascal. it
was honestly a very pleasant user experience.

------
samspenc
Currently, Google Drive is telling me: "Wow, this file is really popular! It
might be unavailable until the crowd clears. Try again." (Page title: "Too
Many Requests")

I didn't even know Google Drive had a throttling mode.

~~~
Animats
_I didn 't even know Google Drive had a throttling mode._

Right. That seems like something from the era of 1990s hosting services with
very limited capacity.

~~~
SEMW
To be fair, Google Docs' core offering is live collaborative editing, not
'being a CDN'. Sure, there are ways they can support each at different times
if they really wanted to, but it seems perfectly reasonable for them to say
that when it gets to an N that they'd have to put significant engineering
effort into supporting, that that's not what it was designed for, and that if
someone wants CDN behaviour do that they can always export the document and
put it on an actual CDN

~~~
jordache
wow so a platform with a robust sharing capability is not designed for certain
'types' of sharing. So the user has to be aware the internal implementation of
each google cloud service and use them accordingly. I say this scenario is
acceptable for a startup offering. Not so for one of the most concentrated
comp sci engineering org.

Additionally, this is Google Slides. So sharing is inherent in the name of the
product

------
jonathanedwards
As requested, here is a PDF: [https://drive.google.com/file/d/1RPX_9u01MEU-
QDWU4h-90QF9XqZ...](https://drive.google.com/file/d/1RPX_9u01MEU-
QDWU4h-90QF9XqZo7PvH/view?usp=sharing)

~~~
molszanski
Thank you!

------
Moru
I'm missing a lot of the ones I used. Though most of them weren't that
different from normal texteditors in a terminal. Well, they were actually
editors in a terminal...

Cobol on an IBM AS/400

RPG also on an IBM AS/400
[https://en.wikipedia.org/wiki/IBM_RPG](https://en.wikipedia.org/wiki/IBM_RPG)

Devpac Assembler
[https://en.wikipedia.org/wiki/HiSoft_Systems](https://en.wikipedia.org/wiki/HiSoft_Systems)

STOS Basic
[https://en.wikipedia.org/wiki/STOS_BASIC](https://en.wikipedia.org/wiki/STOS_BASIC)

PLC
[https://en.wikipedia.org/wiki/Programmable_logic_controller](https://en.wikipedia.org/wiki/Programmable_logic_controller)

~~~
richardjdare
The Amiga version of STOS, AMOS, was nice and quite popular. Wasn't as fast as
Blitz Basic II though.

There were some interesting "multimedia authoring systems" on the Amiga which
might warrant inclusion, such as Amiga Vision
([https://www.youtube.com/watch?v=u7KIZQzYSls](https://www.youtube.com/watch?v=u7KIZQzYSls))
and Scala
([https://www.youtube.com/watch?v=k20Wvlqb96g](https://www.youtube.com/watch?v=k20Wvlqb96g))

~~~
vidarh
The modern "descendants" of the latter could be said to be Hollywood, which is
alo available on non-Amiga platforms:

[http://www.hollywood-mal.com/screenshots.html](http://www.hollywood-
mal.com/screenshots.html)

------
bunderbunder
Accuracy nitpick:

For the record, in 1997 it was still DrScheme - it wasn't renamed to Racket
until 13 years later. And it didn't run on OS X, because OS X was still 4
years away. Also, IIRC, most the really interesting UI that features in that
screenshot didn't exist yet - it was just the file editor on top and the REPL
on bottom.

------
TwoBit
It's missing the highly influential Delphi, which was the precursor to .NET

~~~
cubano
It sure is, as well as it's powerful brother, Borland/Inprise C++ Builder, two
IDEs that definitely deserve a spot on this list.

------
jkleiser
Impressive! However, no mention of Oberon or BlackBox; that's a serious
omission.
[http://fruttenboel.verhoeven272.nl/Oberon/index.html](http://fruttenboel.verhoeven272.nl/Oberon/index.html),
[https://github.com/pdewacht/oberon-risc-
emu](https://github.com/pdewacht/oberon-risc-emu),
[http://blackboxframework.org/index.php?cID=home,en-
us](http://blackboxframework.org/index.php?cID=home,en-us)

------
lpa22
It is mind-blowing when you have some sort of idea of how complex an endeavor
it is to create programming IDEs and UIs, and to see in one document how many
man-hours must have gone into them and their iterations over the years.

~~~
baxtr
This is also something that I find very impressive. Everywhere you look, the
same thought comes up. All these buildings in the city have been built by
someone sometime with so much effort. Then again, I think: maybe not so
surprising after all if you consider that 100bn humans have ever lived. That’s
a lot of man-hours available there

------
matte_black
No Klik & Play?! It was the reason I can say I was building and distributing
my own games back in 5th grade!

No Lego Mindstorms!? I was building Robots with six degrees of freedom in
middle school!

~~~
taneq
I had Klik & Play back on Windows 3.1! (And then later The Games Factory on
'95.) It was great for a little while but I rapidly got to the point where it
felt like it was getting in my way rather than making things easier.

I /wish/ I'd had Lego Mindstorms, always wanted some but we could never afford
it.

~~~
ecubed
TGF was definitely what got me started in programming as a kid. Super
intuitive to learn and use before I was 'ready' to use a text-based language.

------
panic
This has been posted before
([https://news.ycombinator.com/item?id=14290909](https://news.ycombinator.com/item?id=14290909))
but I think the list has been updated since then.

------
jeffreyrogers
It's interesting how you see the same idea pop up in different forms over the
years.

Two they missed: Lazarus (based on Delphi) and Qt. I've dabbled with Lazarus,
people who use it a lot tell me it's great. I use Qt professionally and it's
the most enjoyable way of building GUI applications that I've found.

~~~
vram22
Yes, Lazarus is decent. Others they missed from the client-server GUI tools
are PowerBuilder and Gupta Technologies' SQLWindows (one of the first GUI
development tools for Microsoft Windows):

[https://en.wikipedia.org/wiki/Gupta_Technologies](https://en.wikipedia.org/wiki/Gupta_Technologies)

I didn't like PowerBuilder myself. But Delphi and Visual Basic were more easy
to understand and still powerful. Did some work in both.

------
candiodari
Working link to (I hope) the same document:
[https://docs.google.com/presentation/d/1MD-
CgzODFWzdpnYXr8bE...](https://docs.google.com/presentation/d/1MD-
CgzODFWzdpnYXr8bEgysfDmb8PDV6iCAjH5JIvaI/preview#slide=id.g1da0625f1b_0_56)

~~~
jonathanedwards
Correct, that's the slideshow version. Let me know if that isn't working and
I'll post a PDF snapshot

~~~
twelvechairs
Please post the PDF so its downloadable

~~~
jonathanedwards
[https://drive.google.com/file/d/1RPX_9u01MEU-
QDWU4h-90QF9XqZ...](https://drive.google.com/file/d/1RPX_9u01MEU-
QDWU4h-90QF9XqZo7PvH/view?usp=sharing)

~~~
twelvechairs
Thanks very much. Web version (incl. download links) struggles for me in
primitive Australia

By the way another worth adding IMO (as it has serious industry use and
traction) is Grasshopper (a plugin for Rhino) - focussed on 3d modelling. Very
common in Architecture and design fields

------
Groxx
I still want code bubbles[1] in pretty much everything. So nice for exploring
code - you don't necessarily care about _whole file X_ , just the chain of
code paths you're currently navigating.

[1]: [https://docs.google.com/presentation/d/1MD-
CgzODFWzdpnYXr8bE...](https://docs.google.com/presentation/d/1MD-
CgzODFWzdpnYXr8bEgysfDmb8PDV6iCAjH5JIvaI/preview?slide=id.g1d7c11dd1b_0_630)

------
robertkrahn01
Lively!

LivelyKernel (2008): [https://www.lively-kernel.org/](https://www.lively-
kernel.org/)

lively.next (2017): [https://lively-next.org](https://lively-next.org)

cloxp (2015): [http://cloxp.github.io/cloxp-
intro.html](http://cloxp.github.io/cloxp-intro.html)

~~~
jonathanedwards
Hi Robert! I thought (perhaps incorrectly) that Lively was largely the same
programming experience as Squeak, just in the browser. Do you have any
screenshots showing new programming experiences in lively.next or cloxp?

~~~
robertkrahn01
Personally, I think the interaction model is closer to Self than to Smalltalk.
A walk-through of building a morphic app is here: [https://lively-
next.org/doc/todo-list-tutorial.html](https://lively-next.org/doc/todo-list-
tutorial.html)

Lively also got some influence from Emacs in terms of integrating tooling and
support for remote development. One example, connecting to another webpage and
modifying it via lively:
[https://www.youtube.com/watch?v=gbp30e_QYvY](https://www.youtube.com/watch?v=gbp30e_QYvY).
Apart from JavaScript, it is easy to integrate other languages as well, e.g.
you can connect to a running Python process via
[https://github.com/LivelyKernel/lively.py](https://github.com/LivelyKernel/lively.py))
and then use workspaces and file editors inside of Lively to modify and run
Python code. This stuff is based on a generic RPC mechanism that connects
Lively worlds and other runtimes: [https://lively-
web.org/users/robertkrahn/2015-06-12_l2l-map....](https://lively-
web.org/users/robertkrahn/2015-06-12_l2l-map.html).

cloxp is following more a traditional Smalltalk-model, the core component is a
system browser for Clojure namespaces.

------
kybernetikos
At one stage on the eve journey they were showing a sort of wiki/database
thing that I wanted to use very much. It seemed like it'd be fantastic for
iteratively organising the kind of information you encounter in your day to
day life. Unfortunately that version of eve never saw the light of day as far
as I know. Does anyone know of anything that works similarly?

~~~
dfcowell
It's here if you want to poke at it: [https://github.com/witheve/eve-
experiments/tree/af13f8d5f8a5...](https://github.com/witheve/eve-
experiments/tree/af13f8d5f8a537d22c459f3e69e39b2736b16384/experimental/cardwiki)

~~~
kybernetikos
Amazing, thanks.

------
djaychela
Am I the only one who looks at the DEC VT05 from 1970 and thinks that it still
looks cool? I guess it's because I was 5 or so when Space 1999 was on, and
everything looked like that, but I think there's something timeless and
classic about the lines of the design.

(Waits for someone from HN to say that one is still their main terminal as
they eschew software terminals, etc!)

~~~
criddell
A lot of these look cool to me. I wonder how many of the environments could be
brought up in a VM?

------
bullen
They forgot:
[http://move.rupy.se/file/logic.png](http://move.rupy.se/file/logic.png)
(2005)

You can download the program here:
[http://rupy.se/logic.jar](http://rupy.se/logic.jar)

------
westoncb
I made one in 2013 that broke documents into tiles along grammatical
boundaries that could be dragged around like app icons on smart phone home
screens:
[https://youtu.be/tztmgCcZaM4?t=1m25s](https://youtu.be/tztmgCcZaM4?t=1m25s)

------
tabtab
I miss WYSIWYG UI design IDE's. One can waste sooo much time fiddling with
browser UI's to get it to work right on different browser
brands/versions/sizes. It's a time sink that must cost the world billions.
Can't we have a WYSIWYG browser standard instead of client-side-auto-flow
crap?

Most internal work-related projects don't need "responsive" (resizing) anyhow;
and the server could re-calc widget sizes & spacing if needed for small
screens such that you don't need a fat client to manage flow engines. And they
waste screen real-estate: WYSIWYG was more compact. I could point to the
screen and tell it EXACTLY where to drag somebody off my lawn ;-)

~~~
swebs
How would that work? The developer would have to generate and approve a
rendering for every permutation of width, height, and pixel density?

That may have worked back when everyone was using an 800x600 CRT, but it
sounds unfeasible today with so many devices and orientations to consider.

~~~
tabtab
You have to do such testing now with JS/DOM-based resizing. The only real
difference is that it's done on the server side, which simplifies things
because you have only 1 rendering engine instead of say 50 client versions.
And, often 2 sizes are usually fine, and 3 if you have a big audience. And it
can increase the general resolution (magnification) to fill the current
screen. JavaScript resizers, such as bootstrap often do similar now: you reach
a threshold before they reshuffle, and in between the thresholds, they just
multiply width by a constant factor to fill the screen. And bootstrap is buggy
and inconsistent.

------
nathanaldensr
Thanks for posting this! This is the kind of content I love to see on HN.

Wow, Visual Basic... It takes me back to my AOL proggie days!

~~~
amanzi
If you're feeling nostalgic - just create some VBA, amazing how it's hardly
changed... This picture taken from Word 2016 a few seconds ago:
[https://i.imgur.com/w3qX8Oa.png](https://i.imgur.com/w3qX8Oa.png)

~~~
qwerty456127
Indeed VBA is a very curious phenomenon. It is cool from the retro-lover point
of view (and nostalgia makes me enjoy having to code it occasionally in the
real life) yet a horrible atavism from the modern developer point of view. The
built-in code editor is not much smarter than Notepad is and the language
itself is a ridiculous cargo-cult-level OOP imitation with no real OOP nor
functional (wouldn't these be of great use in Excel?) concepts, just a
slightly face-lifted QBasic capable of defining simple algorithms and
interfacing native code. I can hardly understand why it still hasn't been
phased-out and replaced with Python or something like that.

~~~
tonyedgecombe
Yet despite all that VB6 and VBA are very productive, inexperienced users can
get things done and experienced users can get things done quickly.

~~~
qwerty456127
Why? It (VB6) was the first language I've learnt and I have had a lot of fun
coding it as a kid (so I can think in it and have no bias against it) yet I
don't understand how can it be considered productive or any good at all
compared to Python or even JavaScript. One can probably say that Python and
JavaScript are more complex and harder to learn - I would disagree: everything
you can code in VBA can be coded in Python or JavaScript in the same manner,
with the same simplicity and ease, conscious usage of concepts that can be
considered advanced and/or tricky for non-programmers to undetsatnd is
optional. What part other than the fact it doesn't ever change or that it
reminds them about their childhood actually makes people like VBA?

~~~
duncanawoods
It was the one tool there that I got a warm "man, I could crank some code with
that". All the others were cognitively heavy and I could just feel the mental
effort. It has a laser like focus on getting a usable app into a user's hands
with minimum fuss - wysiwyg and zero pretension.

Drop a button, double click, cursor will be at correct location in generated
hook, write your code code, ship it. The experience in Python/js just can't
compete to that.

I sure have complained about VB and for certain types of code it would be a
nightmare but I've also shipped it. It gets something right that the
mathematisation of programming misses time and again and is in denial that it
matters.

------
exikyut
PSA:

The last time I opened this presentation there were a bunch of speaker notes
with incredibly insightful additional details and trivia attached. A picture
might be a thousand words, but the notes added insightful context that the
picture couldn't add itself.

If anyone can get in touch with the owner of this document, please let them
know the speaker notes have been lost. They really need to be re-added!

Unfortunately I didn't download a copy of the old version D':

~~~
jonathanedwards
I think I moved the speaker notes into the body of the slides, but the doc is
so swamped I can't get in to see! Perhaps I dropped some in the process. I'll
look into it. If you can remember anything in particular that is missing
please let me know.

~~~
exikyut
I was just able to check. I unfortunately don't remember what the speaker
notes said exactly, I fuzzily recall there being multiple lines.

I've searched a couple of HDDs for old copies; no go.

------
deskamess
A lot of grid style environments. Unless I somehow scrolled past it, the
missing big one is 'Excel'.

~~~
lou1306
First slide says "Not covered: spreadsheets".

Edit: however, a little more recognizion to spreadsheets would have been nice,
since some of the UIs are so evidently rooted in that metaphor

------
robobro
Mirror it as HTML / PDF please.

~~~
ivanhoe
You have the option to download it as a PDF when you click on the little gear
icon in the bottom left corner of the screen

------
speby
Not sure if this would count but I'd say some of the software that implemented
Shlaer-Mellor OOA and code generation tools of the late 80s/early 90s might be
included here too. Unfortunately can't find a great screenshot other than
these:

[https://www.edrawsoft.com/images/shapes/soft-
shlaermellor.pn...](https://www.edrawsoft.com/images/shapes/soft-
shlaermellor.png) [https://www.edrawsoft.com/solutions/shapes/shlaer-mellor-
ooa...](https://www.edrawsoft.com/solutions/shapes/shlaer-mellor-ooa.png)

------
JepZ
While we saw there some Smalltalk development UIs, I was clearly missing some
'modern' Visualworks screenshot with the classic 4 slot upper part and the
large code window below (similar to the System Browser on slide 3):

[https://1.bp.blogspot.com/-XO7l9e-ukCI/UKSshW0IKRI/AAAAAAAAF...](https://1.bp.blogspot.com/-XO7l9e-ukCI/UKSshW0IKRI/AAAAAAAAFDo/mMADJxPs6Bc/s1600/VW_ClassBrowser.png)

------
epicide
Am I missing something or would this be a lot easier to read if it were
organized somewhat chronologically?

I say somewhat since era of main use is more important than initial year of
release.

~~~
lowlevel
It would be... but then the author would have to try and sort this mess.

------
amatwl
A bit of a plug, but for my senior project, my team is working bringing
Patchworks (slide 80) to Atom. It's currently not open source (but will be
after completion of the project). We are working with an author of the
original paper.
[http://austinhenley.com/pubs/Henley2014VLHCC_Patchworks.pdf](http://austinhenley.com/pubs/Henley2014VLHCC_Patchworks.pdf)

------
bjz_
I came across the Alfa proof language recently (precursor to Epigram and
Agda). Had this neat natural deduction editor:
[http://www.cse.chalmers.se/~hallgren/Alfa/Tutorial/ndstyle.h...](http://www.cse.chalmers.se/~hallgren/Alfa/Tutorial/ndstyle.html)

------
lowlevel
I guess if you're just trying to show interfaces and not every language this
is ok... but if you're trying to show every languages interface there are
tonnes missing. Here are a few I used. HP Basic (~1974-1980ish) Autolisp
(~1986-1995) Turing (~1989-2000)

------
cachvico
I've never seen so many examples and variations of Jackson Structured
Programming!

[https://en.wikipedia.org/wiki/Jackson_structured_programming](https://en.wikipedia.org/wiki/Jackson_structured_programming)

------
Fice
Interesting how some UIs appear to be limited either to education, end-user
programming, or professional software development, and others (e.g. Smalltalk)
strive to be universal and work as an integral part of the OS's user
interface.

------
SomeHacker44
Nice set of pictures.

I was surprised not to see two things about Common Lisp: Symbolics's Genera UI
for software engineering, and the modern Paredit editor methodology for Lisps.

~~~
mikelevins
Yeah it would have been nice to see Genera. It was interesting and
distinctive.

It does show SK8, which, although it's not obvious from looking at it, was a
Lisp environment.

It was implemented in Common Lisp--specifically Macintosh Common Lisp, which
is the direct ancestor of Clozure Common Lisp--on the pre-OSX Mac system.
That's sort of obvious if you look at the menubar in Slide 7.

The ScriptEditor shows a snippet of SK8Script, which was the first working
implementation of AppleScript. SK8 compiled SK8Script to Common Lisp, and
thence to native code. The runtime underneath was Macintosh Common Lisp, and
you could open a Lisp listener window or editor window if you wanted, and work
directly in Lisp.

The funny-looking window design has a practical purpose: it doesn't look like
any other widely-used window design, which means that when you used SK8 to
create a Mac application, the SK8 tools always looked distinct from all of the
application windows that were under development.

The funny-looking windows are notable in another way: their non-rectangular
outlines required a custom code resource (a WDEF), which you could write in
Lisp with MCL.

As with all of the other environments illustrated in these slides, there are
lots of details that are not obvious from the image. This sample screen shows
someone in the middle of constructing a working giant scrollbar by snapping
together boxes and arrows and editing scripts attached to them.

SK8 was very direct-manipulation-oriented. You could do a lot of stuff by
dragging objects onto the screen, snapping them together, and opening
inspectors to edit visual properties, event-handlers, and attached behaviors.
You could grab an arbitrary screen object and drop it into a message box to
get an expression that, when evaluated, yielded a reference to the dropped
object.

It did a lot with containment--for example, you could put objects on the
screen by adding them to a container called the Stage, and there was a
containment hierarchy that routed events to handlers. The model was extremely
flexible; for example, you can see in the Script Editor that the programmer
wants an event to set the fillcolor of rj1 to green, but Dave Yost (one of the
SK8 authors) used to like to demonstrate setting the fillcolor to a Clint
Eastwood movie, which would then begin playing in the background of the
targeted object.

~~~
DuncanMak
Hey Mikel, are the Sk8 sources/binaries anywhere? Is it possible to run Sk8
nowadays if one has access to hardware running classic MacOS?

~~~
mikelevins
There seems to be a copy of one of the technology releases here:

[https://www.macintoshrepository.org/2625-apple-
sk8](https://www.macintoshrepository.org/2625-apple-sk8)

I haven't downloaded it and looked at it.

One of the slides at that URL has Dave Yost's Clint Eastwood fillColor
displayed in it. :-)

I think you can run it as long as you have a PPC machine. Perhaps one of the
Mac OS emulators that emulates the PPC could do it, too, if you had the ROM
files.

In case you're not familiar with ROM files, the old Mac OS, before OSX, was
not really an operating system in the usual sense; it was really a large
subroutine library, the bulk of which was burned into ROMs in Apple hardware.
Emulators for the old Mac OS need to have working copies of the contents of
those ROMs in order to run the Mac OS. ROM files are a little bit inconvenient
to come by unless you have an old working Mac and a tool for copying the ROMs.

Way back in 2004 I proposed an open-source project to build a new SK8-like
environment, and even got buy-in from some of the original developers and
users of SK8. Then I got terribly sick and didn't work on anything at all for
a couple of years. When I finally began to work again, it was with a lot less
energy and ambition than I'd had before.

~~~
eschaton
Apple made the source for SK8 available, and someone has posted it on GitHub:

[https://github.com/waywardmonkeys/apple_sk8](https://github.com/waywardmonkeys/apple_sk8)

~~~
mikelevins
Nice; thanks!

If you want to build it you'll need a working copy of MCL and a PPC mac. The
requirements may be slightly narrower than that. SK8 had some low-level bits
that might rely on some details of the Mac System version or hardware. I don't
rememberenough of the details anymore, but you might need to try a few
different PPC models and system versions. System 7 or 8 is probably a decent
bet, as is any mac hardware that was shipped with it.

------
lowlevel
I didn't see any shell programming either...

------
jordache
wow Google can't even deal with a butt out cordial HN hug? Really reflects
well for their cloud offerings... sheesh

------
cztomsik
They should include sublime text, writing at many places at the same time
sounds weird yet it is so useful.

~~~
sguav
If I'm correct TextMate was first using multiple cursors before sublime text
came, but yes, sublime text has such a versatile UI!

------
sn41
Wow.. Google Drive got swamped!

------
fit2rule
No Delphi? No Visix Vibe?

------
keithnz
no visual studio?

borland turbo range?

~~~
crb002
VS was in there. +1 for Borland, I loved their C++ debugger.

------
major505
I missed Visual Studio and C/Java Builder.

------
Immortalin
Shameless plug: [https://medium.com/@kloudtrader/private-beta-and-
kloudtrader...](https://medium.com/@kloudtrader/private-beta-and-kloudtrader-
aural-c4a8561f70d0)

Trying to build a better programming environment and platform for algorithmic
trading

[http://KloudTrader.com](http://KloudTrader.com)

