LINUX.ORG.RU

Вышло издание 2,92 книги «Программирование: введение в профессию» А. В. Столярова

 , , ,

Вышло издание 2,92 книги «Программирование: введение в профессию» А. В. Столярова

4

6

Тихо и незаметно 30 апреля 2026 года вышло издание 2.92, которое наконец включает в себя читаемый текстовый слой.

Исправлены опечатки и ошибки, обнаруженные в предыдущих изданиях, в частности 2.91 (где введена кликабельная навигация) и 2.9 (первое чисто электронное издание).

Книга предназначена для самообучения основам программирования и в отличии от многих других изданий предполагает фундаментальный подход — вначале основы дискретной математики и использования GNU/Linux или BSD с командной строкой, затем паскаль, потом ассемблер и только потом Си, системное программирование и альтернативные парадигмы (функциональное, логическое и так далее).

Автор книги считает, что только такой порядок обеспечивает полноценное обучение программированию, и обосновывает такой подход в методическом предисловии к первому тому.

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

>>> Ссылка на страницу издания

>>> Альтернативные способы скачивания

>>> Новость на сайте автора

★★★★★

Проверено: dataman ()
Последнее исправление: CrX (всего исправлений: 10)
Ответ на: комментарий от zabbal

Проблема с высером Столярика в том что он не ставит задачу «научить программированию», он ставит задачу «научить программировать так как нравится Столярику» - именно отсюда идиотские определения, не имеющие отношения к общепринятым, дохлые языки и полная каша из концепций.

Наверное любой автор, если не по заказу пишет, учит как нравится ему. С определением побочных эффектов он что-то мутное навертел, но насчёт дохлости языка не уверен, что язык настолько дохлый и настолько негодный для обучения. FreePascal + Lazarus в общем-то достаточно неплохи.

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

Может я чего-то пропустил, но вроде против функциональных языков, вроде Haskell, Столяров ничего не имеет. Python же, хотя и содержит элементы функциональщины, сложно их к ним отнести.

А вот для Столярика групповая идентичность это всё - любой, пишущий не в строгом соответствии с его идиосинкразиями это предатель и идиот.

А вот это, к тому же ещё и нежелание свои идиосинкразии не то, что пересмотреть, а даже обсудить - это и есть за что его критикуют.

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

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

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

то может ты что то не знаешь?

Ага. Например я не знаю, каким образом эти существа доживают до возраста, где им каким-то чудом дают кандидатскую.

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

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

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

И он прав. Бездумное использование готового приводит к крайней хрупкости: https://xakep.ru/2016/03/24/left-pad/

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

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

Но требование готовности включить сторонние либы в свой проект как свои собственные, очевидно, что с ростом сложности решаемых задач и поэтому неизбежным ростом объёма и сложности кода библиотек становится невыполнимым. В итоге, «по Столярову» надо или отказаться решать задачу. Или решать её вместо пары дней пару лет ;-) Или отказаться от идиотского требования, но за отказ он назовёт идиотом или ещё похуже.

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

У новичков нет никакого бекграунда, позволяющего отделить бредни автора от сносной информации непосредственно по теме.

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

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

А линковали бы статически и могли бы дописать всё, чего не хватает.

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

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

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

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

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

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

@monk

Пришлось отвлечься, всё-таки на работе сижу. Итак, имеем код. Строки 2-16 - главный код, строка 3 - всё, что даётся разработчику библиотеки. После того, как строка 19.5 выполнена, вы можете продолжать разрабатывать сврю библиотеку и поставлять новые версии println.so, как в строках 32-33. Да, идея плохая для mission critical applications, but who cares?

     1  Hello$ cat hello.c
     2  #include <stdio.h>

     3  void printlib( char * );

     4  int main()
     5  {
     6      printf("Hello, main!\n");
     7      printlib( "Hello, shared library!\n");
     8      return 0;
     9  }

    10  Hello$ cat println.c

    11  #include <stdio.h>

    12  void printlib( char *str )
    13  {
    14      printf( "%s", str );
    15      return;
    16  }

    17  Hello$ gcc -O2 -g -c -o hello.o hello.c
    18  Hello$ gcc -O2 -g -fPIC -c -o println.o println.c
    19  Hello$ gcc -O2 -g -shared -o println.so println.o
    19.5 Hello$ gcc -O2 -g -o hello hello.o println.so
    20  Hello$ ./hello
    21  Hello, main!
    22  Hello, shared library!

    23  ////// Now adding modifications to println.c //////////

    24  Hello$ cat println.c

    25  #include <stdio.h>

    26  void printlib( char *str )
    27  {
    28      printf( "%s", str );
    29      printf( "Added my new and independent modification\n" );
    30      return;
    31  }

    32  Hello$ gcc -O2 -g -fPIC -c -o println.o println.c
    33  Hello$ gcc -O2 -g -shared -o println.so println.o
    34  Hello$ ./hello

    35  Hello, main!
    36  Hello, shared library!
    37  Added my new and independent modification
