davideisinger.com

My personal website
Log | Files | Refs | README

inkdroid-org-belior.txt (8229B)


      1   • [2]Home
      2   • [3]About
      3   • [4]Tags
      4   • [5]Bookmarks
      5   • [6]Photos
      6   • [7]Podcasts
      7   • [8]Music
      8   • [9]Software
      9   • [10]Mastodon
     10   • [11]Talks
     11   • [12]Web Archives
     12   • [13]Feed
     13   • [14]🎁
     14 
     15 Why I don't use Copilot
     16 
     17 June 4, 2023
     18 [15]programming [16]artificial-intelligence
     19 
     20 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     21 
     22 TL;DR Don’t install Copilot. It rots your brain and destroys the environment.
     23 
     24 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     25 [rubber-duc] [17]A rubber duck in use by a developer to aid code review
     26 
     27 [18]GitHub Copilot is a technology that is designed to help you write code,
     28 kind of like your partner in [19]pair programming. But, you know, it’s not an
     29 actual person. It’s “A.I.”–whatever that means.
     30 
     31 In principle this sounds like it might actually be a good thing right? I know
     32 several people, who I respect, that use it as part of their daily work. I’ve
     33 heard [20]smart people say AI coding assistants like Copilot will democratize
     34 programming, by making it possible for more people to write code, and automate
     35 the drudgery out of their lives. I’m not convinced.
     36 
     37 Here’s why I don’t use Copilot (or ChatGPT) to write code:
     38 
     39  1. Copilot’s suggestions are based on a corpus of open source code in GitHub,
     40     but the suggestions do not mention where the code came from, and what the
     41     license is. GitHub is stealing and selling intellectual property.
     42  2. Copilot lets you write code faster. I don’t think more code is a good
     43     thing. The more code there is, the more code there is to maintain.
     44     Minimalism in features is usually a good thing too. Less really is more.
     45  3. As more and more programmers use Copilot it creates conservativism in
     46     languages and frameworks that prevents people from creating and learning
     47     new ways of doing things. Collectively, we get even more stuck in our ways
     48     and biases. Some of the biases encoded into LLMs are things that we are
     49     actively trying to [21]change.
     50  4. Developers become dependent on Copilot for intellectual work. Actually,
     51     maybe addicted is a better word here. The same could be (and was) said
     52     about the effect of search engines on software development work
     53     (e.g. Googling error messages). But the difference is that search results
     54     need to be interpreted, and the resulting web pages have important context
     55     that you often need to understand. This is work that Copilot optimizes away
     56     and truncates our knowledge in the process.
     57  5. Copilot costs money. It doesn’t cost tons of money (for a professional
     58     person in the USA) but it could be significant for some. Who does it
     59     privilege? Also, it could change (see point 4). Remember who owns this
     60     thing.
     61  6. How much [22]energy does it take to run Copilot as millions of developers
     62     outsource their intellectual work to its LLM infrastructure? Is this
     63     massive centralization and enclosure really progress in computing? Or is it
     64     a [23]step backwards as we try to [24]reduce our energy use as a species?
     65  7. What does Copilot see of the code in your editor? Does it use your code as
     66     context for the prompt? What does it store, and remember, and give to
     67     others? Somebody has probably looked into this, but if they have it is
     68     always up for revision. Just out of principle I don’t want my editor
     69     sending my code somewhere else without me intentionally doing it.
     70  8. Working with others who use Copilot makes my job harder, since they
     71     sometimes don’t really understand the details of why the code is written a
     72     particular way. Over time Copilot code can mix idioms, styles and
     73     approaches, in ways that the developer doesn’t really understand or even
     74     recognize. This makes maintenance harder.
     75 
     76 As far as I can tell the only redeeming qualities of Copilot are:
     77 
     78  1. Copilot encourages you to articulate and describe a problem as written
     79     prose before starting to write code. You don’t need Copilot for this. Maybe
     80     keep a work journal or write a [25]design document? Maybe use your issue
     81     tracker? Use [26]text to communicate with other people.
     82  2. Copilot is more interactive than a [27]rubber duck. But, it turns out
     83     Actual People are even more interactive and surprising. Reach out to other
     84     professionals and make some friends. Go to workshops and conferences.
     85  3. I could be convinced that Copilot has a useful place in the [28]review of
     86     code rather than the first draft of code. It wouldn’t be a replacement for
     87     review by people, but I believe it could potentially help people do the
     88     review. I don’t think this exists yet?
     89  4. Copilot makes me think critically about machine learning technology, my
     90     profession and its place in the world.
     91 
     92 Maybe my thinking on this will change. But I doubt it. I’m on the older side
     93 for a software developer, and (hopefully) will retire some day. Maybe people
     94 like me are on the way out, and writing code with Copilot and ChatGPT is the
     95 future. Maybe programming has always been about increasing layers of
     96 abstraction and this is just the next logical layer. I really hope not.
     97 
     98 I enjoy programming because it’s about reasoning, thinking, models, concepts,
     99 expression, communication, ethics, reading, learning, making, and process. It’s
    100 an art and a practice that is best done with other people.
    101 
    102 Increasingly I think it’s imperative for programming to be done more slowly,
    103 more deliberatively, and as part of more conversations with more people. The
    104 furious automation of everything is eating the world.
    105 
    106 Programs need to run more efficiently. Programs need to be well understood, by
    107 a more diverse and varied set of people. Programs need to be robust and
    108 resilient. Programs need to be easier to change.
    109 
    110 Can Copilot help with these [29]goals? I think the answer is no, because it
    111 doesn’t actually understand anything, and more importantly, it doesn’t promote
    112 understanding.
    113 
    114 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    115 
    116 Update (2023-06-09): For another take on Copilot that uses this post as a
    117 jumping off point see Vivek Haldar’s [30]Re: Why I don’t use Copilot.
    118 
    119 Unless otherwise noted all the content here is licensed [31]CC-BY
    120 
    121 
    122 References:
    123 
    124 [2] https://inkdroid.org/
    125 [3] https://inkdroid.org/about/
    126 [4] https://inkdroid.org/tags/
    127 [5] http://pinboard.in/u:edsu
    128 [6] https://www.flickr.com/photos/inkdroid
    129 [7] https://inkdroid.org/podcasts/feed.opml
    130 [8] https://bandcamp.com/edsu
    131 [9] https://github.com/edsu
    132 [10] https://social.coop/@edsu
    133 [11] https://inkdroid.org/talks/
    134 [12] https://inkdroid.org/web-archives/archives/
    135 [13] https://inkdroid.org/feed.xml
    136 [14] https://bookshop.org/wishlists/d7c0224f5440df8d2c174ad2cc38b3fca1aa813f
    137 [15] https://inkdroid.org/tag/programming
    138 [16] https://inkdroid.org/tag/artificial-intelligence
    139 [17] https://commons.wikimedia.org/wiki/File:Rubber_duck_assisting_with_debugging.jpg
    140 [18] https://en.wikipedia.org/wiki/GitHub_Copilot
    141 [19] https://en.wikipedia.org/wiki/Pair_programming
    142 [20] https://changelog.com/podcast/534
    143 [21] https://www.wired.com/story/tech-confronts-use-labels-master-slave/
    144 [22] https://dl.acm.org/doi/pdf/10.1145/3442188.3445922
    145 [23] https://www.washingtonpost.com/technology/2023/06/05/chatgpt-hidden-cost-gpu-compute/
    146 [24] https://www.jasonhickel.org/less-is-more
    147 [25] https://en.wikipedia.org/wiki/Software_design_description
    148 [26] https://graydon2.dreamwidth.org/193447.html
    149 [27] https://en.wikipedia.org/wiki/Rubber_duck_debugging
    150 [28] https://en.wikipedia.org/wiki/Code_review
    151 [29] https://permacomputing.net/
    152 [30] https://vivekhaldar.com/articles/re--why-i-don-t-use-copilot/
    153 [31] https://creativecommons.org/licenses/by/4.0/