📜 ⬆️ ⬇️

The history of one programmer or the path from simple to point. Part two, conclusion

no speed limit

This is the second and final part. I recommend to get acquainted with the beginning , so as not to lose the thread of the story.

The first part of the essay talked about ancient times, about things that are no longer there, or those that are forgotten. Much of this is familiar not only to me and numerous comments to that confirmation. However, in the final part we will talk about something else, about things that for many programmers are everyday. This part of the essay will differ from the beginning and this difference will be that I will tell my story of how our present for me came from the future. In this part of the essay, the past gives way to the present.

Delphic era, com, dcom, com + and DBMS


interbase
Meanwhile, Delphi grew in versions: 4, 5, 5.5 ... In general, it was thanks to Delphi that I became familiar with working with databases. Then, along with Delphi was such a wonderful thing as the Borland Database Engine (BDE), which allows you to work with many databases. My first data repositories, of course, were dbf-files and access files. At that time it was more than enough. The work mainly consisted of a project that did not anticipate network storage of the database and the connection of many clients. But Interbase , a real DBMS with a server, with transactions, with such wonderful things as triggers, was a real discovery. Moreover, interbase forced to think more distributed, familiarity with him as he said: "a couple go online, it's time to allocate resources."

By that time, a three-level programming paradigm had entered into fashion: a database server, an application server, and a thin client. To comprehend all this was very interesting. In parallel, my attention was attracted by the technology of microcomware COM and DCOM . Delphi was comfortable with the programming of com-servers, while Delphi was generally very friendly at the time, she seemed to be guessing about your desire and slipping the master or some kind of ready-made template. The understanding of the basics of technology suffered greatly from this, but it saved time. I admit that COM and DCOM remained unfinished for me to master the material, I didn’t understand radically these techniques, although I wrote working programs for myself with their use. Soon, microsoft issued a new technique for COM + on the mountain, which confused me even more and, frankly speaking, pushed me away.
softice
Along with everything else, I for some time “got sick” with debuggers and reverse engineering in the form of digging into someone else's code using the IDA Pro disassembler and the SoftIce super debugger . These tools were so powerful that they completely regained power over the system, which was somewhat reduced in windows. Softice, for example, was loaded even before windows and thus simply did not allow itself to be detected and intercepted everything that was possible. I do not know how things are now, but then it allowed to interrupt the work of windows at any time and start debugging the current process. I admit, the first victims of experiments with this debager were games with the simplest protection, the breaking of which consisted in the simple replacement of the conditional jnz transition by unconditional jmp . It is a pity that the sensible documentation from Chris Kaspersky appeared only after I had played enough with these tools. Perhaps our love with reverse engineering could last longer.
')
Time passed and our project was finally transferred to the win32 platform rails. By the time Delphi reached the sixth version. It was 2001 or 2002. Borland also released Kylix for programming under linux, I don’t know if it is alive now. In general, it seems that the sixth version of Delphi has become canonical for me, and not only for me, I know a lot of people who still write as the program needs in the sixth version.

Shortly after the translation of the project, I changed jobs. The new place of work was a financial institution, comparable to a banking one. And many programmers working in banks will agree with me that you can write separate books about working in such institutions. This stage in my life completely discouraged my work in respectable huge offices. The new work helped me to consolidate the knowledge of SQL , it was then that I understood the value of triggers, it was then that I learned about table locks, rights, and transaction rollbacks. By the way, do many SQL developers know why they call it a “sequel”? And yet this is interesting, because SQL was originally called SEQUEL (Structured English Query Language).

C interbase is associated with another pleasant memory: IBExpert . IBExpert is a third-party development that seems to be still alive for the full administration of Interbase and its Firebird and Yaffil brothers . I did not see a more thoughtful, complete and sophisticated tool for working with a DBMS either before or after that. IBExpert contained everything that you could think of, but its main advantage for me was a debugger of SQL-code with the possibility of step-by-step debugging, a thing that I have never seen anywhere else.

Log in via XML or how I got to the web


All good things come to an end and our cooperation with a financial institution ended. This ended my Delphi-era. xslt The next place of work was a large office of developers, where about 50 programmers worked on one project. The beauty of the new work was that the project was intranet- oriented, the client was a browser and it was necessary to develop basically html-pages that were generated by xml / xslt . This is, for the moment, 2002. Now it is a common thing, but then it was a revelation for me personally. Once again, I enthusiastically began to delve into new technologies for themselves, which further, very far, took me away from the system and computer giblets.

