Обсуждение книги Осипова А.В. «PascalABC.NET: Введение в современное программирование»


#22

Почему-то не делается цитата про отрыв от предметной области с мобилки :slight_smile:

А я вот не хотел бы пропустить добрую половину материала сугубо за счёт того, что не помню тот или иной материал из школьной программы физики/химии/нужное_вставить. Или оставлять каждый раз параграф на объяснение самих терминов задачи? До какой глубины их объяснять? Максимум, что стоит тут добавить - один-два примера среди прочих. Не более.

Программирование тем и выделяется из остальных дисциплин, что оно в основном о работе с абстракциями: хочешь - пиши игры, хочешь - моделируй и отлаживай взаимодействие между отделами предприятия, хочешь - заводи симуляции химических реакций. Модели повсюду одинаковы. Задача программиста - найти нужную модель, но этому ни в одной книжке не научат: тому, кто после определенного периода не сможет это делать интуитивно, просто не место в индустрии.

А если скажут “такой программист в реальной работе не нужен” - гхм, в предметную область на определенную степень можно просто влиться. 1Сники, вон, за пару месяцев работы разбираются в локальных бумажках не хуже тех же бухгалтеров. Ибо надо. Есть курсы, в конце концов. Или второе высшее, если уж так сильно надо.


#23

Вот видите: Вы опять рассказываете о том, как пишутся традиционные учебники. Материал разбивается на какие-то “уроки”, каждому уроку ставится цель, определяются необходимые способы и средства ее достижения и т.п. Ну не учебник это, сказано ведь уже было! Откройте, к примеру, ту же книгу Йенсен К., Вирт Н. “Паскаль. Руководство для пользователя и описание языка” и поищите там “уроки”. Мало? Откройте книги Кернигана и Ритчи, Страуструпа, Шилдта, … поищите “уроки там”. С планами, целями и описанием целевой аудитории,

Этой фразы я вообще не понял. Сравнение с базовым Паскалем дается там, где я считаю это уместным. Рассказывать, как что-то на базовом Паскале пишется - это не моя цель: для этого есть сотни книг по Паскалю. Не вижу смысла особо задерживаться на фактически мертвых диалектах языка и архаичных приемах программирования. Посему сравнение дается лишь чтобы еще раз показать, что попытки сегодня учить языку полувековой давности выливаются в долгую писанину рыхлого кода, зачастую малопонятного.

Вы представляете себе объем материала для подобных советов? В “Целочисленной арифметике”, к примеру, для углубления в тему рекомендовать читать про системы счисления, двоичный код, процессоры, правила арифметики, … “мамонтов, слонов и устройство радиолампы” (с)? Программирование - очень эклектичная наука, мы что, будем так все возможные предметные области охватывать? Не вижу смысла при описании языка говорить о том, как на нем программировать задачу из конкретной предметной области. Нужно отделять составление алгоритма от его реализации. Вот тут речь идет о реализации алгоритма в PascalABС.NЕТ. Совершенно оторвано от предметной области. Нахождение суммы ряда чисел может встретиться везде и абсолютно неважно, какой была постановка задачи и откуда эта задача взялась.

Подобные выражения - это особенность языка Паскаль. В других распространенных языках такое выражение компилятор бракует. Дано для тех, кто незнаком с Паскалем и пытается рассказывать, что компилятор пропускает некорректно записанный код. В любом варианте нужно было дать разбор какого-нибудь выражения, почему не сэкономить патрон на одном из зайцев?

Полностью согласен.


#24

Часть 5 готова к выкладке. Помещаю сюда общее для выложенных частей полное оглавление. Возможно (при отсутствии возражений у владельцев официального сайта PascalABC.NЕТ), актуальная версия этого оглавления будет находиться здесь

СводноеОглавление.pdf (305,0 КБ)


#25

Мне кажется, этот код, приведенный в первой главе, только отобьёт охоту от программирования на PascalABC.NET

И подавно он не отражает заявленную суть книги - современное программирование на PascalABC.NET


#26

Книга - она заодно и в определенной степени справочник по языку. Предлагаете вообще все конструкции выкинуть, которые найдутся в базовом Паскале (у Вирта, в ТурбоПаскаль, в Дельфи), для которых есть какая-то замена в PascalABC.NЕТ и оставить только то, что “современно” (кстати, это достаточно дискутируемый вопрос, во многом сводящийся к личным предпочтениям). Работу унарных операторов в части их высшего приоритета все равно показать где-то нужно, потому что я видел задания, где предлагалось перевести выражение из “математической записи” в “однострочную” (?) и эти выражения содержали комбинации унарных операций.

Т.е. на приведенном фрагменте “правильно” писать второй вариант с кучей скобок, а первый нужно запинать ногами и вообще запретить? Вот я считаю, оба варианта имеют право на жизнь, но следует говорить о том, что первый вариант допустим только в языке Паскаль и нигде больше, поэтому писать так можно, но лучше и правильнее сразу привыкать к общепринятому стилю записи с “лишними” скобками.

И еще: я не видел ни одного материала приличного объема, который бы на каждой странице отражал суть своего названия. Все равно приходится временами отступать. Для разъяснений, сравнений и проч.

Я могу, к примеру, заменить вызывавший столь бурное негодование материал на представленный, но “унарная экзотика” на мой взгляд все же присутствовать должна, потому что она часто вызывает вопросы у новичков.


#27

Это не современное программирование. Современное программирование заявлено в названии книги. Это исследование тёмных частностей языка. Ну либо тогда менять название


#28

Выложил Часть 5 - последовательности


#29

#30

Давайте тогда заодно выкинем раздел Inc(n), Dec(n), они несовременные, n+= и n-= круче. Я бы вообще все почти выкинул Дельфийское: оно же сделано было для совместимости, значит - не современное. Но боюсь, получится тогда какой-то обрубок с большим оттенком вкусовщины.

