We're definitely doing something wrong.
We're definitely doing something wrong.
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:
- built-in database
- built-in documentation
- built-in UI for editing data
- built-in UI for editing schema
- windowed environment (even in DOS)
- oh yeah and a scripting language
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?)
Though apparently, it doesn't have lexical closures: https://news.ycombinator.com/item?id=16981170
Because as you say, grammar and semantics (aka language) are not enough.
Hence why when I analyse how suitable a programming language is for a given project, I always consider the whole ecosystem, and not how easy it is do FP, immutability or whatever is cool this year.
It's crazy to me that even the tools that are trying to capture this space today have not managed to beat the usability of that.
E.g. tools like Airtable are great as long as you're trying to do something simple, but then you hit their limits, and suddenly the step up in complexity to do what you need is too large. Whereas with tools like dBase you could start with "just" a database with the default entry, and the steps up to gradually build up to a full application were small in comparison.
It pains me a lot of the time to see people basically try to reinvent tools we had in the 80's and do it poorly because they're just not aware of the lessons of those systems.
Innovation is typically more lucrative than invention. Creating whole new ideas and experiences drives the our body of knowledge further, but the rewards only start to accrue to society when those ideas are combined together with an advanced ecosystem that allows mass adoption.
I remember watching Russian TV from the US broadcast over the dial up in 1998, probably on realplayer. This was an amazing experience, magical even. I then and went back to my (CRT) TV because, well, an audio and video stream transmitted over 56k sucked.
It took another 8 years and billions of broadband infrastructure investment before YouTube launched.
I actually wonder more where are the amazing demos of today that aren’t yet economically feasible, but might get mass adoption in 40 years of infrastructure build out.
To come back to human-machine interaction, we think that the successor of the mouse (also for mixed reality for office) sees a much faster adoption rate than the mouse in the last 50 years. At least, we have bet a few years of our life on it with https://www.indiegogo.com/projects/coolest-mouse-ever We can tell you in a few years, whether our assumption was correct :-)
Quantum computing, cryptocurrency (Bitcoin with its 10tps vs Visa is analogous to Engelbart's GUI vs MacOS), lots of AI stuff that can kind of just barely be intelligent today, the Boston Dynamics robots, self driving cars, and last but definitely not least early DIY bio hacking / anarcho-transhumanist stuff and DIY medicine (search for Four Thieves Vinegar).
The things I listed are at varying levels of maturity and gravity but they are all things I expect to look back upon as "wow" moments that revealed new things that will be big in the future.
I'm sure others can think of more.
Can we get to a point where battery tech gets cheap enough that electric personal transport gets even cheaper than ICE cars? Does that bypass mass transit? We've seen futuristic visions of how that plays out, so not quite the reality yet.
At some point, nations at risk will start seriously exploring geo/climate engineering solutions. If adopted, what are the potential side effects and side products?
/s
The cost and ease of use however? Already in something she owned and a single button to answer the call.
https://www.programmingtalks.org/talk/the-future-of-programm...
What he shows is basically what exists now in phone tech (apps, good internet, GPS...), and it's the same only-screen device (today's are equal, only larger). And it's now owned by more than 2 billion people.
I know Jobs was seen (probably correctly) as a jerk. But this was such a huge achievement that I can't help admiring it.