Hello. :-)
>Please log a bug.
I'll check if the bug opened last year (as Node 16 tightened ESM resolution... start to remember?) is still open.
But nevermind that.
What I really want to ask you, is about this introduction:
>I love you. You do amazing work. You are gods among mortals. You have brought JavaScript from the darkness, and given it the warm light of strong typing. Look upon us, the cowering meek masses, and understand that we live in the muck and mire of a world where we are doomed to endlessly crawl on our bellies through the alleys of Github seeking the one true npm. We will forever wander in the dark, until we have a type reflection model.
(source: https://github.com/akutruff/typescript-needs-types i.e. TFA, as of 2023-07-08T00:05:20Z)
Had you read this text before I just brought it to your attention?
What were your immediate feelings regarding its tone?
Did you enjoy being addressed like that?
Or were you embarrassed?
Or did you just brush it off as a harmless, playful display of "nerdiness"?
Or something else entirely?
What would it take to convince you that, if someone needs to debase themselves to "endlessly crawling on their bellies" to get your attention as a platform vendor -- or veer towards the other extreme (as in the case of my rants) -- your "solution" just might have become part of a bigger problem?
>Hundreds of Github comments have been rehashed on this issue over and over again. Import paths are not modified during compilation, and we're not going to modify them during compilation, and it isn't because we haven't thought about it before and just need to spend another hundred comments arguing about it.
>The general tenor of discussion here is not great and I don't think this is likely to lead to any further productive discussion, so I'm just going to lock this.
This issue. Apologies if I haven't referred to it precisely enough haha
So is it still "no idea", or is it actually "let's pretend we don't hear him, maybe he'll go away"?
---
Listen, how about I just tell you why I'm asking you all those weird little questions. I mean you're a busy man, you'd wonder "what's the ploy here" and decide it's safest not to bother answering them, anyway.
I understand that you, like any software engineer, like to work on impactful and meaningful things, and consequently take a measure of pride in your work; so could I, for a certain project, had I not allowed myself to be pressured into building it in TS - by people with no skin in the game, only the current majority consensus on their side ("all JS bad, but TS least bad").
Let's summarize the original post:
- Someone humiliates themselves, literally begging to be heard out.
- They bring forth a huge list of things that, beyond reasonable doubt, prove that their concern is valid.
- They are pointedly ignored, or rebuffed with some form of "I don't know what you are talking about" or "seems like a you problem".
Seeing this dynamic begin to play out in a feature request (out-of-left-field as the whole thing may be), well, that struck a fucking nerve, let me tell you. This has been my exact experience with TS (and no other programming language), when trying to address matters including, but not limited to:
- Whether to use TS at all (which I shouldn't have conceded to in the first place.)
- Whether TS can be adopted gradually (in my case it took multiple rewrites.)
- Whether I'm just imagining that I'm not gaining much by using TS (I'm not.)
- Whether I'm just imagining that I'm experiencing drawbacks from using TS (I did.)
- Whether TS is "just JS with types" (which is about as true as C++ being "just C with classes".)
- Whether the help implicitly offered, conditional on me using TS because "that's what everyone uses now", will ever materialize (which it didn't.)
- Whether I was using TS of my own free will (which is only true insofar as I rose to the challenge of accomodating others' supposed "discomfort" with good ol' JS.)
Every time I raised any of those questions, I was faced with gaslighting. And yes, in the end I did fall as low as begging my teammates for help - after all, didn't I just rewrite working JS into nearly-working TS so that it would be more accessible to others?
Unrelated subsequent experiences taught me that the (former) coworkers in question might have been just as lost with TS, and even more lost with the JS ecosystem in general (whereas I feel mostly at home with it, coming from Python), but they were reluctant to take accountability and hence admit vulnerability. Well, whatever, that one's on them. And now it's on me to speak out against such insanity as enabled by your product.
When I see someone publicly putting themselves through the same situation (or pretending to - what's the difference when everyone is on so many layers of irony that it's not even funny anymore?), and it's not Clojure or Rust or Zig or Nim or Julia -- or JavaScript -- but fucking TypeScript once again, and it's not even their coworkers that they're addressing in this manner, ridiculous in its sheer desperation, they're talking to the fucking upstream, then I'm not going to be a "good sport"; for me this rapidly turns from "some stupid thing someone wrote on the Internet" into a matter of professional conscience.
Why did OP have to communicate in this acutely self-deprecatory manner? Is it perhaps because of a systemic issue in how the TS project handles feedback? Having personally experienced the same dynamic when discussing TypeScript, it seems such toxic communication has "trickled down" from upstream to us "cowering meek masses", i.e. the developers of Web-based software, i.e. the people who really should know better.
For me, this is because TypeScript is not honest open source software. Say it honestly for all to hear: am I wrong to say that the direction of TypeScript is determined by Microsoft's interests first, and the interests of the community a distant second?
The stock phrase "incredibly privileged" makes me sick, but in this case you, Ryan, may truly not believe how privileged your position is in comparison to downstream developers around the entire globe. You're not giving non-technical users buttons to click; you're literally imposing your will on an existing community of fellow programmers, leveraging the unlikely synergy of Microsoft's marketing machine and the open source community's network effects.
On Monday, you will keep moving TypeScript forward; freely benefitting from the community's input on how to do what you're already doing, but even better; and just as freely ignoring the community's input on whether you're doing the right thing in the first place.
Meanwhile I'll still recovering from the way your technology ended up impacting my life, no exaggeration. If even 1% of JS/TS users have been through a similar wringer as myself, that makes for how many people hobbled by your work? Calculate, and consider.
All the best.
They are literally groveling. That should tell you enough. Cringe af
Just consider how far we've progressed since the 90s - instead of helplessly cursing at a distant Microsoft, we now have the freedom to beg them to make the shit that they're forcing down our throats a little more nutritious! And a realistic chance of them hearing us, maybe even responding: "hell, are you really stupid enough to think that we're feeding you shit because of its nutritional value?"
Embrace, extend, extinguish is part of Microsoft "corporate DNA". TypeScript amounts to a wildly successful social engineering attack against the open Web development community. Its purpose is to subjugate, plain and simple. It's "open source" just as much as it's a "superset of JavaScript" - which is to say, it isn't either, but pretends to be. And nobody bats an eyelid.
There was a phase (2010s) when JS-to-JS compilation was not only a valid approach, but a necessity. Rolling out ES6 to the heterogeneous browser landscape was a tremendous feat in distributed, decentralized, public computing. It was also Microsoft's opening: "JS transpilers are becoming a jungle; now is the time to make the One True Transpiler which accidentally only kills JS!" So they did, to great success: how many newbies you see learning how JS works, before making an informed decision whether they need TS or not?
But while rookie programmers with oodles of talent and ability to learn (and the occasional stroke of beginner's luck at achieving the impossible) are busy enthusiastically developing learned helplessness from wrangling the TypeScript toolchain (and the other cancerous growths on the Web ecosystem, take your pick), they can't empower themselves. If they can't empower themselves, they can't innovate. If they can't innovate, they can't fight the lumbering shoggoth that is the surveillance economy. If nobody takes down the surveillance economy this generation, bad times for everyone. Am I explaining this simply enough?
We've even got the TS lead in this comment section (but of course)! And he's probably ready to question my mental faculties (in friendly, polite American) for relating my lived experience (and the only remotely sane explanation for it that I can conjure). Because his salary depends on that or smth. Hello Ryan, have you folks fixed TS generating invalid ESM imports and telling people to suck it up in the documentation[0] yet?
And how do you feel about people "ironically" humiliating themselves to beg you for stuff (unrealistic or not) - considering the author of that README addresses you and your team as something akin to demigods?
[0]: https://www.typescriptlang.org/docs/handbook/esm-node.html "This might feel a bit cumbersome at first, but TypeScript tooling like auto-imports and path completion will typically just do this for you." Yeah, no.