Как-то не очень логично выходит. Когда задается вопрос, почему (зачем?) в PascalABC.NЕТ присутствует та или иная конструкция, по какой причине что-то работает так, а не по-другому, - следует ответ “Потому что так в Дельфи и мы за эту совместимость держимся”. Когда я пытаюсь что-то всего лишь упомянуть, присутствующее в языке издавна - сразу же: “Это не надо, это несовременно”.

Давайте определимся, чтобы не было как в известном анекдоте про еврея в бане: “Вы или крестик снимите, или трусы наденьте”.


#31

А зачем эти дельфийские фичи нужны вообще? Ладно б можно было дельфийские проекты собирать, а так… Программисты Delphi, в основном, или студенты печальных вузов (которым плевать, что там писать надо, они это программирование в том виде, что им дают, в гробу видали), или старые дядьки, тянущие за собой горы легаси-кода (они сам Паскаль в гробу видали). Зачем? Delphi - мертвая среда, пора ее уже таковой признать.


#32

Вообще, я подумываю чтобы какие-то редкие Delphi-фичи выкусывать из языка. Раньше мы сильно гнались за совместимостью…


#33
...

Алекс, с РХ!

По своему опыту знаю, что даже конструктивная критика часто выглядит как попытка зарисоваться за чужой счёт. Может и так, но ваш вариант с диалогами всё равно подразумевает уровень собеседника (целевая аудитория), контент (тема и рема) и красную нить – мотивацию и подразумеваемую пользу. Речь не о методике или дидактике: ну не бывает типа душевный разговор ни о чём и без причины. Кроме того, мозг (как концентратор информации и центр принятия решений) выбирает то, что чётко классифировано, имеет понятные внутренние связи, органично вписывается в имеющиеся знания – логично, интересно и полезно (может пригодиться), а всё остальное – в утиль, увы.

Припоминаю, что сам Вирт в комментариях к языкам Оберон и Модула высказывался об излишествах Паскаля, включая тот же избыточный inc(A,-B) [минимум восемь знаков] для целых/перечислимых типов, в отличие от лаконичного A+=B [четыре символа]. Лично я знаю о inc/dec; pred/sucс, но мне это ни разу [в чистом виде] не пригодилось и не попадалось в живом коде, не говоря о вашем примере с унарными ++±—. Хотя автор выражает свой взгляд на предмет и аспекты на своё усмотрение, однако и собеседник (ведь это не монолог?) имеет право подробнее узнать, ознакомиться с другим мнением и затем принимать осознанное проинформированное решение. В принципе, если обойтись без глоссария, можно хоть тематические ссылки на wiki, а кому подробнее – знают откуда и что искать. Может больше акцент на общепринятые методы в сравнении с анти-паттернами (старым методом программирования)?

С приоритетами пока тоже непонятно: ни старый Паскаль, ни преимущества .NEТ, ни наследие Delphi… Любой ЯП – это всего лишь средство достижения цели, а не просто слова, поэтому я пока не представляю в какой категории или на какой стадии мне было бы это интересно. Конечно же, придираюсь - вдруг зашлифуем алмаз в бриллиант)


#34

Я вот тоже, когда таблицу умножения вижу, не могу себе представить, зачем бы она мне могла пригодиться. Если Вы пролистали все две сотни предложенных страниц и не нашли для себя ни одного бита полезной информации - значит, Ваш уровень выше уровня этого материала и я с удовольствием почитал бы книгу по PascalABC.NЕТ, которую напишете Вы. А если Вы все еще продолжаете обсуждать полстранички с унарными операциями - попробуйте все же продвинуться дальше.


#35

Поздравляю Всех! Конечно это хорошо писать книгу для PascalABC.Net. Я, по мере возможности, просматриваю эту книгу. Очень хорошо. Пока каких либо ошибок или не понимания не встречалось. Однако это всё в консольном режиме. Думаю в будущем будет и в визуальном. Я сам тоже пишу книгу для этого языка на визуальном режиме, но он на таджикском языке. Успехов автору и Всем коллегам.


#36

Главное, что нравится - отсутствует сухость изложения. Если бы я впервые знакомился с фичами языка, которые описываются в книге, мне бы было интересно. Хотя и сейчас - местами я нахожу что-то полезное в ней для себя. Справка - это хорошо, но она не сможет заинтересовать читателя так, как может это сделать книга.


#37

Один мой знакомый книголюб (у него в двух комнатах стояли по трем стенам стеллажи от пола до потолка с книгами) любил говорить: “Если ты купил книгу и хотя бы одна страница для тебя в ней оказалась полезной, - ты потратил деньги не зря.”


#38

Там были книги по Паскалю? :slight_smile:


#39

Тогда о Паскале еще никто не знал… Да и не нужен был ему Паскаль: это был старый выпускник ростовского физмата, занимавший должность доцента одной из кафедр инженерного вуза, преподававший автоматику и промышленную электронику. Мой первый научный руководитель…

У него в квартире висел приличного размера плакатик: “Все, что ты прочел - твое, но книгу верни!”


#40

Весёлый по жизни, видимо, был Ваш знакомый.


#41

Веселый - временами, все в меру хорошо. Но вот незаурядный - это точно. Рядом с ним было ощущение, что ты маленький вагончик, который прицепили к несущемуся вперед локомотиву. Несмотря на примерно 30-летнюю разницу в возрасте. Ну да не будем дальше в теме спамить: в конце концов, благодарность у нас живет в душе, а не состоит в рассказах о том, “как это было”.

P.S. Ну надо же: отыскал его на сайте ЮФУ: “фото Выпуск физико-​математического факультета РГУ. 1946 – 1951”