About the benefits of application programming, or why I chose the unpopular Visual Basic

As a programmer, thanks to the rapid drop in memory prices and a doubling of the computational speed every two years, you have a choice. You can spend six months rewriting cycles in Assembler, or spend six months playing drums in a rock band, and in each of these cases your program will work faster. Assembler programmers have no fans.
Joel spolsky


I always wondered - why Basic is so unpopular among domestic programmers, while in the West it has a significant distribution. The suspicion was creeping in that, in the open spaces of the former USSR, all programmers are Chelyabinsk and write directly in machine code, so they cannot write in such a high-level language as BASIC due to the lack of keys other than 1 and 0.



Inspired this post.

It so happened that the first programming language (PL) with which I tried to solve applied problems turned out to be Visual Basic (version IDE 6) - since there were clearly not enough qualifications with other PLs, in addition, my university specialty was not related to IT sciences. My father had (and has) a bus station, and at that time he needed to keep track of customers somehow - accordingly, he had to create something to solve the simple logic of accounting client - machines - orders - work - spare parts and reports on everything to this. Open source software at that time did not exist, 1C cost a lot. As a result, the written program was sold to two more service stations, which I consider, as for the first experience, a good result.

Around the same time, many of my peers, also still students, had already studied Delphi, C ++, and Java. My knowledge base on YP did not grow much (I had little experience with php4), the ideology of OOP was not in demand for me. Personally, I did not understand what practical benefit it is to me to understand the organization of memory in C or the same encapsulation, if I do not use it anywhere in practice. Now I also look at all sorts of agiles and kanbans.

And now, after years, I was visited by this thought: PL is a technique for solving a specific problem, no more and no less. Motivation when writing a program is a solution to a problem, not the fact of writing a program; the effectiveness of solving the problem does not consist in the quality of the created tool, but in accordance with the required quality, the quality realized. Everything seems to be trite. Visual Basic, like YaP, is really simple enough for a beginner to work with it. Visual Basic is complex enough to implement almost everything that other, more complex, language tools can implement. It is universal, it is like Windows in the world of computers, from the point of view of universality, of course. Moreover, after a decade and a half, he practically has not changed and lives in his classic implementation in VBA!

Now, already working as an IT manager in a representative office of a large western company, I had to look for ways to solve other, much more complex applied problems. About three years I allocated a fairly limited time to solve one project. At the moment, this my project includes a database server and application server, add-ons for Outlook and Excel. But my daughter is growing up, whom I wanted to see not only sleeping peacefully in my crib, but also in the evenings to be able to play with her, teach her and learn myself.

Undoubtedly, if I initially found a contractor for this project, I would have spent a lot of time with their analyst - perhaps even more than I spent on my own implementation - and, ultimately, I got a kosher system with a database and an app server, then in one particular company happiness would come, right? But somehow not yes. For the requirements of a business in a dynamic environment change with space speed, and working with an external supplier takes a significant part of the time, a lot of it is spent on various approvals, budgeting, etc.

Of course, aksakals could advise to have their own development staff within the company, who would be engaged in development and support. But this is bad luck - now the global trend of almost any business is, on the contrary, to take non-core (those that are not related to the manufactured product) resources outside the company. Today, the self-supporting model of supporting my system is the most cost-effective, the development of various buns takes place “on knurled rails” and takes a minimum of time. Actually, for this, applied PLs are needed.

The solution of applied problems, carried out in a short time and with a limited human resource, leaves no other choice but to take the most convenient and easiest tool to learn, because there is no longer any place to study the nuances of memory organization. You need to take and do something that works now, and possibly tomorrow. Now my project has turned into a kind of Colossus, but, unlike the clay counterpart, it will not need to stand for centuries, it only needs to impress / perform the action here and now, even without a medium-term perspective.

All my thoughts on this subject led me to a rather logical conclusion. We Russians do not know how to do things optimally. We can do something great - for example, launch a person into space, build the most spacious aircraft in the world - but spend a lot of effort, time and, importantly, money on it. We can do something very badly - remember the Soviet light industry. We don’t know how to do things at an acceptable level, and if we go further, we don’t know what level is acceptable, in almost everything. And even if we can, then very often we forget to use it.

The West knows how to do it much better than us, for example, there for about a century they have been very successfully using the 80/20 principle, it is also called the “Pareto Law”. Apple, creating new headphones, studied the structure of the ears of thousands of people, and made its invention so that it fits 80% of the ears. I listened to music on these headphones, they sound really cool, I am 80% and I will definitely buy them for myself.

Let’s learn to do things with an eye on the optimality of the resources expended — energy, time, money. In this I see the path to prosperity. Encourage those who are just embarking on the path to learning programming, and do not make them sit down immediately for the “pluses”.

In fairness, it is worth noting that Colossus has already passed refactoring, with the expectation of a longer period of operation (according to the project - 2 years) with the main goal - to increase stability. The goal is achieved, uptime is already 204 days. I am sure that further iterations of refactoring my Colossus - if required - will be carried out by third-party developers, because further complication of the logic will lead to an avalanche-like decrease in the stability of the system. But this is a completely different story.

Also popular now: