Hello, my name is Vladimir and I am
an anonymous developer of desktop applications for Windows. In this place, everyone should say “Hello, Vladimir!”, And someone might add “Well done, that you realized!”. And then everyone pats. No, really, sometimes I get the impression from reading Habr that it’s normal, no, not even “normal”, but it’s permissible and approved today to write only microservices for some startups that will send data via some REST API to some frontend on Angulyar, which will finally show the user something incredibly useful, like a table with aggregated reviews on the hairstyles of poodles with the ability to look at googlogs where in your city you could make such a haircut to your poodle (carrying exist). And there are no other programs to write, no, no! What nonsense ?!
Yes, a lot is happening today on the web and on mobile devices, but, you know, far from everything. Much of the applications are still desktop software. And even (oh, horror!) Not under Mac Os or Linux, but under that godless Windows. And, you know, this software lives, develops, is supported and is the daily working tool of millions of people. And it is not going to migrate anywhere, because there are reasons why it is the desktop application that is sometimes the best option.
Desktop software works without Internet
The work of the user will not be interrupted by the fall of the pillar to the Amazon data center or a skilled tractor driver in a neighboring yard. All the power of Krivoruk sysadmins provider, Great Government Firewalls, would-be hackers, cloud services, which in fact are never cloudy - all this is powerless for software that does not need the Internet to work. The user comes to work, opens his Autocad \ Maya \ PO_ by_the_of_of_of_of_of_of_of_books - and gets his result, which will bring his company money. And nothing more is needed.
')
Desktop software licensing is simple and straightforward.
No, there are, of course, originals, which the incredibly successful licensing model “in a year turn your program into a pumpkin” is replaced by an even more successful “in a year your program will roll back all updates and turn into pumpkin seeds”. But it is rare. Basically you buy a program, activate a license - and it works. Anything that doesn’t bother her authors in the head - at least this version will not stop working for you! A 100% guarantee that tomorrow you turn on the computer and this shortcut here will launch the same thing that worked yesterday - is this not wonderful? Can you expect the same guarantee from the website? Yes, damn two - we recall the recent history with some popular movie service. Well, okay cinema, and if something like this happened to the resource, which is tied to your work and salary?
Desktop software looks the same every day
By installing some version of the software, a person can learn to work in it quickly and efficiently. Over time, you learn keyboard shortcuts, you are no longer looking for one or another button, you know what will happen now and how long it will take. The work becomes predictable. If the manager in the plastic window installation company has already calculated 100 windows in some specialized program, then he can tell you the time of the 101st window calculation to within a couple of seconds. And he will be right. Can we rely on something similar with web services? Yeah, overclocked. How did I once infuriated Gmail, who invented such filters as tags every 2 weeks, then tags, categories, 5 different types of UI, or chat, or something else bald. Just give me my mail and change nothing! No, this is not possible, it is necessary here ryushuchku and here ikonochku. Well, okay, I'm going to Outlook. With the desktop software, you yourself, at least, decide exactly when it will be updated and to which version.
Desktop software available for expansion
Often, desktop software has a plugin system and there are ready-made plug-ins that you can download and install. Well, or there is an SDK and you can write the plugin yourself. Or pay for its development. And even if there are no plug-in systems, there is still something yes: there is an interface that can be automated using something like AutoIt, there are input and output data formats that can be parsed, there are, in the end, binaries that you can disassemble and correct something \ understand \ add. No, this, of course, is often impossible to do under a license, but if you really need it, this is a question of the life and death of humanity, then it is at least physically possible. And what about the site? Often, we either have nothing at all extensible, or there is an API that is limited just enough so that nothing useful can be done with it. Well, thank you very much.
Desktop software works
In the desktop program, I do not need to tell the user that he has an old version of IE or not Flash or Java is blocked — I will simply install everything I need with the installer. I do not need his permission for geolocation or access to a folder with photos - I will register his consent to this in that license agreement, which everyone accepts without reading. I have access to the gland. I have disk access. I can write anything, and not engage in a heroic solution of tasks like “how to transfer data from one browser tab to another” or “how to sign a payment using a hardware cryptokey”.
With desktop software, faster start working
This seems paradoxical - after all, the installed software needs to be downloaded and installed, and the site can be simply opened in a browser. But let's see what will happen next: desktop software will start by double-clicking on the icon and immediately ready to go. While the site is likely to ask you to register (a tedious procedure, I suppose they will force you to solve the captcha), then send you a letter to confirm the mail, then ask you to log in. If we are talking about paid services, then the desktop program must be paid once, and the site will most likely be asked to sign up for regular contributions. As a result, download a couple of megabytes and 2 times click "Next" in the installer it turns out much faster jogging on a rake when trying to start using a fashion site.
Desktop software runs fast
Yes, yes, I know that Javascript on benchmarks is already
2 times faster than assembler . Yes, at least 10 times these benchmarks will show yours - something does not go so far that the last Call of Duty and GTA in browsers. In the old manner, Baitics are driven by the ancient native code. And what are they? They do not understand anything, apparently.
Desktop software can be controlled
It is possible to check itself an antivirus. And the installed program is possible. And it can also be run from a user with limited rights. Or in a virtualka. Or limit the firewall. Data from it can be saved locally, and you can - to a remote drive. You can save. You can delete. What can be done with this website? You have no idea what he will do with your data, where he will save, to whom he will sell, when he will lose, why he will not save money and why he will leave it after deleting your account.
Why in the habrareality surrounding us (and not only) so little attention is paid to desktop software and so a lot of information about web and mobile development?
Everything is simple - but no one yet knows how to write all this correctly. Desktop software had a couple of decades to develop its own rules, approaches and features - and in general, it did it. Someone who wrote 15 years ago on Delphi can write on it and not even now say that everything has changed a lot. The answer to the question “How to show message box in .NET?” Was answered long ago and has not changed since. All the main frameworks and libraries have been formed and settled down and today very few people will risk banging their fists on the table and declaring that your WinForms \ WPF \ Qt \ VCL is wrong and now I’ll get the checker and show it right! And in Javascript and Mobile, this happens every few months. Here and circles on water go from this.
And now I'll chill a little bit.
Of course, web-based products are needed. And mobile need. And even the software that I am writing has such versions. And in the desktop version, respectively, and authorization, and calls to the REST API, and even all sharing and likes, be they wrong. This, however, does not cancel the above, since the addition of the functional ryushchekami is good, and the positioning of the ryushechek as a functional itself is quite the opposite.