Most languages are much older than we think. But early adoption is a key to geting to that point of when to "trust it". D isn't that much younger than C and its variants, and older than C#. But it never quite got that adoption to really push development to the point of C#
About all that happened with ANSI C was that prototypes were created (the major addition), type promotion rules were altered, plus 'const' and 'volatile' were added. ANSI also added 'void *'.
I've a vague recall about 'void' existing in unix C compilers before that, having read a version of the above memo in a unix manual ('papers' section) and it mentioning 'void'.
Disrespect is part of progress, respectful humans are liable to blindness of flaws. Just as part of youthful creativity is disregard for what has come before.
It's a double-edged sword: ancestor-worship blocks progress, but throwing the baby out with the bathwater also blocks progress. Real fundamental progress comes from the tiny minority that avoids both.
If all disrespecting is to belittle and look down upon, then fair enough, I agree with you. What I meant, in perhaps an ill-phrased manner, was that overemphasised respect can often lead to stasis, where people might not want to change in case they are seen as disrespectful. Hence my use of disrespect, in that it is a relative judgement, and which can and has been used to discourage creative difference or just difference in general.
I'm pretty sure they're being intentionally programmed to fake alignment in at least the respect of gaslighting the user into thinking the AI agrees/aligns with them. I.e. intentionally programmed hypocritical agreeableness -- it will say one agreeable thing to one user and another agreeable thing to another user wherein each user has opposite viewpoints.
You are correct, it's more properly thought of as a specification. However it's a bit more than a misnomer, it's a kind of religion or cult with roots going back decades.
There will be a comeback of literate programming. Tools were not advanced enough for it to be really practical. CS was not mature enough as a field for LP to flourish.
it makes it possible for me to cope with projects which require multiple files or which exceed a certain threshold of lines/complexity.
>With LP, I can quickly look through a PDF, using hyper-linked ToC or index, and control/command click at a point and then have the editor open at that point.
I was not referring to TeX and PDF files. Donald Knuth is the creator of Literate Programming and Tex, but I personally consider this toolchain to belong to the stone age right now.
I was referring to:
1) Org mode and Emacs. LP was introduced as a concept in 1984, and org-mode was created 2007 or close to that. 20+ years later till we finally got a good formatting option for text + code. One can export to PDF or HTML, but i see no reason why not read the code directly in org-mode. It is better actually.
2) A good programming language with types. That's Rust and it was created in 2015.
3) LLM's to automatically generate descriptions of code. Type annotations are one of the most important hints for LLM's to generate accurate descriptions. Untyped or weakly typed code, like, Emacs Lisp, Python etc, does not help LLM's to be as good as possible.
4) A good LLM which is accurate enough, plus cheap enough and fast. That's Llama3-8b on Groq, in which they provide very fast access to Llama3.
I am currently researching how i can take a Rust project 100000 lines, and transform it to a Literate Programming org document. I have created a small program to cut Rust source code to chunks in an intelligent way [1]. Now i am trying to figure out, how to provide structure to the LLM, by extracting type signatures with rustdoc and feed it as context to the LLM with each query.
It will take some months before i have something good, but based on my calculations, an 100000 line program will be transformed to a giant org literate programming document, in an hour, costing close to, 50 cents.
Point being that LP will make a comeback, it's gonna be quick and it's gonna be cheap.
The project is stalled, because at some point after i developed it, the project langchain-rust appeared and gained traction. My project is not very advanced compared to langchain, i used regexes while langchain uses tree-sitter.
Langchain-rust for the moment supports only 6 languages, and not even one lisp, like Elisp, but it's tree-sitter integration means it can be extended easily to many many other languages. Also it doesn't support Groq for the moment just OpenAi, Claude and Ollama.
We are getting to Literate Programming being very practical, we are not there just yet, but it's coming soon.
I am researching also how to anticipate in changes in the code, by retrieving git logs, and invalidate some description of the code, which may have fallen behind. There are several wrinkles that need some work.
My needs/usages are far more prosaic, and I am barely a programmer, so the basic .dtx and package which makes documented .tex amenable to use with other languages and a couple of decent plain text editors is working for me.
I'd love for there to be broader support --- I considered quarto and it seemed quite promising, and I wish that LyX had a mode specifically for this, and for a while I was so desperate I was actually considering using GitBook's file inclusion feature, having all the code in discrete little files, and maintaining a series of batch files to concatenate them into working versions.
Alternately, I've been curious if there is some sort of intersection between Literate Programming and Visual Programming ---
That's a million dollar question. Can code be represented in a visual way? Bret Victor tries to give an answer to that. I don't personally think that it can, but there is sure a way, to represent some parts of a program in a visual way.
People use literate programming today in Emacs, in case you are interested. I strongly recommend to try Emacs, LLM's can write Elisp for you, to automate parts of your workflow.
Unfortunately, while I like emacs-style keyboard bindings in Mac OS X, I prefer to use a stylus and often write things out by hand and use handwriting recognition to convert to text (hence my interest in visual programming languages) --- very much envied a co-worker (who was one of two folks I've met aside from TeX conferences who had read TAoCP) who just started it up at the beginning of the day and got all his work done in it during the course of the day.
I find it interesting that many different philosophical traditions all seem to discover an ascetic ideal in one way or another. Maybe "ideal" is not the right word. I think if you really examine your own life and existence one would have to admit that they would be much better off if they could learn to be happy with an sparse lifestyle. But as you point out, this is not a very popular proposition either.
People who are shadowbanned don't want to hear it, but they almost always are banned for being jerks, trolls, and/or propagandists. It's not because they said "the truth" and nobody wanted to hear it; it's because nobody wanted to hear them because of the way they're acting.
But of course they all think that they're martyrs for speaking the truth.
Some people get shadowbanned because they are right but too obnoxious, some people because they are too obnoxious and not even right. The second group tends to think they are in the first group.
Oh, we poor cognoscendi, forever living in the world of resentful ignoramuses?
Perhaps taking the example of Plato, a starting-point for wisdom is to try to define your terms, in part through recalling what others have said.
Take e.g., the citation "In Chinese thought wisdom is perceived as expertise in the art of living, the ability to grasp what is happening, and to adjust to the imminent future (Simandan, 2018)."
Aristotle and Plato would call this phronesis, practical wisdom, where the root phrein refers to the gut -- where, not co-incidentally, Zeus put/ate his wife and gained by her wisdom (and modern-day scientists eagerly study the GI nervous system's role in anxiety). Aristotle rooted that in understanding politics (vagarities in how people react), economics/incentive systems, and of course the physical world in terms of knowledge-required, but in light of the recent well-educated democratic leaders who became tyrants, he posed it mainly as a question of character, not knowledge. (Remember Aristotle left his home to become the tutor of Alexander the Great.)
Some related terms from that time and place...
Nous: pure thought, thought considering itself, typically as validation for principles and coherence of chains of reasoning. Quite similar to Descartes' notion of the irreducibility of the sense of one's own mental activity, combined with the pureness of its continuity (that must of course be grounded in God).
Dianoia: two-thought, logical and a dialectical thought depending on reasoning chains from point to point. (cf Paranoia, i.e., concurrency dianoia, and Parmenides: "Mortals wander two-headed")
Aisthesis: perception, awareness.
Pistis: belief
Doxa: opinion
Episteme: understanding (standing around, or around the pillar), scientific reasoning, from facts with an account from principles. nb Theaetetus' initial stab at defining Episteme: "as far as I can see at present, episteme is nothing other than aisthesis" - i.e., all knowledge is rooted in perception or all knowledge is a kind of perception, depending on whether you're empiricist.
Most interesting is the term Sophrosyne, which is untranslatable. Sometimes wisdom, sometimes charity, later chastity. It's the basis for the Delphic maxim, "Know thyself". The ability to stand your post, to know what you know and what you don't know. Exemplified by Socrates in the calmness of his retreat at the loss of Potidea, where he saved others by not losing his head (by contrast to the virtue of courage, the ability to move forward notwithstanding danger and fear). If you want to investigate why we don't privilege wisdom, you could start by seeing why Sophrosyne cannot be translated.
Worth mentioning is Parmenides' (much earlier) idea that the philosopher is the person who knows his way through every town. In an era when the Mediterranean world was transformed by openness to trade and other societies, as grounded in the religious obligation to welcome strangers, and when Greeks defined themselves in part through the legend of Odysseus wandering before he returned home after war (another Sophrosyne story), it's somewhat appropriate to our own era.
Theaetetus (who produced a mathematical proof of irrational numbers) gave his definition after feeling completely lost. Socrates replied by saying all philosophy begins in wonder. So, is having a question, or starving for wisdom, is a kind of hunger, "resolved" with knowledge, so all we have to do is define our terms?
After Socrates took the hemlock and lay dying, Plato describes his death rather graphically, as his feet getting firm, then his legs, his body, etc until he was fully fixed. The language used is exactly that used for "defining" terms, suggesting that the process of definition itself is a kind of death. It certainly kills wonder :)