VIT ★★
()
Ответ на: комментарий от s-warus

но это у всех преподов

Да хрен там плавал! Это я тебе как бывший (хотя кому я вру - всяко ещё не раз припашут :) преподаватель говорю. Любой адекватный препод без проблем отделит объективно неправильное от эстетически несимпатичного ему персонально - и пояснит это студенту у которого возникло желание разобраться в теме глубже чем требует базовый курс. Это самая что ни на есть базовая часть профессиональной этики.

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

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

19.5 Hello$ gcc -O2 -g -o hello hello.o println.so

Вместо

cp /distr/println.so /usr/lib

в статике будет

cp /distr/println.a /usr/lib
ld -o /usr/bin/hello /usr/lib/println.a /usr/lib/hello.o

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

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

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

Паскаль был достаточно массовым тогда, в начале 1970-х ?

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

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

Я здесь не про линковку, а про зависимость от чужой библиотеки. Если ты решил использовать для графического интерфейса Gtk, то за тебя решили, что новые версии твоей программы не будут поддерживать X. Если решил использовать recaptcha, то внезапно от твоих пользователей требуется зарегистрировать учётку в гугле.

Как только используешь чужое, часть решений от тебя уже никак не зависит. Причём если заложился при расчёте затрат на то, что чужое «всегда есть и бесплатно», то у тебя даже нет возможности отказаться (так как ресурсов на написание самостоятельно у тебя нет).

Но требование готовности включить сторонние либы в свой проект как свои собственные, очевидно, что с ростом сложности решаемых задач и поэтому неизбежным ростом объёма и сложности кода библиотек становится невыполнимым. В итоге, «по Столярову» надо или отказаться решать задачу. Или решать её вместо пары дней пару лет ;-) Или отказаться от идиотского требования, но за отказ он назовёт идиотом или ещё похуже.

Вот под этим лозунгом люди обсуждают коммерческую тайну при включенных смартфонах с Интернетом. Ставят ИИ-колонки к себе домой. Ставят ИИ-агенты на рабочие компьютеры. Передают гуглу всю рабочую и личную информацию https://habr.com/ru/articles/785874/. Ведь иначе «решать её вместо пары дней пару лет».

Бесплатный сыр только в мышеловке.

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

С определением побочных эффектов он что-то мутное навертел, но насчёт дохлости языка не уверен, что язык настолько дохлый и настолько негодный

Почему не Паскаль:

http://stolyarov.info/guestbook/archive/7/#cmt802

единственная поддерживаемая и не выглядящая даже издали как кусок дерьма — это Free Pascal, но, посмотрев в его потроха и вдобавок получив опыт общения с теми, кто сейчас эту реализацию поддерживает, я пришёл к выводу, что использовать эту реализацию для чего-то серьёзного совершенно категорически нельзя, полагаться на неё — это примерно как держать под кроватью ржавую неразорвавшуюся бомбу времён второй мировой

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

В статике каждый раз при обновлении println.a требуется линковка с hello.o. Этого файла нет ни у разработчика println.a, ни тем более у заказчика. Значит каждый раз, когда изменяется println.a необходимо привлекать разработчика hello.o для финальной линковки, то есть разделения не существует.

В динамике изменения println.so не требуют привлечения разработчика hello.o вообще. Это я и называю раздельной разработкой и считаю единственной причиной изобретения динамической линковки с самого начала.

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

ни тем более у заказчика

С чего вдруг? Если Заказчику нужна возможность обновления используемых библиотек, то он получить в пакете hello.o, println.a и hello. Если вдруг println под LGPL, то это вообще обязательно.

Значит каждый раз, когда изменяется println.a необходимо привлекать разработчика hello.o для финальной линковки, то есть разделения не существует.

Только если разработчик по какой-то причине не отдаёт hello.o.

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

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

