Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've been distanced from web development for a year and you now have a cool new framework, ReactJS is surpassed by VueJS and probably some other packaging tools did something interesting and new opinions about how the same old things should be built are on the rise.

But I have a serious question: Why the web dev is still a relevant thing? Don't get me wrong, I won't argue that the web is dead and all should move into AI or VR or something but I am under the impression that most of the problems that can be solved through a Web UI are mostly solved. Sure people come up with interesting business ideas all the time but they usually don't require innovative Web UI tech and can be built just fine with 10-year-old frameworks.

How is the web world doing? Why would anyone keep creating cool new frameworks?



A lot of devs tend to feel that UI is something trivial and “solved”. The unfortunate reality is that UI related code gravitates towards being extremely messy, convoluted and harder to change over time. It changes more than other types of code, is really hard to test properly and has to handle coordinating events firing from all over the place. Add to this JavaScript’s lack of types and past testing culture and you can see how creating a framework that fits your needs can become an appealing option.


Writing accessible web interfaces have visually parity across a handful of browsers over a matrix of many devices, is so much more challenging than writing a scalable REST backend service.


Yeah, if there's a solved problem, it's CRUD microservices.

As long as we've thought enough about the design (db schema, service responsibility boundaries, etc etc) we can get a working microservice up in hours to a few days.


My personal view is that the 'what' in frontend development generally isn't super interesting and most web frontends are very similar; if you do not focus on new tooling, you will just do the same thing over and over which is unsatisfying.

If you're a very smart dev at one of the biggest tech companies in the world, getting paid a quarter of a million dollars per year working on a niche team that handles a small section of a single product, you will probably get bored pretty quickly and start focusing on the how. It's a shame really; some of the greatest minds of our generation are being put into rooms to work on animations for buttons on virtual DVD cases and Photo Books.

The silver lining is all these tools are given away for free. The tools so great and their corporate creators so cool that you can just have them! A cynical reading is that they are only given away because the competition can derive no value from them... In fact, forcing your competitors to retrain every 6 months when you release another major version that breaks all existing projects will only slow them down and fill your coffers! The new whatsapp will never get off the ground, because the devs were too busy rewriting babel files and the money ran out... you just saved a cool $18bn.

If these frameworks were really the key to anyone's successful business you would not know that they exist.


You said "My personal view is that the 'what' in frontend development generally isn't super interesting and most web frontends are very similar." I think if you take a serious look at Svelte you will see that it is much simpler than the current popular web frameworks.


> A cynical reading is that they are only given away because the competition can derive no value from them... In fact, forcing your competitors to retrain every 6 months when you release another major version that breaks all existing projects will only slow them down and fill your coffers!

https://www.joelonsoftware.com/2002/01/06/fire-and-motion/

As a sort of side note, amusingly, Microsoft is rarely included in the FANG-style acronyms. There's a reason for that, Microsoft is the granddaddy of FANGs, from a strategy perspective :-)


Or perhaps that the granddaddy of FANG-style acronyms, NOISE, was coined specifically to refer to Microsoft competitors; Netscape, Oracle, IBM, Sun and Everyone else.


> amusingly, Microsoft is rarely included in the FANG-style acronyms. There's a reason for that, Microsoft is the granddaddy of FANGs, from a strategy perspective

I propose a new law: "Every technical discussion in Hacker News is exhausted when stock market or cryptocurrencies are mentioned".


> if you do not focus on new tooling, you will just do the same thing over and over which is unsatisfying.

I have no idea how you go from "knowing what you're doing" to "unsatisfying"


> some of the greatest minds of our generation are being put into rooms to work on animations for buttons on virtual DVD cases and Photo Books.

why thank you sir!


I encounter this impression a lot and find it a bit confusing. I suppose this is what it looks like at a distance, because at a distance you see news and headlines, not practical realities. In point of fact, I think the VueJS boomlet is over, and I doubt its uptake got anywhere near ReactJS. The community has by and large settled on Webpack for building and bundling, and Webpack itself is quite stable after a few years of finding the right API and its proper place in the stack. Finally, the community seems to be converging on TypeScript, an eminently sane compile-to-JS language, and an increasing share of the ecosystem has increasingly robust TypeScript support


Your vision isn't based in reality. Have you seen the growth of vetur and vue browser extension weekly active users?

https://youtu.be/zB3HOejXqwk?t=302


Do you see a slide there that compares them to React?

The person you responded to didn't say "Vue isn't marginally popular", they said

> I doubt its uptake got anywhere near ReactJS...

and it didn't. You can read about that here -

https://hackernoon.com/angular-vs-react-vs-vue-which-is-the-...

Don't stop reading at the stack overflow opinion poll graph though because Google Trends and NPM trends tell a significantly different story.


