incoming mild rant. You're creating frameworks that claim to make one thing easier but complicate 5 other things.
Scripting languages that claim to make writing javascript easier that only compile to vanilla javascript are creating monsters.
We're creating so-called "developers" that can't even right a simple, functioning, script with vanilla javascript. We have to push jQuery and Vanilla javascript to the forefront again. Again, sorry for the rant.
For the love of all that is holy, stop with the languages. Please stop with the meaningless compilation of words that compile to assembly!
You're creating languages that claim to make one thing easier but complicate 5 other things.
Languages that claim to make writing assembly easier that only compile to pure machine code are creating monsters.
We're creating so-called "developers" that can't even push to the correct registry with assembly. We have to push C and pure assembly to the forefront again.
While I agree that if you use a language that compiles to javascript you should have enough javascript skills to debug the "compiled" code, this new wave of javascript elitism/purism is not good. Rants like the one in the original post, and to a less extent replies like the one from @tomhodgins, look borderline millitant, and only serve to alienate newcomers. Having a sensible relation to frameworks and languages that compile to javascript is a good thing. Purism and elitism is not.
so I read your post, and I agreed. Then, there was a wild We have to push jQuery and your whole rant collapsed...
On a more serious note: Yes, frameworks are abused in many situations, however they have their use-cases. I imagine building Hashnode would have been a lot harder without React! It's not important to get rid of frameworks, but to know what you do. Be a careful software architect. Use the right tools. Read this.
If your level is good enough to design the app architect as well, you don't need to use any framework. Let's define the components by yourself then provide your team the guidelines, code convention, interface, etc. So that everything will be under your control :D
Ironically and slightly contradictory to your article (but mostly in agreeance), I find one of the most abused libraries today is jQuery. It pains me when someone includes the entire 10,000 line file to just use AJAX... And yes I do know that most users have a locally cached jQuery lib :P
I like you and you are absolutely right.
Join the dark side (BunnyJS) and help me make JavaScript simple, great again. There is a Gitter room, you may join and for me it would be very interesting to talk to you about many kind of topics and as a nerd I'm sure you have many other interests as well.
Cheers, Luv, Peace.
This is why I'm just sitting back and waiting / watching. Eventually this must end. When it does and everyone realizes this was for the most part a waste of time and made new programmers "dumber" by bypassing the basics - those of us that actually know how to use a language without a framework win! :)
Preach it!
The foundational languages of the web: HTML, CSS, and JavaScript are so flexible and powerful that most of these frameworks 'help' by limiting freedom of expression as much as they do promoting a standardized method for solving problems.
In reality, most of the problems frameworks claim to solve can be worked around by simply digging a little deeper into the language you're working with and making use of that extra expression you're giving up when you use a framework. I see it all the time with CSS, and so I can only imagine how much worse the problem must be for JavaScript (which is many times more expressive than CSS).
Every time you use a framework or a tool you're using an imperfect abstraction of the language it works with, so if you find yourself using two, three, …or ten tools to write code in one language it's probably not making it easier, it's likely limiting the scope of what you are free to express normally that would solve your problem, and instead you're left with only the overlapping parts of the language that all tools share in common.
It's really no wonder people get stuck so much the more tools they add to their stack!
Frameworks are excellent libraries of ideas, and sometimes even best practices, and also act as time capsules allowing developers to reference ways things were done at a certain point in time, or when needing to support certain browsers. New developers today may not be able to find information about how to support IE8 for example, but by reading through the source code of frameworks that support IE8 the techniques that they need will be demonstrated. The don't need to use the framework to learn from it.
When you are producing frameworks or themes based on a framework, which other developers will be further modifying directly.
If you have a team of developers with varying skill levels it can be more comfortable for junior devs to adhere to a strict ready-made system prepared by more senior devs instead of trying to make their own. Eventually the goal is that any professional developer working with a language would eventually be that senior dev who is able to create precisely the framework that is required for a project.
There may be other uses, but I think the way most frameworks are used as base building blocks for everything is turning software developers into 'quiltmakers' instead of 'weavers'. If the web was like a piece of clothing, some people are busy making fabric pieces and other people are busy stitching pre-made sections of fabric together. Maybe it's a time or energy savings to make a quiltwork out of ready-made parts, but you're going to have a hard time creating clothes that look unique and fit well when you're assembling the garment from the same patterns every else grabs instead of making your own patterns, or even cutting your own fabric based on those patterns without using them directly.
Jody Christian
Fronted Developer UI Nerd
what I meant about pushing jQuery along with vanilla javascript is that most newbies are curious about more advanced dom manipulation techniques. jQuery is merely a set of tools that supposedly making "writing javascript" easier. In think jQuery is a good foundation for someone wanting to learn more about javascript and it certainly peaks a their interest and want to dive deeper into javascript.