LINUX.ORG.RU

Переиздание книг Столярова по программированию

 


9

4

Скандально известный на ЛОРе Андрей Викторович Столяров выпустил новое издание своего учебного пособия «Программирование: введение в профессию» и обновил PDF-версии:
«Азы программирования»
«Системы и сети»
«Парадигмы»
В новом издании 4-томник стал 3-томником.

Как и предыдущее издание, новое использует странную кодировку текста, но если вы не пользуетесь преимуществами электронных книг, разницы не заметите. Книга будет полезна начинающим изучать программирование.

>>> Сайт автора

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Zhbert (всего исправлений: 3)
Ответ на: комментарий от Reset

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

Там потребности были удовлетворены полностью ещё во времена первых пентиумов. Поэтому для прогресса выч.техники было необходимо, чтобы типовые задачи требовали всё больше вычислительной мощи. Чтобы расходы на разработку размазать по миллиарду устройств.

monk ★★★★★
()
Ответ на: комментарий от Reset

Вы вообще помните веб 2000 года? Такой веб я вам с удовольствием наклепаю за полдня так что всё будет летать на pentium4 и 64 Mb RAM. А десктопные среды, так возьмите fluxbox.

wtj12
()
Ответ на: комментарий от monk

от веб разработчиков сейчас требуют интерактивной логике на клиенте а в те времена форму наклепал и она отправляется на сервер. чего вы хотите если такие требования. ошибочно думаете что задачи те же. браузеры тех времён современный веб не распарсят.

wtj12
()
Ответ на: комментарий от wtj12

Вы вообще помните веб 2000 года?

Конечно. Он был лучше.

А десктопные среды, так возьмите fluxbox.

Который по функционалу уступает винде 3.11

Reset ★★★★★
()
Ответ на: комментарий от Reset

Конечно. Он был лучше.

Нравится чёрный текст на белом фоне и формы отправка которых длится по минуте? Он конечно лучше, но исключительно с точки зрения разработчика потому что побыстрому наклепать можно. Ну и всех инструментов которые делают его по сути универсальным средством создания UI соответственно не было, так что не надо говорить что те же задачи выполняет.

Который по функционалу уступает винде 3.11

Чем уступает? В win 3.11 имелось несколько рабочих столов хотя бы? Да он помоему ещё и зависал постоянно. Причём я его пробовал на мощном железе во времена когда уже повсеместно стояло XP и кое где Vista (или 7, не особо разбираюсь в сортах говна т.к. давно уже в Linux).

wtj12
()
Ответ на: комментарий от wtj12

Он конечно лучше, но исключительно с точки зрения разработчика потому что побыстрому наклепать можно.

Как раз современный клепается проще, так как на сервере только json ручки, а в браузере всё делает за тебя какой-нибудь говнофреймворк.

Нравится чёрный текст на белом фоне и формы отправка которых длится по минуте?

С точки зрения оформления лучше. А по поводу загрузки это к скорости интернета. Сейчас сайты, кстати, стали прокачивать мегабайты данных, и тоже не редко тормозят, на гигабитном интернете, ога :)

Чем уступает?

В юзабельности, очевидно.

В win 3.11 имелось несколько рабочих столов хотя бы?

Это последнее что нужно на десктопе.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Серверная часть проще, клиентская сложнее. Интересные у вас вкусы в области оформления веба.

как это не нужно? я без этого своей жизни не представляю. впрочем зачем они в 3.11 если там больше 3 окон можно открыть только с риском зависания.

wtj12
()
Ответ на: комментарий от wtj12

от веб разработчиков сейчас требуют интерактивной логике на клиенте

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

браузеры тех времён современный веб не распарсят

Так в этом и суть. Также как старый автомобиль не проходит по эконормам, старый браузер не проходит по поддержке стандартов. А новый требует нового компьютера на благо прогресса.

monk ★★★★★
()
Ответ на: комментарий от lv

почему бы ей и архитектуре ЭВМ не уделить больше внимания на первом курсе, а со второго уже начать упарываться в СтАлг и парадигмы?

