Monday, November 9, 2015

I've gone too far

Long time no post. I have nearly given up on Perl, which is really sad given that I can honestly say my entire career is based on this language. My "heretical love" for compile time safety has grown even stronger, moving to even more "meta" safeties, courtesy of Java's "compile time annotations". For a long time I was happy with fields.pm, and "strict" mode. But if I am the type of person who makes fun of Python for having no compile time errors beyond syntax, then I can't look past Perl's limitations. With Java, I feel like "types" are a little more verbose, but you're either going to do the "if check" at runtime to make sure the variable is the appropriate type, so why not get the added benefit of verifying it at compile time? Course, I have to give Python it's due, threading and classes are so many orders of magnitude better than Perl it's not even funny. Then there's Boost::Python. Why couldn't there be a Boost::Perl? Man I hate XS. I want my "chocolate and peanut butter", and I don't want to program in Haskell, the only other language that seems to have the features I want in a language. So, I'm stuck with Java, until either Perl 6 "really comes out", or Go solidifies into a language worth investing time into. For now, anyone who scoffs at Java is quite literally insane. The tooling, debugging, IDE's, libraries, build tools, books, websites and documentation out there for this *wonderful* language is just way beyond anything else out there (almost all of it for free). Hoping for a better tomorrow with Perl, but happily "settling" with Java for now.