Селя ви, как говорят французы. Всё течёт, всё меняется, - как сказал ещё Гераклит Эфесский примерно за 500 лет до н.э. С тех пор, как возникло разделение труда, мы неизбежно используем чужое и зависим от него. Вопрос только в разумном компромиссе между степенью использования чужого и трудозатратами и созданием своего. А то ведь можно дойти до того, чтобы писать программы только исключительно на компьютере, в котором всю комплектуху сам сделал в гараже, включая процессор (есть такие энтузиасты, освоили даже что-то 8-ми битное в гараже делать).

Проблема в том, что у Столярова это не просто хобби такое - писать программы, в которых всё или своё или если чужое, то в котором разобрался и поддерживаешь как своё, а требование к другим и кто с ним не согласен, тот «идиот», «дебил» и тд и тп.

Ведь иначе «решать её вместо пары дней пару лет».

Правильно, можно писать свою талассу пять лет или сколько он её пишет или использовать чужие решения пусть даже на нелюбимом им питоне, жабаскрипте и чем ещё (и прочие требования), а своё время потратить на что-то другое. Столяров решил потратить на Талассу. И сделать её доступной другим. Честь ему и хвала, но это не значит, что те, кто решил иначе - «враги народа».

А тот же OpenCV, PyTorch и кучу всего ещё один-два человека вообще не потянут поддерживать в своём проекте.

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

Нет, не нужны. Возможно, получится менее интеллигентно, но не нужны. Впрочем, там разговор не про модули ядра.

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

есть такие энтузиасты, освоили даже что-то 8-ми битное в гараже делать

Имя одного такого энтузиаста сразу приходит на ум - Стив Возняк. Как раз с рассыпухи для 8-битного процессора в гараже начинал.

Я не агитирую повторять его путь, но стиль мышления и желание так делать достойны внимания.

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

Я не агитирую повторять его путь, но стиль мышления и желание так делать достойны внимания.

Безусловно достойны, но до тех пор только, пока условный «Стив Возняк» не начинает поносить оскорблениями тех, кто не хочет повторять его путь.

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

Я как-бы специально для этого и сделал приписку последнего предложения, чтобы сказать «но это всё не отменяет…» Конечно, поведение обсуждаемого персонажа не достойно преподавателя и наносит ему вред в глазах серьёзной аудитории, но может он и не ищет больше серьёзную аудиторию?

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

Кто-то что-то говорил про открытые исходники?

Если они есть, то тем более заказчик может пересобрать.

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

А тот же OpenCV, PyTorch и кучу всего ещё один-два человека вообще не потянут поддерживать в своём проекте.

Обычно их не требуется «поддерживать». При реализации проекта определяется, достаточно ли текущего состояния библиотеки для его реализации, и если достаточно, то желательно, чтобы библиотека не менялась. Потому что с новой библиотекой может не собраться, авторы библиотеки из новой версии могут выкинуть что-нибудь нужное или добавить что-нибудь ненужное (типа ввода эмодзи в форме, которая используется для ввода текста заявления в суд).

Правильно, можно писать свою талассу пять лет или сколько он её пишет или использовать чужие решения пусть даже на нелюбимом им питоне, жабаскрипте и чем ещё (и прочие требования), а своё время потратить на что-то другое.

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

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

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

При реализации проекта определяется, достаточно ли текущего состояния библиотеки для его реализации, и если достаточно, то желательно, чтобы библиотека не менялась.

Речь не просто о том, чтобы рядом приложить рабочий вариант. Он довольно категорично высказался в гостевой http://www.stolyarov.info/guestbook/archive/12#cmt533 :

Мне кажется, я на этот вопрос уже ответил, но готов проговорить это ещё раз: если вы не готовы видеть библиотеку частью своего проекта (и своей кодовой базы, да), то это как раз и означает, что использовать её не следует.

Есть, впрочем, ещё один вариант: вы можете попытаться из OpenCV выделить подмножество модулей, нужных конкретно вашему проекту. Почему-то я практически уверен, что 2500 алгоритмов, реализованных в ней, вам нужны сильно не все.

Причём OpenCV ещё не самая сложная в этом смысле библиотека, в случае нейросетей только библиотека PyTorch в совокупности занимает несколько гигабайт, небольшая программа в итоге со всеми цепочками зависимостей потянет на 10+ Гб. и я не преувеличиваю. Ещё и с разными версиями под разные GPU. Банально не у всех место найдётся всё это хостить в инете.

И что тут надо сделать, чтобы заслужить одобрение «гуру»? Для начала переписать всё с Python на C++ или C (причём старых версий) или разработать свои библиотеки под свои используемые возможности и т.д. Работы одному человеку лет на 10, а то и 20. И ради чего?

