Unnecessarily Complicating Front-End Development To Feel Like A Smarter Person(medium.com)
medium.com
Unnecessarily Complicating Front-End Development To Feel Like A Smarter Person
https://medium.com/@julienetienne_/unnecessarily-complicating-front-end-development-to-feel-like-a-smarter-person-5e555fe650ed
18 comments
With a little discipline, namespacing, and good project organization you don't need a CSS framework either.
I am sorry, but modern frameworks such as Vue or React make you an order of magnitude more productive. And instead of waiting 6 months for a dev, I would consider training new ones.
Yes, you are more productive writing the easy stuff and then you loose time with esoteric bugs, configuration, training. Overall I would say less productive, but maybe this is only my experience.
Frameworks have improved immensely in the last few years. With Vue, I use the cli to generate the webpack project and then it works out of the box, bugfree (so far).
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.
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.
> I am sorry, but modern frameworks such as Vue or React make you an order of magnitude more productive.
That's quite a bold claim. Can you substantiate it in any way?
That's quite a bold claim. Can you substantiate it in any way?
Is it really that bold? The popularity of front-end frameworks has exploded in the past few years, and you would be hard pressed to find a team building an application without one. Clearly there's a reason people are making this choice.
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."
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."
> Is it really that bold?
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.
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.
Hype driven development appears in many disciplines. Javascript is exacerbated due to its lower barrier to entry (htmls/css hardly require cs degrees) but also how young everyone is, due to being mostly new developers.
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.
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.
Regarding CSS:
- 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).
- 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).
Sorry but the tone of this article rubs me a bit wrong.
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.
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.
My experience and my scars are very similar. I remember the old days of maintaining piles of random JS and CSS -- it is not fun and it doesn't scale beyond blog-size without very good planning. I work for a huge national bank and I despise having to work on our older code. Sure, React/Angular/Redux have a learning curve -- but my company is able to deliver features at large scale significantly faster (and with full test coverage!). I cannot overstate how much better developer quality of life has gotten.
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.
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.
> I also don't care to hear complaints about "HTML in my JS".
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".
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".
[deleted]
Yup. Whole industry is wrong. No need for better tooling. Web development is easy /s
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.
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.
s/cargo cutting/cargo culting
The only thing that I would use is a CSS framework.