Most of that frustration comes down to tooling and more specifically TypeScript. I'm not sure how to succinctly express my pain here but I have found generally that I wrestle with the type system in TypeScript far more than native offerings.
Most of that frustration comes down to tooling and more specifically TypeScript. I'm not sure how to succinctly express my pain here but I have found generally that I wrestle with the type system in TypeScript far more than native offerings.
> I just wish Web wasn't such a frustrating development experience
It's got to be better than building to target two totally different platforms (and even more once you factor in tablets, Windows desktop/Linux/macOS) and then jumping through hoops to get your app packaged, reviewed, and updated consistently onto the target devices. > Most of that frustration comes down to tooling and more specifically TypeScript
I think that a lot of folks get frustrated with TS because they are coming at it from the wrong perspective. Instead of thinking about it like a static type system, think about it like "JavaScript with shape definitions". Give this a shot:https://chrlschn.dev/blog/2023/09/typescript-is-not-a-progra...
And if you want to have a lowest common denominator user experience that's fine but you shouldn't expect users to reward you for it. That's why successful apps tailor the experience for each platform.
Web apps and PWA's built with HTML and JavaScript are likely to work as-is for a decade or more given we are likely to see minimal incompatibilities with existing HTML, JavaScript, and CSS in that time and likely to see more net new capabilities.
> if you want to have a lowest common denominator user experience...
One is a native app with a budget in the millions built by dozens of engineers. One is a web app built by...me:https://youtube.com/shorts/bxs9ZpIJ6RM
Not sure that there's that much sacrifice when it comes to modern web apps.
Years ago I tried to up my game and learn to use grunt and babble and other build tools. However, I found the process extremely complex, only to end up with finicky systems that made me even more stressful, not less.
I decided to ditch all that PoS and do things the easy (and logical) way. Never looked back.
Most dynamically typed languages are adding type systems right now, and they all face the choice between rewriting/wrapping the whole ecosystem or build a very complex and ultimately unergonomic type system.
I have to say, having recently gone back to doing some web dev work (doing some dashboards with lots of D3 visualisations), I was pleasantly surprised to see how better things have gotten. working with CSS is better (with stuff like grid, flex, nested selectors), and JS is also much much better (import maps, fetch API).
I'd say for developing cross-platform apps it's a pretty good deal.
Now we can hope that those building blocks improve over time, but the current situation is so much better than it could have been.
I guess I can make myself more clear - the good thing about CSS is not the way it does layouts, but that it can do layouts on almost any device.
You can come up with a better system that runs on your own machine (1 unit of effort), but then you have to convince everyone and their dog to adopt your new standard (1 billion units of effort).
It really is amazing.
> Now we can hope that those building blocks improve over time, but the current situation is so much better than it could have been.
I think the web is under-appreciated in part because most people have never used internet connected GUI computers without it, but it's important to remember that there's no a priori reason for why the web had to exist.
In an alternate timeline we could be living in a world where all interactive software has to be reviewed by a gatekeeper. I wasted an inordinate amount of time playing with this a few days ago: https://news.ycombinator.com/item?id=39205020 and I remember thinking, it's pretty cool that you don't need anyone's approval to release something like this, nor do you need to pay excessive fees to distribute it, nor does it take any meaningful time to download/install, and yet it works on all my devices, and it's relatively secure.