I was talking to my manager the other day, discussing the languages we are using at $dayjob. He kind of offhandedly said that he thinks TypeScript is a temporary fad and soon everything will go back to using JavaScript. He doesn’t like that it’s made by Microsoft either.

I’m not a frontend developer so I don’t really know, but my general impression is that everything is moving more and more towards TypeScript, not away from it. But maybe I’m wrong?

Does anyone who actually works with TypeScript have any impression about this?

  • ShaunaTheDead@fedia.io
    link
    fedilink
    arrow-up
    0
    arrow-down
    1
    ·
    3 months ago

    I don’t really get the appeal of strongly typed languages. Can’t you just use try/catch blocks, and/or use functional programming and return early if the data structure of whatever you’re working with isn’t what you expected?

    I guess it can help older code easier to maintain because the expected data structure is right there, but you could also just include it in a comment above the function.

    I personally find TS slows down initial production of a project and raises so many unnecessary errors.

    Is there some huge benefit that I’m missing? Because I don’t really get the appeal. I mean, I do on some level, but I don’t really understand why so many people are absolutely obsessed with TS.

    • DumbAceDragon@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 months ago

      Let me reverse this question and ask what is the benefit of dynamic typing? What is gained from vaguely defined objects?

      The purpose of typed languages is to ensure the bare minimum when it comes to safety. That when you’re accessing a field of an object that field is real, and that field is always going to be an int or a string.

      Try/catch only goes so far before it becomes way more cumbersome than necessary, as is checking every field of an object.

      Typescript is an example of a language that does static typing poorly, because by design it has to. It’s a quick bandaid fix over an inherently awful language.

    • SorteKanin@feddit.dkOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      3 months ago

      Can’t you just use try/catch blocks

      No, because what if whatever you’re calling is updated and suddenly it throws a new exception where before it didn’t? Python or JavaScript or other interpreted languages will never warn you about that.

      if the data structure of whatever you’re working with isn’t what you expected?

      That sounds like a whole lot of boilerplate I have to write to verify every time that something is what I expect. Static typing does that for me much easier and more reliably.

      Some languages like Rust have so good type systems that often when a program compiles, it just works. You don’t have to run the code to know that it functions if you only make a small change.

      What kind of systems have you worked in? In small systems, the static analysis doesn’t matter as much, but the benefits become bigger and bigger the more code there is to analyze.

    • towerful@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      3 months ago

      I like typescript because my API can generate types for my FE project.
      So, if i change my API, i pull in fresh types and fix the errors, and i get in-ide hints for the shape of payloads, responses and events. Not everything is simple CRUD.
      Also, if you pull in a library, having types is a godsend