Real stable right? Like MJS files for module loading? Real stability there. It's the inmates running the asylum. We use to have to deal with IE holding things back, now it's the JS/Node community.


No vuejs did not surpass reactjs.

In fact reactjs found an even simpler programming model and is leading with this new approach ... it is called hooks.

Vuejs is copying the same concept and in fact wanted to dump it’s old way to fully embrace react hooks style programming but that angered the vuejs community.


Don't get me wrong, I love hooks because I know how to use them, but there's so many easy pitfalls with them, and I constantly have to pester people about them in code reviews, if so many people in my company (and wider) misuse them by accident, it makes me me doubt how well thought out they are.

I know some people have a thing for arcane programming (for a lack of better word), but in my opinion it just makes code harder to write, understand, and even statically analyse.

Not to mention, the official lining for hooks leaves a lot to be desired for, especially because some internal React return values are treated magically by the linter (useState, useReducer to name a few) when it comes to hook dependency management.


I came across this problem the other day:

https://stackoverflow.com/questions/53332321/react-hook-warn...

I love React and my first experience with hooks has been mostly positive, but how is it that something as simple as data fetching is not completely sorted out by now?

It sounds abhorrent!


For a deep dive: https://dev.to/n1ru4l/homebrew-react-hooks-useasynceffect-or...

I think the current best answer is https://github.com/n1ru4l/use-async-effect

But as noted by your SO question, Suspense for data fetching is what we're waiting for. It was originally scheduled to be released the middle of this year but was delayed. https://reactjs.org/blog/2019/08/08/react-v16.9.0.html#an-up...


I'd say for 95% of data fetches https://github.com/slorber/react-async-hook works really well without needing generator syntax or explicit promise cancellation boilerplate. I'm not the author but a satisfied user.


I don't think React is really competing with Vue as much anymore. Solving the problems of a virtual DOM in a better way is a minor improvement compared to not having a virtual DOM at all. The older virtual DOM frameworks are competing with Svelte.


I wouldn't argue that hooks is a simpler programming model, except perhaps under the hood. The Hooks API is not intuitive. I'm sure once you get a hang of it it's not hard, but as a Vue developer reading Hooks code it's not very clear.

While there was some backlash to the initial Hooks-inspired style in Vue, they went back to the drawing board and came up with a better way to explain it to the community that has gotten a much better response. I also find Vue's API for "hooks" much more intuitive/readable than React hooks, because it maps pretty well to the old style of writing code.


I have trained a dozen or so developers on React and for less experienced developers, hooks are much more intuitive because they don't rely on an abstract understanding of arbitrary lifecycle identifiers, instead, hooks are explicitly executed in application code that is logically accessible to the programmer.


I have a hard time seeing how lifecycle identifiers could be called "arbitrary" except perhaps (again) from an "under the hood" viewpoint. From an API standpoint they are explicit and extremely simple.

I don't have anything against hooks except the API. There is no way for someone who isn't intimate with the ecosystem to understand the difference between these:

    useEffect(() => {
      document.title = foo;
    }, [foo]);



    useEffect(() => {
      document.title = foo;
    });


    useEffect(() => {
      document.title = foo;
    }, []);
Whereas anyone can understand `componentDidUpdate`, `componentDidMount`, `componentWillUnmount` just by reading them.


>> Why would anyone keep creating cool new frameworks?

That’s a weird question because the answer is so obvious. There’s massive innovation in front end development because billlions of users are using ever more sophisticated applications created by millions of programmers backed by virtually infinite money. Of course people keep looking for and finding better ways to do things. Do you think that process has come to an end?

You must be trolling.


See, all the innovations are about code management and tracking. There has been nothing new for users for many years. In 2004 Gmail made AJAX popular and updating pages without reloading was a big deal. Later we had rounded corners, video without the Adobe Flash player, then came the websites that fit the screen size(the responsive web stuff) and later, we got some WebSocket stuff making possible real-time communications even snappier than AJAX.

That said, this is 15 years of time and the innovations came as browsers got better, IE died off but all these JS frameworks were always about making the codebase nicer.

Is there anything new for the users here? If not, why keep spawning new frameworks? Do these frameworks make anything better for the developers? In my experience, the JS world is a giant mess mostly because of the excess of frameworks that do the same things essentially.

That's why I felt burned out of web dev. I found out that all these frameworks that are supposed to make something easier to do are only making problems infinitely complex.

There's nothing new that you couldn't have done with 10 years old frameworks but now you need specialized knowledge on tons of tools.


The reason there are so many frameworks for UI out there is probably due to the same response you are having.

