Myth one. The use of
Myth Two or “Bias.”
Myth three. Brakes
There are some subtleties here too. I think we all remember our first steps on the Internet in the browser Internet Explorer, when everything was slow. For some reason people have long been of the opinion that JS is a slow language, and that it makes no sense to do serious things with it. Meanwhile, from personal experience I can say that JS can be very fast. But it depends on the runtime. Google’s V8 (JS engine) is being actively developed now, which executes code at a pretty fast level. Yes, it is slower than C++, but it’s worth discounting that CSS design and HTML tags take some time to read and render. However, this is if we’re talking about the interface. Without rendering (interface rendering), the code execution speed increases quite impressively. V8 itself is written in C++.
Threshold of entry
If you begin to learn C++, you will have to get acquainted with the development environment, with compilation tools, with debugging of such an application, and God forbid, you will learn build tools too, you will go nuts.
But, you get used to it very quickly, and then the work becomes as easy as possible. In the process of work you get familiar with the language, you learn a lot about data types, and that you can not mix them, and that what works in JS, here, alas, will lead to a mistake.
This is a most incorrect comparison. It is like comparing airplanes and sandwiches. Unrealistic, if only because they are in different categories.
C++ – compiles into a computer-understandable language.
Next, let’s go into the Desktop application, and before we do, let’s make two more points.
C++ is versatile in any use and allows you to write applications of any complexity and focus.
Now about interfaces.
In C++, the situation is slightly different. Since we are talking about Desktop, the set of possible elements to use is limited to the library of graphic elements. QtWidgets or WxWidgets. In most cases, they are of course sufficient, since almost all of the programs with an interface are collections of fields and buttons. The visuals in this case are just a set of standard elements.
However, you should pay tribute to the HTML&CSS, the interface, built on it, looks the same on all platforms and operating systems. And you can customize everything – from colors to fonts. If you are not familiar with the flexibility of CSS, please google it. Believe me, you will be pleasantly surprised with the variety of design options.
Building an interface in C++ is more difficult, it is more tied to the libraries and difficult to extend.
What functionality is usually needed when developing Desktop applications: interface organization, input/output processing, file access, possibly database and network access, multimedia, and that’s about it. Of the basics, that’s about it.
C++, of course, has facilities for organizing any level of functionality, full file access, access to OS systems, and… an infinite number of options.
Together, the combination of NodeJS and Chromium gives full access to all parts of the OS, and the ability to use NPM packages brings the functionality of programs to the level of applications in C++ in terms of interaction with the OS. Moreover, you can put some parts of your applications into modules in any language and use them inside your own application (google child_process in NodeJS).
The bottom line is this.