{"id":3520,"date":"2013-10-21T12:52:19","date_gmt":"2013-10-21T02:52:19","guid":{"rendered":"https:\/\/www.flamingspork.com\/blog\/?p=3520"},"modified":"2013-10-21T12:52:19","modified_gmt":"2013-10-21T02:52:19","slug":"carbon-footprint-of-interpreted-languages","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2013\/10\/21\/carbon-footprint-of-interpreted-languages\/","title":{"rendered":"Carbon footprint of interpreted languages"},"content":{"rendered":"<p>Thought from a good discussion with at <a href=\"http:\/\/fmarier.org\">Fran\u00c3\u00a7ois<\/a> at <a href=\"http:\/\/osdc.org.nz\/\">OSDC<\/a> today, what is the carbon footprint of various languages? He mentioned that the carbon footprint of a new Haskell compiler release is remarkably non-trivial due to every Haskell package in Debian needing to be rebuilt.<\/p>\n<p>So, I thought, what&#8217;s the impact of something like Python? (or Perl). Every machine running the code has to do the bytecode compilation\/JIT\/interpretation of that code so when, say, Ubuntu ships some new version of $random_desktop_thing_written_in_python, we&#8217;re actually compiling it well over 20 million times. That&#8217;s a remarkably non-trivial amount of CPU time (and thus CO2 emissions).<\/p>\n<p>So, program in compiled languages such as C or C++ as doing so will save polar bears.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Thought from a good discussion with at Fran\u00c3\u00a7ois at OSDC today, what is the carbon footprint of various languages? He mentioned that the carbon footprint of a new Haskell compiler release is remarkably non-trivial due to every Haskell package in &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2013\/10\/21\/carbon-footprint-of-interpreted-languages\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[76],"tags":[138,553,633,556,555,554],"class_list":["post-3520","post","type-post","status-publish","format-standard","hentry","category-code","tag-c","tag-carbon","tag-code","tag-haskell","tag-perl","tag-python"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-UM","jetpack-related-posts":[{"id":1847,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/03\/15\/thoughts-on-thoughts-on-drizzle\/","url_meta":{"origin":3520,"position":0},"title":"Thoughts on Thoughts on Drizzle :)","author":"Stewart Smith","date":"2010-03-15","format":false,"excerpt":"Mark has some good thoughts on drizzle. I think they're all valid... and have some extra thoughts too: \"I have problems to solve today\". This is (of course) an active concern in my brain... If we don't have something out that solves some set of problems with reasonable stability and\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":167,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/10\/01\/prohibited-behaviour\/","url_meta":{"origin":3520,"position":1},"title":"Prohibited behaviour","author":"Stewart Smith","date":"2003-10-01","format":false,"excerpt":"This type of appauling behavior is prohibited in the STRIP joint. Especially not in the fish bowl! That's: \"Please do not tap the glass (it disturbs the fish)\" on the left, and \"Welcome to the Monkey House, The Code Monkey House\" on the right. The big camel is a perl\u2026","rel":"","context":"In &quot;uni&quot;","block_context":{"text":"uni","link":"https:\/\/www.flamingspork.com\/blog\/category\/uni\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3302,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/04\/20\/the-memory-storage-engine\/","url_meta":{"origin":3520,"position":2},"title":"The MEMORY storage engine","author":"Stewart Smith","date":"2013-04-20","format":false,"excerpt":"I recently wrote about\u00c2\u00a0Where are they now: MySQL Storage Engines\u00c2\u00a0and\u00c2\u00a0The MERGE storage engine: not dead, just resting\u00e2\u20ac\u00a6. or forgotten.\u00c2\u00a0Today, it's the turn of the MEMORY storage engine - otherwise known as HEAP. This is yet another piece of the MySQL server that sits largely unmaintained and unloved. The MySQL Manual\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3790,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/09\/15\/is-python-the-new-basic\/","url_meta":{"origin":3520,"position":3},"title":"Is Python the new BASIC","author":"Stewart Smith","date":"2014-09-15","format":false,"excerpt":"Today I managed to finally find a way to express what I've been thinking for a while: \"Python is the new BASIC\". Think about it: it's easy to get started in, there's books and tutorials on it everywhere, a bunch of real world software is actually written in it and\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3242,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/07\/other-mysql-code-size\/","url_meta":{"origin":3520,"position":4},"title":"Other MySQL branch code sizes\u00ef\u00bb\u00bf\u00ef\u00bb\u00bf","author":"Stewart Smith","date":"2013-03-07","format":false,"excerpt":"Continuing on from my previous posts,\u00c2\u00a0MySQL code size over releases\u00c2\u00a0and\u00c2\u00a0MariaDB code size\u00c2\u00a0I've decided to also look into some other code branches. I've used the same methodology as my previous few posts: sloccount for C and C++ code only. There are also other branches around in pretty widespread use (if only\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4520,"url":"https:\/\/www.flamingspork.com\/blog\/2019\/12\/14\/building-openpower-firmware-on-fedora-31\/","url_meta":{"origin":3520,"position":5},"title":"Building OpenPOWER firmware on Fedora 31","author":"Stewart Smith","date":"2019-12-14","format":false,"excerpt":"One of the challenges with Fedora 31 is that \/usr\/bin\/python is now Python 3 rather than Python 2. Just about every python script in existence relies on \/usr\/bin\/python being Python 2 and not anything else. I can't really recall, but this probably happened with the 1.5 to 2 transition as\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=3520"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3520\/revisions"}],"predecessor-version":[{"id":3521,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3520\/revisions\/3521"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=3520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=3520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=3520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}