Making usable and efficient software is all about factoring. #
I was talking with Ken Smith this morning, an English professor, not a technologist. He wanted to know what's factoring all about. What makes Frontier better than other programming environments. It's factoring. Same thing was true of blogging. Factoring. You keep reducing, eliminating steps, until it becomes clear how to eliminate the thing you've been trying to simplify. You simplify it so much it goes away.#
Before blogging people used CMSes to manage web stuff. They were derived from print publishing software. You'd arrange something on the screen of a computer, until it was perfect, then hand it over to a printer who would put it on paper. That's how CMSes worked too. You'd edit in one place and deploy in another. The aha moment that made blogging real, the Holy Grail I was searching for was the realization that if there was just one place, you could dramatically simplify the editing process, so much that you wouldn't need a techie around to manage it. It worked. The aha was recorded in a blog post, of course. If you put an Edit button on the published page, you didn't need another place to do your editing. All that was hidden beind the user interface. #
In the same way, before Frontier (and after, unfortunately) if you needed to store data from a program, you'd write it to a file. When your software was restarted, it would read it from that file. The innovation of Frontier is that it managed all that for you, in the language runtime -- so you never need to write anything anywhere. As with the blogging example, instead of two addresses, a piece of data only had one. I often wonder why no one else has stumbled across this incredible time- and complexity-saver. Bake storage into the runtime. My thought/guess is that language designers don't build apps so they don't know that this would be desirable. If they did, it would be built into other languages.#
I wonder, why I, as opposed to other developers am always striving to simplify, looking for a way to eliminate steps, and whole concepts. I think perhaps it's because I spent years in college studying mathematics, where that is the whole purpose. Looking for the unifying theory of everything. All science is like that, I wonder why this seems to have escaped software development. Every year we (as a profession) work to make things more complex. I think it's because most developers work for big companies who are rewarded by making things more complicated, not by pure programmers (like pure math) who focus on making software disappear. #
Last update: Sunday September 18, 2022; 6:05 PM EDT.
You know those obnoxious sites that pop up dialogs when they think you're about to leave, asking you to subscribe to their email newsletter? Well that won't do for Scripting News readers who are a discerning lot, very loyal, but that wouldn't last long if I did rude stuff like that. So here I am at the bottom of the page quietly encouraging you to sign up for the nightly email. It's got everything from the previous day on Scripting, plus the contents of the linkblog and who knows what else we'll get in there. People really love it. I wish I had done it sooner. And every email has an unsub link so if you want to get out, you can, easily -- no questions asked, and no follow-ups. Go ahead and do it, you won't be sorry! :-)