fzeindl
Joined 4 years ago
Joined 4 years ago
I argue that it is exactly opposite. Blocking threads are a much more natural way of thinking about concurrency.
Quote from the erlang creator Joe Armstrong's thesis. He argues that the only way to understand multi-threaded programs is writing strictly sequential code for every thread and not muddling all the code for all the threads in one place:
"The structure of the program should exactly follow the structure of the problem. Each real world concurrent activity should be mapped onto exactly one concurrent process in our programming language. If there is a 1:1 mapping of the problem onto the program we say that the program is isomorphic to the problem. It is extremely important that the mapping is exactly 1:1. The reason for this is that it minimizes the conceptual gap between the problem and the solution. If this mapping is not 1:1 the program will quickly degenerate, and become difficult to understand. This degeneration is often observed when non-CO languages ["non concurrency-oriented", looking at you JavaScript!] are used to solve concurrent problems. Often the only way to get the program to work is to force several independent activities to be controlled by the same language thread or process. This leads to a inevitable loss of clarity, and makes the programs subject to complex and irreproducible interference errors." [0]
Yesterday I used Google AI-Search (so Gemini Flash 3.5?) for opinions on a traffic accident and it continously constructed law-interpretations and then referenced the wrong paragraphs. It talked about rules on road-crossings and cited paragraphs pertaining to alcohol intoxication as sources.
But not damage to a single neurons. You are talking about damage to thousands of neurons.
Code assumed an array of strings, instead got an array of bytes and picked the first one.
You can’t reliably do more than 5 hours of heavy concentration work per day.
I don’t agree with this at all. There still tons of buggy software around, and we ship multi-gigabyte electron installs that make fanspeeds go high and are way less efficient than software written 20 years ago.
Also the largest problem of AI written code is that is so hard to maintain, so no, coding is not the easy part.
I think it is the other way round. Building requirements from many sources of data and view points is the easy part. Implementing great, maintainable systems out of them needs specialists.
I wonder what “a lot of pain” could mean here in a world where Crowdstrike is allowed to render half of the world unbootable without repercussions.
Not that I think you are wrong, I am sometimes just confused why we hold back on fixing security because of imaginary deployment- and business-related pains, when it is so obviously unproblematic to crash half the world for a day?
Senior Software Architect @ Austrian railways ÖBB
Blog: https://www.fabianzeindl.com/