I had a few criteria. First of all, I don't wanna learn ruby, period. so no chef or puppet. I needed it to be as simple as writing a single
.yaml file and being able to control my servers over SSH so that I don't need to install anything on the servers I wanna control. The simple choice came to SaltStack written in Python which allows me the power of a scripting language with the ease of creating a state file and pushing it over SSH. The best part about SaltStack is that you don't need to know Python in order to use it (sorta). You can generally get away with just using
.yaml files. But in my process of pouring over the documentation, endlessly watching video after video, and reading blog after blog on the subject on SaltStack. I could never really grasp the entirety of SaltStack because it's very core and foundation are based in Python itself, and all documentation and historical references are tied in the language it is written in. This meant that if I wanted to utilize this amazing tool to it's fullest potential and doing more then memorizing commands. I needed to understand the very foundation of SaltStack itself.
I chose Python, no regrets (sorta).
- Python being an older language had better documentation
- A bigger / Better community
- An extremely extensive standard library and third-party packages
- Is used a lot in security programming (another hobby of mine)
- Is a general purpose programming language!
Compared to Java (The first language I ever learned) sitting down and writing code in a scripting language is just easier. When I'm writing Java I spend more time thinking about design patterns, data structure, project structure, package management (The best thing Java has is Maven Java has been around since before I was born it's still hard as hell for me to figure out where to get packages) I have a first love for Java I really do, and thinking about data structure, project management, and systems architecture is fun and exciting. But I don't need all that when I'm trying to write a program that tells me if I've been pwned - Please do not get me started on the legacy hell that is doing web applications in Java or even GUI applications with JavaFX I've done over 5 years of Java programming, I'm done.
Python as of right now is HOT! It's marketable, it's one of the top growing languages and used by beginners and experts alike and praised by many. It's an amazing tool to have in your arsenal of scripting languages, more so if you are a Linux admin like me. I write plenty in Bash but sometimes you need a little more power, and Perl is dead. It's a general purpose language so this means I can use it for anything and everything.
So currently my planes for python include my continued knowledge of SaltStack and I also plan on using python on my IoT for now own by using micropython, All security projects will be written in python. And I think my websites would benefit from python if I can combine it with Cython or even better by being more polymorphic and combining my backend with Python + Crystal or Nim