• sandriver@beehaw.org
    link
    fedilink
    arrow-up
    20
    ·
    1 year ago

    Reading the responses here, why are people so mad about types? Maybe I’m biased coming from a background of statically typed languages and mathematics. I’d rather have a good typing system that makes me think about data than just hoping I’ve thought about a problem right.

    • wewbull
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      1 year ago

      I’d rather have a good typing system…

      So not typescript then.

      I’m half joking, but the problem with typescript is that it’s JavaScript with types. The industry needs to stop retrofitting types to dynamically typed languages. The type system is an intrinsic part of the language design and if you’re going to have it, it should be there from day 1. Being dynamically typed wasn’t a language bug. It is a feature designed for a certain class of problem. I’m sure 90% of proponents only want it so they get better completion in their IDE, but I personally think it makes a lot of code far more difficult to read.

    • abraxas@beehaw.org
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      I have valid criticisms of statically typed languages, based around code patterns that are both expressive and efficient that are either difficult or impossible to implement in a statically typed language without “an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.”

      Typescript, however, is different. Its type annotation functionality is not the same as a static type system, which means I get to keep all those things I like about dynamically typed languages while still having compile-time validation.

      Flip-side, however, is the complete lack of runtime validation in typescript, and the fact that junior developers trip on that a lot. I would call that a real advantage of javascript (if not enough to stop me from using Typescript). Having no check at all is better than being convinced typescript is protecting you when it’s not.