By the way, I somehow missed the beginning of the web era. At that time there was such an environment around me that spending time studying the web was simply meaningless. “Well, who can you tell me, you need this web, if people don’t even have the Internet, they don’t even have computers,” I thought. No, of course, some things I learned. Books on HTML and javascript were purchased, but I didn’t take them seriously - this is unusual entertainment.

And only my new work showed me what the web-technologies can give in the application plan. The project in which I participated was a global state system with many subsystems, several levels and, most importantly, one for all clients in the form of internet explorer . It was then that the prospects of both the web and all its technologies began to reach me. The next insight made densely study html / xml / xslt / xpath. I was less interested in CSS and javascript at that time, the first because the project forms were mostly simple in terms of design and did not require special markup, and the main load was placed on activex elements like special tables. Although Javascript was used, its use also came down mainly to the creation of the activeX element, and to the call of its methods.

Another tool that has become important for me in life is MS SQL Server . informix At that time, the 2000 version was relevant. My sql knowledge was supplemented with knowledge of tsql, procedures and functions, scripting, cursors and views. By the way, an interesting story is connected with databases at that time. Our mega-customer, on the initiative of one person, similar to a diversion, demanded that the project be transferred from MS SQL to Informix. Tell me, who in their right mind would do this on a huge national project? However, work is work, and by upgrading our application server through which requests went, our system vendors issued to the mountain a certain averaged version of the specification of the sql language, which was required to be followed. There were a lot of differences with the informix. Here and the requirement to write inner join instead of join and the requirement to write AS, where mssql allowed it to be lowered and many more trivia things, now I don’t remember. The situation with the translation was idiotic, but it was remembered for a long time.

By the way, at last year’s TechNet conference, 3logo on which MS SQL Server 2008 , VS.Net 2008 and Windows Server 2008 products were presented, I managed to catch one of the SQL Server development team and ask a question that had been bothering me for a long time: “look at the three inscriptions about the company's three products, what is unusual about them? in relation to SQL Server? The guy (and this was a young guy) never for a second answered without saying: “logo”. He added: “our team decided that we didn’t need a logo, our server didn’t need it, it was known even without a logo”.

I worked in this office for about a year or a bit more. And I think that this place of work was the best in my life. The specialization of the office for software, the main part of the programmers, small size, friendly staff, a serious project, advanced technology at that time, a serious staff of specialists, in which a lot of very competent people worked. It was the highest concentration of programming thoughts per square meter. And it was great. Neither in a financial institution, nor in technological offices, nor in state institutions, nor in a private trader — I could not feel anywhere else such a classy atmosphere as then. I left there only because I moved to another city.

New si or long-awaited point


I knew about the release of .NET in advance, in the sense that after I learned about this new initiative from Microsoft, I was closely following its fate. Unfortunately, the beta version of the product did not reach me, and I began my acquaintance with the platform right from the release of Visual Studio.net . There were a lot of expectations: there was a solution to the " dll hell " problem, and a new C # language with automatic garbage collection and a new build architecture, which suggested a dramatic improvement compared to com-objects and a combined studio tool, and asp.net , and ado .net . In general, innovations were expected revolutionary.

The studio did not disappoint expectations, everything seemed so cool to me that I once again had a fit of enthusiasm and I began to search and study all possible manuals, books and other documentation. The most important of these sources, of course, was (and is still) MSDN documentation. Since at that time I was busy developing in the web-environment, the first thing I did in the new studio was asp.net. In truth, from the vivid impression of the product now remains two thirds less, and even more. Now I clearly see all the disadvantages of this platform, sometimes fat, and I have a lot of personal complaints about asp.net.

However, asp.net of the first version stunned me with its friendliness. Everything that previously needed to be done by hands was done by itself. Separate code, compared with asp scripts, seemed like manna from heaven. Framework struck by its vastness. ViewState , which I then took with a bang, seemed to me a wonderful revelation. In general, the euphoria of the new platform was a complete, probably familiar feeling to many. The novelty, desire to understand the first, to be on peak of programmer thought has affected. In general, now it seems to me that if it were not for the output of .net, I would have been in the camp of java-programmers, because I had been looking towards Java for a long time and even installed some development tools and picked the source code with examples.

But it happened as it happened and I was lured away by .net. The first project that I wrote on .net was an intranet-base of films that were shared resources in our company. A separate software bypassed all the balls, filled the xml-file, which was then imported into the database of my project. The project was completely simple, as all the first projects are terribly non-optimized, but completely on .net. This project gave me a lot: I consolidated the information on the language and the platform read from the documentation, gave me the skills to work in the development environment, showed pitfalls when programming in C # and asp.net itself.

