5 ms·
Unnecessarily Complicating Front-End Development To Feel Like A Smarter Person
- vikingcaffiene 9y agoSorry 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.
- cityofdelusion 9y agoMy 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.
- vikingcaffiene 9y ago> 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".
- deleted 9y ago[deleted]
- mattnewton 9y agoYup. 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.
- mattnewton 9y agos/cargo cutting/cargo culting
- GoToRO 9y agoI agree. With a little discipline, namespacing and a good project organization you can be very productive using only jQuery. No framework to learn, no need to update your app to the latest incompatible version (angular), you do not need to wait 6 months until you can hire a new developer. The only thing that I would use is a CSS framework.
- fvdessen 9y agoI 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.
- GoToRO 9y agoYes, 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.
- fvdessen 9y agoFrameworks 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.
- rhapsodic 9y ago> 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?
- jakelazaroff 9y agoIs 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-performance/ 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."
- sasaf5 9y agoRIP mobile data wasted on meme-GIFs
- wlfmn 9y agoNone of the gifs hit 1kb. This is actually a pretty lightweight page. < 1mb loaded.
- anotheryou 9y agoRegarding 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).
- dlwdlw 9y agoHype 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.