| This reads like a love letter to programming languages. You can never truly talk
about the quirks of a language without dabbling in it. And without experience with other languages - I doubt some of these quirks might even be seen as such. Error handling for instance has always been my pet peeve. With dynamic languages like python, errors were all "exceptions". But then golang came along and decided
they'd be values and that only the truly exceptional errors should be "panicked".
But the if err != nil syntax became super verbose only after I learned about the
Result<Ok, Err> from Rust and the matching syntax associated with it. A lot of people are shocked when they learn about ruby's monkey patching. I for one never truly groked the packaging of python applications until uv came along
to deliver an experience similar to npm. And I agree, Typescript is the state of the art as far as static typing on top of a dynamic language is concerned. But I never considered it a programming language.
More like a tool to assist developers write/manage large javascript code. In the end, I think the true reason for returning to pythong probably had more to do with getting a python gig. I live in the part of the world where my tech stack
ended up being influenced early on by the places I worked. I didn't mind learning Typescript for my first gig or improving my skills with nodejs. In the end, every language can really get things done. And Typescript helps me pay
my bills and I couldn't be more grateful. Learn to love the quirks of your language and stop comparing it unfavorably with others. To date, I've never seen a language as elegant as ruby. Nor do I find an ecosystem better than python's at data science. |