
OVERLOAD CONTENTS OVERLOAD 161 February 2021 Overload is a publication of the ACCU ISSN 1354-3172 For details of the ACCU, our publications Editor Frances Buontempo and activities, visit the ACCU website: [email protected] www.accu.org Advisors Ben Curry [email protected] Mikael Kilpeläinen [email protected] 4 A Case Against Blind Use of Steve Love [email protected] C++ Parallel Algorithms Chris Oldwood Lucian Radu Teodorescu reminds us we need to [email protected] think when we use parallel algorithms. Roger Orr [email protected] 8 C++ – an Invisible Foundation Balog Pal [email protected] of Everything Bjarne Stroustrup answers the questions ‘What is Tor Arve Stangeland [email protected] C++ and why do people still use it?’ Anthony Williams [email protected] 12 Test Precisely and Concretely Kevlin Henney reminds us that assertions should Advertising enquiries be necessary, sufficient, and comprehensible. [email protected] Printing and distribution 16 Afterwood Parchment (Oxford) Ltd Chris Oldwood reminds us that unlearning becomes our next problem. Cover art and design Pete Goodliffe [email protected] Photo by Paweł Czerwinski on Unsplash Copy deadlines All articles intended for publication in Overload 162 should be submitted by 1st March 2021 and those for Overload 163 by 1st May 2021. The ACCU Copyrights and Trade Marks The ACCU is an organisation of Some articles and other contributions use terms that are either registered trade marks or claimed programmers who care about as such. The use of such terms is not intended to support nor disparage any trade mark claim. professionalism in programming. That is, On request we will withdraw all references to a specific trade mark and its owner. we care about writing good code, and By default, the copyright of all material published by ACCU is the exclusive property of the author. about writing it in a good way. We are By submitting material to ACCU for publication, an author is, by default, assumed to have granted dedicated to raising the standard of ACCU the right to publish and republish that material in any medium as they see fit. An author programming. of an article or column (not a letter or a review of software or a book) may explicitly offer single The articles in this magazine have all (first serial) publication rights and thereby retain all other rights. been written by ACCU members - by Except for licences granted to 1) Corporate Members to copy solely for internal distribution 2) programmers, for programmers - and members to copy source code for use on their own computers, no material can be copied from have been contributed free of charge. Overload without written permission from the copyright holder. February 2021 | Overload | 1 EDITORIAL FRANCES BUONTEMPO In. Sub. Ordinate. Mindless rebellion is mindless. Frances Buontempo encourages mindful consideration of when to refuse. Yet again no proper editorial from me. I just won’t do Now, insubordination and disobedience differ. The former involves a the thing. Oh well. Not everyone does what they are refusal to be lorded over, rejecting submission to a supposed higher told. Whether we’re talking rebellious children, authority. To disobey, in contrast, is a more direct refusal to comply with defiant pensioners, eco-warriors or the population at a given instruction. The diktat is snubbed not the dictator. It is possible to large picking and choosing what advice they are do exactly as you have been told and, while not disobeying, you can willing to follow, everyone is insubordinate from time nonetheless be insubordinate. Your computer may well obey you, but may to time. Why do we obey any laws or suggestions? Many philosophers appear to be attempting some kind of insurrection or at least have asked this question, including Hobbes, Locke and Kant. They insubordination at times. Upon the bash instruction echo variable the suggest some form of social contract, whereby people give up freedoms defiant machine will echo variable verbatim to the screen, rather than either for absolute government avoiding the prospect of anarchy or less the contents of the variable, since you forgot the dollar sign. Flip. It could extremely than Hobbes’ view, increasing the chance of respect and a be worse though; sometimes computers try to guess what you really quieter life [Wikipedia-1] What would happen if all laws were abolished meant. Don’t get me started on autocorrect. Undefined behavior is neither is an interesting, but ultimately unanswerable, question. Laws are laid insubordinate nor disobedient. Walking off the end of an array allows your down, and often, though not always, obeyed. compiler to do whatever it feels like, if you believe computers have Some laws are more observations than laws. Moore’s ‘law’ springs to feelings. Obedience isn’t always helpful. mind. His observation that the number of transistors tended to double Furthermore, doing exactly what you are told can cause all kinds of every two years captures a trend in data which seems unlikely to continue trouble. The phrase ‘work to rule’ springs to mind. Rather than striking, forever [Moore]. There are many similar observations in computing, employees may take to doing exactly what the rules say, as a “form of regarding storage and so on. These are not laws. They are neither enforced industrial action where the employee will follow the rules and hours of their nor does anyone run the risk of incarceration if they disobey. On the other workplace exactly in order to reduce their efficiency and output.” [Voice] hand, many outfits have coding ‘guidelines’ which are more like actual So often, extra voluntary duties keep the wheels moving. By calling this rules, either officiously enforced or automatically applied. I recently set form of action work to rule, the degree of spikiness is obvious, pointing up the Python formatter Black [Black] on CI for a new repo because our out that much of the day to day work involved is above and beyond written coding guidelines say ‘We use Black’. It describes itself as an and signed off contracts. Let’s avoid devolving into discussions of uncompromising formatter, so that “Formatting becomes transparent after workers’ rights: that strays far too close to me writing opinions and puts a while and you can focus on the content instead.” What has in fact this in danger of becoming an editorial. Totally unacceptable. happened is a whole slew of commits with messages like “Black, oh why? Doing exactly what you are told can get you into trouble, even if you are Oh why?” or “Black. Again. Grr”. If I change the CI step from just checking really not trying to be insubordinate. My special superpower is following the formatting to reformatting, or set up pre-commit hooks, that would instructions, often to others’ bemusement, with unexpected avoid the agro. Black could then silently do its thing with whitespace so consequences. This probably means I should go into software testing we can concentrate on the code in between the spaces. Or I could remove when I grow up. Have you ever read instructions and followed them the step from the CI build in a small act of rebellion. Little victories. precisely? Try it on a document you have written, or a recipe or DIY The UK had all kinds of guidelines and rules to attempt to keep us safe instructions. Don’t do what you think you wrote, do what you actually from COVID-19 over the Christmas holidays. How obedient was your wrote, or at least consider what that might involve. Writing clear break, if you had one? Did you stay indoors, video conference your family, instructions is a hard technical job that few of us are any good at. Though say hello to neighbours from two metres away and above all costs only I could relay many personal stories, I shall stick to one. For a practical sing if you were in a choir, or alone in a shower? Our mixture of rules and science exam, the first instruction was to find the volume of a cylinder. guidelines are somewhat confusing and prone to last minute change. Some To my mind, the capacity was the amount of volume of a liquid I could are using this as an excuse for disobedience. Many are trying their best, fit inside the cylinder, so it stood to reason that the volume of the though under a little duress. Where the rules seem to make no sense, it’s aforementioned cylinder was precisely that. I therefore set about trying to useful to be able to discuss why and what the alternatives might be. With find how much volume the walls of the cylinder would displace, much to difficult political situations that’s not always possible. Having a the consternation of my teacher. Having noticed her facial expression, I discussion about code format and formatters read the subsequent instructions and concluded I would need to know the seems likely. Asking our parliament why capacity of the container in order to proceed. Lesson learnt. The they issue the guidance they have seems instructions are usually wrong – read them all first to decide how less so. insubordinate you need to be to accomplish your mission. How many Frances Buontempo has a BA in Maths + Philosophy, an MSc in Pure Maths and a PhD technically in Chemical Engineering, but mainly programming and learning about AI and data mining. She has been a programmer since the 90s, and learnt to program by reading the manual for her Dad’s BBC model B machine. She can be contacted at [email protected]. 2 | Overload | February 2021 FRANCES BUONTEMPO EDITORIAL times have I followed steps one at a time, to find the next sentence says a tax which is considered unfair or even immoral.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages20 Page
-
File Size-