22 votes

What can a software developer do about climate change?

34 comments

  1. [8]
    rkcr
    Link
    I was excited by the title but disappointed by the article. Essentially, it's saying that because software developers generally have money and time, then they can become activists. That's not...

    I was excited by the title but disappointed by the article. Essentially, it's saying that because software developers generally have money and time, then they can become activists. That's not really unique to software developers... anyone with money and time can do it.

    What I was hoping for was more on what unique skills that technologists can bring to the climate change table.

    14 votes
    1. Sahasrahla
      Link Parent
      On this note, does anyone know of any open source projects in this area that one could contribute to? Also, just off the top of my head, some things that might be useful for a programmer to do:...

      On this note, does anyone know of any open source projects in this area that one could contribute to? Also, just off the top of my head, some things that might be useful for a programmer to do:

      • Anecdotally I've heard that programs written by and for scientists can often be pretty terrible from a software engineering perspective so that might be an area of interest. Maybe contributing to open source, or making it known to a local university you're available for coding or even teaching some good programming practices.
      • Climate activists (or any kind of activists, really) can often face the threat of surveillance and helping them with digital privacy could be helpful.
      • The idea for many programs starts with finding a need in the general public, but what need do climate activists have that might be addressed through some new tool?
      • People are gamifying exercise and their todo lists, why not gamify lowering your personal carbon footprint? Take transit or ride a bike instead of driving your car to work and you can level up, or something.
      13 votes
    2. skybrian
      Link Parent
      Encouraging people to stay home and play video games probably reduces global warming :-) Although, that might depend on the energy efficiency of their home and computer. If you want to do this at...

      Encouraging people to stay home and play video games probably reduces global warming :-) Although, that might depend on the energy efficiency of their home and computer.

      If you want to do this at scale, you might get a job at Amazon or Google optimizing things in data centers.

      But beware that reducing costs increases usage. This is called the Jevons paradox. To keep your work optimizing all the software things from going to waste due to increased usage, something like a carbon tax is still needed.

      8 votes
    3. [3]
      babypuncher
      Link Parent
      I was really hoping it would be something along the lines of "write efficient code, stop using Node.js and Electron". In the grand scheme of things though, I don't know how much energy would...

      I was really hoping it would be something along the lines of "write efficient code, stop using Node.js and Electron". In the grand scheme of things though, I don't know how much energy would actually be saved if we replaced all Node.js and Electron apps with native equivalents.

      3 votes
      1. [2]
        LukeZaz
        Link Parent
        Out of curiosity, what's wrong with Node?

        Out of curiosity, what's wrong with Node?

        1 vote
        1. babypuncher
          (edited )
          Link Parent
          In this context, it's the fact that compiled languages are generally more efficient than interpreted languages. I think lately it encourages some really lazy coding. The number of one-liner...

          In this context, it's the fact that compiled languages are generally more efficient than interpreted languages.

          I think lately it encourages some really lazy coding. The number of one-liner packages in NPM is ridiculous, and when a popular one breaks, it breaks everything that depends on it.

          I think there's also a generational component. Younger devs seem to love Node, as JavaScript is often the first language they learn. Older devs hate it; they remember when ES6 wasn't even a twinkle in Brendan Eich's eye, and flashy webapps were a tangled mess of JQuery.

          7 votes
    4. SunSpotter
      Link Parent
      It's interesting that no one has brought up getting involved in engineering projects that specifically tackle climate change. As a mechanical engineering students myself I've looked into some of...

      It's interesting that no one has brought up getting involved in engineering projects that specifically tackle climate change. As a mechanical engineering students myself I've looked into some of these projects and programs, and it seems there's always a software angle to it. That could mean directly working on the project itself, or developing programs which can be sold and used to more efficiently get the job done.

      Personally, I've seen how much of a difference a good programmer can make on an engineering project, so there's no doubt in my mind that it's at least a possibility.

      2 votes
    5. PopeRigby
      Link Parent
      I had similar thoughts, but I still thought it would generate discussion so I posted it.

      I had similar thoughts, but I still thought it would generate discussion so I posted it.

  2. [21]
    vegai
    Link
    https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf Table 4. shows energy efficiencies of programming languages. I'll quote some of it here: Language Energy efficiency C 1.00...

    https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf

    Table 4. shows energy efficiencies of programming languages. I'll quote some of it here:

    Language Energy efficiency
    C 1.00
    Rust 1.03
    C++ 1.34
    Java 1.98
    [Common?] Lisp 2.27
    Swift 2.79
    Haskell 3.10
    C# 3.14
    Go 3.23
    Javascript 4.45
    Racket 7.91
    TypeScript 21.50
    PHP 29.30
    Erlang 42.23
    Ruby 69.91
    Python 75.88

    So start rewriting those php/ruby/python applications in common lisp or Rust?

    9 votes
    1. [4]
      Micycle_the_Bichael
      Link Parent
      What this tells me is that there is a need for a scripting language that is more energy efficient and then get that to come built-in to linux distros the way python is. Ezpz.

      What this tells me is that there is a need for a scripting language that is more energy efficient and then get that to come built-in to linux distros the way python is. Ezpz.

      3 votes
      1. [2]
        vegai
        Link Parent
        Well, Common Lisp was next to Java in that comparison, and it can be quite scripty (i.e. has strong runtime capabilities, is dynamic by default). Possibly too archaic in 2019, though :-/

        Well, Common Lisp was next to Java in that comparison, and it can be quite scripty (i.e. has strong runtime capabilities, is dynamic by default). Possibly too archaic in 2019, though :-/

        2 votes
        1. Diff
          Link Parent
          JavaScript is shockingly only a 4.5. That'd be a big step up from Python. Year of the Linux JavaScript shell?

          JavaScript is shockingly only a 4.5. That'd be a big step up from Python. Year of the Linux JavaScript shell?

          1 vote
      2. hungariantoast
        (edited )
        Link Parent
        Wren seems pretty neat. I'd like to see how it compares in energy efficiency with Lua. I'd also like to see how other implementations of these languages compare to their standard implementations,...

        Wren seems pretty neat. I'd like to see how it compares in energy efficiency with Lua. I'd also like to see how other implementations of these languages compare to their standard implementations, like LuaJIT versus "regular" Lua, or Cython compared to Python and C and PyPy compared to Python.

        Oh, there's also Julia.

        1 vote
    2. [5]
      mike10010100
      Link Parent
      I was completely unaware that Typescript was that much worse than vanilla JS....

      I was completely unaware that Typescript was that much worse than vanilla JS....

      3 votes
      1. [3]
        teaearlgraycold
        Link Parent
        It wasn't built for speed.

        It wasn't built for speed.

        1 vote
        1. [2]
          mike10010100
          Link Parent
          No, but I figured its compilation would at least speed it up a little...

          No, but I figured its compilation would at least speed it up a little...

          2 votes
          1. teaearlgraycold
            Link Parent
            I imagine some of its features might require inline polyfills, since they frequently take upcoming ECMAScript features and add them to TypeScript.

            I imagine some of its features might require inline polyfills, since they frequently take upcoming ECMAScript features and add them to TypeScript.

            1 vote
      2. vegai
        Link Parent
        The study's from 2017, though. Typescript is such a young language that one might expect that things have improved.

        The study's from 2017, though. Typescript is such a young language that one might expect that things have improved.

        1 vote
    3. [11]
      PopeRigby
      Link Parent
      Jeez. Python is a monster. I was going to learn Rust anyways, but this gives me even more incentive.

      Jeez. Python is a monster. I was going to learn Rust anyways, but this gives me even more incentive.

      2 votes
      1. [3]
        Diff
        Link Parent
        If you're like me and get stuck with things that seemingly just can't be represented cleanly in Rust, maybe give Go a visit. 3.0 on the scale vs Python's 75 is still a solid improvement, and...

        If you're like me and get stuck with things that seemingly just can't be represented cleanly in Rust, maybe give Go a visit. 3.0 on the scale vs Python's 75 is still a solid improvement, and you'll save a lot of pulled hair vs Rust. Heck, Go's compiler is practically as fast as Python's interpreter.

        2 votes
        1. [2]
          PopeRigby
          Link Parent
          I'd rather use a Mozilla language than a Google language. That sounds dumb when I say it, but they have to much of a stranglehold on everything. Thank you for the suggestion, though.

          I'd rather use a Mozilla language than a Google language. That sounds dumb when I say it, but they have to much of a stranglehold on everything. Thank you for the suggestion, though.

          1. Diff
            Link Parent
            No worries, I understand, I'd rather use a Mozilla-made language as well. Sadly just haven't wrapped my head around the finer details just yet.

            No worries, I understand, I'd rather use a Mozilla-made language as well. Sadly just haven't wrapped my head around the finer details just yet.

            2 votes
      2. [7]
        vegai
        (edited )
        Link Parent
        After considerable study (even wrote a book), I've found Rust to be a monster as well in pretty much the same way as C++ is :-/ I have some hopes for Crystal (because I've had positive Ruby...

        After considerable study (even wrote a book), I've found Rust to be a monster as well in pretty much the same way as C++ is :-/ I have some hopes for Crystal (because I've had positive Ruby experiences), Ziglang (because I've had positive C experiences) and Nim (because Python) though. As a fourth possible route, one could just double down on Common Lisp and forget anything else exists -- you would get pretty good energy efficiency and a superb runtime.

        But the mind is fickle. Perhaps next month I'm liking Rust.

        2 votes
        1. [4]
          PopeRigby
          Link Parent
          How is Rust a monster? It has the second best energy efficiency on the chart.

          How is Rust a monster? It has the second best energy efficiency on the chart.

          1 vote
          1. [3]
            vegai
            Link Parent
            Oh, not in that way. It's obviously very efficient computer energy-wise, just like C++. But it's like C++ in many other ways too, and not all of them are good, I think.

            Oh, not in that way. It's obviously very efficient computer energy-wise, just like C++. But it's like C++ in many other ways too, and not all of them are good, I think.

            3 votes
            1. [2]
              PopeRigby
              Link Parent
              What parts aren't good about C++?

              What parts aren't good about C++?

              1 vote
              1. vegai
                (edited )
                Link Parent
                I dislike its complexity. Then again, I dislike it enough that I did never properly learn it in my 20 years in the field, and I think (hope) I never have to. Rust is building similar complexity,...

                I dislike its complexity. Then again, I dislike it enough that I did never properly learn it in my 20 years in the field, and I think (hope) I never have to.

                Rust is building similar complexity, mostly because it's tackling the same problems (and a few more) as C++, but it has significant advantages in tooling, ergonomy and lack of historical baggage. If Rust replaces C++, I won't complain.

                3 votes
        2. [2]
          hungariantoast
          Link Parent
          I'm always happy to see people talking about Zig, but out of curosity, would you mind sharing your opinion of D?

          I'm always happy to see people talking about Zig, but out of curosity, would you mind sharing your opinion of D?

  3. [3]
    DaveJarvis
    (edited )
    Link
    Resources: https://climateaction.tech/ - Slack Channel with a mission to empower technology professionals to meet, discuss, learn and take climate action. https://climate.careers/ - Work to solve...

    Resources:

    Find a company doing work you believe in or one working on ameliorating the top causes. Contact them. Volunteer to help them out.

    I've been working on a project with 23 scientific illustrators and some 50+ scientists to draft a science-oriented coffee table photobook that describes major events from the beginning of time to the current day. The 23-page book links cosmology, astronomy, geology, evolution, Earth's atmosphere, extinction events, and climate change. The first crowdfunding campaign raised a modest $400. The book itself is written in Markdown typeset using ConTeXt and stiched together with some bash scripts.

    PM me for details --- I could use help with the promotional video, market research, and more.

    5 votes
  4. Omnicrola
    Link
    When asked what I would do next if my current job ended, I've remarked to several people that I'd love to do something that contributed to fighting climate change. I can't think of a goal that...

    When asked what I would do next if my current job ended, I've remarked to several people that I'd love to do something that contributed to fighting climate change. I can't think of a goal that would motivate me more to get up every morning than that.

    3 votes
  5. diode
    Link
    For one you could reject the use of blockchain at least in the context of useless cryptocurrencies.

    For one you could reject the use of blockchain at least in the context of useless cryptocurrencies.

    2 votes