Unnecessarily Complicating Front-End Development To Feel Like A Smarter Person
medium.com
medium.com
Clearly the author didn't spend enough time in the bad old days maintaining massive piles of CSS and JQuery vomit to appreciate why modern approaches are the way they are. If an app approaches any degree of non trivial complexity on the front end, a framework like react or angular can really pay off. On the other hand, if we are just talking about a little vanity site or something that isn't going to need to be maintianed long term, by all means go old school. Just don't tell me that it's better in all cases because I've got the scars.
I'd challenge people opposed to more complex frameworks to consider the challenge of delivering code at scale in the old-school style (say, Java EE with JSPs with shared components across multiple million-line applications, with 50% legacy code > 20 years old).
These newer frameworks were created for a reason. I had some doubts at first, but I've seen huge productivity gains.
I also don't care to hear complaints about "HTML in my JS". You only need to code a large application one time with a nest of document.createElement calls to see the rationale.
Yeah that critique never held much water with me either. When JQuery and other "unobtrusive JavaScript" frameworks came out, it seemed really logical to separate the markup from the logic but, as applications aged and changed things started getting really hairy. I worked for one company that literally could not change any of their front end markup because they had tens of thousands of LOC that interacted directly with the DOM via class and ID selectors. Everything had to be done with CSS which of course led to massive CSS files with 30k lines. Working with something like that made me appreciate a more modular approach that React or Angular bring. Being able to compartmentalize your code into these logical blocks is MUCH easier to manage in the long term. One of the golden rules of programming is "write code thats easy to delete".
The only thing that I would use is a CSS framework.
And then you can work with truly reusable single file components, and you don't have to manage the dom manually, ever (unless you want to). This alone is a game changer. It's like going from C/OpenGL to Unity3D.
That's quite a bold claim. Can you substantiate it in any way?
This article by Tom Dale (one of the creators of Ember) explains it really well: http://tomdale.net/2015/11/javascript-frameworks-and-mobile-...
Key quote: "As apps grow, you tend to need the abstractions that a framework offers. Either you or the community write the code."
The claim in question was:
> I am sorry, but modern frameworks such as Vue or React make you an order of magnitude more productive.
And yes, that really was that bold.
This classic paper has held up pretty well for three decades:
https://en.wikipedia.org/wiki/No_Silver_Bullet
> Clearly there's a reason people are making this choice.
Maybe they're just following fashion because they don't know any better. Maybe they're trying to gild their resumes. Or maybe they really do have a problem that a particular framework solves or mitigates. There are doubtless many reasons. But it's a huge leap of logic to base on that, a claim that frameworks make you an order of magnitude more productive.
There is some truth in this article. Younger people are more concerned with looking cool or smart. Due to the tone though, I suspect the author conpletely misses the point of many js frameworks.
An analogy i've been thinking about is tools to cross distance. From walking to cycling to driving to flying. No one will argue that a plane is just a fancy form of flying, with years of schooling and experience being unnecessary. However hardcore runners may look down on cyclists as they can have similar speeds yet maintain the flexibility of 2 feet for climbing, jumping, etc...
In this analogy, rather than distance as attrition(you can technically walk from sf to la for example), it's state complexity. I don't think complexity has grown to plane vs walking levels yet, and it's possible to consume your tools benefit by taking the long way b/c you can move faster (adding unnecesary complexity to use the complexity management tools). I think it's still important to understand and separate the original purpose of tools and their potential, and separate it from how it's actually used (often naively).
The article in the end is trying to create a schism and stratify developers rather than create understanding. That's something I highly disagree eith.
Making things more complicated by cargo cutting patterns isn't unique to the front end (looking at you, AbstractFactoryBuilderInjector dot Java). It is however different from using those patterns to reduce complexity or otherwise aide in the development of big systems.
- I still need prefixes for old funky phones
- I like or actually need SCSS (try changing the action color across a huge project without it or try overriding some CSS framework defaults).