this post was submitted on 08 Sep 2023
57 points (70.2% liked)

Programming

17503 readers
18 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 14 points 1 year ago (2 children)

Tl;dw: it's too much "type-gymnastics" when developing a library.

[–] [email protected] 27 points 1 year ago (1 children)

I clicked, sorta interested in the topic because as it happens I just abandoned Typescript in favor of learning Go for a little nascent project I'm working on. (We do these things not because they are easy, but because they eventually will be good which Typescript+Node apparently never will for my particular project.) Then I saw it was Fireship and clicked back away.

Now it sounds like you're saying that what they're claiming is the issue is the one good thing that happened with Javascript in the last however-many years. Yes, it's a little tedious to have to straighten out all your types. You know what's more tedious than that? Having to straighten out all your types, but not getting any feedback about it at compile time and having to figure it out based on mysterious failures, or if you're lucky explicit exceptions, at runtime.

Having worked for a while in Javascript, and now for a pretty short time in Typescript, I cannot imagine trying to make a decent-complexity project in pure Javascript. That I believe is why they tend to not really be all that object-oriented and pass strings around for lots of things and be sorta flaky.

[–] atheken 13 points 1 year ago* (last edited 1 year ago) (1 children)

Yeah, dropping typescript and then codifying type information in jsdoc is comical.

The only thing I would say about your experience is that “dropping TS for go” is a little bit misleading, and it doesn’t really sound like it bears on the general debate of “TS vs. JS” - go and other static languages generally fit a different niche in my opinion, and can be a better option for certain kinds of systems.

If you’re building anything of even moderate complexity, or with more than one person, you really need the types and modularity that TS provides.

I guess it’s also worth noting that JS has actually been influenced/adopted some key features from TS over the years, so it’s possible to do a few things with it to make stuff that’s a bit more maintainable.

[–] [email protected] 4 points 1 year ago

Yah, 100% agree. So in my case, Typescript is actually a better fit niche-wise... but I finally reached the point where I didn't want to cope anymore with flawed things it was inheriting from Javascript, so it was especially ironic to me when I saw this and thought maybe I'm not the only one, only to discover that the message was "SIIIKE we love the flawed things! It's the improvements we're getting rid of."

I mean every project is different and they've got a right to do what they want. It was just a hilarious surprise for me.

[–] [email protected] 4 points 1 year ago (1 children)

Too be frank, it is pretty short but your summary is on-point. I would only add, that Svelte also dropped it due to the additional compile step.

However TS can still be used in most of the frameworks including Svelte.

[–] [email protected] 8 points 1 year ago (2 children)

I wonder how Svelte's code is built to make this tradeoff worth it. I've been using TS for a long time and in every project the compilation part was the shortest task in the whole build process, especially when you compare it with bundling or running unit tests.

[–] [email protected] 5 points 1 year ago

If that's what this video is about then it's a lie (I'm not going to watch that bait). Svelte did not move away from Typescript. Svelte just moved from TSs custom syntax to TS-in-JSDoc. They are still using the same types and TS compiler to fully enforce type checking their code.

Their reason isn't that TS is bad, just that the IDE experience is bad redirecting you to .d.ts instead of source files for libraries.

[–] [email protected] 3 points 1 year ago

Afaik it had more to do with another layer of abstraction then with compike time.