Python
This year I hope to improve my skills at the python programming language. While no means a novice at python as I’ve written several plug-ins for QGIS that I use for my generation of maps, the truth is that PHP is still my go to language for when I have to write stuff for command line processing and not just the web. PHP-cli has a lot of built-in functions but anybody will tell you that python is a vastly superior scripting language, even if it does require a lot more additional classes than PHP-cli has built in.
Python code is clear and relatively simple. It uses most of the standard ways of doing things as an object oriented language, so most concepts using python aren’t unfamiliar. I’m not sure what to say about indent based control structures over brackets, as a misplaced space can mess things up, but so be it. It’s a lot less convoluted than perl, which for the first decade of the century was my go to language. The virtual disappearance of perl in favor of python probably was a major step forward for us programmers.
While there is nothing wrong with using PHP for command line processing, using python just seems like a better tool and is more future compatible and easier to bind to QGIS and many Linux desktop apps. DBF format, essential for using and manipulating shapefiles seems to have stronger, more up to date libraries in python than PHP, the later seems to be moving away from this very old format only kept alive by shapefiles. Although with GeoPackage becoming the future, Sqlite seems to be more important and I don’t even know if php has a library for that.
I’ve been reading about Micropython for microcontroller coding and while on paper it seems like a really elegant solution with easily read code and none of those things that make C# a somewhat nasty language to work with, it has limited hardware support compared to the many Arduino C# libraries that support a wide variety of sensors and components. It’s cool that you can change the code in real-time with Micropython but that comes at the cost of memory, which often is very limited on microcontrollers.
I feel like resolving to use more python in my desktop projects this year will make me a better programmer in that language and more future compatible. Python isn’t the go to for everything but it has a lot of benefits over the perl and PHP especially on the command line.