Around 1996 or 97, I started thinking about moving from the surviving DOS platform to the Windows platform. At that time, the operating system Windows 95 had already gone into life, sweeping away the OS / 2 monster on its way, and filling almost the entire niche of personal computers. It was necessary to change, and for a programmer such a transition means, first of all, the need to choose a new tool for work. It seemed most natural to take Borland C ++ (version 4 or 5) and just in addition to what was already known, learn the Windows API. But now I understand it. And then it was not obvious. And my attempts to program in Windows one after another have not been crowned with success. I continued to sculpt DOS-style interfaces, because it was easier for me to use a bunch of my own work-ups than to learn something how to do a message dispatching loop between windows. And in general it was not clear: why such a cycle is needed? After all, my program is that when I want, then I output when I need to - then I expect input. At least that's what I thought then.
Eventually, when I had some free time, I started experimenting with new compilers designed specifically for the new environment (Windows 95 and Windows NT 3.5). And on the advice of my good friend Alexei Shadrin (admins - hello from programmers!), I also tried Delphi 2, which was just released. And then he was amazed at the simplicity of work and, most importantly, by the obvious logic of work in the IDE. (I was also pleased with the high speed of compilation of the code, I must pay tribute to Borland - I have never seen such a fast compiler).
For the sake of such convenience in work, I agreed to sacrifice attachment to C / C ++, and remember how to write code in Pascal. (At first, I was sick of the need to write: = instead of just =, and begin / end instead of curly braces *, but soon I got used to: =, and appreciated the obvious advantages of begin / end for people with non-100% vision , for us this is a much more convenient notation than curly braces, which are easy to confuse with normal ones, or even not notice at all). I will only add that the first working program was ready in a couple of days (!), And it worked perfectly in a multi-window environment, doing exactly what was required of it (printing payment orders, and what did you think is the most demanded software in the conditions spontaneously developing LLC and PE).
From that moment on, I became a staunch supporter of Pascal, bought the books on Delphi needed for a beginner, even learned how to create components and made a couple of my own (as I remember, these were TCloudHint and TBaloonHint - to show tooltips in the form of intricate windows - clouds and the fact that comic book heroes use it to make speeches).
But gradually I began to be very unhappy with one rather significant detail, namely: the size of the programs received. It turned out to be gigantic, and in order, for example, to upload my works on the Internet (and I assumed that I would be engaged in blooming), a rather thick channel was required. In addition, the disk space was also not rubber (I remind you: in those days a 40 megabyte hard drive was the norm, now 200 Gigabytes does not seem to be something excessive).
I thought about this problem, and finally decided to make an alternative class library that would allow doing smaller programs. I named it XCL (eXtreme Class Library). It really was "extreme". Without fully understanding the true reasons for the monstrousness of Delphi programs, I, among other things, decided in the heat of the moment to abandon the use of the Windows API wherever possible. Those. windows were registered with Windows, but were used only as an underlay — all rendering and other interactions were handled by their own code. Surprisingly, however, the programs still came out smaller than the VCL. True, as we moved forward, the tasks became more complicated, and I did not manage to get to the implementation of my own TListView.
|