Логичным продолжением такого подхода будут не алгоритмы на ЯП высокого уровня, а ассемблер или браинфак.

mister_VA ★★
()
Ответ на: комментарий от qulinxao3

Давайте придерживаться не академических штук, а реально используемых живых языков.

Во-первых, Си – реально используемый живой язык. Во-вторых, будет ли жив ваш JS к моменту окончания нынешним первогодком ВУЗа – вопрос неразрешимый. В-третьих, обученный чел осваивает новый язык программирования той же парадигмы за месяц.

mister_VA ★★
()
Ответ на: комментарий от mister_VA

Очевидно JS будет живее всех живых. Никто не будет переписывать миллионы строчек на нём. А C вообще осваивается за одну ночь что конечно не означает что писать на нём полезное ПО легко и просто, всего лишь то что язык сам по себе компактен и последователен по структуре.

wtj12
()
Ответ на: комментарий от monk

Это когда такое было? Видимо не застал. Помню только perl который уже уходил в прошлое и повсеместно внедрялось PHP.

wtj12
()
Ответ на: комментарий от wtj12

язык сам по себе компактен и последователен по структуре.

Компактен был Си89, а современный уже не очень. И совершенно непоследователен, так как типы данных все перемешаны, есть куча странностей типа i++ и ++i, оператора "," и прочих возмоностей менять счётчик цикла помимо заголовка. А с использованием новых стандартов вообще стало всё стало всё страшно: раньше хотя бы эта жуть оправдывалась лучшим соответствием машинным инструкциям, а теперь даже и не знаю, что сказать...

Vudod ★★★★★
()
Ответ на: комментарий от wtj12

Perl работает до сих пор в базовых утилитах Линукса, если что. Перл — это язык обработки текстов, а не веба, хотя за неимением лучшего его в веб пихали как основной. И на нём продолжают писать обработку текстов, хотя уже существенно меньше, чем ранее.

Vudod ★★★★★
()
Ответ на: комментарий от Vudod

из перечисленных вами «странностей» не вижу ни одной реальной странности. совершенно не понятно чем вам не нравится i++, comma operator и возможность менять счётчик цикла. вот сейчас занимаюсь парсингом одного формата в котором 2 строчки объявляют начало объекта, следущие 2 его name. изменение счётчика очень кстати.

wtj12
()
Ответ на: комментарий от wtj12

i++ сам по себе не так уж плох, но зачем ещё ++i? Где вы ещё видели два таких оператора? comma operator вообще не подчиняется многим законам, зачем он нужен — одному Богу известно!

Вы понимаете, что сама по себе концепция цикла со счётчиком предполагает фиксированное число итераций? Если же счётчик внутри можно менять как Бог на буду положит, зачем тогда цикл со счётчиком? Кстати, цикла обхода последовательности (foreach) нет вовсе. По сути, в Си все циклы являются циклами с условием, просто они различно организованы. Если всё это не кажется вам странностями, наверное, вы слишком погрузились в Си. В остальном мире ситуация давно уже не та.

Vudod ★★★★★
()
Ответ на: комментарий от Vudod

post-increment vs. pre-increment имеют разное значение в expressions. они делают возможным ряд идиом для написания компактного кода. видели их во всех ЯП с C-подобным синтаксисом, на которых написана основная масса ПО.

comma operator нужен для (столь ненавидимого паскалистами по непонятным причинам) for.

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

в каком остальном мире? в мире царствуют языки с синтаксисом C. и не случайно. синтаксис крайне удобен на практике и ничто с ним не может сравниться.

wtj12
()
Ответ на: комментарий от wtj12

столь ненавидимого паскалистами по непонятным причинам

Вы прямо опрос среди паскалистов провели? Или взяли одного и обобщили недрожащей рукой?

в мире царствуют языки с синтаксисом C

Спорно. Я уже упоминал сишный стиль объявления функций. Кроме C++ и Java его, кажется, никто к себе не затащил.

