TypeScript is now the most-used language by CircleCI users
techradar.com
techradar.com
I avoided TS for a while because I thought it was just another project like coffeescript which I never liked but once I started down the 6to5 path (now called babel) it was stupid-easy to to try out TS and I fell in love. Code completion is so much better, it brings more sanity to JS, prevents foot-guns, works great with a team, and gives me confidence in my changes/refactors.
Now I write TS exclusively aside from some legacy JS that doesn't have (and never will) a build pipeline. I even wrote my backend for a side-project fully in TS and quite enjoyed it. I've not played with Deno yet as it's feels a little too early for me (I don't really like living on the bleeding edge with some exceptions) but I'm super excited to see it progress and grow. TS, for all it's advantages, is still held back by the need for a packaging/build step and since TS is built on top of JS there are always some rough edges. Those rough edges are more than worth putting up with in my experience and I look forward to the future of TS.
The report: https://circleci.com/resources/2022-state-of-software-delive...
the only objective advantages of javascript is the availability of libraries and being able to build web applications with a single codebase. Beyond that, the only other reason people go with javascript is the ease of hiring js devs like cogs in a machine which is self fulfilling as then new people always go to js.
But js is an objectively terrible language. Downvote me if you want but I spent years getting good at rooting out different classes of production bugs in javascript. Its not a good platform to build rock solid highly reliable infrastructure. A good developer can certainly do it for the same reason you can write good software in any platform. sqlite is written in c after all. But the language will lead you towards all sorts of dangerous bugs until you've spent years learning how to wrangle it.
As for "business decisions" yea optimizing for easy hiring is how you end up with using javascript to write native mobile apps. a platform constrained in memory. You could make the argument that its afine for simple apps but how many startups died trying to push react native past what could be reasonably performant? I'll grant that v8 has done an excellent job at optimization but javascript the language isn't doing it many favors. Just about every startup that gets anywhere eventually backs away to native.
Then there's electron. Beyond cross platform, The real big reason is you can throw a ton of javascript devs at it. Why bother prioritizing things like efficient battery usage? It would be amazing if some of that mindshare went to cross platform UIs for rust...
Anyways, thats my rant. This is not to say javascript is never useful. certainly not all javascript devs are lazy but there are a lot out there who only know javascript. You cant evaluate all options if you don't have a frame of reference to evaluate all the options.
me: Senior nodejs dev for 8 years before jumping to elixir because its design bypasses whole classes of issues javascript devs regularly run into when scaling.
Node.js and React Native are much easier to argue against than JavaScript for the web. It's pretty rare to pick something other than JS for an interactive website (although that is starting to change).
I've used React Native for a few years. RN is fine, fast enough for most use-cases. They somewhat recently built a custom JS engine called Hermes that's even faster than v8.
> Just about every startup that gets anywhere eventually backs away to native.
I really doubt that, but regardless not everything is a startup. Your banking app or that parking app you have to download and use only once will work just fine with the slowness of React Native.
That said I like Flutter notably more than React Native (imo Dart is slightly better than TypeScript and way better than JavaScript), and I guess I agree with your larger point, that people aren't exploring their options enough. Flutter might often be the better choice, but people reach for React Native out of familiarity.
Bad take. Learning tools is the means to an end. Being able to minimize tooling time and focus on productive output is what makes the JS stack so popular.
Golang and Java are both tilted more towards performance and enterprise-friendliness than dev productivity and JS/TS are in the middle of the spectrum.
All of which is to say, I’d love it if people branched out more from TypeScript, and the whole set of JS ecosystems, more than they do. But I don’t think disparaging them does anyone any good, or fairly reflects their talent, dedication, curiosity, or any other quality of their being.
1: I’m saying this as someone who very much would like to learn lower-level programming but have almost totally put it off for several decades.
2: I’m also saying it as someone who clung very firmly to the familiarity of first PHP, then JavaScript, until I had a really compelling reason to learn FP on the job.
3: I’m also presently spending some part of my current vacation time learning math pertinent to an art project, rather than picking back up learning Rust. The math is actually more challenging for me in a lot of ways, and learning Rust would be more personally rewarding in some. If I were better disciplined, I’d be reacquainting myself with a guitar, rather than trying anything new with a computer.