[an error occurred while processing the directive]
RSS
Логотип
Баннер в шапке 1
Баннер в шапке 2
2018/10/26 10:15:08

Programming methodology

The programming methodology is the set of the ideas, concepts, the principles, methods and means defining style of writing, debugging and support of programs.

Content

Methodology — the system of the principles, methods, methods and means of the organization of theoretical, practical and productive activity and also the doctrine about the systems of knowledge, concepts and subject and productive activity.

Programming — process of creation of computer programs and/or the software for computers and computer networks using languages and programming systems. Programming combines elements of art of science, engineering and craft.

The technology of programming is a technology of development of programs and program products for the computer meeting the requirements of high reliability and the set quality of the software using proper methodology, means and programming systems.

the Most popular and fast-growing programming languages

2018

In October, 2018 GitHub published results of the annual research Octoverse in which analyzes activity ratios of participants of service. In particular, data on the most popular and fast-growing programming languages are provided.

Participants of community use hundreds of different programming languages, and JavaScript remained the most popular among them in 2018. And it concerns the companies of all sizes and each region. JavaScript has most of all accomplices within public and private repositories.

Java rose to the second place in the rating of GitHub, having outstripped Python. Ten the most demanded programming languages among the GitHub participating developers looks as follows:

  1. Javascript
  2. Java
  3. Python

# PHP # C++

  1. C#
  2. TypeScript
  3. Shell

# C

  1. Ruby

The greatest rise in the leading group showed the TypeScript project which not just entered in top-10, and was located on the 7th position at once. The worst dynamics appeared at Ruby: this language rolled down from the 5th place on the 10th.

The most vigorously developing programming language the administration of GitHub recognized Kotlin at which the number of supporters in 2018 grew up by 2.5 times in many respects thanks to similarity to Java and capability to rapid application development for Android. After Kotlin there are HCL and TypeScript, and all ten of the programming languages showing the highest growth rates of popularity in 2018 is given below:

GitHub notes that  languages which code can be performed in  several parallel flows and  which are capable to interact with  other languages in one system become leaders in popularity.

Statistics of GitHub can quite reflect the real situation regarding demand of these or those programming languages. By October, 2018 31 million programmers from 200 countries use service. They placed about 96 million repositories on the portal that corresponds to about 95% in the general size of code base of the open source software.[1]

Programming paradigms

The programming paradigm is the set of the ideas and concepts defining style of writing of programs. The paradigm, first of all, is defined by basic program unit and the principle of designing of the program.

Programming paradigms are defined by tool kits, namely, a programming language and the used libraries and programming systems.

  • units act as paradigms:

  1. determinations (declarative programming),
  2. predicates (logical programming),
  3. functions functional programming),
  4. action (imperative programming),
  5. rule (productional programming),
  6. chart of transitions (automata-based programming), etc.

Software 2.0: As the new development approach of software will force computers to grow wiser

Paradigm of Software 2.0 - a software development approach which is capable to make high-quality breakthrough in the field of computing development. As the purpose of Software 2.0 serves creation of model which can generate codes, it studies what codes in compliance with the set rules should be created for obtaining these or those results. Read more here.

Programming languages

The most part of work of programmers is connected with writing of the source code, testing and debugging of programs in one of programming languages. Source texts and executable files of programs are subjects of copyright and are the intellectual property of their authors and owners.

Different programming languages maintain different programming styles (programming paradigms). Partly art of programming consists in selecting one of languages, the most full suitable for the solution of the available task.

