Is there a similarly short/simple solution not using all of the built ins? Haven't worked with prolog in a while but should be easy enough with primitives (albeit with more duplication)?
He hates on C++ pretty much the same as he does on Rust. Your argument seems to be that Rust is better than C++, which is akin to trying to make the case that Cholera is better than Smallpox.
Language wars are boring and pointless, they all have areas of suckage. The right approach is to pick whichever one is the least worst for the job at hand.
The other reason jump changes are not a revolution and have remained just a curiosity is physics, something that's ignored by the article.
For non-ringers, in change ringing the bells rotate 360 degrees each time they strike, from mouth up to mouth up. The clapper hits the bell when the it has rotated roughly 270 degrees from mouth up and is more or less horizontal, approximately 2 seconds after it starts moving. The bells are usually in the 100kg to 1000kg range (for US folks, that's 220lb to 2200lb), although they can be up to 4000kg. The only point when the ringer can exert control on the bell via the rope is when it is near the balance and mouth upwards, and speeding it up or slowing it down any more than one "beat" is physically very difficult on heavier bells, particularly if you are doing it for a full peal, which usually takes 3+ hours.
That link (like the Wikipedia article) is talking about the mechanism by which the bell is rung, not what is rung out on them i.e. they are not ringing the changes.
It's got compositions on the page, a link to a PDF with compositions in it and a link to the Veronese ringing association which has many more examples - if you can read Italian.
93% of the rings of 6 bells or more which are rung for English style change ringing are in England. Source: https://dove.cccbr.org.uk/
Change ringing is a branch of Group Theory and is mentioned in Knuth. The Steinhaus–Johnson–Trotter algorithm for efficiently generating permutations was published in the early 1960s, but has been known about by change ringers since the 1600s. Source: https://en.wikipedia.org/wiki/Steinhaus%E2%80%93Johnson%E2%8...
I'm licensed by The Engineering Council in the UK for doing computery stuff, and by the relevant European body. I've been writing software for a living for most of my 40+ year career, and still do. So Chartered Software Engineers do exist.
My favourite example of the underlying probabilistic nature of LLMs is related to a niche hobby of mine, English Change Ringing. Every time someone asks an LLM a question that requires more than a basic definition of what Change Ringing is, the result is hilarious. Not only do the answers suffer from factual hallucinations, they aren't even internally logically consistent. It's literally just probabilistic word soup, and glaringly obviously so.
Although there isn't a vast corpus on Method Ringing, there is a fair amount; the "rules" are online (https://framework.cccbr.org.uk/version2/index.html), Change ringing is based on pure maths (Group Theory) and has been linked with CS from when CS first started - it's mentioned in Knuth, and the Steinhaus–Johnson–Trotter algorithm for generating permutations wasn't invented by them in the 1960's, it was known to Change Ringers in the 1650's. Think of it of Towers of Hanoi with knobs on :-) So it would seem a good fit for automated reasoning, indeed such things already exist - https://ropley.com/?page_id=25777.
If I asked a non-ringing human to explain to me how to ring Cambridge Major, they'd say "Sorry, I don't know" and an LLM with insufficient training data would probably say the same. The problem is when LLMs know just enough to be dangerous, but they don't know what they don't know. The more abstruse a topic is, the worse LLMs are going to do at it, and it's precisely those areas where people are most likely to turn to them for answers. They'll get one that's grammatically correct and sounds authoritative - but they almost certainly won't know if it's nonsense.
Adding a "reliability" score to LLM output seems eminently feasible, but due to the hype and commercial pressures around the current generation of LLMs, that's never going to happen as the pressure is on to produce plausible sounding output, even if it's bullshit.
Because learning a new language with a different world model gets you to think about problems on a different way. A library for a language you already know will not do that to anything like the same degree.
I suggest you actually try the exercise before making assertions like that. Mind you, there's the old saying, "Real programmers can write FORTRAN in any language"...
I hadn't come across that, In general I'm not a great fan of programming videos (life is too short) but the website content looks interesting - thanks!
Enjoy. I could see not liking programming videos, but they are very informative and sometimes veer into the philosophical or even political, but always in a level-headed way. Markus semi-regularly posts on HN about Scryer and I always enjoy reading what he comments.
https://www.swi-prolog.org/pldoc/man?section=clpfd-sudoku