Конкретно циклы for — да, удачно получились.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

да ну не первый раз встречаю на разных форумах абсурдные выпады в сторону C с их стороны.

очень много из C взято кроме цикла for.

wtj12
()
Ответ на: комментарий от mister_VA

Соболезную за срыв у вас контекста 7+-2 объектов не у всех верхняя граница

Давайте придерживаться не академических штук, а реально используемых живых языков.

Во-первых, Си – реально используемый живой язык. Во-вторых, будет ли жив ваш JS к моменту окончания нынешним первогодком ВУЗа – вопрос неразрешимый. В-третьих, обученный чел осваивает новый язык программирования той же парадигмы за месяц.

более корректный контекст(кста во времена былинные одним из аргументов отказа обучать рекурсии{на машинах без аппаратного стека где вот это всё приходилось ручками через отдельную произвольно выбранную кодером ячейку отслеживающую край стека} было сложность достичь обучаемым отслеживание контекста на основе косвенности) :

тока по причине синтаксического сахара в той же сишке очень много shorthand"ов которые большинство утят как воду рыбы малозамечают

Давайте придерживаться не академических штук, а реально используемых живых языков. Количество учебных часов ограничено, и вместо того, чтобы изучать особенности никому не нужного паскаля, можно несколько глубже изучить тот же си.

Давайте придерживаться не академических штук, а реально используемых живых языков. Количество учебных часов ограничено, и вместо того, чтобы изучать особенности никому не нужного си, можно несколько глубже изучить тот же JS.

:(

ну так вот JS и С оба для первокура это окаменевшее мамонта - одному уже 50+ другому 30~

а вот технологически на уровне языка JS более адекватен современным ЭВМ - при более очевидно большей близости Си к машкоду - но блин и асм был ближе к машкоду и ровно это и позволило Си выиграть у структурных асмов - про выигрыш СиVSПацкали - там ваше интересная политика и размещение ракет першинг/томагавк в западной европе :) и как ада в доде убило паскаль в академии.

т.е JS ща более разнообразная среда vs Си - и разнообразие не столько синтаксиса языка(пл/1 и прочии С++ показывают что ...) сколько разнообразно живое комьюнити в котором представленны как люди которые из всего программирования заинтересованны в скриптовании последовательности(без циклов, без условий, без переменных) действий(что в современной экономики оффисной работы - наиболее большое ROI для планктона занятого по осмысленности таким же трудом что поп ведущий молебен в келье) до диссеров по теории вычислимости и прочая прочая.

qulinxao3 ★★
()
Ответ на: комментарий от hobbit

с фором удачно получилось - ибо макра которую погрузили в язык

ваще Томсон/Ричи круто смогли из обыденного строчного парсера получить почти топ-даун.

но без его(топ-дауна) ограничений

т.е Томсон реально крутой инженер - и с точки инженерии(а именно решения проекта заказчика) - к GoLang нет претензий :)

qulinxao3 ★★
()
Ответ на: комментарий от wtj12

ну блин прям сцена в баре из Умницы-Уил-Хантинга.

вы ещё скажите что фал-сро в свиче это божий дар - ибо движок Дафа(Тома)https://en.wikipedia.org/wiki/Duff%27s_device - основа основ в разворачивание некратных циклов.

а вот переинтерпетация эволюции языка https://en.wikipedia.org/wiki/Backronym#As_false_etymologies для совмещения уже имеющейся картины мира у реципиента … :

Си это асм(структурный) - с кучей кноу-нау - и срезов углов. с постепенной вкоряченой переносимостью ( на протяжении 10+ лет)

и ровно поэтому newC плана9 который объективно лучше не вытеснил уже распространившийся и достаточный ansi C

И да вот настоящий CИ :

https://minnie.tuhs.org/cgi-bin/utree.pl?file=V2/lib/printf.c

вкури как парситься формат без всяких вараргов. ибо завязано на знание как на хосте лежат переменые в стеке.