As time went on, .net changed, grew up, the .net framework 2.0 appeared, and with it, C # 2.0, significantly improved, which brought generalizations, something that was lacking. Yes, these were not C ++ templates, but generics had its advantages. Such classic things like master pages, data controls, SqlDataSource have been added. Unfortunately, the then new job did not contribute to my growth as a programmer, and everything I did during that period was my own initiative. But still I managed to write two projects for an institution: the official website and a specific functional website. Creating the first one introduced me to the DotNetNuke framework.

DotNetNuke is such a freeware framework, the creation of which, it seems, sponsored Microsoft. DNN is designed to quickly create websites, mainly of medium and enterprise level. By my standards it is a very sophisticated system, with a lot of opportunities, actively developing, and also written on .net. On the one hand, working with DNN was a pleasure because all the necessary components of the site were ready and the creator needed only to arrange them in the necessary order, to make an interface with any kind of design and connect the necessary plug-ins to launch the project into the network. On the other hand, the absence of any need for programming reduced the value of the work, the accumulated experience was essentially scanty and I estimated the practical benefits of all my movements as very low. In this project, I took the main advantage out of a contradiction: the lighter, the less useful. In the future, I tried to beware of easy ways, trying to solve problems from the root to the end on my own.

Habrahabr of our days or the road is enough for everyone


The rest of the story is the present or recent past. Events in life intertwined with the life process of my .net working platform and as a freelance I met another important version of .net 3.5 for me in working on a new project. The office to which I freelance soon lured me to full time and, after a long break, I did what I really liked.

Somewhere in this moment I first came to Habrahabr . I already quite confidently used ajax.net , created web services, I used LINQ with might and main. But the new resource has opened for me the abyss of the new. First, I must say about my current impressions about Habré. Initially, I considered and still consider this resource as a bright lamp in the night, with concentrated acid and an endless encyclopedia. Habr for me is the perfect embodiment of the idea of web 2.0 about creating and self-organizing a community of like-minded people in our time. True, like any community, it is not without flaws, but all disagreements only give liveliness to the resource and cause additional impulses for movement within.

At first I only studied Habr as an anonymous reader. I was endlessly pleased (and still please!) Original, author articles, which usually carry a lot of useful things. You know, other people make decent money for printed articles for much lower levels. And here everything is for nothing and, most importantly, almost always from the heart. Suffice it to say that exactly such articles on Habré greatly pushed my knowledge into javascript and css . Such articles prompted me to learn jQuery - a tool, without which I now simply can’t understand my work. These articles introduced me to the erlang language and its philosophy, and this acquaintance made me take a different look at programming.

But one day my current friend fotokaif created a .NET blog, which was so lacking and I decided it was time. Registration, first posts - just 5 months have passed, but during this short period I tried to share my knowledge and interesting news to the best of my ability. My posts on Habré, as a reflection of my preferences, are mainly presented on the .net blog. And not so long ago I presented the Habraredactor project, which represents my vision of the editor for writing articles on Habré.

Habraredactor is a compilation of what I received from Habr during my acquaintance with him. Here and unobtrusive Javascript and my knowledge of css and jquery and block layout, which I personally switched to only after becoming acquainted with Habr. Of course, I am sure that Habraredactor is not perfect, but for me it is, first of all, the very thing that I could get from Habr.

Another advantage of Habrahabr is its multipolarity. PHP is next to .NET and none of them interfere with the discussion of Java questions. At the same time on the tape can be topics about js, css, block layout issues or the next holivary about the speed of browsers. In essence, this state of affairs is a huge plus of a resource and I would like to appeal to everyone: “comrades, understand, there will be enough road for everyone”. Like many people, there are many technologies that many developers create. All these sets intersect in such a way that sometimes there are no two identical programmers or designers who would be equally passionate about the same tools. We have a common road, but it is wide and enough for all.

What's left overboard


Overboard the essay left:

No speed limit or instead of a conclusion


That is, in summary, my path. And, I am sure, it is far from over. There will be a new time, there will be new technologies, which will also be able to excite the imagination and make with interest to delve into new terms, techniques, techniques. I wish all readers who could read up to this line of development with infinite speed, absorption of new, constant growth, constant interest, constant thirst for knowledge.

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


All Articles