⬆️ ⬇️

The story of one programmer or the path from simple to point





The text presented under the cut is an attempt to tell in artistic form the stages of its programmer life. Locally diluted with cases from life, thinking out loud, nastaligirovaniem in previous times, this essay at the same time has the purpose to raise a dialogue with habrayusers who are not averse to telling about their way of development and share their thoughts on the history of development of tools and development languages.



Basic start or when computers were big



When in the fifth grade I got into the computer science classroom, it was like visiting a hidden place. A bright room with a dozen of agates, each of which, complete with a monitor, weighed more than me, a fifth-grader, who, when included together, caused some fantastic associations in my childhood mind. The room looked like a fantastic laboratory, or a space flight control center. Keys, blocks, glowing monitors - it was great.



And, of course, the first language I was taught was Basic . To admit, there is so much left of knowledge and memories from this training that it suffices only to recall some obligatory numbering of lines and the fact that Basic was sewn into the system, and its invitation in the form of "?", In fact, was the first thing the user saw. From that time, I remember the poster of the Soviet computer “ Mikrosh ”, which was later hanged, and which later in one of the Russian magazines would be called rickety.

')

Glorious it was a time when the teacher tried to stick in us some programs drawing graphics, and we were eager for games that we couldn’t feel anywhere else, because then from electronic games there was only the Soviet analogue Game & Watch and even about “dandy "Then still did not know. And the biggest chic was considered to be the possession of the Spectrum (aka Sinclair), which loaded the color games to the sound of a tape recorder. No healthy person would look at those games now, but then it was great, even very good.



EC-1841 or about the dangers of monitors



Later in my life Pascal appeared - a language that attracted by its simplicity and friendliness. How and when the first contact took place, I no longer remember. It is possible that this was a friend who got hold of a 486DX super-computer with 4 megabytes of memory, but most likely the contact occurred during the lessons of the CPC, on which we, using the Soviet computers EC-1841 , learned the basics of pascal. EC-1841 already had two system blocks! But on the other hand, he had a Kiripich-sized mouse connected to the unit with a thick reinforced cable, the driver of which was called Kolobok, it launched Star Control and Death Track , and also the Kommersant mega-game, the first Russian game I played. This miracle of Soviet computer engineering contained an analogue of the i8086 processor with 4.77Mhz and was supplied with a monochrome display.



I generally smile at times with hysterical arguments and cries about the dangers of monitors. Not knowing how much I sat behind Soviet monitors, I looked into these black and white screens with CGA graphics. And later the monitors were no better, the same 60 hertz, only the palette changed from CGA to SVGA. And now, more than a decade has passed, I have been spending 8 hours a day in front of the monitor for a long time, and so far my vision has not weakened at all, still 100% the same as it was in childhood.



So, after the indistinct BASIC, which left nothing in my soul except the concepts of cycles, conditions and variables, pascal appeared in my life. It must be said, I was firmly addicted to it then, the procedures of the function, the cycles with pre- and postconditions - all this inspired, forced to experiment. Many now will not understand this, but then the source of information was only a couple of books, but a teacher. There was no internet, no more wiki, no forums and torrents from which you can pull any book. In those difficult times, when the country was falling apart, going to the bookstore was like a hunt, the main book points were known, the optimal route was outlined, each point was thoroughly searched for new literature. It is now in the bookshelves piled high with allowances of varying degrees of thickness. And at that time bookstores were half commissions. Sometimes intelligent books came into the hands, one of them was Borland Pascal 7.0 , the author of which I don’t remember now. This book opened for me the PLO and for a long time became the main one.



Niklaus Wirth - God



Needless to say, pascal in Russia for many has become the starting point. And now, probably, they teach, if not on it, but on its successor Delphi . Language, frankly, good. Yes, he is not as strict as C , and probably not as effective. When I learned Pascal, I, of course, already knew about the existence of the C language, and I wanted to learn to write on it to death. But, as I said, with the literature was bad, the desire did not immediately find embodiment.



At this time, I got a computer that I bought from a friend, the same 486DX-33 with a 340 MB HDD. Soon BBS appeared in my life, such archaic nodes that connected people no worse than the way ICQ now connects people. At that time, modems were already widely spread, everyone could find and buy a modem from their hands. My first, for example, was a nameless modem at 2400 baud. Tell me, will anyone work at 2400 baud now? And then this modem was a window to the network. A friend had a better machine, at 14400 baud, and everyone without exception dreamed of an external USRobotics Courier at 28,800, which was worth some kind of big money then.



BBS introduced me to many people, I learned about FidoNet , I finally had electronic documentation, in general, the means for development was not an example anymore. I discovered the iron filling of the computer, the video memory buffer, and for a long time the pascal became for me a means of experimenting with iron. In parallel, comprehending the wisdom of Object Pascal , I learned the principles of OOP. It is hard to believe, but in order to understand the meaning of virtual functions, I spent several days, I alone with great difficulty, alone with a book, managed to understand the principle of polymorphism. And this discovery overturned consciousness. For days on end, I twisted something, twirled it in pascal, wrote the simplest things, created some libraries. It was an interesting time, a time when with every success I was filled with pride - “I understood it myself!”. Let me remind you that at that time Windows 3.1 just appeared, and programming was carried out only under DOS .



As for the C language and its opposition to Pascal, then an article by the creator of the language, Niklaus Wirth , helped me to take a position with a positive assessment of the latter, in which he expressed his theses in defense of his language and its further development in the form of the language Modula-2. That article, as I remember, opened up a whole layer of people for me - mega-developers who are hovering somewhere and doing amazing things like new languages. Largely because of these memories, even now, when I haven’t written in Pascal or Delphi for a long time, I still sympathize with this language.



Assembler, si, si with classes, si-- or better times



