Много раньше и на много лучше писали про то же Стругацкие:
Эксперимент произвел на меня тягостное впечатление, и, устроившись
в огромном кресле в приемной, я некоторое время пытался понять, дурак
Выбегалло или хитрый демагог-халтурщик. Научная ценность всех его
кадавров была, очевидно, равна нулю. Модели на базе собственных дублей
умел создавать любой сотрудник, защитивший магистерскую диссертацию и
закончивший двухгодичный спецкурс нелинейной трансгрессии. Наделять эти
модели магическими свойствами тоже ничего не стоило, потому что
существовали справочники, таблицы и учебники для магов-аспирантов. Эти
модели сами по себе никогда ничего не доказывали и с точки зрения науки
представляли не больший интерес, чем карточные фокусы или шпагоглотание.
Можно было, конечно, понять всех этих горе-корреспондентов, которые
липли к Выбегалле, как мухи к помойке. Потому что с точки зрения
неспециалиста все это было необычайно эффектно, вызывало почтительную
дрожь и смутные ощущения каких-то громадных возможностей. Труднее было
понять Выбегаллу с его болезненной страстью устраивать цирковые
представления и публичные взрывы на потребу любопытным, лишенным
возможности (да и желания) разобраться в сути вопроса. Если не считать
двух-трех изнуренных командировками абсолютников, обожающих давать
интервью о положении дел в бесконечности, никто в институте, мягко
выражаясь, не злоупотреблял контактами с прессой: это считалось дурным
тоном и имело глубокое внутреннее обоснование.
Дело в том, что самые интересные и изящные научные результаты
сплошь и рядом обладают свойством казаться непосвященному заумными и
тоскливо-непонятными. Люди, далекие от науки, в наше время ждут от нее
чуда и только чуда и практически не способны отличить настоящее научное
чудо от фокуса или какого-нибудь интеллектуального сальто-мортале. Наука
чародейства и волшебства не составляет исключения. Организовать на
телестудии конференцию знаменитых привидений или просверлить взглядом
дыру в полуметровой бетонной стене могут многие, и это никому не нужно,
но это приводит в восторг почтеннейшую публику, плохо представляющую
себе, до какой степени наука сплела и перепутала понятия сказки и
действительности. А вот попробуйте найти глубокую внутреннюю связь между
сверлящим свойством взгляда и филологическими характеристиками слова
"бетон", попробуйте решить эту маленькую частную проблемку, известную
под названием Великой проблемы Ауэрса! Ее решил Ойра-Ойра, создав теорию
фантастической общности и положив начало совершенно новому разделу
математической магии. Но почти никто не слыхал об Ойре-Ойре, зато все
превосходно знают профессора Выбегаллу. ("Как, вы работаете в НИИЧАВО?
Ну как там Выбегалло? Что он еще новенького сотворил?") Это происходит
потому, что идеи Ойры-Ойры способны воспринять всего двести-триста
человек на всем земном шаре, и среди этих двух-трех сотен довольно много
членов-корреспондентов и -- увы! -- нет ни одного корреспондента. А
классический труд Выбегаллы "Основы технологии производства
самонадевающейся обуви", набитый демагогической болтовней, произвел в
свое время заботами Б. Питомника изрядный шум. (Позже выяснилось, что
самонадевающиеся ботинки стоят дороже мотоцикла и боятся пыли и
сырости.)
Здравствуйте, carpenter, Вы писали: C>... с нашей тенденцией в образовании и вообще в культуре — скоро будут C>показывать изобретение спичек и фокусы с отрыванием пальца
Ну вот раньше ржали над тупыми америкосами, но с такими тенденциями скоро кним приблизимся
OUT &H278,255
CLS
DIM b(255)
b(254)=0
b(253)=2
b(251)=4
50
x=INP(&H37B)
OUT &H278, NOT b(x)
c=INP(&H278)
PRINT C
GOTO 50
Чему детей то учат.
Ну ладно, святой долг каждого школьника, которого заставляют писать на турбо бэйсике, написать в начале программы CLS.
&H278, &H37B — надо со школы отучивать потенциальных программистов от magic numbers. А за "GOTO 50" я бы вообще линейкой по рукам. Что бы с детства забыл про этот оператор.
Здравствуйте, TimurSPB, Вы писали:
TSP>Чему детей то учат.
TSP>&H278, &H37B — надо со школы отучивать потенциальных программистов от magic numbers. А за "GOTO 50" я бы вообще линейкой по рукам. Что бы с детства забыл про этот оператор.
Не зачет! Учить, учить и еще раз учить! Особенно приведенные выше magic number и оператор goto
Здравствуйте, TimurSPB, Вы писали:
TSP>Чему детей то учат. TSP>Ну ладно, святой долг каждого школьника, которого заставляют писать на турбо бэйсике, написать в начале программы CLS. TSP>&H278, &H37B — надо со школы отучивать потенциальных программистов от magic numbers. А за "GOTO 50" я бы вообще линейкой по рукам. Что бы с детства забыл про этот оператор.
А скажи мне как от волшебных чисел избавиться и от goto в таком мегаязыке программирования, как бейсик стандарта MSX? Когда имя переменной одна буква. А это и есть канонический бейсик, хоть ты семи пядей во лбу если будешь и мегапрофессионал, один черт код грязнее грязного окажется. Как раз пусть в школьные годы пишут в индусском стиле, чем больше дров нарубят в школе, тем раньше поймут чем плоха структурированность, обилие волшебных чисел и тому подобное. Я считаю, что именно в школе все допустимо, любые самые грязные хаки не должны наказываться, пусть пишут как хотят. Главное чтоб работало, и чтоб сами понимали что они написали. А насильно прививать культуру кодирования именно в школе не надо — программистами то мало кто станет, а вот основы как все работает знать не помешает. А относительно основ — основа это машинный код, а в машинном коде как раз все и есть набор magic numbers + куча goto. Говорю это как человек, который очень серьезно относится к культуре написания кода.
Здравствуйте, elmal, Вы писали:
E>А скажи мне как от волшебных чисел избавиться и от goto в таком мегаязыке программирования, как бейсик стандарта MSX? Когда имя переменной одна буква. А это и есть канонический бейсик, хоть ты семи пядей во лбу если будешь и мегапрофессионал, один черт код грязнее грязного окажется.
Во-первых, хороший программист и на бейсике будет писать хороший код, используя goto только там где это по бедности языка необходимо.
Во-вторых, поэтому и не стоит обучать программированию на бейсике. Есть достаточно нормальных языков для обучения программированию, в том числе и с прямым доступом к портам компьютера под DOS.
TSP>&H278, &H37B — надо со школы отучивать потенциальных программистов от magic numbers. А за "GOTO 50" я бы вообще линейкой по рукам. Что бы с детства забыл про этот оператор.
Хм, я где-то упустил, а что это за magic numbers? Бэйсик вроде в школе был, но такого нам не рассказывали
Самая большая в мире ложь — "Я прочел и согласен с условиями пользовательского соглашения".
Здравствуйте, Sheridan, Вы писали:
S>Внимание! Код!
S>
OUT &H278,255
S>CLS
S>DIM b(255)
S>b(254)=0
S>b(253)=2
S>b(251)=4
S>50
S>x=INP(&H37B)
S>OUT &H278, NOT b(x)
S>c=INP(&H278)
S>PRINT C
S>GOTO 50
Молодец мальчик — открыл для себя — что можно замкнуть два нужных контакта LPT порта и это отобразится в памяти... Дальше вопрос интерпретации... Помню лет 7 мне было (год 1986), я подобное на электронике БК-0010-01 писал, когда надо было припаять правильно контакты джойстика (тогда джойстики продавались кусок провода — а контакт паяй сам нужный) — инструкций не было...
Здравствуйте, Ларик, Вы писали:
TSP>>&H278, &H37B — надо со школы отучивать потенциальных программистов от magic numbers. А за "GOTO 50" я бы вообще линейкой по рукам. Что бы с детства забыл про этот оператор.
Л>Хм, я где-то упустил, а что это за magic numbers? Бэйсик вроде в школе был, но такого нам не рассказывали Ну это примерно об этом
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, TimurSPB, Вы писали:
TSP>>Чему детей то учат. TSP>>Ну ладно, святой долг каждого школьника, которого заставляют писать на турбо бэйсике, написать в начале программы CLS. TSP>>&H278, &H37B — надо со школы отучивать потенциальных программистов от magic numbers. А за "GOTO 50" я бы вообще линейкой по рукам. Что бы с детства забыл про этот оператор. E>А скажи мне как от волшебных чисел избавиться и от goto в таком мегаязыке программирования, как бейсик стандарта MSX?
1. Это Turbo Basic
2. Завести переменную и присвоить ей номер порта. И тогда можно написать комментарий в этом месте, и (о чудо!) менять номер порта в одном месте программы, вместо трех
3. В basic есть циклы, что бы организовывать циклы без GOTO
E>Главное чтоб работало, и чтоб сами понимали что они написали
Опасный путь. К порядку как раз надо с детства приучать.
Здравствуйте, Uzumaki Naruto, Вы писали:
UN>Молодец мальчик — открыл для себя — что можно замкнуть два нужных контакта LPT порта и это отобразится в памяти... Дальше вопрос интерпретации... Помню лет 7 мне было (год 1986), я подобное на электронике БК-0010-01 писал, когда надо было припаять правильно контакты джойстика (тогда джойстики продавались кусок провода — а контакт паяй сам нужный) — инструкций не было...
Покупной джойстик — это было круто. Я сам вырезал из куска эбонитовой полки. Потом делал коробочку и ставил микрики. Больше всего задалбывало изготовление "крестовины". сначала делал из лезвий — но они не долго выдерживали. Потом нашел классный не толстый стальной лист. Из него супер крестовинка получилась
Здравствуйте, TimurSPB, Вы писали:
TSP>1. Это Turbo Basic
Не принципиально.
TSP>2. Завести переменную и присвоить ей номер порта. И тогда можно написать комментарий в этом месте, и (о чудо!) менять номер порта в одном месте программы, вместо трех
Опа! Это называется "избавится от magic number". Фантастика.
TSP>3. В basic есть циклы, что бы организовывать циклы без GOTO
Какая связь между ЦИКЛАМИ и использованием оператора GOTO в данном, конкретном случае. Или Вы из тех любителей, которые пишут длинющие if-then-else вместо логичного и красивого использования goto для перехода к коду очистки в конке процедуры?
E>>Главное чтоб работало, и чтоб сами понимали что они написали TSP>Опасный путь. К порядку как раз надо с детства приучать.
Здравствуйте, TimurSPB, Вы писали:
TSP>Опасный путь. К порядку как раз надо с детства приучать.
Относительно порядка, я считаю что к порядку надо не приучать насильно, а надо сделать так, чтобы человек сам пришел к пониманию того, что лучше писать как можно чище, и чтоб он на собственной шкуре прочувствовал что значит писать тяп ляп. Лучший способ прийти к пониманию — это обжечься самому. И обжигаться лучше всего именно в школе и именно на школьных задачах. Да, говорить про вред magic numbers, про вред goto и тому подобное можно еще и в школе, но нужно именно говорить и подталкивать, а не заставлять убирать это все насильно. В школьных задачах вреда от говнокода никакого, так что за говнокод снижать оценку никакого смысла нет — человек учится, а не делает реальную систему. Негативный опыт — тоже очень хороший опыт.
А насилием не добиться ничего, путь насилия хоть и прост, но неэффективен.
В 1986 и Электроника БК было круто... мамка отца чуть не убила, когда отец на премию комп принес домой, вместо того, что б ей сапоги купить... х))))))) Зато спасибо папе — мальчик, который уже в 7 лет состоял на учете в милиции, которому пророчили, что к 18 годам либо сядит, либо дворником будет, — окончил физ-мат вуз и стал КФМН.
Здравствуйте, TimurSPB, Вы писали:
TSP>Ну ладно, святой долг каждого школьника, которого заставляют писать на турбо бэйсике, написать в начале программы CLS. TSP>&H278, &H37B — надо со школы отучивать потенциальных программистов от magic numbers.
В программе таких масштабов определение magic numbers увеличит размер программы раза в два и уменьшит читаемость примерно во столько же. А для человека, хоть немного поработавшего с LPT, константы 0x278 и 0x378 красноречивее любых символических имен.
TSP>А за "GOTO 50" я бы вообще линейкой по рукам. Что бы с детства забыл про этот оператор.
Предложи свой вариант организации вечного цикла на бэйсике, в котором и repeat/until скорее всего нету?
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Здравствуйте, Uzumaki Naruto, Вы писали:
UN>В 1986 и Электроника БК было круто... мамка отца чуть не убила, когда отец на премию комп принес домой, вместо того, что б ей сапоги купить... х))))))) Зато спасибо папе — мальчик, который уже в 7 лет состоял на учете в милиции, которому пророчили, что к 18 годам либо сядит, либо дворником будет, — окончил физ-мат вуз и стал КФМН.
Да. Помню в очереди на него стояли. Челых 3 месяца, вроде, ждали. До этого был MK61 (кто помнит такой программируемый калькулятор). Правда БК (0010-01, с картриджем с ФОКАЛ'ом) у меня не долго пробыла. Ну может с годик. Потом ATARI 65XE прикупили — и вот тут, как говорится, понеслась душа в рай.
Здравствуйте, TimurSPB, Вы писали:
TSP>Здравствуйте, Ларик, Вы писали:
TSP>>>&H278, &H37B — надо со школы отучивать потенциальных программистов от magic numbers. А за "GOTO 50" я бы вообще линейкой по рукам. Что бы с детства забыл про этот оператор.
Л>>Хм, я где-то упустил, а что это за magic numbers? Бэйсик вроде в школе был, но такого нам не рассказывали TSP>Ну это примерно об этом
как я рад что такой код по наследству не передают
Самая большая в мире ложь — "Я прочел и согласен с условиями пользовательского соглашения".