{"id":15,"date":"2022-11-29T03:09:58","date_gmt":"2022-11-29T03:09:58","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/mvplants\/?p=15"},"modified":"2022-11-29T03:09:58","modified_gmt":"2022-11-29T03:09:58","slug":"even-more-python","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/mvplants\/2022\/11\/29\/even-more-python\/","title":{"rendered":"(Even) More Python"},"content":{"rendered":"\n<p>Python has made its way into every facet of my software developing career at this point. My journey using Python started with one of my larger personal projects; it was at the time my favorite programming languages to work in. But now that python has crept its way into my work and has been a major part of my software engineer journey here at Oregon State (especially within this project), i&#8217;m not sure how I feel about it. The more other languages I work with, the more I find I&#8217;d prefer them in most situations. Of course it isn&#8217;t fair to compare a hammer to a hacksaw, there are different tools for different jobs, but there&#8217;s many other tools i&#8217;d pick up at this point. But to be fair to Python, i&#8217;m going to use the rest of this blog post to describe what I do and don&#8217;t like about it.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">The Goods<\/h5>\n\n\n\n<p>For starters, my favorite thing about Python is how fast I can develop in it. With syntax that could be mistaken for English (a hyperbole, but it&#8217;s still easy to understand), whipping up a program for a strangely specific task can be done in minutes. Another thing I like is how much it has taught me about important programming concepts. If I were to have tried and write a UDP client\/server in C when I took the course here on networking, I probably wound not have gotten anything but frustration out of it. Python&#8217;s native packages were able to abstract enough away that I could understand the concept of networking thoroughly. And finally, I love python&#8217;s versatility. It&#8217;s crazy that I can write a desktop program with a GUI and a machine learning model in the same language. Of course many other languages have these things, but you sure aren&#8217;t going to be able to do both those things as easily in Ruby or Rust.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>The Bads<\/strong><\/h5>\n\n\n\n<p>Now onto things I dislike. I&#8217;ll keep this brief because I frankly don&#8217;t have a substantive way to describe my friction with the language. Firstly, I&#8217;m not a huge fan of the package manager. I spend more time figuring out why PIP isn&#8217;t working, deleting dependencies spread throughout different versions of Python, and troubleshooting package dependencies than I do working with packages installed through PIP. It&#8217;s better than any package manager I could make, but among managers like NPM and Ruby&#8217;s gems, it doesn&#8217;t shine the brightest. I&#8217;m also not a fan of the white space. It gets confusing to read in just one or two indentations, and it&#8217;s especially annoying when just changing the white space would improve the readability of the code (but you can&#8217;t). I finally find a lot of the syntax beyond basic things to be ugly and counter-intuitive. Many common functions on built in data types have weird names and strange double underscore syntax. And don&#8217;t get me started on how class\/object syntax looks.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">The reality<\/h5>\n\n\n\n<p>I still really don&#8217;t dislike python but I&#8217;ve begun to pick other tools in its place. If i&#8217;m gonna write an API, it&#8217;s gonna be in Rails and not Flask. If i&#8217;m gonna code up a GUI, it&#8217;s gonna be in C++ and not Flexx. But if i&#8217;m gonna show somehow how to write their first program, i&#8217;ll probably point them to python.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python has made its way into every facet of my software developing career at this point. My journey using Python started with one of my larger personal projects; it was at the time my favorite programming languages to work in. But now that python has crept its way into my work and has been a [&hellip;]<\/p>\n","protected":false},"author":12991,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-15","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/mvplants\/wp-json\/wp\/v2\/posts\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/mvplants\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/mvplants\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/mvplants\/wp-json\/wp\/v2\/users\/12991"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/mvplants\/wp-json\/wp\/v2\/comments?post=15"}],"version-history":[{"count":1,"href":"https:\/\/blogs.oregonstate.edu\/mvplants\/wp-json\/wp\/v2\/posts\/15\/revisions"}],"predecessor-version":[{"id":16,"href":"https:\/\/blogs.oregonstate.edu\/mvplants\/wp-json\/wp\/v2\/posts\/15\/revisions\/16"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/mvplants\/wp-json\/wp\/v2\/media?parent=15"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/mvplants\/wp-json\/wp\/v2\/categories?post=15"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/mvplants\/wp-json\/wp\/v2\/tags?post=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}