ps. как JS стал переносимым асмом сетевых устройств ( ибо не только херки поиском слов но и менеждеры - а маркетинги постарались что бы четырёхбуквие java асоциировалось и интелектуализацией устройств так что не джава но жс :) )

qulinxao3 ★★
()
Последнее исправление: qulinxao3 (всего исправлений: 2)
Ответ на: комментарий от wtj12

в такой логики божественный Лисп(лучше в виде Схемы) осваивается за 2 часа внимательной медитацией над

5-7 словами: вроде как car cond cdr atom eq cons qoute

и текстом classic lisp apply eval evaluator

и остальным как библиотекой (логика короткая как следствие семантики cond)

арифметика через рекурсию :)

ну и да ввод вывод :)

qulinxao3 ★★
()
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от praseodim

Обратите внимание (да, там виндовая проприетарщина с триалом, но все же) на продукцию Topaz gigapixel https://topazlabs.com/gigapixel-ai/ - то, что их софт вытворяет с фото и видео было немыслимо на обычных ПК 20 лет назад. Формально конечно чистка от шума и прочее и тогда были, но это действительно новое качество.

про немыслимость - журнал BYTE эдак середины 80 как пример - на уровне концепций уже лет так 70 в software индустрии нет «нового качества»

а вот что есть так это распространение достижений научно-исследовательских лабораторий в быть «обычных водопроводчиков Иванов|Джо|Жак|…»

а то что у тя видео не 360p а 4к значимо только продавцу 4к ибо пока ещё и 4к далеко до картинки которую человек воспринимает своими склонными к оптической иллюзии и постпроццесингу глазками

qulinxao3 ★★
()
Ответ на: комментарий от wtj12

законы Паркинсона

кривой код полезен для роста валовых показателей экономики ибо создаёт и поддерживает спрос на большее число рабочих мест.

у кода(кривого) который наряду с исполнением на троечку(Си) основной_задачи - оставляет кучу удобрений для участников биогеоциноза.

крч У кривого_кода больший мультипликатор.

совершенный же код выпадает из рыночного оборота и фоссилизируется в нижележащую инфраструктуру - частично из этого хайп на докеры и прочие личные окружения.

qulinxao3 ★★
()
Ответ на: комментарий от wtj12

Это когда такое было?

До того, как мода заставила всё втискивать в браузер. Сейчас spotify.com, а тогда был WinAmp, сейчас slack, тогда была ICQ и т.д. Карты, учётные системы, текстовые редакторы… всё было отдельными приложениями. Собственно, они и сейчас есть: но vim и emacs уже немодно, нужен браузерный vscode, inkskape не модно, нужен браузерный sketch.io…

monk ★★★★★
()
Ответ на: комментарий от wtj12

ошибочно думаете что задачи те же.

сорян но лол.

солнышко светит. земляшка крутиться, обитателе ея крутятся вместе с ней.

2+2 всё так же равно 4 в арифметике

всё так же меньше 4 у покупателя

всё так же больше 4 у продавца

у "особо честных 2+2 ====== 4+Nj

qulinxao3 ★★
()
Ответ на: комментарий от qulinxao3

нет ли в этом телеологии?

То в религии мы не уверены, есть ли боги (Бог), а в бизнесе мы точно знаем, что есть несколько крупных разумных игроков, которые почти наверняка могут договориться.

monk ★★★★★
()
Ответ на: комментарий от monk

бизнес это политика другими средствами

Поэтому для прогресса выч.техники было необходимо,

Наблюдаемое следствие как причина предшествующих событий. - такая картина мира вполне научна.

бывает интересно ознакамливаться с причинами почему конкретный шарик оказался в https://youtu.be/GANHXlMpVMc?t=133 в том а не ином месте.

ps: quincunx Galtonbox Naturalinheritance beanmachine

qulinxao3 ★★
()
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от wtj12

Вы вообще помните веб 2000 года?

Вы сейчас сами сидите «на сайте 2000-го года». Закруглённых уголков не было? Ничего, переживу.

