5 ms·
For the most part, the class syntax in JS is just sugar over the top of Prototype based inheritance. It's not my preference, mostly in that it doesn't work wel
by tracker1 2y ago
For the most part, the class syntax in JS is just sugar over the top of Prototype based inheritance. It's not my preference, mostly in that it doesn't work well with too many layers of inheritance, and enhancement tends to work better imo. I'm also more in favor of a more functional/modular approach.
In terms of private members, you prefix # for that...
class MyClass {
#myValue = 6;
...
}
Plenty of languages don't have a "standard library" including, for example, rust... there are benefits and disadvantages to this. The benefit is you also aren't stuck with a poor interface for certain things. You can use Deno/jsr std if you prefer.
As for the rate of development... abysmal is not the word I'd use. JS in general has been prolific to say the least and nearly exponential in pratice.
In terms of reinventing UI... if it's just a retread, then why is it there hasn't been a better cross-platform UI toolkit developed? You can do more with HTML+CSS in terms of layout than any other UI native toolkit and even then, most fall short and are limited to only one or two platforms. That doesn't even capture accessibility needs and requirements.
Weak dynamic typing I can somewhat agree with. However, given the origin of JS was mostly for input validation, it makes a twisted bit of sense. Just looking at how falsy behavior works in JS makes a lot of sense, the only minor outlier is 0, but that being falsy in nature comes more from other languages than the subject area of JS itself. I do think that sometimes dealing with undefined, undefined as a value and null is a bit of a pain, and kind of wish that the concept of Option<T> was more prevalent when JS was created.
In terms of your favorites, I've used C# since before the first release and am very familiar with it. There's a lot to like. That said, it doesn't stop the environments that use it from turning it into a twisted, byzantine mess of layers of abstraction and indirection that destroy every bit of performance it's capable of in the name of "Enterprise" practices. I also like the C# language. I just hate most of the C# codebases I've had the displeasure to work in. It's far from exclusive to JS.
- troupo 2y agoI basically agree with your corrections/details, so no need to drag the discussion out :) Except this: > you can do more with HTML+CSS in terms of layout than any other UI native toolkit I cannot in my life understand how this worldview is so common. It's like no one has ever seen a native app before the primitive Electron and web apps that struggle to display a few lines of text. Turbo Vision from mid-1990s was arguably a more powerful GUI toolkit than HTML+CSS. Most of the things HTML+CSS for which pat themselves on the back were available in Qt in early 2000s. HTML+CSS have nothing on native UI toolkits: https://x.com/dmitriid/status/1424052288205856773 https://x.com/dmitriid/status/1424052288205856773
- tracker1 2y agoThere are some niceties about some native UI frameworks... that said, they still tend to have shortcomings. Often don't work or have a really poor experience for cross platform dev or deployments. It also doesn't necessarily cover accessibility integration, which I've experienced the most pain in dealing with (at least going back into the 90's, far less experience recently).
- troupo 2y agoYes, out-of-the box cross-platform is the main thing going for HTML+CSS. It's an undeniable fact. As long as you don't do anything fancy on the page, accessibility is now great for HTML, too. However, since it lacks everything that makes a UI useful [1], all the custom components everyone is busy re-making from scratch make the web a miserable place from accessibility point of view [2]. Much worse than native frameworks which often enjoy deep integration with the underlying OS's accessibility features. [1] See the work by https://open-ui.org https://open-ui.org and the many, many, many UI components most UI toolkits take for granted and have out of the box [2] And some of the work in the browsers made it worse: https://nolanlawson.com/2022/11/28/shadow-dom-and-accessibility-the-trouble-with-aria/ https://nolanlawson.com/2022/11/28/shadow-dom-and-accessibil...