• You should learn COBOL. COBOL is the programming language used by almost all ATMs

    The name of the language is made up of the first letters of the name COBOL - COmmon Business - Oriented Language, which literally means “common language of business orientation”. This language is focused on processing economic information. It was developed by a working group created under the auspices of the executive committee on CODASYL - Conference on Data System Languages.

    Work on the first version of the language was completed in December, and a preliminary report was published in February. COBOL-60 took about 4 man-years to develop. COBOL's roots go back to the early, little-known programming languages ​​FLOWMATIC, COMTRANE and FACT, and ALGOL influenced the choice of symbols for COBOL. The first COBOL compilers were created in December simultaneously by two companies RCA and Remington - Rand - Univas.

    When developing COBOL, the goals were to make the language machine-independent and bring it closer to natural language, so that programs would be readable for a non-professional programmer. According to many users, from this point of view, COBOL is perhaps the best, unlike other programming languages ​​that have a formal syntax. COBOL takes the syntax of an English sentence, so programs in this language are easy to read.

    COBOL was the first language to match data description capabilities to procedural capabilities and the first language to introduce the record data type as a fundamental data structure. One of the notable features of COBOL is the recursive description of data. Another feature is that COBOL programs are divided into parts called sections, with each program consisting of four sections: identification, hardware (environment), data, and procedures.

    The identification section serves to establish the identity of the program and contains various explanations necessary for its documentation. The equipment section contains data about the equipment used, mainly peripherals. The data section contains information about the type and structure of data, organization and distribution of memory, etc. The procedures section contains calculation algorithms. In turn, these main parts of the program are broken down into simpler ones: section, paragraph, sentence and word.

    Another distinctive feature of COBOL is its constant change and improvement. Following the advent of COBOL-60, a second version called "COBOL-61" was published the following year, which was widely used, but had some incompatibility with COBOL-60. An expanded version of the language was published in the city, called "Extended COBOL-60". Two years later appeared new version with several unusual name: "COBOL, edition 1965". This version was approved as an American national standard. However, work to improve the language and develop new versions continues.

    Modified American standard COBOL was adopted in the city with the corresponding name - COBOL-74. Currently, the American National Standards Institute (ANSI) is finalizing the development of another COBOL standard, which provides for the introduction of a number of new constructs into the language and the abandonment of some rarely used or inconvenient operators, etc. The new standard also provides for a significant reduction in various subsets of the language.

    In the USSR, the first compilers from a subset of the COBOL language were implemented in the city on the Dnepr-21 and Minsk-32 computers, and in the city the domestic standard for the COBOL programming language was adopted (GOST 22558-77).

    Assessing the contribution of this language to the theory and practice of programming, one cannot help but point out the contradictory nature of the attitude towards it of users, on the one hand, and computer scientists, on the other. If it became widespread among programmers due to its readability, and perhaps early standardization, then many scientists perceived its appearance as a mistake, and its use as a “disease” that needs to be fought. Moreover, some of the scientists, in particular the famous Dutch programming specialist E. Dijkstra, expressed their negative attitude towards COBOL in a rather harsh form (ACM SIGPLAN NOTICE, 1982, v. 17, pp. 13-15). They objected to the use English language as the basis of COBOL due to its imperfect stylistics. Good readability of programs, they argued, does not speak in favor of COBOL, since programs with the introduction of numerous “noise” words become too verbose. Large program lengths make compilers slow and make it difficult to automatically detect errors during compilation.

    In conclusion, we note: despite the fact that the experience of developing and using COBOL obviously had little influence on the creation of languages ​​that appeared after it (with the exception of the PL/1 language), it must still be recognized that it left a noticeable mark on the history of the development of programming languages.

    //Computer technology and its application N10"88.

    Beginning programmers (and quite possibly their experienced colleagues as well) must often ask themselves whether they need to learn JAVA, or whether knowledge of JavaScript, Python or Ruby will be enough modern world. Given the demand for programmers in the current economy, many find decent work while still studying at universities, and why, one might ask, would a representative of this profession look into such a distant past as COBOL?

    According to a 2001 Gartner study (in the case of this particular language, it could be called "recently"), 85% of the world's business information was processed in COBOL, and now the amount of code written in this programming language is beginning to increase again. Micro Focus, which develops and sells COBOL modernization tools, says that 70% of the world's businesses still actively use the language.

    And while it is clear that many of the applications originally written in COBOL will be rewritten, Micro Focus is confident that much of the original code will still remain in use, and the applications will be used for many years to come. They are safe, stable, and companies using them are not ready to just give them up. Program Manager Micro Focus's Arunn Ramadoss says, "No other language can represent business data as accurately as COBOL does."

    And even in the days of belated retirement, there are fewer and fewer engineers capable of working with this language. Some people stop working, others go to positions related to management rather than development.

    Ramadoss believes that the world's largest companies and agencies will soon be very interested in young programmers who understand COBOL, as well as new technologies like .NET or HTML5, believing that learning this programming language will serve all programming students well. , and their graduates, since very soon a sufficient number of interesting COBOL-related vacancies will appear on the market. Not to mention, this programming language is easy to learn.

    In truth, such vacancies are already available, and most often marked “urgently required.”

    “The days when you could be a 'Java-only programmer' or a 'C-only programmer' are gone,” says Arunn: “Today you need to know multiple languages ​​and technologies, and how they can be integrated.”

    Integration is perhaps the most important detail for a person who decides to take on COBOL. The nature of the language, and the nature of the systems that use it, are very tightly tied to business logic and processes. Therefore, the greatest challenge for a developer and programmer will not be learning the language itself, but understanding how it can be used in a modern corporate environment.

    As an example, Ramadoss talks about the business process of transferring funds from one bank account to another - this procedure has not changed at all since its inception. But the way people interact with their bank accounts and transactions has undergone significant, if not dramatic, changes. Today everyone wants to access their account using a PC or mobile phone.

    In turn, for companies using applications written in COBOL, the most difficult moment will be the preservation and transfer of accumulated experience and knowledge about existing business processes new developers. Those programmers who already know this language and understand how it integrates into modern technologies will stand out favorably from their colleagues, even despite the fact that, in principle, this is not the most difficult technology to study (which means many may treat it somewhat frivolously).

    So where does a person who is interested in learning this oldest programming language start? The best start There will be a website called cobol.com where you can find a lot of information on how to approach this technology. As for literature, the generally accepted standard is the book “The 21st Century COBOL Programmer” by authors Nancy Stern, Robert A. Stern and James P. Ley.

    And of course, right here on your favorite resource regarding this programming language.

    Beginning programmers (and quite possibly their experienced colleagues as well) must often ask themselves whether they need to learn JAVA, or whether knowledge of JavaScript, Python or Ruby will be enough in the modern world. Given the demand for programmers in the current economy, many find decent work while still studying at universities, and why, one might ask, would a representative of this profession look into such a distant past as COBOL?

    According to a 2001 Gartner study (in the case of this particular language, it could be called "recently"), 85% of the world's business information was processed in COBOL, and now the amount of code written in this programming language is beginning to increase again. Micro Focus, which develops and sells COBOL modernization tools, says that 70% of the world's businesses still actively use the language.

    While it is clear that many of the applications originally written in COBOL will be rewritten, Micro Focus is confident that much of the original code will still be in use, and the applications will be used for many years to come. They are safe, stable, and companies using them are not ready to just give them up. Micro Focus program manager Arunn Ramadoss says, “No other language can represent business data as accurately as COBOL does.”

    And even in the days of belated retirement, there are fewer and fewer engineers capable of working with this language. Some people stop working, others go to positions related to management rather than development.

    Ramadoss believes that the world's largest companies and agencies will soon be very interested in young programmers who understand COBOL, as well as new technologies like .NET or HTML5, believing that learning this programming language will serve all programming students well. , and their graduates, since very soon a sufficient number of interesting COBOL-related vacancies will appear on the market. Not to mention, this programming language is easy to learn.

    In truth, such vacancies are already available, and most often marked “urgently required.”

    “The days when you could be a 'Java-only programmer' or a 'C-only programmer' are gone,” says Arunn: “Today you need to know multiple languages ​​and technologies, and how they can be integrated.”

    Integration is perhaps the most important detail for a person who decides to take on COBOL. The nature of the language, and the nature of the systems that use it, are very tightly tied to business logic and processes. Therefore, the greatest challenge for a developer and programmer will not be learning the language itself, but understanding how it can be used in a modern corporate environment.

    As an example, Ramadoss talks about the business process of transferring funds from one bank account to another - this procedure has not changed at all since its inception. But the way people interact with their bank accounts and transactions has undergone significant, if not dramatic, changes. Today everyone wants to access their account using a PC or mobile phone.

    In turn, for companies using applications written in COBOL, the most difficult moment will be preserving and transferring accumulated experience and knowledge about existing business processes to new developers. Those programmers who already know this language and understand how it integrates into modern technologies will stand out from their colleagues, even despite the fact that, in principle, this is not the most difficult technology to learn (which means many can relate to she is somewhat frivolous).

    So where does a person who is interested in learning this oldest programming language start? A good place to start is cobol.com, where you can find a wealth of information on how to approach this technology. As for literature, the generally accepted standard is the book “The 21st Century COBOL Programmer” by authors Nancy Stern, Robert A. Stern and James P. Ley.

    And of course, right here on your favorite resource regarding this programming language.

    IN elementary school I was taught how living nature differs from nonliving nature. Living nature is born, matures, gives birth and dies. Based on this simple definition, programming languages ​​clearly belong to living nature. Because they are also born (in the depths of corporations or research groups), grow up (from version to version), give birth to offspring (as, for example, C gave C++) and die. The last stage, of course, is not particularly pleasant for programmers who program in a dying language, but it happens that programming languages ​​die, and this happens, by the way, not so rarely.

    When they talk about dead programming languages, first of all, they remember two of them: Algol, which became the progenitor of many modern languages, and COBOL, which is said to have written more code than any other programming language. And if about Algol no one has any doubts that this programming language is dead, then questions arise with Cobol. If it is so dead, why do new versions of compilers, development environments, and other tools needed for programming on it continue to be released? Indeed, there is a certain logic in this formulation of the question. And the story of my friend that one Minsk outsourcing company was recently looking for a Cobol specialist in order to receive a lucrative contract only fuels interest in this supposedly dead language.


    A little history

    It is perhaps worth starting a conversation about this programming language with a story about how it was created, when and why. After all, every language is created for a reason, but for something - for example, Ada was created to program real-time systems, and C# was created to capture the market from Java.

    COBOL was created for programming everything related to business, economics and finance. Even the name itself, which is written in English as COBOL, stands for Common Business Oriented Language (a language focused on common business tasks). Cobol, by the standards of the computer world, was developed not just a long time ago, but a very long time ago, and even, perhaps, one could say, a very, very long time ago - the first version of this programming language was published in 1959. And, although the authors were faced with the task of creating a simple programming language, it is unlikely that modern programmers would call Cobol simple and familiar. However, the point is not that the authors of the language did a poor job of their task - the point is that over half a century the idea of ​​​​what is a simple programming language has changed somewhat.

    Then, in the late fifties, people who could program in high level language, there was relatively little. Therefore, Cobol was designed in such a way that the program text on it was as similar as possible to the text in ordinary English. Cobol programs can be read and understood by non-specialists - at least much more easily than with programs written in many modern languages. If you show the text of a program in Perl to a familiar student of the Faculty of Philology of BSU, she is guaranteed to send you to Novinki. If you show her a program in Cobol, then with a high degree of probability she will even be able to tell you what this very program does. Now , of course, it seems a little strange, to put it mildly, to target a language for creating business applications at non-professionals, but in many ways, I think it was this orientation that contributed to the fact that so much code was written in Cobol.

    Interestingly, the leader of the COBOL project was a woman - Grace Hopper; she is often called Grandma Kobol. Almost since its birth, Cobol has been an ANSI-standardized programming language. A total of five language standards were released: COBOL-60, COBOL-68, COBOL-74, COBOL-85, COBOL 2002 (note that since the name of the language is an acronym, it is correct to write it in capital letters in English). By the way, the year the latest standard was adopted is another fairly significant reason to say that Kobol is, after all, more likely alive than dead. It is unlikely that anyone would release an updated standard for a programming language that is not used by anyone anywhere.


    The glory and misery of Kobol

    Why was Cobol so popular before, but now in the entire big city of Minsk you can’t find a specialist for a programmer position in this language during the day? There are several reasons for this, and, as usual, one is more objective than the other. Let's look at the features of Cobol to understand why it has been superseded by newer languages.

    First, Cobol became popular because it was the first language to support structured data types. Perhaps this is what at one time made it possible to quickly write a huge number of programs for the banking sector, insurance companies and other wealthy industries. These programs worked and continue to work on mainframes, to the envy of all ALGOL programmers. In addition to supporting structures, Cobol also offered features that were very attractive to application programmers. For example, support for working with files was very good for its time, which gave this language additional attractiveness in the eyes of the creators of business applications.

    However, this was more than offset by Kobol's verbosity. Programmers do not really like verbose languages ​​- this is largely due to the reluctance to write a large amount of tedious, routine code, and in many ways also because languages ​​in which you need to write a lot of words in the code simply do not allow your hands to keep up with your thoughts. Therefore, what the creators of Cobol initially perceived as an unambiguous advantage of the language (that is, the fact that someone who does not know programming could potentially write in it) became, rather, a disadvantage. As other programming languages ​​developed, the role of Cobol decreased, and gradually almost all the work of programmers who wrote in it began to come down to supporting programs that someone had once written for mainframes. However, this support still brings good money to those who do it.

    $ SET SOURCEFORMAT "FREE" IDENTIFICATION DIVISION. PROGRAM-ID. Multiplier. AUTHOR. Michael Coughlan. * Example program using ACCEPT, DISPLAY and MULTIPLY to * get two single digit numbers from the user and multiply * them together DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. PROCEDURE DIVISION. DISPLAY "Enter first number (1 digit) : " WITH NO ADVANCING. ACCEPT Num1. DISPLAY "Enter second number (1 digit) : " WITH NO ADVANCING. ACCEPT Num2. MULTIPLY Num1 BY Num2 GIVING Result. DISPLAY "Result is = ", Result. STOP RUN.

    Compare the code size of this program with those programs in C, Java, or even the relatively verbose Pascal/Delphi that would do the same thing. In general, it really looks like Cobol had little chance of maintaining its popularity next to these languages. The fact that a huge amount of code has been written in Cobol, which now needs to be supported, is not surprising - if a program that multiplies two numbers takes at least 20 (!) lines of code, then it’s simply scary to imagine the amount of code for some serious application.

    Among the language features of Cobol that might seem strange to modern programmers, it is worth noting, first of all, a huge number of reserved words - about four hundred. No modern programming language, even Ada, has such a number of reserved words. The first version of Cobol did not include support for many programming techniques, which are now extremely difficult to do without even when developing simple programs. This list includes recursion, local variables, dynamic memory allocation, and even structured programming constructs. But in the first version of the Cobol standard there was support for self-modifying code (thanks to the ALTER X TO PROCEED TO Y construction that never took root).

    By the way, it was with Cobol that the so-called “2000 problem” was connected, which worried many bright minds in 1999 and the previous years and served as the plot for films that today are impossible to watch without smiling.


    Resume

    Of course, the fact that Cobol is not dead does not make it a good programming language in modern conditions. Just because it has its own Eclipse add-on doesn't mean it's as promising as Java, and just because IBM releases new versions of compilers for it doesn't mean new programs will be written in it. Kobol, of course, is more likely alive than dead, but this life cannot be called good. So if you decide to learn Cobol, then, of course, it’s not my place to dissuade you, but, in my opinion, there are programming languages ​​(and there are many of them) that it would be, let’s say, smarter to study.

    If you look at Cobol from a historical perspective, then it is, of course, a great programming language. In fact, it is the first commercially successful programming language created not for academic, but for applied problems. It is difficult to overestimate the idea of ​​structural data types - in fact, thanks to it, such a paradigm as object-oriented programming was born. So, although Cobol seems a little strange from the perspective of today's realities of the software industry, this in no way detracts from its historical significance.

    Vadim STANKEVICH

    In the early 60s. COBOL (Common Business Oriented Language) was widely used to process business information on computers (now called business applications).

    The architecture of the COBOL language has been revised several times - its first version was released in 1960, and later versions were released in 1974 and 1984. The development of COBOL, led by Grace Hopper, was organized by the US Department of Defense. The developers of COBOL borrowed some ideas from Univac's FLOWMATIC language, including the use of nouns and verbs to describe actions and the separation of data descriptions from commands. When developing the COBOL language, a unique goal was set - to create a programming language that uses "natural English" to describe algorithms. Although the resulting language is quite easy to read, it still has a formal syntax and programming in it requires some practical skills.

    Because of large quantity With a variety of data representations and a huge number of options for most language operators, translating a COBOL program into efficient executable code is quite difficult. Most early COBOL compilers were extremely slow, but more recent improvements in compilation techniques have resulted in relatively fast COBOL compilers that produce fairly efficient executable code.

    COBOL programs are organized into four sections. This organization meets two main goals of language development: separating machine-dependent program elements from machine-independent ones, and separating the data description from the algorithm description. As a result, three sections of the program appeared:

    The procedural section (PROCEDURE division) contains algorithms

    The DATA division contains data descriptions

    The ENVIRONMENT division contains machine-dependent software specifications, such as the connections between the program and external files data.

    The fourth identification division (IDENTIFICATION division) contains the name of the program and the name of its author, as well as additional information and documentation.