Я не с целью ейджизма интересуюсь, просто интересно, пользовались ли вы «вебом 2000-го года»: вам сколько лет?

Он конечно лучше, но исключительно с точки зрения разработчика потому что побыстрому наклепать можно.

Ну ваще-то реальный прогресс веба — это прогресс CSS.

И это не закруглённые уголки — это так, мелочи — а возможность делать компактную и при этом семантическую вёрстку.

А так в принципе: дайте мне к вебу 2000-го года способ описать контейнер так, чтобы под 4-мя разными браузерами он работал нормально и не разваливался — и меня всё устроит.

По-быстрому разрабатывать можно как раз теперь, когда не нужно вписывать в страницу 20 магических заклинаний, чтобы на IE верстка не уезжала, и кнопки в графредакторе рисовать не нужно.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от mister_VA

Во-вторых, будет ли жив ваш JS к моменту окончания нынешним первогодком ВУЗа – вопрос неразрешимый.

Будет. JS с нами теперь очень надолго.

wandrien ★★
()
Ответ на: комментарий от wtj12

Это perl нормальный язык программирования? Увольте, JS намного лучше.

Если на дворе 2001-й, и выбор стоит между тогдашними JS и perl, то сами догадайтесь…

wandrien ★★
()
Ответ на: комментарий от wtj12

из перечисленных вами «странностей» не вижу ни одной реальной странности. совершенно не понятно чем вам не нравится i++, comma operator и возможность менять счётчик цикла.

+1

Очень разумные средства языка.

Так как ни шаблонов, ни внутриязыковых макросов не было, то comma operator очень полезен был при разворачивании макросов препроцессора.

В целом Си за такие мелочи ругают те, кто не имеет опыта разработки на нём и не понимает, одни как свойства языка компенсируют другие свойства и недостатки.

Си не идеален. Но он тоже с нами надолго.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

А так в принципе: дайте мне к вебу 2000-го года способ описать контейнер так, чтобы под 4-мя разными браузерами он работал нормально и не разваливался — и меня всё устроит.

Так такого способа и сейчас нет. Просто интересующий браузер один остался.

monk ★★★★★
()
Ответ на: комментарий от wtj12

comma operator нужен для (столь ненавидимого паскалистами по непонятным причинам) for.

Там не comma operator.

comma operator вот:

x = foo(), bar();
wandrien ★★
()
Ответ на: комментарий от monk

Так такого способа и сейчас нет. Просто интересующий браузер один остался.

Это ложь.

Сейчас есть стандарт, который вменяемо поддерживается.

Если два разных движка от двух разных производителей — это «браузер один остался», то я даже не знаю. А еще ведь есть айфоны.

wandrien ★★
()
Ответ на: комментарий от wandrien

Если два разных движка от двух разных производителей

Какие два? Blink всюду от Edge и Safari до Firefox’а. В том числе на мобильных ОС.

monk ★★★★★
()
Ответ на: комментарий от wandrien

вам бы к доктору. может еще не поздно (c)

Да, что-то я зарапортовался. Думал, Mozilla уже тоже сдалась.

Хорошо, два браузера. Вместо четырёх в 2000 году.

monk ★★★★★
()
Ответ на: комментарий от monk

Хорошо, два браузера.

Два движка. Браузеров больше.

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

wandrien ★★
()
Ответ на: комментарий от wandrien

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

Linux, FreeBSD, NetBSD, OpenBSD, QNX, Windows, Darwin.

monk ★★★★★
()
Ответ на: комментарий от monk

Windows, Linux, с некоторыми ограничениями FreeBSD. Всё.

NetBSD, OpenBSD, QNX, Darwin

Ты сам в это веришь?

wandrien ★★
()
Ответ на: комментарий от wandrien

ничего из этого не ставит целью

Так Google и Mozilla тоже не ставят целью разработать замену HTTP.

сделать «простую операционную систему» в 10 000 строк кода.

bootOS и kolibriOS существуют

monk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.