<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000">
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>David,</DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'> </DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>Five 
years before I saw Smalltalk, I built a windowed IDE in C for a FORTH-like 
language (called DE before I’d heard the term IDE) of my own design, which 
rendered on a 25x80 monochrome text screen. Exactly six resizable and 
maximizable/restorable, non-overlapping windows; no icons; no menus; no mouse. 
Each window could display any of: selectable list of global functions; editable 
function source with settable breakpoints; function symbolic object code; 
contents of RAM (heap); contents of call stack; contents of value stack; 
contents of local variable; source trace; object trace; application I/O console. 
Where a value referenced something else symbolically, the symbol was shown; eg 
READ_LINE+0014H, RAM+1210H. The IDE ran entirely in RAM on a 128K IBM PC clone. 
The output was a symbolic object-code file. An STSC APL*PLUS program then 
compiled this to binary – eventually taking 5 hours.</DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'> </DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>It 
took me 9 months to use this language and IDE to implement I-APL, a complete, 
standard-conforming APL interpreter which compiled to 26K of object code which 
ran under a VM. The VM was then implemented on a number of platforms (by other 
members of the I-APL project), including CP-M, Apple II, IBM PC, BBC Micro, 
etc.</DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'> </DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>It 
took me one month (1st-30th September 1987) to design the language and implement 
the IDE. On schedule!</DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'> </DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>My 
take-away?</DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'> </DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>Overlapping 
windows are overrated, and maybe even counterproductive to dev (see most IDEs of 
the past 20+ years: they use minimizable-in-place windows and docking). I do 
love my mouse now, but tabbing through the windows was easy in my IDE. My 
Smalltalk/V dev setup was always 3 non-overlapping windows: Transcript, 
Workbench (my idea: ListBox+TextEdit where I could define & run small pieces 
of code), and one CHB for the app. A second, overlapping, CHB, usually 
minimized, was used for browsing non-app classes. Of course walkback windows and 
inspectors overlapped (but when I get around to writing a Smalltalk dev 
environment, they won’t.)</DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'> </DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>Menus 
*might* be a design choice left over from when graphics displays had much lower 
resolutions, to save on real estate. (Look at the welcome proliferation of 
toolbars.) </DIV>
<DIV style="TEXT-DECORATION: ; FONT-FAMILY: ; COLOR: ; DISPLAY: inline">In those 
days, IBM keyboards had 10 function keys arranged in 2 columns on the left. I 
stole WordStar’s 2-function-key commands (one from the left column, one from the 
right) allowing 25 commands at my fingertips without having to hit CTRL or ALT. 
These were my ‘menu shortcuts’ and all I needed.</DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'> </DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>And 
I still find icons annoying: they’re not scalable, ie eventually they all look 
like a multicoloured splodge. Same with emojis. Okay, maybe my eyesight isn’t as 
good as it used to be.</DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'> </DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>As 
you can probably tell, I’m still resting on this particular laurel.</DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'> </DIV></DIV>
<DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>Cheers, 
Paul</DIV></DIV></DIV></DIV></BODY></HTML>