I just can not understand some basic things related to the world of modern web'a.

Here are the frameworks: Angular, Vue, React. Is it a frontend or backend framework? The question may have seemed quite stupid to you, but I asked it very reasonably: I do not understand why Angular (for the time being I will only talk about it, but on the whole, everything said is true for the rest) is positioned as a frontend-framework, while in various articles mention MVC, routers and similar things, which, in my opinion, are only related to the server? I can not imagine why you need a router on the client side, for example.

On the other hand, Angular is installed via Node's package manager, and Node, as you know, is a server. It was also embarrassing that it is present in the HotFrameworks rating, which, it seems, only evaluates backend frameworks. And it is present there along with such frameworks as .NET MVC, Ruby On Rails and others, the “serverness” of which I personally have no doubts about.

Again, on the other hand, I personally saw files like angular-min.js on the client side. In general, I am completely confused and ask for help to figure out who is who, what is what and what is needed for?

I apologize in advance if the question is very stupid and I missed some obvious thing. Thank.


Also, after the question exclusively regarding Angular. Angular and Angular.js - is it the same framework? Or 2 different?


Flight of thoughts after the question has already been asked.

I was also embarrassed in all this confusion about the fact that they all (sort of) give out some kind of "component" and "virtual DOM" for their main features. And how I can compare the interface components and any DOM with the server - I have no idea.

There is, for example, express. And his “serverness” for me is beyond doubt, because there it is immediately clear what tasks the framework is going to solve.

The same with ROR. Although he imposes his point of view on the frontend, he nevertheless remains backend'ovym. And about ROR. There, as I recall, they also introduced some kind of integration with React and Vue. But what is she and what to do with her, I have not found anywhere.

  • one
    This is all frontend. The router on the client received demand with the spread of the History API, i.e. when the client got the opportunity to change the URL in the address bar. And MVC is a completely independent concept, not related to the client server. No, Node.js is not a server, but an interpreter. The programs executed by it, can be server web applications, and can not be. And no, the installation goes through NPM (which is written on Node.js), which does not at all require the modules to have the code for Node.js - React Native modules are executed on the JSCore, although they are distributed via NPM; and in general, there are NPM modules on Sass! - D-side
  • @D-side with the router is very clear, thank you. I know perfectly well about Node.js, I just put it that way, they say, it’s clear that this is used on the server side, and not that it is the server itself. But as for NPM - this is really a disaster, as for me. And surprisingly, for cases of the frontend-like, the same Sass'ov was invented by Bower, who was bent successfully. - smellyshovel
  • @ D-side and what did not write back? Well everything seems to be in business. - smellyshovel
  • I started it. Then, realizing the scale of the problem, I wrote out the closing statement "too general." - D-side
  • @ D-side Yes, it seems quite specific. Frontend and feontend. And the point. But thanks anyway for your time. - smellyshovel

1 answer 1

Is it a frontend or backend framework?

Of course, frontend. The fact that you are accustomed to seeing the routers on the server does not mean that they are not used anywhere else. Now the client has a full-fledged API for managing the address bar, not to mention the fact that when loading the SPA at /index.html#!/about or even simply /about it he needs to understand which page to load. All these frameworks can have server support (for example, for server side rendering), but their primary task is to work in the user's browser.

On the other hand, Angular is installed via Node's package manager, and Node, as you know, is a server.

A node is a regular application that, among other things, can control sockets, but de facto it is not a server. Installation is reduced to the banal downloading files, so in theory you can install it though through a browser, it will not become a browser.

Summing up, I’ll just say once again that these are frontend frameworks, aimed primarily at generating and working with HTML pages. They can be used on the server (first of all, for the same purposes - generating HTML), but these are secondary tasks that have emerged due to the requirements imposed by reality, such as rendering finished HTML to search engines.

  • Well, about the "Node - server" I have already explained in question in the comments. Just put it incorrectly. Only the last part remains unclear. How can these frameworks aimed at dynamic management of the interface and presentation in general correctly generate pages on the server? After all, there is not even the same address bar yet? - smellyshovel
  • @smellyshovel it is sent to the server when requested, and in response, the framework can generate the page in exactly the same way as it does on the client - just the environment will be slightly different, for example, there will be no document . If you look at the HTTP request with any sniffer, then the first line will be something like GET /about HTTP/1.1 , where /about is exactly the specified path - etki