With the advent of the modem and the network in the form of Fido, my aspirations in programming received an additional boost. Much was learned, new knowledge appeared very often and in large quantities. This is connected, probably also with the rapid growth of both application software and system software. Windows 95 came out, the viruses that previously were just a headache now concealed a real threat (CIH), and all my attention was gained by the system and, accordingly, system programming. The possibilities of pascal were exhausted, I wanted to get into the system even deeper than just ports and memory.



Approximately at the same time, I purchased a book for authorship Berezin B.I., Berezin S. B “C and C ++”, on the Internet even now there are many references to these authors, books must still be published. By the way, this book is still on my shelf at my house and when I notice it I immediately fill with different memories.



At first, I, of course, began to study S. Having some kind of experience, and I eagerly stuck into the language with experience. Borland also helped with the release of the wonderful product Borland C ++ 3.1, which looked the same as Borland Pascal, but contained a more powerful language. There were a lot of emotions and impressions, the information flow was quite strong, I did not experience a lack of documentation and those were the best of times. In my computer, Kernighan with Richie and Stroustrup , who were in my personal pantheon of the gods along with Wirth, started up.



In general, the C and C ++ languages ​​(which, not many people know, are also called “C with classes”), of course, conquered me with their severity, because they did not forgive what they are now calling cattle coding. Forgot to call destructor? Expect trouble Nakosyachil with pointers - expect trouble. There were almost no clues either from the compiler or from the linker, there were Spartan conditions, probably the best for tempering character.



At the time, programming in C, it was impossible not to know about assembler. tasm / tlink, masm, nasm - mysterious programs that began to attract my attention when I downloaded the first manual on the i8086 processor. Assembler in general seemed and still seems to me the best programming language. And the point here is not that it is in fact the native language of the processor, hence the computer. No, assembly language is even more severe than C and C ++. The habits that the assembler instilled in me have remained to this day. All of these savings a couple of cycles or a dozen bytes, optimization of cycles, memorization of the list of commands, as I recall, there are more than a dozen transition operators in the assembler. Assembler - like a puzzle for the mind, it is a tool of real poets from programming. The examples of the demo scene seen at that time were amazing. In 4 kilobytes, and sometimes in 256 bytes, the assembler's master programmers contained whole visual dynamic scenes, sometimes with musical accompaniment. I generally think that those who write crossword puzzles on asma do not solve. The divine power of the assembler was not questioned by me at that time. Friends older than me working as assembly language programmers were admired.



The first signs of my pen in assembly language were resident programs under DOS. These were all sorts of little things and jokes that were intended mainly to show friends their knowledge and possibilities in programming. Creating resident programs then required considerable skill and extensive knowledge. There were a lot of nuances, one should know not only how the system works, but also how iron works, what an interrupt table is, what pitfalls can be. Now multitasking is perceived as something normal, but at that time, most computers did not work under windows95 and DOS 6.22 was almost everywhere.



I remember that time as the most useful, as the most productive. I was chasing around the city for some special compilers, even now I remember how enthusiastically I ran with a screw to the people who discovered Watcom C ++ . Another interesting product that I remember about that time was C-- . This authoring product was a lightweight C-like language that looked more like an assembler. A sort of hybrid C and ASMA. The project did not live up to our times, but at that moment I had a strong interest in it.



First job or how Delphi C ++



I got a first job at the age of 17. Then I went to college and in parallel began to work in the office, which was held by employees of the university. Now it’s funny, but then I didn’t even expect money from my first job. And I must say, they paid very little, there was a complete mess and collapse in the country. My first job was to my taste: here is work with telemetry, a survey of computer ports, familiar with ++. About one only did not have enough knowledge about Turbo Vision , Borland's mega-libraries on which a lot of programs were made. This library was intended to form a user interface under DOS, it was completely object-oriented and forced to write just incredibly a lot of code to form the now familiar interface with buttons, checkboxes and so on.



All programmers are familiar with the sensations of digging into someone else's code. There is a lot of emotions: where you notice mistakes, there you cuss on the creator of the code, where you see new solutions for yourself, you begin to respect it. Often all this happens in one bottle. As usual at work, no one left me any documentation, and it never was. I had to sort everything out myself, since I had mastered the debugger well at that time.



As time went on, technologies developed at a frantic pace, more and more software was written under Windows. And programming under windows was completely new. Here and another philosophy and architecture, the old thinking had to pull out just at the root. Because of work and study, I didn’t develop much programming skills under windows, I was scared away by messages, threads, WinAPI, which should have been known. Dozens of constants and macros Visual C ++ from microsoft permanently scared me away from programming under windows. Yes, it was not easy to throw such a native dos in which everything is so clear and understandable.



But as time went on, windows surrounded from all sides, there was not enough memory under dos, it became clear that it was time to develop. At this time, very much in time, I think innovative, Delphi. Delphi 3 had many advantages: it was possible to write programs under windows on it, it used the well-known object pascal language, it was a RAD environment and fully justified the term. Programs on Delphi were written in minutes, there were no problems with winapi, which Delphi completely wrapped in his VCL library. There were no problems with the GUI, it seemed Delphi - the best that can be, especially after Visual C ++, in which there was nothing from the word "visual".



With the arrival of windows, it became clear that another layer appeared between me and the computer; now it became more difficult to reach the system, and it was not so necessary. Digging in the system was replaced by digging with forms, buttons, menus. And the translation of the working system from Borland C ++ to Borland Delphi seemed obvious. But the work did not give up so easily, constantly had to wind up new features on the old project and there was no time to develop a new version. Meanwhile, Delphi grew in versions: 4, 5, 5.5 ...



the end of the first part, the completion of the story about com-objects, databases, the Internet and c # will be in the second part

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



All Articles