People doing a lot of web development wanted to make their lives easier but found the way other frameworks are doing it to be really convoluted. So they created their own framework which makes perfect sense to them.

As a developer getting into this, just pick any well-maintained framework and you should be able to get your job done.


> There’s massive innovation in front end development because billions of users are using ever more sophisticated applications created by millions of programmers backed by virtually infinite money.

There's no real innovation on the web. As another commenter pointed out, all the "innovation" is around tools. And even those innovations are meh at best.

Web has been busy reinventing things that desktop programming has had probably for decades, and what mobile development has had for years. And that's when we consider tools only.

On the app/client side the situation is even more bleak and dire. We get a 100th store implementation. A 1000th drag and drop implementation. A 10000th file upload manager. A 100000th state manager. A...

The "ever more sophisticated" applications can barely scratch the surface of native apps. And the actual more sophisticated apps like Figma are busy re-inventing and re-building the past 20 years of desktop UIs from scratch [1].

It's not innovation. It's a hamster wheel race.

[1] https://www.figma.com/blog/building-a-professional-design-to...

--- quote ---

Pulling this off was really hard; we’ve basically ended up building a browser inside a browser.

The reason this is hard is because the web wasn’t designed as a general-purpose computing platform.

--- end quote ---


I thought it was a fair question.

For people not expert or completely current in web development - especially in the context of a field not unknown for jumping on every shiny new magic bullet - it's quite reasonable to ask what major problems are arising that need a new framework learning every week.


> it's quite reasonable to ask what major problems are arising that need a new framework learning every week

The answer is simple: someone read a new chapter in the Gang of Four's book.


Sure people come up with interesting business ideas all the time but they usually don't require innovative Web UI tech and can be built just fine with 10-year-old frameworks.

That depends on your definition of 'just fine'. I can develop a lot faster with fewer bugs today using React than I did using jQuery a decade ago. That means the apps I build cost less (or more commonly my clients get more functionality for their money). They seem think that's a really big improvement.


Of all the things I've heard over the years no one has ever said jquery created more bugs than react that's why I switched. Or that it was faster to develop.

Slower, bundling sizes, hard to maintain, doesn't manage state, complexity is messy but never few bugs or slower to work with or different to understand.


Of all the things I've heard over the years no one has ever said jquery created more bugs than react that's why I switched. Or that it was faster to develop.

I didn't say jQuery created more bugs. I said I write jQuery code that has more bugs. It's not jQuery's fault at all. What it means is that the way I work is better suited to writing things with React because React is closer to the way I think.


All of those things are intimately connected.

If jQuery were just as fast to work with and had the same bug count, it wouldn't be harder to maintain. It takes time to work out what jQuery code is doing which means it takes longer to modify the code. That difference in readability also leads to a higher chance of bugs due to misunderstanding something.

The one case where this does not hold true is when your site only needs a few click handlers or something else that is simple (and in those cases, you should probably be using jQuery -- or just the normal DOM now that compatibility is less of an issue). But that is not what modern JS app devs deal with.

The entire reason for using Handlebars on top of jQuery was to move toward declarative programming in order to reduce bugs and speed up development time. React was more declarative, functional, and native (use JS builtins instead of embedding a turing-complete DSL) along with also being massively faster. React was marketed more on performance than anything else at first, but that was mostly because Handlebars and backbone had already solved the worst parts of jQuery in large codebases -- procedural UI and holding state in the DOM.


> is surpassed by VueJS

The web world is the wild west (and I kinda like it) but I don't think we're even close to React being surpassed by Vue.

There was a lot of talk about stars on github for Vue but I'm not sure people star what they work with every day, or at least that it means much relative to other projects.


For performance and to improve the development workflow.

WebAssembly looks amazing. Much faster web applications. Then you have stuff like Hudini which will let you create custom DOM elements and allow open source web frameworks to provide really sane DOM element offerings.

WebAssembly has the largest potential. Just look at Microsofts Blazor project. If you do any .NET Blazor looks even more amazing! Then Microsoft also has React Native for Windows.


> For performance and to improve the development workflow.

If it's for performance, the community as a whole seems to have failed entirely. Svelte looks like an exception, sure, but websites generally use more CPU time, more RAM, more bandwidth than they did 10 years ago even when they don't do anything significantly different, functionally.


I was looking for a multiselect autocomplete component the other day. The only useful I found was from SemanticUI, and it's not quite configurable enough. I'll have to roll out my own...


Because we want to achieve the same thing while writing less code. Because browsers advance and new APIs become available everyday. Because we now write web apps in places where there were no browsers before, like smart TVs, smart watches, etc.


> ReactJS is surpassed by VueJS

Is it though?

- react weekly downloads 5,672,972

- vue weekly downloads 1,090,292




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: