Just come to mind that there is yet another thing AI impossible without, that was nearly erased from comuter science.
It is self-modifying code. In 60s, programming language LISP was developed. (notice, again before that pivot date - 1970!) One of very cool features of that language was not functional approach, but a possibility of running program code creation and modification. This feature named "lambda expression" and it really created new machine code, never written by programmer and then execute it on-the-fly. You could wrote expression like "create a new function with given operation", and then program could create (as new, additional machine code) different functions if necessary. It was not fully self-modifying code, you had to describe creation process, and it was you, not program who decide whether to create new code, but still it was a very important step towards real self-modifying code.
However, after 1970, this approach, when program modify itself as it executes, was declared bad, wrong and harmful without any solid reason. The idea that it is bad practice to write a programs that modify its own code was spreaded along with same bad practice blaming of calculated goto's and other handy things and programmers tricks. Today, even LISP machines don't have that feature, and that "lambda" thing is implemented without using real new code generation.
"Bad practice" blaming worked perfectly. Self-modifying code become something inapropriate and today there are no any noticeable research on that topic at all.
Artifical intelligence is completely impossible without an ability of AI program to modify itself adjusting to environment and development of consciousness. But everything that could lead to creating of that very important ability for AI was supressed since 1970.
PS: And no, ability of all that dumb ANNs like ChatGPT/Bard/whatever to show you most probable piece of code written by humans for your request have absolutely nothing to do with self-modifying code concept.
Yes. So even if some author will have an idea to write a program that will enhance its own functionality, say, taking in account most routine user actions, then he will face the problem with antiviruses that will detect such program as virus. Unfortunately, most users still use MS Windows where antivirus is a regular thing. So, he will be forced to abandon his idea and turn to "good practice" if he want to make his program available to most potential users.
Once, self-modifying code was normal practice, then it become "bad practice", and now you have special software that will not allow such software to run.
PS: Meanwhile, linux kernel have some drops of self-modifying code for some architectures. Many already replaced with "tolerable" workarounds, but there still some. But linux never had any need for antiviruses in the first place, and linux developers didn't give a fuck to the mainstream narratives, at least in the past. Unfortunately, as new blood incoming, indoctrinated with all this political shit, things slowly changing even on linux. And not to the better.
Some things could be done properly only with self-editing approach. No database could add functionality that does not exist. Say, you have an image editor and user often rise red by 5%, brightness by 10% and contrast by 20%, then self-modifying approach could make it happen in one pass, creating new function for pixel processing, instead of doing the same sequentially as user do. If image is huge, this will save tons of user time. Or you will have to implement one-pass processing functions for all possible combinations of basic adjustments beforehand which is nearly impossible for any, more or less complex, program.
Especially calculated goto. :)
linux/arch/x86/kernel/alternative.c apply_alternatives() f.e.
Not really smart, and I think privacy-conscious circles are not about collecting some stats by software, they about sharing this stats with third-party.
GIMP allow not only macros/plugins, but also you could just add code you need. My example was just to demonstrate possible usefulness of self-modifying code approach.
Many programming tricks and methods was perfectly normal in not so distant past. :) I still remember times when clever and unusual programming tricks was a courage and indication of high skill. That thing with "bad practice"/"good practice" appeared not long ago, and now programming turned to boring approved patterns copypasting. I think it looks very unnatural.
PS: meanwhile, I noticed that somebody for whatever reasons downvoted your replies, if you care about score, I could upvote your replies to negate that.