• hperrin@lemmy.ca
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    10 hours ago

    It’s just strict typing on top of plain JS. I like strict typing. Some people like loose typing.

    • arcterus@piefed.blahaj.zone
      link
      fedilink
      English
      arrow-up
      9
      ·
      9 hours ago

      I’m pretty sure most people do not like JS’s loosey-goosey, who-knows-what-ur-gonna-get type system, which is why TS is so popular. Not really surprising since the bones of the language were basically spat out in a couple weeks. TS is a custom type system on top of JS, meaning it’s not just JS’s type system expressed through strict typing. They added a bunch of useful features like discriminated unions and so on to make using TS more pleasant than raw JS.

      TS is actually usable (although NPM and the environment built around it still suck). It’s inherited a bunch of weird shit from JS, but the type system generally makes them bearable.

      • hperrin@lemmy.ca
        link
        fedilink
        English
        arrow-up
        3
        ·
        9 hours ago

        Have you ever looked at the original JS implementation? It looks nothing like what JS is today. Saying the bones were spat out in a couple weeks is like saying Linux was developed in a few months.

        TS transpiles to JS, and any JS is valid TS. Take any TS, remove the types (and some syntactic sugar) and you have JS. I feel like if you like TS but not JS, you just don’t like loosely typed languages. That’s just a preference. It doesn’t make a language bad.

        • arcterus@piefed.blahaj.zone
          link
          fedilink
          English
          arrow-up
          5
          arrow-down
          1
          ·
          edit-2
          9 hours ago

          Have you ever looked at the original JS implementation? It looks nothing like what JS is today. Saying the bones were spat out in a couple weeks is like saying Linux was developed in a few months.

          And yet working groups have spent literal decades trying to make JS less shitty. The fundamental basics of JS can’t be changed in backwards incompatible ways without breaking a huge number of websites. The Linux comparison is just wrong because Linux has broken backwards compatibility to fix problems. A better comparison would be Linux’s policy to never break userspace. Backwards incompatible changes to JS would break a bajillion websites, much like breaking userspace would break a bajillion programs.

          TS transpiles to JS, and any JS is valid TS. Take any TS, remove the types (and some syntactic sugar) and you have JS. I feel like if you like TS but not JS, you just don’t like loosely typed languages. That’s just a preference. It doesn’t make a language bad.

          JS is valid TS. TS is not valid JS. This is the fundamental point. TS essentially fixes issues that JS cannot fix without breaking the world.

          Loose typing is fine if the language’s type system isn’t insane. I prefer static typing, but as long as the type system is coherent, it’s not an issue.

          TBH IMO the only reason JS became popular is because it was provided by web browsers, and if you wanted to make your site do anything complex, you thus needed to use JS. This eventually led to the JS VMs being very fast, so Node was created, and now it’s all over since you can learn one language for web and server.

          • hperrin@lemmy.ca
            link
            fedilink
            English
            arrow-up
            1
            ·
            13 minutes ago

            JS has been made less shitty. I’ll give you that old JS was pretty shitty. Like v5 and lower were a huge pain. But a lot of that was because of the lack of modern language features that other languages had at the time. ES6 introduces some huge improvements that made JavaScript much less frustrating. Personally, at this point, I have very few pain points with the language.

            I don’t think being included in browsers is the only reason JS became so popular, but it’s definitely the biggest reason. That doesn’t make it a bad language.

            Backwards incompatible changes have been introduced in JS a number of times. They are opt in at the script level and enforced in newer language contexts.

    • SaharaMaleikuhm@feddit.org
      link
      fedilink
      arrow-up
      1
      ·
      6 hours ago

      Yes, but some are VERY opinionated about it. It’s almost religious with them. I think it’s silly. Both have their pros and cons. I honestly enjoy both and never had a big issue with loosely typed languages. I assume it’s just bad developers that mess up and get confused about it.

    • ChickenLadyLovesLife@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      8 hours ago

      I started my career with Visual Basic (3!) and I appreciated the loose typing because it meant I could get going and actually have something running quickly as a newbie. A few years later I switched to C# and saw how an entire class of errors disappeared because of the strong typing. Both have their place, depending on the skill level of the coder and the needs of the application.