В итоге один человек пишет программу на Python в несколько сот или тысяч строк, тренирует нейросетку, размещает всё это на гитхабе (ага с js), гуглдрайве, каггле, хагинфейсе и тп.. делится с другими своим результатом и идёт дальше. А Столяров исходит на коричневую субстанцию и по поводу гитхаба и по поводу Python и по поводу внешних зависимостей и сидит под корягой, отказываясь от изучения нового.

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

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

Если ChatGPT разовьётся до такого уровня, что сможет удовлетворительно работающее CRM выдать за полчаса, то да, именно так 99% и будут делать и тратить своё время на что-то другое им интересное или нужное. И будут правы. Захочется эксклюзива - оплатят временем или деньгами, также как и с костюмом: кто хочет идёт и покупает готовый, кто не хочет - заказывает или даже сам шьёт. А ресурсы человечества высвободятся под что-то другое. На практике, конечно, может быть, что ни на что другое не высвободятся, а только карманы у некоторых ещё толще станут, но это уже проблемы не технического прогресса, а социальные.

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

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

И тем не менее: почти 30 страниц флуда при нулевом участии виновника вызывают у меня определённый диссонанс. Может пора закопать стюардессу?

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

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

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

Или твоё утверждение было изначально ложным?

Я думаю, что тебе стоит научиться читать не через слово. Мое утверждение было таким:

в библиотеках, которые развиваются, багфиксы принимают без проблем и быстро

Твое утверждение:

что у них [в GTK] принимают патчи без проблем и быстро.

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

Итого, ты успешно сконструировал чучелко и теперь с ним борешься.

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

Мне кажется, я на этот вопрос уже ответил, но готов проговорить это ещё раз: если вы не готовы видеть библиотеку частью своего проекта (и своей кодовой базы, да), то это как раз и означает, что использовать её не следует.

Речь про ответственность, а не про хостинг.

Причём OpenCV ещё не самая сложная в этом смысле библиотека, в случае нейросетей только библиотека PyTorch в совокупности занимает несколько гигабайт

И вы согласитесь гарантировать работоспособность своей программы с произвольной версией PyTorch? Если же вы требуете, например, именно 2.7.1, то это де факто включение этой библиотеки в ваш проект. Вы отвечаете за все её косяки, обеспечиваете перенос поддержки оборудования из новых версий, если поддержка этого оборудования требуется вашей программе.

Или выкладываете кусок кода, за который не несёте ответственности, а потенциальный пользователь запускает всё найденное на свой страх и риск (то есть, либо должен быть сам разработчиком и понимать всё запускаемое, либо просто играет в русскую рулетку).

В итоге один человек пишет программу на Python в несколько сот или тысяч строк, тренирует нейросетку

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

и сидит под корягой, отказываясь от изучения нового

Не отказываясь, а констатируя, что чем новее программа, тем обычно хуже она работает. Экранная клавиатура для андроида занимает больше места, чем вся ОС Windows NT. И никто ни за что не несёт ответственности.

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

Во-первых, ты заменил конкретное «багфиксы» на более широкий термин «патчи», покрывающий как багфиксы, так и фичи.

Потому что изначально было про патчи. Предыдущие два сообщения:

Отсылаешь патч и исправляешь.

И ждёшь, пока патч примут в библиотеку (если не откажут, потому что патч от русского).

ты взял частное «у них», имея в виду GTK.

Так это классический силлогизм. Если для всех развивающихся библиотек утверждение верно и Gtk является развивающейся библиотекой (в том же сообщении это утверждается про Gtk и Qt), то для Gtk утверждение верно.

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

Если ChatGPT разовьётся до такого уровня, что сможет удовлетворительно работающее CRM выдать за полчаса

У непрограммиста получилось за 2-3 недели: https://habr.com/ru/articles/957792/

то да, именно так 99% и будут делать и тратить своё время на что-то другое им интересное или нужное. И будут правы.

И 99% программ станут такого качества, как по приведённой ссылке.

Захочется эксклюзива - оплатят временем или деньгами

Плохая новость: У нас кончилась еда. Будем есть говно.
Хорошая новость: говна много.

Беда в том, что разработку программы можно оплатить только вскладчину. Хоть деньгами, как разработку MS Windows, хоть временем, как разработку Linux. Если 99% выберут вместо этого «решение от ИИ», то ресурсов оставшегося 1% просто не хватит на разработку качественного ПО (человек может заплатить за Windows 95 полторы сотни долларов, но не может пятнадцать тысяч).

