Yep I control the stack, and I want it to be typescript.
At this stage, I don't think anyone needs to try and persuade anyone why JavaScript and typescript are the Lingua Franca of software engineering.
Performant, expressive, amazing tooling (not including node/npm), natively cross-platform.
An absolute joy to code with. Why would anyone want to use anything else for general purpose coding?
In my mind there are two alternative approaches in the current ecosystem: C++ where absolute 100% maximal performance is the overriding primary objective and be damned with the consequences, then for everything else just use Typescript
It still doesn't have basics like tuples/records or pattern matching.
Something as simple as a map with two integers as a key, or case-insensitive string keys, requires jumping through hoops. Even Go and Python can do this.
> anyone why JavaScript and typescript are the Lingua Franca of software engineering.
I mean, it obviously isn't, although for web development, I'd probably agree with you. But regardless, zealots who hold opinions like this, where there is "one language to rule them all" is why discussing with TS peeps is so annoying. In your world, there is either C or TypeScript, but for the rest of us, we tend to use different languages depending on what problem we're solving, as they all have different strengths and drawbacks. If you cannot see any drawbacks with TypeScript, it's probably not because there aren't any, but you're currently blind to them.
> Why would anyone want to use anything else for general purpose coding?
Because you've tasted the world of having a REPL connected to your editor where you can edit running code live and execute forms. Just one example. There are so many languages available out there when you control your stack. I understand using JavaScript for frontend web stuff, because you have no other options, and I personally have nothing against JavaScript itself. But for the love of god, realize there is a world out there outside of your bubble, and some of those languages have benefits too.
Do you know what it means? A lingua franca is able to facilitate communication between many parties who do not have a common mother language. JavaScript most certainly does not fit that bill. You could argue C is the lingua franca from the side of the CPU since C runs everywhere, it is literally meant for that. A portable assembly.
C does not run everywhere - you need to compile it to a binary per-platform and per-architecture first, then your platform+arch specific binary only runs on that specific combination... And even then there might be dynamically linked libs to worry about.
You may as well call binary (i.e. 1s and 0s) the Lingua Franca in that case.
Lets not get started on C build chains (especially cross-compiling) ... cmake Vs cygwin Vs msvc Vs whatever else these days with hacky-and-brittle ifdefs conditionals everywhere just to make it work - chaos! JavaScript just runs on pretty much any modern computer you can sit down at or put in your pocket, and even on more exotic things that don't have it installed by default you are about 10 seconds away from installing the official package and you are off and running.
Obviously "Run everywhere" is after compilation. No language works without some kind of processing, and no machine code is not a language. Even if you'd call machine code a language it cannot be called a lingua franca by definition since it's designed to be architecture specific. I'm not sure why you are even start with linked libs, or even linking or libraries at all. That's far removed from the language itself, the C language standard does not prescribe how to link even. It's an implementation detail.
At this stage, I don't think anyone needs to try and persuade anyone why JavaScript and typescript are the Lingua Franca of software engineering.
Performant, expressive, amazing tooling (not including node/npm), natively cross-platform.
An absolute joy to code with. Why would anyone want to use anything else for general purpose coding?
In my mind there are two alternative approaches in the current ecosystem: C++ where absolute 100% maximal performance is the overriding primary objective and be damned with the consequences, then for everything else just use Typescript