Different languages demand from the programmer of different level of attention to parts when implementing an algorithm, the compromise between simplicity and performance (or between time of the programmer and the user's time) happens result of what often.

Software tools

The software tools used when developing programs are divided into system and instrumental, license and freely extended. In system providing with the main operating systems, work benches and technologies Windows and Linux and other operating systems are.

Freely distributed work benches can be set and used on any computers with operating systems of the Windows and Linux family.

At the Olympic Games on information science and programming with success only freely distributed work benches in the environment of Windows and Linux allowing to develop the software without errors are used. At the Olympic Games on programming the last years were used the programming languages Pascal, C/C ++ and Java.

For maintaining documentation when developing programs the license and freely distributed office suites of the Open Office and Microsoft Office programs can quite be used. The files of documentation created in the license and freely extended office it is information are compatible.

Internet technologies

Internet technologies are technologies of creation and support of different information resources in a computer network of the Websites, blogs, forums, chats, digital libraries and encyclopedias.

The interactive websites are the websites in which the interactive hypertext subprogrammes allowing to conduct dialogue with users of the computer connected to computer network are used.

Hypertext subprogrammes join in hypertexts together with hypertext forms and subprogrammes which are called scripts.

For record of hypertext subprogrammes (hypertext scripts) the JavaScript language which is expansion of a markup language of hypertexts HTML is often used.

The JavaScript language is expansion of a marking of hypertexts HTML and for these reasons the interpreter of the JavaScript language is built in all browsers and all hypertext editors.

The JavaScript language is the international standard. For this reason interactive programs in the JavaScript language are equally executed on all computers in the world.

Programming problems

The software product according to the international requirements of ISO should not contain errors and defects which lead to failures and failures at accomplishment of these programs on a computer or in computer network. Programs with defects and errors are not a product.

According to the Act of the Russian Federation "About Consumer Protection" any goods at detection of defects in it are subject replacement or to return of money for its acquisition and the accompanying costs.

Unlike natural sciences, computer sciences received a big incentive from broad and continuous interaction with logic. A special role in computer sciences is played by evidential methods of algorithm elaboration and programs with proofs of their correctness.

Testing of programs can reveal existence of errors in programs, but cannot guarantee their absence. Guarantees of lack of errors in algorithms and programs can give only proofs of their correctness. The algorithm does not contain errors if it gives the correct solutions for all legal data.

The most serious problem for computer sciences and information science is existence of errors in the algorithms and programs published in textbooks and manuals and also inability teachers and teachers of information science to reveal and correct errors in the algorithms and programs made by pupils.

The only way for overcoming these problems is studying to systematic methods of drawing up algorithms and programs with the simultaneous analysis of their correctness within evidential programming from the very beginning of training in bases of algorithmization and programming.

Problems of training in programming

The complexity for teachers and programmers is that they should be able to write not only algorithms and programs and at the same time to write correctness proofs of the algorithms and programs. What now neither mathematicians, nor programmers are able to do.

As a result programmers write programs with a large number of errors which they cannot neither reveal, nor correct. Massive testing of programs for a computer brings to programmers undoubted benefit, however does not give guarantees of complete disposal of errors.

Practice of application and studying of evidential programming methods showed that this technology is quite available to students of mathematical faculties who quite can do writing of correctness proofs of algorithms, after check and testing of programs for a computer.

The greatest effect in mastering of technologies of evidential programming is observed in the Olympic Games on information science and programming where winners and prize-winners are those students who mastered technology of testing of programs for a computer and drawing up algorithms and programs without errors.

See Also

information science

logic in information science

programming

solving of tasks on a computer

Internet technologies

logical programming

evidential programming

technology of programming

Literature

  1. Naur. Programming science. M, World, 1982.
  2. Tarsky M. Programming methodology. M, World, 1981.
  3. Dijkstra of E. Distsiplin of programming = A discipline of programming. — the 1st prod. — M.: World, 1978. — Page 275.
  4. Babayev I. O., Gerasimov M.A., Kosowski N.K., Solovyov I. P. Intellectual programming. Turbo-Prolog and Refal-5 on personal computers. SPb, SPBSU publishing house, 1992.
  5. Robert In Sebest "The main concepts of programming languages", the 5th edition: The lane with engl. — M.: 2001. — 672 p. about silt., Williams
  6. Ian Sommervill "Software engineering", the 6th edition: The lane with engl. — M.: 2002. — 624 p. about silt., Williams
  1. Kaymin V. A. Methods of development of programs in languages of the high level. M, MIEM, 1985.
  2. Kaymin V. A. Bases of evidential programming. M, MIEM, 1987.
  3. Kaymin of V.A. Informatik. The textbook for students. M, INFRA-M, 1998-2009.
  4. Kaymin of V.A. Informatik. The textbook for school students. M, Progress, 2007-2009.

Internet links