|
This strikes a nerve. I had the good fortune to be able to work with xBase languages (predominantly CA-Clipper) when I began programming. I made software for retail outlets: pos, inventory, accounts, all the jazz. The most memorable thing to me was the Phone Directory we shipped with it. It did one thing right: `set filter to cSearch $ upper( rtrim( ltrim( name + phone ) ) )`. This is a case-insensitive regex match over both name and phone. Customers used it all the time, and they held that db close to their hearts. It was 50 lines of code written in an afternoon and just worked ever after. Creating a phone directory with that affordance is a lot of work today. However user interfaces are different today. 80s DOS text mode only had a keyboard input, a 16-color palette, 80 columns over 25 rows, and just text, text, text. Modern web UI is event-driven, has millions of colors, works across screen sizes, and is networked by default. Though with this essential complexity, there is so much accidental complexity. It shouldn't be this hard to build software. The essence of a double-entry bookkeeping software 30 years ago is the same as one we build today. A new framework is probably not the answer. New languages (or old giants) and formal systems might be. Ballerina, Unison, Dark, Ur/Web, Elm, Reason and so on. |
"Ordinary" people could use those tools to make useful things. We seem to have gone backwards from there.
What was different about those systems?
They were integrated usage environments. Batteries included. In FoxPro, you got:
This was first and foremost a usable environment immediately. "Development" was an advanced usage.Emacs is this way. Smalltalk is this way. What they get is that programming languages are useless by themselves.
Contrast with now: the apps we build involve wiring together a database from here, a compiler from there, just figuring out how you're going to make pieces communicate and finally, you know, get something on the screen. Sure, there's an upside to composing systems a la carte. But the learning curve is far more prohibitive.
(Also, those xBASE systems just will not die. Just this morning I got an email question about a system that's been in service for 25 years now. How many of today's apps do you think will still be used (indeed, sold!) in 2043?)