Welcome to Centmin Mod Community
Become a Member

Frameworks A Discussion on Modern Frontend Frameworks

Discussion in 'Web Development & Web Performance' started by Atrix, Dec 3, 2019 at 6:35 AM.

  1. Atrix

    Atrix Premium Member Premium Member

    24
    6
    3
    Oct 7, 2018
    Ratings:
    +20
    Local Time:
    11:20 PM
    1.15.3
    MariaDB 10.1.36
    I'll make the summary in the first statement: I have not run across one I think is good for web developers, or the businesses they are used for as a whole. Quite the opposite in fact I find them detrimental on several factors.

    Hype Driven Development sums up my view on them.

    I wish however to discuss this with others here, thus this thread. Varying perspectives are nice, as is validation of your own thoughts. Keep it civil though please. Do not resort to ad hom (attacking the person, rather than ideas). Not only is it bad form but it discredits your view.

    I will go through several modern frameworks used in frontend development and link others (negative) takes on them I agree with not entirely but for the most part.

    React and Redux
    React and Redux are a joke right?

    This post is nice because it doesn't come off as old man yelling at clouds and has actual code examples to illustrate his points.

    What is more, Angular people seem think of React a lot of the time as a lazy version of Angular for bad developers. You can see some hints of that in this thread. devRant - I hate React.js with a fucking passion. It sounds great on paper, but once your project gets any size. The mental recursive loops of passing data around is insane. Not to mention keeping consistency a cross metric shit ton of components. How do you manage it?

    Ok so maybe it's just React right? You should never listen to someone just coloring all users of a framework as a certain type of person, but Angular is used a lot so lets investigate that one maybe it's just React that is to blame.

    Angular
    https://medium.com/hackernoon/why-angular-made-me-quit-web-dev-f63b83a157af

    This article is definitely more biased and has less code examples but I think it very well displays the frustration of someone who has had to use Angular quite a lot.

    So here is another source from someone that used Angular 1 a lot too. Again someone who has used the technology extensively. The bullet points in his conclusion read especially true.
    https://medium.com/dirtyjs/why-angular-2-4-5-6-sucks-afb36567ad68

    And another one:
    https://gist.github.com/Igogrek/36d47f7547b679e7dab2bc595e36c0e9

    One thing I do not agree with these two articles on however is any love whatsoever of typescript. I remember in college when I was learning to be a programmer that dynamic typing was sold as one of the great benefits of interpreted language. Then you get typescript coming along and specifically taking that functionality away to make it more like a compiled language. In my view, for no benefit outside more error reporting that wasn't needed in the first place. It simply adds complexity where it wasn't needed. Just like the framework that uses it.

    Vue.js
    I actually haven't found much negative info on it yet, but there's pro/con criticisms one of the cons being complexity. It's newer though, and a pattern has shown that people think something is great, get on the hype train, and then realize it was all a mistake only to get onto the next one. Due to the fact it shares so much in common with React and Angular I see it going the same route. I feel I only have to wait a few more years for the testimonies to roll in like above frameworks.

    In looking over its guide, it already does one thing all the others do wrong, making it take more lines of code to achieve the same result as simply using native JS or even jquery.

    I have found "Why React is better than Vue". So if that has any merit and we know how bad react is then that doesn't bode well.

    Knockout.js
    I hear even Magento2 is looking to get away from it after basing their store on using it extensively. A common search term is knockout.js is dead 2018. Here is an article explaining the lifecycle of javascript frameworks. (spoiler they are short and frequent). https://stackoverflow.blog/2018/01/11/brutal-lifecycle-javascript-frameworks/

    This article also points out one huge issue, that javascript frameworks are hype driven development.

    LESS AND Sass
    http://blog.millermedeiros.com/the-problem-with-css-pre-processors/
    While not specifically a javascript framework they are often used in tandem with them and have similar issues, for those that don't know it adds extra "features" to css allowing you to codify loops or variables within css and then generate a css file from the result.

    It is not only entirely unnecessary and bad design in my view to do this added complexity in CSS files, it adds a "compilation" step to making css changes. CSS 3 is extremely powerful on it's own and there's nothing you can end up with result wise that you can't get just smartly utilizing classes in your templates. CSS even supports native variables now, though I'd also suggest against using those most the time. Don't be afraid of search and replace it's been around forever and works quite well.

    I've never encountered a spot where I was thinking "I'm so glad this has SASS". Ever. More "Man now I have to deal with this other over engineered thing that doesn't serve a real purpose at all".

    The Travesty Of Over-engineering (My Conclusion)
    I am not a psychologist so I can not give a well researched opinion on why humanity is like this, but I can surely say it is. We over complicate things. Perhaps it is status, perhaps it is job security, perhaps it is the ability to call or make someone else feel stupid if they criticize your bloated over engineered thing (so again status), or perhaps it's just ego and a desire to leave a mark, even if that mark is manifested through pure BS and harm to the thing you left your mark on.

    It certainly does harm though. It creates longer development cycles for the same results, which results in lower productivity per developer, which results in higher costs to businesses. It also leaves one feeling empty and like they wasted 75% of their time fighting a system rather than building a solution. It doesn't help that most of the time when someone speaks up against these things, defenders of it exist who have vested interest in it for whatever reason; perhaps they spoke up about and it got their company to use it, perhaps that is how they make their living, perhaps they are just on that hype train and believe the lies they have been fed.

    Often too the criticism leveraged is either a No True Scotsman Fallacy (well if you did it RIGHT like a TRUE react developer you wouldn't have this issue) or simply Ad Hom (Well I guess you're just bad, maybe programming isn't for you). These are the marks of tribalism, not valid discussion. I also think new tech can be used as a way to gatekeep people. Ted spent 3 hours learning the new tech, over the weekend, and Dave didn't. It doesn't matter that the new tech is harmful to development, Ted knows something new, in tech. And Dave doesn't. So Ted gets more clout. Ted should be fired, and Dave promoted, but hey, Ted knows something NEW (even though it is not new at all, most these frameworks just are same iterations on the same stuff that has existed elsewhere too just not been as prominent and bad).

    In writing, I was told brevity is not only the pinnacle of good writing but is harder to achieve. It is HARDER to achieve simplicity. Not easier. Complexity is something to be constantly iterated out. Not years spent on ways to make simple things complex. There is a clear differentiation between a feature that is necessary, and introducing ideology into your code for the sake of it. Abstraction is ruining development and has been since at least the 90s.

    Thanks for reading if you did, hopefully we can have a nice civil discussion and such discussion is welcome on these forums, I have found these forums to have a pragmatic approach to things, as in, we like what gets good results. Centminmod itself is built very pragmatic. After using cpanel for years and hating it, Centminmod was a breath of pragmatic sanity.
     
    • Like Like x 1
    • Informative Informative x 1
  2. eva2000

    eva2000 Administrator Staff Member

    42,269
    9,550
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +14,708
    Local Time:
    4:20 PM
    Nginx 1.17.x
    MariaDB 5.5/10.x
    Thanks for sharing - I am no web developer and couldn't write javascript if my life depended on it :LOL: There was an interesting conference talk by Tim Kadlec at Performance.now() 2019 Amsterdam conference (should have a youtube video too at https://www.youtube.com/watch?v=JvJ0v5OohNg). Slides from talk talking about frameworks and page load times and blocking browser main thread processing at When JavaScript Bytes by Tim Kadlec

    Look at React's performance - slowest of them all

    upload_2019-12-3_7-7-44.png
     
    • Informative Informative x 1
  3. diy

    diy Premium Member Premium Member

    35
    20
    8
    Jan 14, 2019
    USA
    Ratings:
    +34
    Local Time:
    1:20 AM
    nginx 1.17.x
    MariaDB 10.4.x
    You're right. Make work. Not solutions. Rinse. Repeat.

    Reminds me of cattle walking single-file toward the barn every evening. :)

    Humans are funny like that...
     
    • Funny Funny x 2