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.

5 comments:

  1. Java's not bad at all IMHO, gets a lot of flack I think because its enterprise aimed. For a language with a lot of Java's pros yet maybe more familiar looking to exPerl programmers you might want to check out Scala. It runs on the JVM and can interoperate with Java libs and tools, yet feels more concise and has built in traits and things that feel similar to what we called Modern Perl.

    ReplyDelete
    Replies
    1. I've seen Scala, but I want MORE precise typing not less. I want typedefs. I want even more powerful generics (not templates, that's too far).

      I feel like as I get older, I just want to use the absolute best tools possible, and not be so forgiving with things that aren't perfect. I'm making a trade for sure, but it's one that I am happy to live with.

      Delete
    2. Scala has more precise typing. Because it is stronger typed than Java it can infer the types automatically, so you don't have to write them.

      It is basically the best of two worlds. You get type safety like in a static one and you still don't have to write types in your code like a dynamic.

      The worst of both worlds is basically Perl 6 gradual typing. You don't get any type safety at all like a dynamic one, and if you want type safety you still have to write the types like a static one.

      Delete
  2. I feel basically the same. Only difference for me was that i switched to C# instead of Java. At least for me Java would not be an option for me back then as it doesn't had lambdas. But at least with Java 8 that changed.

    Overall i felt the same like you. I feelt that C# was so inferior than Perl 5 that it was hardly to look back. Even after 1 year of doing C# i already said i never want to go back to Perl 5 ever again. And i'm also saying that as a Perl 5 dev that did Perl 5 programing over 10 years with all of the stuff from Moose, Catalyst and DBIx::Class.

    And i said the same, probably i just have to wait for Perl 6? But after that i started to learn F# and that basically killed all hope for Perl 6 or Perl 5 at all. I'm still reading Perl blogs as i i loved the language once and i spent over a decade programing in it, but now i just moved on, and i don't see any comeback anymore.

    As what Ryan Dietrich suggested it seems you better should look more deeply into Scala instead of Java. I think it will fit your needs even better.

    ReplyDelete
    Replies
    1. Yeah, 10+ years of Perl development here too. Sad, but I'm basically done. I do more python than Perl anymore, mainly because writing multi-threaded python is "fun" (really).

      Delete