Будут либо аскеты типа Столярова, пишущие себе нужные инструменты, либо потребители гигабайтов заплаток от ИИ.

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

И вы согласитесь гарантировать работоспособность своей программы с произвольной версией PyTorch?

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

Или выкладываете кусок кода, за который не несёте ответственности, а потенциальный пользователь запускает всё найденное на свой страх и риск (то есть, либо должен быть сам разработчиком и понимать всё запускаемое, либо просто играет в русскую рулетку).

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

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

Есть конечно правила хорошего тона, но в целом, если речь про бесплатный OpenSource, то разработчик вообще ничего никому не обязан, кроме, чтобы умышленной вредоносности не было. Есть желание Столярова или кого ещё, чтобы программа была не на Python, а на Си, пусть присылает запрос с пожеланием (feature request), может его когда-то и удовлетворят, а если прям сильно хочется, то это уже за отдельные деньги на заказ.

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

Потому что изначально было про патчи

Нет, это было про багфикс, потому что речь шла про исправление.

Так это классический силлогизм.

Нет.

то для Gtk утверждение верно

И снова нет.

Попробуй еще раз.

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

И 99% программ станут такого качества, как по приведённой ссылке.

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

Беда в том, что разработку программы можно оплатить только вскладчину. Хоть деньгами, как разработку MS Windows, хоть временем, как разработку Linux. Если 99% выберут вместо этого «решение от ИИ», то ресурсов оставшегося 1% просто не хватит на разработку качественного ПО (человек может заплатить за Windows 95 полторы сотни долларов, но не может пятнадцать тысяч).

Совремённая разработка, например, уже привела к тому, что можно сделать видеозвонок со смартфона, находясь почти где угодно в более-менее цивилизованных местах (не будем про искусственные ограничения в некоторых странах и локациях), можно идти или ехать по незнакомому городу, а программа через наушники подсказывать куда идти и где повернуть. Технологическая плата за это то, что экранная клавиатура весит больше чем вся WinNT.

Прогресс идёт дальше.

Будут либо аскеты типа Столярова, пишущие себе нужные инструменты, либо потребители гигабайтов заплаток от ИИ.

Посмотрим, возможно утрясётся и не всё так страшно окажется. Кому-то конечно непривычно будет, что даже не гигабайты, а десятки гигабайт тратятся на то, что раньше возможно меньше 1 Мб занимало. Но я ещё помню как ужасались в 90-х размеру win-программ, те кто привык к размерам в несколько в пару-тройку Кб на 8-ми битках.

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

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

Именно потому, что в таком варианте невозможно использовать 99% общедоступного софта.

Замечу, что в РФ при продаже физическим лицам есть Закон о защите прав потребителей. Там ответственность продавца за порчу имущества есть. В том числе программным обеспечением. https://zpp.rospotrebnadzor.ru/news/federal/561922

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

Если программа не заработала, это полбеды. А если диск отформатировала вместо чтения файла?

кроме, чтобы умышленной вредоносности не было

Ну да. https://habr.com/ru/articles/122020/ https://club.dns-shop.ru/digest/166286-ii-chatgpt-5-3-codex-po-oshibke-udalil-vse-dannyie-s-diska-polzov/

Есть желание Столярова или кого ещё, чтобы программа была не на Python, а на Си, пусть присылает запрос с пожеланием (feature request), может его когда-то и удовлетворят, а если прям сильно хочется, то это уже за отдельные деньги на заказ.

Столяров хочет, чтобы было больше хороших программ. Для этого учит студентов, пишет манифесты и объяснения в гостевой. Но все уже привыкли к программированию на авось и вообще не понимают, чего он хочет.

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

Имха у субъекта Столярик есть несколько сторон по критерию адекватности.

Его книги в целом полезны.

При этом у него(хз почему) в части аспектов есть дефект_утёнка во все поля - наряду с годным фундаментом(частью его) он абсолютизирует частности своего пути в профессию(программирование) и как следствие лулзами полны его скрижали

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

Нет и нет.

Т.е. сравнивать вам не с чем.

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

Т.е. вы считаете правильным начинать курс обучения с неправды? Что им мешало вынести работу с данными утилитами в отдельный блок «Простые утилиты командной строки»? Это и читателям было бы удобнее.

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

Т.е. сравнивать вам не с чем.

А это важно, если курс оказался хорошим? Ты говорил, что это всё бесполезно, я опроверг.

Т.е. вы считаете правильным начинать курс обучения с неправды?

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

liksys ★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)