9 ms·
By way of introduction – EWD 1041 (1989)
- 082349872349872 4y agoInformatics:Computer Science::chemistry:alchemy? Who is/was our Newton? Mendeleev?
- messe 4y agoDepending on what you’re going for with that comparison, I’d suggest Von Neumann.
- deleted 4y ago[deleted]
- 082349872349872 4y agoGood suggestion; I just finished Dyson's Turing's Cathedral*, and it certainly suggests that von Neumann was as, or more, into (what would become) systems than (what would become) theory. > "All stable processes we shall predict. All unstable processes we shall control." — JvN * in which I learned, among many other things, about https://en.wikipedia.org/wiki/Klára_Dán_von_Neumann https://en.wikipedia.org/wiki/Klára_Dán_von_Neumann 's hacking skill.
- amelius 4y agoI think with machine learning and especially the LLMs, we're getting pretty close to alchemy. There's this quote that any sufficiently advanced tech is indistinguishable from magic. They probably didn't realize this was also true for the creators of that tech.
- mmiliauskas 4y agoNot disagreeing, just wondering, why you think ML anad LLMs is getting us pretty close to alchemy?
- amelius 4y agoBecause we just try things and see what works.
- touringa 4y agoIlya used that term a lot, and continues to do so. https://www.newyorker.com/magazine/2019/10/14/can-a-machine-learn-to-write-for-the-new-yorker https://www.newyorker.com/magazine/2019/10/14/can-a-machine-... https://twitter.com/ilyasut/status/1486728489319362571?lang=en https://twitter.com/ilyasut/status/1486728489319362571?lang=...
- jungturk 4y agoMore interesting to me than the analogizing of computer science to alchemy is the power dynamic he highlights in the applied sciences - namely the tendency for the craft to acquire and distribute power outside of (and even contrary to) the interests of those doing the investing.
- User23 4y ago> I have taken extensive experiments with CS faculty members from all over the world, and the vast majority of them —I mean about 95 % of them— cannot program a Binary Search. Knuth’s the Art of Computer Programming volume 3 has some more on this. Off the top of my head he writes that it took something like a decade from the first published binary search to the first correct for all inputs version. This is a bar that you would expect a professor to be able to jump over, but it goes to show that sometimes a simple sounding algorithm can be exceedingly tricky to get right. In my experience some kind of Hoare triple derived methodology with invariants is the only reliable way to code a correct binary search from scratch, as opposed to simply having memorized a solution. Here[1] is what at a glance appears to be a readable and correct example of how one might do that. [1] https://zhu45.org/posts/2018/Jan/12/how-to-write-binary-search-correctly/ https://zhu45.org/posts/2018/Jan/12/how-to-write-binary-sear...
- ly3xqhl8g9 4y agoFor Dijkstra programming meant to think about a problem, then sit for a few minutes at your desk and write with pen on paper "in one go" the perfect algorithm/program, no bugs, no errors, no corrections, from the first try, and also, in beautiful handwriting. Some kind of idealized way in which Mozart would allegedly write his compositions. Whereas "Beethoven was a doubter and a struggler who started writing before he finished the composition and then glued corrections on the paper. In one place he did this nine times. When they peeled them, the last version proved identical to the first one. This iterative method of programming is somehow a very Anglo-Saxon custom. British education is pervaded by it. People learn, when they write, not to try to get it right the first time. Just write what's on your mind and then rewrite repeatedly to get the product you want. That's partly why word processors are marketed so aggressively and partly why they have been so successful there." [1] [1] Edsger Dijkstra interview, https://youtu.be/mLEOZO1GwVc?t=282 https://youtu.be/mLEOZO1GwVc?t=282
- microtherion 4y ago> For Dijkstra programming meant to think about a problem, then sit for a few minutes at your desk and write with pen on paper "in one go" the perfect algorithm/program, no bugs, no errors, no corrections, from the first try, and also, in beautiful handwriting. An approach that works best if you get to pick your own, narrowly defined problems, and do not deal with externally imposed, let alone changing, requirements. It utterly does not scale. I'm not entirely sure when the last time was that Dijkstra actually typed a line of code into a computer (or punched it into a card, as the case may have been), but it appears to have been around the early 1970s. So, like the Pope's pronunciations on sex, Dijkstra's pronunciations on programming derive a lot of their clearcut purity by coming from a non-practitioner.
- Yahivin 4y ago> In short: computers were tolerated because they promised a well protected and prosperous paradise for the lazy, the incompetent, and the cowardly. - EWD A beautiful and scathing critique.
- floe 4y ago> For instance, the well-documented decline of productivity of the American white-collar worker has convincingly been linked to over-automation of the American office, but the “negative” outcome of this study has been totally ignored, in fact so much that many people involved in computing cannot believe it. Does anyone know what study he was referring to?
- rightbyte 4y agoI would also be very interested. One of my pet theories is that IT is a net loss for most businesses and that they would be better off with one designated computer for Excel batch jobs. Instead they should use cabinets, folders and paper mail. Not joking and zero sarcasm.
- LeanderK 4y agoI think with this comment perhaps it comes to a transfiguration of the past. In germany, especially in its government, but also in smaller, very conservative companies with old bosses there are still some hold outs working purely paper based. The amount of work it takes to keep a paper based environment organised seems insane. The amount of work it takes to share information in a paper based is crazy. Maybe not so much if it's just a small business, but anything bigger you need to run your own postal service with people sending letters all the time to each other complemented with dedicated personnel for "bulk deliveries" (like bellboys they carry heaps of folders from room to room) and dedicated personnel to organise the archive and the retrieval. There's an insane latency when you're not in the same building and even when this is the case deliveries can still take a day or two. I only got a peek into the inner working of courts here when they were still very, very paper based (it change the last 5,10 years) and it felt like you were at some post logistics centre. People running around with luggage containers filled with files. I have never seen this in a smaller setting, I imagine it's easier because you can just speak to each other.
- rightbyte 4y agoI mean, obviously I don't actually know if my "theory" is valid or not. I did not work at that time. My feeling is just that there is no order anymore. When I visited my dad (DoD bureaucrat) or mum (dentist) as a child there were so much order with secretaries and file cabinet rooms. The cost of sending letters or filing documents worked as a filter I guess. No data format was ever invalid. Just put the paper in the folder. There was no "computer says no" for the clerks. Also, there was a limit in how convuluted processes you can practically have without computer programs. The main thing was probably that you had to have secretaries keeping order. They are gone now. I have never experienced that order where I have worked (I am 34). But I see it in remaints of the late 90s early 00s documentation and old file cabinets for prior projects. Nowadays everything just disappear in some network folder black hole and employee attrition.
- EGreg 4y agoI always thought about Dijklmnopqrsta when I see his name.
- photochemsyn 4y agoQuestion: > "For reasons I don’t quite understand —partly, probably lack of instrumentation— the science of chemistry was very slow to emerge..." Answer? > "..the alchemists, who, in their effort to make gold from cheap base materials, at least attack a problem of the highest social relevance, viz. enable the government to finance its wars without inflicting poverty on the people." Supposedly the Roman Emperor Diocletian persecuted the alchemists of that era because he feared they'd be able to make gold and raise armies to attack the Roman Empire (and/or debase the Russian currency). This likely set back the state of chemical knowledge, possibly for centuries. P.S. Nuclear transmutation of elements is now quite common; unfortunately nobody has figured out how to get just the desired isotopic species of an single element from nuclear reaction instead of a pile of unstable isotopes of mixed elemental identity.
- hutzlibu 4y ago"Nuclear transmutation of elements is now quite common; unfortunately nobody has figured out how to get just the desired isotopic species of an single element from nuclear reaction instead of a pile of unstable isotopes of mixed elemental identity." I think centrifugation would get the job done, but it is just not worth the effort at those small quantities.
- adrian_b 4y agoA mass spectrometer can separate perfectly any isotopes from any mixture or chemical substance (by deflecting the ions in electromagnetic fields), but the rate at which this is done is too small for producing usable quantities in a reasonable time and with an acceptable energy consumption.
- isoprophlex 4y ago> Science is hated because its mastery requires too much hard work, and, by the same token, its practitioners, the scientists, are hated because of their power they derive from it. > Mathematical elegance, conceptual simplicity, and their companion, brevity of an unambiguous reference manual, are a condition sine qua non for any [software] product reliable enough to attain stability. > Needless to say, this sober message is unacceptable. Simplicity requires hard work to be obtained and education for its appreciation, and complexity sells much better. This is some hard-hitting stuff. Very interesting, thanks!
- jonahx 4y ago> Simplicity requires hard work to be obtained and education for its appreciation, and complexity sells much better. See, e.g., the ascendancy of Kubernetes.
- johannes1234321 4y agoIn the end it is the difference between science and applied engineering. For a product it in the end has to work in the real world, considering available time, resources and requirements (which often tolerate some failure rate) Strict science is important for progress, engineering can bring it to application.
- reidacdc 4y agoThere is a school of thought in the community where I work that the alchemists get a pretty bad rap. Probably the clearest statement of this is in one of the chapters of Cyril Stanley Smith's "A Search for Structure", particularly Chapter 5, "Matter and Materials". The thing that the alchemists were on to was that the same ingredients can have different properties if you process them differently. There was a lot they got wrong -- they were wrong about gold being a "property" of base matter that could be elicited by suitable processing, and they had no coherent model, and the field was rich with what we now understand to be superfluous mysticism. But, the argument goes, a clear-headed understanding of the situation would rank alchemy as a valid and legitimate precursor of modern materials science, alongside phlogiston and caloric theory. Wrong, to be sure, but far from stupid. Dijkstra's critique is evidently, by his own analogy, along the lines of the critique of alchemy for being wrong, and assuming that in its wrongness, it therefore has no value at all. But, taking the analogy more seriously, one can be more charitable. Modern programming is indeed alchemical in character, it captures important insights about what is possible at scale, and produces products that are useful. It lacks a model, there is no theoretical bridge yet between the foundations of logic and Dijkstra's Very Large Scale Applied Logic. It is instead a grab-bag of tools, and doubtless the domain of some superfluous mysticism. A model is desirable, and putting programming practice on a sound logical footing is a fine idea. But we also should not let our prejudice for reductive solutions blind us to the utility of what has been achieved by the people forging ahead in their absence.
- grumpyprole 4y ago> A model is desirable, and putting programming practice on a sound logical footing is a fine idea. Many functional programming languages are based on formal logic. For example, Haskell is based on an augmented System-F.
- SkyMarshal 4y agoIndeed, most functional languages, along with relational and graph databases, already meet the objective of having sound logical footing.
- hungrygs 4y agoDijkstra had a lot of influence for some years on the UTCS undergraduate program, whose first undergraduate course for much of the 1990s was taught in Haskell and was a brutal weed out, at ~70% attrition for the first year courses. However, by 2001, the failure rate was so high that the department moved to Java, much to Dijkstra's chagrin: https://chrisdone.com/posts/dijkstra-haskell-java/ https://chrisdone.com/posts/dijkstra-haskell-java/ The UTCS undergrad program has been "nerfed" twice since the 1990s - in 2001 and in in 2014. Various political interests during the first tech bubble - to produce more graduates - and later, to have more under-represented minorities, have dramatically reduced what Dijkstra pushed for.
- mgfist 4y agoA 70% attrition rate is awful. How many of those kids could become fine engineers if they had more runway to fail and learn without being weeded out? All this tells me is that if CS concepts don't click for you instantly you were out - even though this is a terrible heuristic for who would make a good engineer (or good computer scientist, whatever the goal is).
- hutzlibu 4y agoHm, it depends how "attrition" is defined. I read it the way it is done in german universities, meaning 70% and above indeed fail the weeding courses (usually math) at the first try, but you had 3 tries and still could attain the next semester, without passing. But for quite some, it was indeed eye opening and they left for something else. It is a bit brutal, but effective and it gets the message across. If you don't want to struggle to learn the basics, you are wrong in computer science. That doesn't mean, you cannot become a programmer, there is another formal path of doing so, but attaining a university does mean playing at another level. (or well, if should mean that, I got to learn too many who just learned to play the bullshitbingo)
- lmm 4y ago> How many of those kids could become fine engineers if they had more runway to fail and learn without being weeded out? This question is worth taking seriously. I've seen a study of a slower course that found that, nevertheless, there was no difference in the number of students who could understand basic variable assignments between the start and at the end; either they "got it" straight away or not at all.
- lp4vn 4y ago"Chemistry is accepted as a science: we hate it for its pollution and our dependency on its products, but we no longer blame it for not trying to make gold. Medicine has been accepted as a science: we hate it for the overpopulation and the soaring medical bill but no longer blame it for not producing the Elixir that gives eternal youth. Astronomy has been accepted as a science; we hate it for removing the earth from the center of the universe but no longer blame it for not realizing the astrologer’s dream of accurate prediction of the future. They are accepted as sciences; at the same time, the flourishing business in Healing Gems and Crystals, the horoscopes in otherwise respectable magazines, and governments relying on astrologers are a healthy reminder that Science as such remains rejected and that the old dreams linger on. Finally, one general remark about how sciences emerge: sciences become respectable by confining themselves to the feasible and successful by allowing themselves to be opportunity-driven rather than mission-oriented. (This, by the way, is why managers hate successful science: because it is not mission-oriented, they cannot manage it.)" Dijkstra was not always right and incontestably he had a taste for polemic, but damn the old man was wise.
- imranq 4y agoSeems like we're at the alchemy stage again with all these blackbox AI models appearing everywhere. Reminds me of this xkcd: https://xkcd.com/1838/ https://xkcd.com/1838/ Nit: likely Muslims did not burn down the library of Alexandria, it was burned many times before by Romans and other conquerors Source: https://www.quora.com/Did-the-Muslims-destroy-the-library-of-Alexandria https://www.quora.com/Did-the-Muslims-destroy-the-library-of... https://www.arabnews.com/node/225932 https://www.arabnews.com/node/225932
- groestl 4y ago> Seems like we're at the alchemy stage again with all these blackbox AI models appearing everywhere. That would be the case if we had found a process that produces gold, but we would not have a way to explain it, right?
- g42gregory 4y agoIt took me a while, but by reading a lot of AI research papers, I finally realized that Computer Science is primarily an experimental subject. You can see that we are running a lot of experiments in these papers. I don't think we understand what is going on inside the Deep Learning networks, for example. Sure, there are quite a few studies, but overall I think this is accurate, we simply does not know what is happening inside. The main difficulty is high dimensionality. We simply do not have mathematical frameworks to analyze structures in the 100s of dimensions. With the advent of special relativity in 1900s, we developed some understanding of 4-dimensional objects, and a bit higher dimensions in the String Theory. But 100s or 1000s dimensions, - we simply have no mathematical tools for that. The real CS theory is sorely lacking. For some reason, theoretical computer science seem to contribute quite little to the practical deep learning world, while primarily concerning itself with the complexity theory and computability questions. Fun stuff, but... Somebody needs to do this. Calling all theoretical physicists looking for hard but immediately useful problems to solve!
- deleted 4y ago[deleted]
- lqr 4y agoI have to disagree with some of your points. > The main difficulty is high dimensionality. We simply do not have mathematical frameworks to analyze structures in the 100s of dimensions. The main difficulty in deep learning is the non-convexity of the optimization problem. We can handle simpler problems in high dimensions just fine. The oracle complexity bounds for projected gradient descent in convex optimization even hold for infinite-dimensional problems - see work of Nesterov. Most of the hard questions about deep learning remain hard even for neural networks with low-dimensional inputs, outputs, and hidden layers. Also, some of the more fruitful approaches in deep learning theory involve taking the limit as the width of one network layer goes to infinity. > For some reason, theoretical computer science seem to contribute quite little to the practical deep learning world, while primarily concerning itself with the complexity theory and computability questions. Fun stuff, but... Somebody needs to do this. Lots of theoretical researchers are trying to figure out why deep learning works. Check out the work of Jason Lee, Simon Du, Sebastien Bubeck, etc. Most of these researchers have a CS background.
- avgcorrection 4y agoImagine if someone released a programming language or system that made it possible and tractable to both specify, implement, and prove the correctness of, say, ten different classes of things that most medium-to-large-scale programs have to deal with. Also imagine that this system had no complexity beyond the intrinsic kind. A lot of people would perhaps be initially impressed. But then they would grow to dislike the fact that the system encourages things like proofs of correctness.[1] They would dislike the fact, or the idea, that they would have to adopt to project conventions and processes that involved that kind of work in order to get their changes merged. That’s friction. And you have to deal with the intrinsic complexity more or less up-front. Then some time passes and an alternative system comes out. But this system is easier to use. It’s easier to use because it helps you 90% of the way to write and implement those same ten different things. So maybe there are no specifications, and there are certainly no proofs, and certainly no guarantess that X will always be the case or that Y will never be the case. This lack of guarantees gets lauded as “pragmatic”. In order to try to make up for the missing 10%, fuzzing libraries are written, CI pipelines are set up, everyone is encouraged to write more tests, and more process is added to code reviews. In part because “You are supposed to always do Z, anyway”. A downside is that you went from having firm guarantees (even with asterisks since they would point you to things like trusted kernels) to having no guarantees. The only guarantee that you have is right after you have run your somewhat lean six minute test suite just before committing: you know that your changes are good modulo those tests since you just ran them. Then you submit a PR and the remote CI reruns the tests. In the end, with all those code reviews and unit tests and whatnot, you look around and see only blobs of imperative code that could in principle do anything. So you add more sandboxes and security layers. Because, the low-level programmer interjects, “it’s all imperative code under the hood [anyway]”. [1] Only “encourages” since you can e.g. write stringly-typed programs even in Idris.
- witrak 4y agoInteresting that in these all comments, nobody referred to the (un)reality of the creation of proofs. The fact that the proof has to be longer than a program - ignored completely 40 years ago - undermines the generality of the "purely scientific" approach marketed by Dijkstra. While his critics of software business are fundamentally sound - today even more than in the '80s - his idealistic view of programming as scientific activity and negation of the importance of (to not say contempt to) software engineering weakens his message even if we keep in mind the creation date of his philippic.