Introduction to the Quorum Programming Language and Evidence-Oriented Programming
This is a negative review. I don&#x27;t generally like bagging on peoples&#x27; projects, but this is an important subject and I feel it has been significantly failed. Their hearts are in the right place, but I think they&#x27;ve failed by even their own metrics.<p>I was very curious to read this topic because I firmly believe we need to do much, much more work to make the full range of computing more accessible for people with disabilities. It&#x27;s not just about equity--though that should be reason enough--but that systems designed for systemic handicap are also useful for <i>situational</i> handicap. I work from home and have a brand new, baby boy. I&#x27;m going to want to hold him a lot, but I currently need two hands and two eyes on my computer. Also, with the work I do in Virtual Reality, it becomes very clear, very quickly, that our UI metaphors are informed by and designed for 2D systems, and do not adapt well to 3D systems. The current market of VR being primitive also presents problems in that User Input schemes have largely been either overlooked or exclusively focused on gaming applications.<p>So I&#x27;ve been keeping my eye out for a more ergonomic programming language. I imagine a very high level language that makes functional tasks easy when I want FP, object oriented tasks easy when I want OOP, but perhaps doesn&#x27;t go out of its way to try to marry the two.<p>With this article on Quorum, they talk up a big game about using studies on live subjects to figure out more ergonomic programming languages. I found myself nodding along the entire way and was very excited to see what they had built.<p>And then was quite deflated to see that what they had delivered is essentially a small corner of Java or C++ with no more changes than having all the keywords renamed. It seems they start with the assumption that OOP is the most natural, correct paradigm for all cases, and then only go so far as to test whether or not different variations of keywords are easier to understand as spoken language. I get renaming &quot;for&quot; to &quot;repeat&quot;. I don&#x27;t get how you&#x27;re helping anyone with multiple inheritance, or boxed primitives for use in contajners, or Arrays that are really Lists, but also a separate List class.<p>With the direction they&#x27;ve gone, it does not impress that the people involved understand programming language theory beyond keyword replacement. With zero apparent effort put into constructs and semantics, it just seems like a dead-end of bodged-together shell scripts.<p>Also, the example code in the documentation would be wholly inadequate for a beginner. It is definitely written for an experienced programmer to learn how to map concepts in other languages to Quorum. The first example on each page does generally demonstrate the most basic usage, but subsequent examples don&#x27;t actually demonstrate what they say they will demonstrate. In some cases they demonstrate how <i>not</i> to achieve what has been described, but then don&#x27;t describe <i>how to</i> achieve it. And in at least one case, two entries in a compare-and-contrast example were identical. In a few examples, I&#x27;m not sure the example will even run.