3 ms·
Perl -> Python user here: one of Ruby's strengths is metaprogramming features, which is why it's a natural fit for DSL-building problem domains like config mana
by wenc 8y ago
Perl -> Python user here: one of Ruby's strengths is metaprogramming features, which is why it's a natural fit for DSL-building problem domains like config management. I would say Chef and Puppet probably made the right choice.
I went the Python route instead. For me, my choice at the time was a purely pragmatic one based on ecosystem. Python simply had the stronger one at the time for most of the problem domains I was working in, and this continues to be true today.
Ruby is syntactically more elegant though -- it has a Japanese Zen-like quality. I really wanted to like it, but I knew it would mean living in a world where I had to reimplement, possibly badly, the stuff I needed to do the rest of my job.
- wink 8y agoMaybe from a developer standpoint, but from a deployment standpoint I absolutely disagree. I've never been a huge Perl fan (except for oneliners) and I still insist I would've had a happier life in my ops role if Puppet had been written in Perl. Mind you, I hardly ever dug into the source code, only used it, but I'm pretty sure a lot of the packaging/deployment/speed/memory problems could have been alleviated by using a language runtime that was available on every host system and in a usable version as well. All the omnibus packaging wasn't good and Puppet on low-memory hosts has always been terrible. I do think Python would've been an even worse choice at the time because distros were shipping ancient version of it for ages (e.g. 2.4) and nobody was really using that, whereas Perl modules have traditionally been shipped as distro packages in a rock-solid state forever.