2,452 karma · joined July 10, 2017
Making AI pictures of Pee Wee Herman riding a shark blindfolded is indeed fun, but not profitable for Microsoft because it's too hardware intensive for ads to cover. I gotta make more goofy pics before the bottom falls out...
If one looks at most the bubbles of the past, the writing is on the wall. AI won't go away, but will probably take longer to make profitable than anticipated, just like dot-coms and smart-speakers. Force feeding it is causing indigestion, and it's likely to PukeGPT.
10 PRINT "This computer is overheated."
20 PRINT "WARNING: Computer about to EXPLODE!..."
30 GO TO 10
RUN
Newbies walking up saw the active screen, got wide-eyed and walked away quickly. One even called security, as I watched from a distance. Good times!What's missing these days is domain-specific languages (DSL). Maybe domain-specific API's (libraries) can be made better, but I have not seen it done well yet.
Domain specific languages made it easy and DIRECT to do things you wanted done in that domain, no weird-ass reverse dependency factory visitor injection design patterns or whatnot, you only had domain-oriented commands and the basics of functions, loops, and conditionals to glue them together.
Sure, they didn't scale well to "enterprise", but if that's not what you want, so be it! Global variables didn't kill kittens at that scale like "real" software engineers warn against. I barely had to read the manual when learning VB classic, Microsoft Access (pre XML), Paradox, etc. it was so intuitive and almost everything related to the domain (desktop GUI's and small-ish CRUD).
It was almost like pseudo-code! That's the secret, the closer it is to domain-specific-pseudo-code, the easier it is to learn and the less bloated the code.
Wanna make a successful tool for non-giant orgs or groups? Focus on the domain and only the domain; don't let fads and buzzwords and mega-scaling distract you.
I've drafted up a language called "Moth" that has a lot of "meta power" to program block scope any way you want, as most languages hard-wire scoping rules, which I find limiting. Things like "classes", "functions", while-loops etc. would be defined by libraries, NOT the language. It's like lambda's on steroids and without bloated arrow syntax. But it may run slow as molasses, as scoping meta power adds lots of compiler/interpreter indirection.
However, it may turn out that only a few scoping rules are practical in most cases, and the compiler could then optimize for those. It would then only be slow if you are doing something "weird" with scope. Stick to a fixed known set, and things zip along. But finding that set requires R&D and road testing.
I toldja the Flintstones were ahead of their time.
Code is a lousy place to store boat-loads of attributes. You can do data-oriented transformations and filters on them if in a data structure. Hierarchical file systems are limiting and messy, because grouping by one factor de-groups another. I want to be able to "query" dev code units via SQL or similar. CRUD patterns are pretty consistent across industries such that most CRUD idioms shouldn't need custom re-invention, and thus should be attribute-tized.
You will still need occasional code-based tweaking, and this can be accomplished by having the attributes generate "runtime draft" UI markup and/or SQL clauses, which can then be tweaked via code as needed.
I'm building a proof-of-concept that uses what I call "fractal rendering" to be able to intercept the "draft" construction of screens and SQL clauses at a fine level or course level, depending on need. This avoids the all-or-nothing problem of prior attempts per attribute-vs-code debate. Ya git both! (Dynamic SQL generation should probably be avoided for public-facing sites, per injection risk, but limits the wonderful power of query-by-example.)
I don't claim it will be as performant as the code-centric approaches, but if it catches on, performance tweakers will find a way to scale it. (For CRUD apps, the performance bottleneck should usually be the database, not app code anyhow, unless you doing something wrong or special.)
The CASE tools of the 1980's and 90's started going in this direction, but were too expensive & clunky, and then the OOP push ended the idea by favoring attributes-in-code, back to square one, sigh. (CASE tools don't have to be proprietary.)
It's ripe area for groundbreaking R&D. CRUD may not be sexy, but it runs the world.