📜 ⬆️ ⬇️

About the benefits of application programming, or why I chose an unpopular visual basic

As a programmer, thanks to the rapid fall in the price of memory and the increase in the speed of calculations twice 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 run faster. Programmers in Assembler have no fans.
Joel spolsky


I always wondered why Basic is so unpopular among domestic programmers, while in the West it is widely spread. There was a suspicion that we, in the former USSR, all programmers are Chelyabinsk, and write directly on machine code, so writing in such a high-level language as BASIC, they do not work because there are no other keys except 1 and 0.


')
Inspired by this post.

It so happened that the first programming language (PL), with which I tried to solve applied problems, was Visual Basic (IDE version 6) - because with other PL qualifications were not enough, besides, my institute specialty did not belong to IT sciences. My father had (and has) a bus station, and at that time he needed to keep a record of customers in some way - respectively, it was necessary to create something to solve simple accounting logic customer-machines-orders-jobs-parts and reports around to this. Open source software did not exist at that time, 1C cost a lot. As a result, the written program managed to be sold to two more service stations, which I consider, as for the first experience, a good result.

Around this time, many of my peers, also students, have already studied Delphi, C ++ and Java. My knowledge base on PL was not growing much (I had little experience with php4), the PLO ideology was not in demand. Personally, I did not understand what a practical use it was 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 agile'y and kanban.

And now, after years, I was visited by the following thought: PL is a technique for solving a specific task, no more and no less. The motivation for writing a program is to solve a problem, not the fact of writing a program; The effectiveness of the solution of the problem consists not in the quality of the created tool, but in accordance of the required quality with the quality realized. It seems to be trite. Visual Basic, like PL, is really simple enough that a beginner can work with it. Visual Basic is quite complex enough to implement almost everything that other, more complex PLs can implement. It is universal, it is - like Windows in the world of computers, in terms of universality, of course. Moreover, after a decade and a half, he has not changed much 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 find ways to solve other, much more complex application tasks. For about three years, I set aside a rather limited time for solving one project. At the moment, this my project includes a database server and an application server, add-ins 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 have the opportunity to play with her, teach her and learn myself.

Undoubtedly, if I had 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 single company would come happiness, right? But somehow not yes. For business requirements 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 establish within their own company a staff of developers who would be engaged in development and support. Yes, that's bad luck - now the global trend of almost any business, on the contrary, to bring non-core (those that are not related to the product) resources outside the company. Today, the model of supporting my system on my own is the most cost-effective, the development of various buns takes place “on the rails” and takes a minimum of time. Actually, for this purpose applied and are necessary.

The solution of applied problems, carried out in a short time and with limited human resources, leaves no other choice but to take the most convenient and easy-to-use tool, because the study of the nuances of memory organization has no place. We need to take and do something that will work now, and, possibly, tomorrow. Now my project has become a kind of colossus, but, unlike the clay counterpart, it will not need to stand for a century, it only needs to make an impression / perform the action here and now, even without a medium-term perspective.

All my thoughts on this topic led me to a rather logical conclusion. We Russians don't know how to do things optimally. We can do something great - for example, to launch a man into space, to build the most spacious aircraft in the world - but spend a lot of time, and, not least, money. We can do something very badly - remember the Soviet light industry. We do not know how to do things at an acceptable level, and if we go further, we are not able to determine which 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 the 80/20 principle is used very successfully, it is 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 in these headphones, they sound really great, I treat 80%, and I definitely buy them for myself.

Let's learn to do things with an eye on the optimality of resources expended - effort, time, money. In this I see the path to prosperity. Encourage those who are just on the path to learning programming, and do not force them to sit down right away at the pros.

In fairness, it is worth noting that Colossus has already been refactored, with a view to a longer period of operation (according to the project - 2 years) with the main goal - to increase stability. The goal is achieved, uptime - already 204 days. I am sure that further iterations of refactoring of my Colossus - if they are required - will be carried out by third-party developers, because further complication of logic will entail an avalanche-like degradation of the system. But that's another story.

Source: https://habr.com/ru/post/158055/


All Articles