3 ms·
IME, this tends to be a problem with frameworks in general: the goal, after all, is essentially to create a new platform on which to build, but that implicitly
by Shog9 12y ago
IME, this tends to be a problem with frameworks in general: the goal, after all, is essentially to create a new platform on which to build, but that implicitly invalidates a whole lot of knowledge your potential users have of the underlying platform.
In other words, you're asking folks to not just learn something new, but also forget something they've perhaps invested a great deal of time and energy into already.
Sometimes, that tradeoff is worthwhile. But it's never free.
- logicallee 12y agogood point, but a sunk cost. New programmers, such as young* developers learning front-end architectures for the first time, never learned all of the underlying platform. So they can spend the next ten hours achieving x amount of progress in pure javascript, or y amount of progress coding atop a framework. As an analogy, the difference between x and y is why, in decades past, so many inexperienced programmers started coding C without ever learning assembly - and then later, so many people started codig in a high-level interpreted language without ever learning C/C++. (Which may have been the language the interpreter was coded in, or even available directy if they needed it, such as in very performance-oriented code.) * a general observation, more rigorously read: inexperienced.
- Shog9 12y agoThat only works if the framework actually does work as a complete platform, though - that is, if you can get away with forgetting (or never learning) the underlying platform once. To go back to Angular, it would mean forgetting all about the non-Angular-friendly parts of the DOM, events, etc. and never needing to use them again. I haven't written any assembly in many years now, but for a good while it was still pretty important to maintain that knowledge - you never knew when you'd need to use it for a routine here or there that was just too slow or cumbersome in C. And still, long, long after that, debugging C required at least some assembly knowledge if you wanted to get home in time for supper. And this is where I see folks getting into the weeds with stuff like Angular: if you completely forget (or never learn) the underlying platform, it's entirely too easy to get stuck when it comes to debugging or even performance issues: you know it shouldn't take 3 seconds to render the page, but if you can't look under the abstraction then you're hosed. So eventually, you're stuck learning the whole stack anyway. And now it's not a sunk cost: you have to forget what lies beneath every time you sit down...