Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:basic_dialogue_programming_language:008 [2022-09-19 22:05] GreyWolf [VIII.6. О стиле программирования [57]] |
msx:basic_dialogue_programming_language:008 [2023-02-19 16:21] (текущий) GreyWolf |
||
---|---|---|---|
Строка 5: | Строка 5: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
\\ Я услышал и забыл. \\ | \\ Я услышал и забыл. \\ | ||
Я увидел и запомнил. \\ | Я увидел и запомнил. \\ | ||
Строка 102: | Строка 102: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Чтобы избегать //ошибок//, надо набираться //опыта//, | Чтобы избегать //ошибок//, надо набираться //опыта//, | ||
чтобы набираться //опыта//, надо делать //ошибки//. | чтобы набираться //опыта//, надо делать //ошибки//. | ||
Строка 115: | Строка 115: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Самая коварная уловка дьявола состоит в том, | Самая коварная уловка дьявола состоит в том, | ||
чтобы убедить нас, будто его не существует. | чтобы убедить нас, будто его не существует. | ||
Строка 134: | Строка 134: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Если вам кажется, что ситуация улучшается, | Если вам кажется, что ситуация улучшается, | ||
значит, вы чего–то не заметили! | значит, вы чего–то не заметили! | ||
Строка 178: | Строка 178: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Программисту не всегда нужна ЭВМ, иногда полезнее удобное кресло и спокойная обстановка. | Программисту не всегда нужна ЭВМ, иногда полезнее удобное кресло и спокойная обстановка. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 234: | Строка 234: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Никогда не берите на корабль два хронометра, берите один или, если есть возможность, три, но не два. | Никогда не берите на корабль два хронометра, берите один или, если есть возможность, три, но не два. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 243: | Строка 243: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
…путём тестирования никогда нельзя установить отсутствие ошибок в программе. Дело в том, что невозможно определённо утверждать, что при проверке найдена последняя ошибка в программе; следовательно, никогда нельзя быть уверенным, что может быть найдена и первая ошибка | …путём тестирования никогда нельзя установить отсутствие ошибок в программе. Дело в том, что невозможно определённо утверждать, что при проверке найдена последняя ошибка в программе; следовательно, никогда нельзя быть уверенным, что может быть найдена и первая ошибка | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 296: | Строка 296: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Вы должны радоваться, что мост разрушился, — я планировал построить ещё тринадцать по тому же проекту. | Вы должны радоваться, что мост разрушился, — я планировал построить ещё тринадцать по тому же проекту. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 390: | Строка 390: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Перевести программу из хорошего состояния в отличное неизмеримо труднее, чем из плохого в удовлетворительное. | Перевести программу из хорошего состояния в отличное неизмеримо труднее, чем из плохого в удовлетворительное. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 494: | Строка 494: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
О несчастном случае мой подзащитный впервые узнал лишь тогда, когда этот случай произошёл. | О несчастном случае мой подзащитный впервые узнал лишь тогда, когда этот случай произошёл. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 544: | Строка 544: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Если Вы думаете, что разработка и кодирование программы — вещь трудная, то Вы ещё ничего не видели. | Если Вы думаете, что разработка и кодирование программы — вещь трудная, то Вы ещё ничего не видели. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 605: | Строка 605: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Всякий необходимо причиняет пользу, употреблённый на своём месте. Напротив того: упражнения лучшего танцмейстера в химии неуместны; советы опытного астронома в танцах глупы. | Всякий необходимо причиняет пользу, употреблённый на своём месте. Напротив того: упражнения лучшего танцмейстера в химии неуместны; советы опытного астронома в танцах глупы. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 714: | Строка 714: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Щёлкни кобылу в нос — она махнёт хвостом. | Щёлкни кобылу в нос — она махнёт хвостом. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 737: | Строка 737: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
—Вам известны мои методы. Примените их! | —Вам известны мои методы. Примените их! | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 753: | Строка 753: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Разделяй и властвуй! | Разделяй и властвуй! | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 844: | Строка 844: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Don't worry, computer bugs don't byte. | Don't worry, computer bugs don't byte. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1196: | Строка 1196: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Следствие 17: некомпетентность не знает преград ни во времени, ни в пространстве. | Следствие 17: некомпетентность не знает преград ни во времени, ни в пространстве. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1223: | Строка 1223: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Происходит не просто нечто более странное, чем мы предполагали:странность происходящего превышает и то, чего мы не смели предположить. | Происходит не просто нечто более странное, чем мы предполагали:странность происходящего превышает и то, чего мы не смели предположить. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1255: | Строка 1255: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Программа, свободная от ошибок, есть абстрактное теоретическое понятие. | Программа, свободная от ошибок, есть абстрактное теоретическое понятие. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1290: | Строка 1290: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Когда кто выходит из дому, пусть поразмыслит о том, что намерен делать, а когда снова войдёт в дом, пусть поразмыслит о том, что сделал. | Когда кто выходит из дому, пусть поразмыслит о том, что намерен делать, а когда снова войдёт в дом, пусть поразмыслит о том, что сделал. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1401: | Строка 1401: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Структура (от лат. "structura" — "строение, расположение, порядок"), совокупность устойчивых связей объекта, обеспечивающих его целостность и тождественность самому себе, т.е. сохранение основных свойств при различных внешних и внутренних изменениях. | Структура (от лат. "structura" — "строение, расположение, порядок"), совокупность устойчивых связей объекта, обеспечивающих его целостность и тождественность самому себе, т.е. сохранение основных свойств при различных внешних и внутренних изменениях. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1480: | Строка 1480: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Вы говорите, что я повторяюсь. \\ | Вы говорите, что я повторяюсь. \\ | ||
Но я повторю. | Но я повторю. | ||
Строка 1664: | Строка 1664: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Известно, что отладка в два раза сложнее написания программы. Поэтому, если Вы были предельно хитроумны при написании программы, то что же Вы будете делать при её отладке? | Известно, что отладка в два раза сложнее написания программы. Поэтому, если Вы были предельно хитроумны при написании программы, то что же Вы будете делать при её отладке? | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1747: | Строка 1747: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Форме дай щедрую дань\\ | Форме дай щедрую дань\\ | ||
Временем: важен в поэме\\ | Временем: важен в поэме\\ | ||
Строка 1858: | Строка 1858: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
- Если программа неверна, то её быстродействие не имеет значения. Убедитесь в её правильности прежде, чем Вы начнёте её "улучшать". | - Если программа неверна, то её быстродействие не имеет значения. Убедитесь в её правильности прежде, чем Вы начнёте её "улучшать". | ||
- Сохраняйте программу ясной и понятной, не пытайтесь повысить её быстродействие в процессе кодирования. Преждевременная оптимизация — корень всех бед. | - Сохраняйте программу ясной и понятной, не пытайтесь повысить её быстродействие в процессе кодирования. Преждевременная оптимизация — корень всех бед. | ||
Строка 1877: | Строка 1877: | ||
[[bibliography#b59|[59]]] | [[bibliography#b59|[59]]] | ||
- | |||
<WRAP group 99%> | <WRAP group 99%> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column> \\ </WRAP> |
- | Меня вы научили говорить \\ | + | <WRAP half column><WRAP right> |
- | На вашем языке. Теперь я знаю, \\ | + | Меня вы научили говорить |
- | Как проклинать, — спасибо и за это. \\ | + | \\ На вашем языке. Теперь я знаю, |
- | Пусть унесёт чума обоих вас \\ | + | \\ Как проклинать, - спасибо и за это. |
- | И ваш язык. | + | \\ Пусть унесет чума обоих - вас |
+ | \\ И ваш язык. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//У.Шекспир. Буря (пер.М.Донского)// | + | —//У.Шекспир// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
- | </WRAP> | + | </WRAP></WRAP> |
- | <WRAP half column><WRAP justify> | + | |
- | Взирая на солнце, прищурь глаза свои и ты смело разглядишь в нем пятна. | + | <WRAP group 99%> |
+ | <WRAP half column> \\ </WRAP> | ||
+ | <WRAP half column><WRAP right> | ||
+ | Взирая на солнце,прищурь глаза свои | ||
+ | \\ и ты смело разглядишь в нем пятна. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
—//Козьма Прутков// | —//Козьма Прутков// | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
+ | |||
Школьный курс информатики преследует две цели: | Школьный курс информатики преследует две цели: | ||
Строка 1950: | Строка 1955: | ||
Почему же, несмотря на столь серьёзную опасность [[basic:basic|]], он так популярен? | Почему же, несмотря на столь серьёзную опасность [[basic:basic|]], он так популярен? | ||
- | Перечислим основные аргументы, выдвигаемые его защитниками и попытаемся их прокомментировать. | + | Перечислим основные аргументы, выдвигаемые его защитниками, и попытаемся их прокомментировать. |
- | * [[basic:basic|]] прост в изучении. Это единственное достоинство языка как такового. Но это та самая простота, которая хуже воровства, "простота орудий каменного века". [[basic:basic|]] прост, потому, что в нем нет сложных элементов (в первую очередь вспомогательных алгоритмов и некоторых алгоритмических конструкций), без овладения которыми поставленные цели не достигаются. | + | * [[basic:basic|]] прост в изучении. Это единственное достоинство языка как такового. Но это та самая простота, которая хуже воровства, "простота орудий каменного века". [[basic:basic|]] прост потому, что в нем нет сложных элементов (в первую очередь вспомогательных алгоритмов и некоторых алгоритмических конструкций), без овладения которыми поставленные цели не достигаются. |
* При работе на [[basic:basic|]] диалог с компьютером происходит быстро и просто. \\ Это достоинство не языка, а его реализации. | * При работе на [[basic:basic|]] диалог с компьютером происходит быстро и просто. \\ Это достоинство не языка, а его реализации. | ||
* [[basic:basic|]] имеется на многих компьютерах, он широко распространён. Однако это не достоинство, а большая беда. Фактически мы сталкиваемся здесь с осуждённым в промышленности диктатом производителя. Изготовители ЭВМ и программного обеспечения рекламируют [[basic:basic|]], так как [[basic:basic|]]–системы проще в изготовлении и могут быть перенесены с западных компьютеров. | * [[basic:basic|]] имеется на многих компьютерах, он широко распространён. Однако это не достоинство, а большая беда. Фактически мы сталкиваемся здесь с осуждённым в промышленности диктатом производителя. Изготовители ЭВМ и программного обеспечения рекламируют [[basic:basic|]], так как [[basic:basic|]]–системы проще в изготовлении и могут быть перенесены с западных компьютеров. | ||
Строка 1965: | Строка 1970: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Карл Пятый, римский император, говаривал, что ишпанским языком с богом, французским — с друзьями, немецким — с неприятельми, италиянским — с женским полом говорить прилично. Но если бы он российскому языку был искусен, то, конечно, к тому присовокупил бы, что им со всеми оными говорить пристойно. Ибо нашёл бы в нем великолепие ишпанского, живость французского, крепость немецкого, нежность италиянского и, сверх того, богатство и сильную в изображениях краткость греческого и латинского языка… | Карл Пятый, римский император, говаривал, что ишпанским языком с богом, французским — с друзьями, немецким — с неприятельми, италиянским — с женским полом говорить прилично. Но если бы он российскому языку был искусен, то, конечно, к тому присовокупил бы, что им со всеми оными говорить пристойно. Ибо нашёл бы в нем великолепие ишпанского, живость французского, крепость немецкого, нежность италиянского и, сверх того, богатство и сильную в изображениях краткость греческого и латинского языка… | ||
Сильное красноречие Цицероново, великолепная Виргилиева важность, Овидиево приятное витийство не теряют своего достоинства на российском языке… | Сильное красноречие Цицероново, великолепная Виргилиева важность, Овидиево приятное витийство не теряют своего достоинства на российском языке… | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//М.В. Ломоносов. Российская грамматика// | + | —//М.Ломоносов. Российская грамматика// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 2001: | Строка 2006: | ||
|Простота изучения| 3 | 3 | 4 | 4 | 5 | 1 | 3 | | |Простота изучения| 3 | 3 | 4 | 4 | 5 | 1 | 3 | | ||
|Наличие литературы| 5 | 3 | 3 | 4 | 4 | 2 | 1 | | |Наличие литературы| 5 | 3 | 3 | 4 | 4 | 2 | 1 | | ||
- | |Поддержка фирмами разработчиками микропроцессорных систем| 5 | 4 | 4 | 4 | 4 | 3 | 4 | | + | |Поддержка фирмами–разработчиками микропроцессорных систем| 5 | 4 | 4 | 4 | 4 | 3 | 4 | |
|Универсальность (широта диапазона решаемых задач)| 3 | 3 | 3 | 3 | 2 | 5 | 3 | | |Универсальность (широта диапазона решаемых задач)| 3 | 3 | 3 | 3 | 2 | 5 | 3 | | ||
|Удобство для системного программирования| 5 | 5 | 4 | 3 | 1 | 4 | 5 | | |Удобство для системного программирования| 5 | 5 | 4 | 3 | 1 | 4 | 5 | | ||
Строка 2017: | Строка 2022: | ||
В заключение три цитаты: | В заключение три цитаты: | ||
- <WRAP> Практически невозможно научить хорошему программированию студентов, ориентированных первоначально на бейсик; как потенциальные программисты они умственно оболванены без надежды на исцеление | - <WRAP> Практически невозможно научить хорошему программированию студентов, ориентированных первоначально на бейсик; как потенциальные программисты они умственно оболванены без надежды на исцеление | ||
- | <WRAP rightalign> --- Э.В.Дейкстра, ASMSIGPLAN Notice, 1982, 7, P.13–15</WRAP> | + | <WRAP rightalign> --- Э.Дейкстра, ASMSIGPLAN Notice, 1982, 7, P.13–15</WRAP> |
</WRAP> | </WRAP> | ||
- <WRAP> …коль уж становиться программистом, то программистом хорошим; такого программиста отличает постоянное желание стать ещё лучшим программистом, а единственно верный путь для этого — стремиться в совершенстве овладеть несколькими языками, т.е. сделаться хорошим лингвистом в программировании. Безусловно, можно доказать, что несомненный вред нанесли и наносят те, довольно хорошие программисты, которые, став слишком самодовольными или консервативными, полагают, что язык, которым они пользуются, во всех смыслах является последним словом | - <WRAP> …коль уж становиться программистом, то программистом хорошим; такого программиста отличает постоянное желание стать ещё лучшим программистом, а единственно верный путь для этого — стремиться в совершенстве овладеть несколькими языками, т.е. сделаться хорошим лингвистом в программировании. Безусловно, можно доказать, что несомненный вред нанесли и наносят те, довольно хорошие программисты, которые, став слишком самодовольными или консервативными, полагают, что язык, которым они пользуются, во всех смыслах является последним словом | ||
Строка 2023: | Строка 2028: | ||
</WRAP> | </WRAP> | ||
- <WRAP> **Предмет, достойный целого курса лекций, вы превратили в собрание //рассказиков//.** | - <WRAP> **Предмет, достойный целого курса лекций, вы превратили в собрание //рассказиков//.** | ||
- | <WRAP rightalign> --- Конан Дойль. Медные буки</WRAP> | + | <WRAP rightalign> --- А.Конан Дойль. Медные буки</WRAP> |
</WRAP> | </WRAP> | ||