(φ (μ (λ)))
Live stream started
So, due to my terrible internet connection being unstable, the stream got disrupted after 30 mins.
We plan to make up for this by having another stream the coming week, hopefully with better internet stability.
Here's the recording up until internet broke down:
https://tv.dyne.org/w/iUseRzSqJQZjUGiV7Y9AdG
We plan to make up for this by having another stream the coming week, hopefully with better internet stability.
Here's the recording up until internet broke down:
https://tv.dyne.org/w/iUseRzSqJQZjUGiV7Y9AdG
Dyne.org TV
[11] Emacs Reader's Development: Working on Partial & Tiled Rendering (Part II) - 9/7/2025, 2:32:23 PM
This is the 11th in a series of Emacs package development streams focusing on the Emacs Reader package: https://codeberg.org/divyaranjan/emacs-reader/ In this stream specifically, I'll be sharing w...
landin1964.pdf
1.2 MB
P.J. Landin, The Mechanical Evaluation of Expressions (1964)
In order to provide relief from the tedious and argumentative task of designing a subset, the working group allocated one afternoon to discussing the features that should be incorporated in the next design of the language. Each member was invited to suggest the improvement he considered most important. On October 11, 1963, my suggestion was to pass on a request of our customers to relax the ALGOL 60 rule of compulsory declaration of variable names and adopt some reasonable default convention such as that of FORTRAN. I was astonished by the polite but firm rejection of this seemingly innocent suggestion.
It was pointed out that the redundancy of ALGOL 60 was the best protection against programming and coding errors, which could be extremely expensive to detect in a running program and even more expensive not to. The story of the Mariner space rocket to Venus, lost because of the lack of compulsory declarations in FORTRAN, was not to be published until later.
I was eventually persuaded of the need to design programming notations so as to maximize the number of errors which cannot be made, or if made, can be reliably detected at compile time. Perhaps this would make the text of programs longer. Never mind! Wouldn’t you be delighted if your Fairy Godmother offered to wave her wand over your program to remove all its errors and only made the condition that you should write out and key in your whole program three times! The way to eliminate errors is to use procedures, not to avoid declarations.
C. Anthony R. Hoare, The Emperor's Old Clothes (1980)
It was pointed out that the redundancy of ALGOL 60 was the best protection against programming and coding errors, which could be extremely expensive to detect in a running program and even more expensive not to. The story of the Mariner space rocket to Venus, lost because of the lack of compulsory declarations in FORTRAN, was not to be published until later.
I was eventually persuaded of the need to design programming notations so as to maximize the number of errors which cannot be made, or if made, can be reliably detected at compile time. Perhaps this would make the text of programs longer. Never mind! Wouldn’t you be delighted if your Fairy Godmother offered to wave her wand over your program to remove all its errors and only made the condition that you should write out and key in your whole program three times! The way to eliminate errors is to use procedures, not to avoid declarations.
C. Anthony R. Hoare, The Emperor's Old Clothes (1980)
Objectives of general purpose software.
C. Anthony R. Hoare, "The Quality of Software", Guest Editorial for Software—Practice and Experience, Vol. 2 (1972)
C. Anthony R. Hoare, "The Quality of Software", Guest Editorial for Software—Practice and Experience, Vol. 2 (1972)
Unfortunately, in the past decade, software writers’ main pride has been to implement an arbitrary specification handed down to them from “above” (e.g., ALGOL 68, PL/1), and not to pay much concern to the quality of either the specification or the product. They tend to argue from the fact that you can do anything by software to the conclusion that you can do everything by software. And you can, too; but is it worth it? Only very few software designs (a notable example being PASCAL) have actually been made to optimize the quality of the product in the light of known software techniques.
So my advice to the designers and implementors of software of the future is in a nutshell: do not decide exactly what you are going to do until you know how to do it; and do not decide how to do it until you have evaluated your plan against all the desired criteria of quality. And if you cannot do that, simplify your design until you can.
C. Anthony R. Hoare, "The Quality of Software", Guest Editorial for Software—Practice and Experience, Vol. 2 (1972)
So my advice to the designers and implementors of software of the future is in a nutshell: do not decide exactly what you are going to do until you know how to do it; and do not decide how to do it until you have evaluated your plan against all the desired criteria of quality. And if you cannot do that, simplify your design until you can.
C. Anthony R. Hoare, "The Quality of Software", Guest Editorial for Software—Practice and Experience, Vol. 2 (1972)
(φ (μ (λ)))
Hoare's critique of Ada C. Anthony R. Hoare, The Emperor's Old Clothes (1980)
By Ferny:
Disclaimer: I am heavily involved in the Ada community.
Ada is basically fully formally verifiable nowadays. Even exceptions, which were supposed to be so complex they just couldnt be present in a safe language, can now be handled graciously. And there _are_ subsets of the language, but not in the traditional sense. For high integrity, real-time and safe systems, there are what we know as "runtime profiles", aka, Ravenscar and Jorvik. When you say "this Ada file/project uses this profile" (can be at the file level or compiler level), several features of the language get turned off, mainly exceptions and the tasking becomes heavily restricted and strict.
All criticism that Ada received in the past is mostly right and correctly earned, it had A LOT of flaws. HOWEVER, Ada has kept on evolving and solvig it problems while improving significantly and reaching heights that new languages wont ever dream of. Heck some languages are reimplementing features of Ada in just a worst way, they sre substantially more complex than modern Ada and they provide less safety by default. Therefore, any past forms of criticism are no longer valid, even if they keep being thrown around. I know a few people who hate Ada in their jobs, but they are being restricted to Ada 95 or similar, which, no wonder they hate it and would rather use a more moder language...
Heck there is a reason NVIDIA is using Ada for their GPU controllers. They recently disclosed they had shipped over one billion chips with their Ada-written controller. And of course, their OS for cars got SIL-4 qualified recently and it is 7'5 millions lines of code written in Ada/SPARK.
Disclaimer: I am heavily involved in the Ada community.
Ada is basically fully formally verifiable nowadays. Even exceptions, which were supposed to be so complex they just couldnt be present in a safe language, can now be handled graciously. And there _are_ subsets of the language, but not in the traditional sense. For high integrity, real-time and safe systems, there are what we know as "runtime profiles", aka, Ravenscar and Jorvik. When you say "this Ada file/project uses this profile" (can be at the file level or compiler level), several features of the language get turned off, mainly exceptions and the tasking becomes heavily restricted and strict.
All criticism that Ada received in the past is mostly right and correctly earned, it had A LOT of flaws. HOWEVER, Ada has kept on evolving and solvig it problems while improving significantly and reaching heights that new languages wont ever dream of. Heck some languages are reimplementing features of Ada in just a worst way, they sre substantially more complex than modern Ada and they provide less safety by default. Therefore, any past forms of criticism are no longer valid, even if they keep being thrown around. I know a few people who hate Ada in their jobs, but they are being restricted to Ada 95 or similar, which, no wonder they hate it and would rather use a more moder language...
Heck there is a reason NVIDIA is using Ada for their GPU controllers. They recently disclosed they had shipped over one billion chips with their Ada-written controller. And of course, their OS for cars got SIL-4 qualified recently and it is 7'5 millions lines of code written in Ada/SPARK.
(φ (μ (λ)))
Photo
Programming_from_First_Principles_Prentice_Hall_Richard_Bornat_Prentice.djvu
4 MB
Richard Bornat, Programming From First Principles (1987)