LINUX.ORG.RU

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

 , , ,

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

3

4

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

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

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

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

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

>>> Ссылка на страницу издания
>>> Альтернативные способы скачивания

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

★★★★★

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

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

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

Если ты опасаешься потери данных из-за отключения электричества, данные тебе важны, и по каким-то причинам у тебя нет UPS (который стоит совсем недорого), то можно монтировать ext4 с опцией «writeback». Это стандартная опция для стандартной ФС. Если ты озабочен сохранением данных в условиях вероятной потери питания, то ты про нее должен знать, ведь работа на компьютере не ограничивается работой твоей программы.

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

UPS это вообще не панацея. От кернел краша, например, он не спасает. Или от выдернутого шнура из системника. Или от перегревшегося и отключившегося процессора. Его, конечно, иметь лучше, чем не иметь. Но к вопросу сохранности данных он прямого отношения не имеет.

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

Чего там fsync делает еще большой вопрос, точнее вопрос в том, будет ли результат тот, который ты ожидаешь. Было много примеров, что нет, т.к. часто ему диск отвечал, что «все отлично, записано», а по факту данные из кеша диска еще не приземлились.

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

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

часто ему диск отвечал, что «все отлично, записано», а по факту данные из кеша диска еще не приземлились.

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

Да ладно! А проверить-то как?

bugfixer ★★★★★
()

Какой смысл читать книгу по программированию от того кто не умеет программировать?

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

Придумай монолог программиста, который демонстрирует, что он умеет оперировать следующими понятиям: «алгебраические типы данных, алгебраические эффекты, безопасность доступа к памяти, блокчейн, гибридные алгоритмы, зависимые типы, категории, мемоизация, метаэвристики, монады, мультиагентная разработка, постквантовая криптография, смарт-контракты, трансформеры, формальные методы верификации программ» и умеет работать со следующими технологиями: «Claude Code, CUDA, Docker, Hardhat, Kafka, Kubernetes, LangChain, Lean, Model Context Protocol, Nix, Pandas, Postgres, PyTorch, TensorFlow, WASM, WebGPU».

https://chatgpt.com/share/69fa50d0-c890-832e-b8e0-0cd97447f066

Иногда мне кажется, что мой стек — это не набор инструментов, а способ мышления.

Я не “пишу код” в привычном смысле. Я проектирую пространства состояний. Когда ты привык мыслить через алгебраические типы данных, ты уже не допускаешь неявных состояний — всё либо `Sum`, либо `Product`, либо честно описанная невозможность. А когда добавляешь зависимые типы, тип перестаёт быть ограничением — он становится доказательством. В этом месте граница между программированием и математикой окончательно размывается, и ты начинаешь разговаривать с компилятором как с ассистентом по доказательствам, особенно когда рядом есть Lean.

Но типы — это только половина истории. Управление эффектами — вот где начинается настоящее искусство. Алгебраические эффекты дают тебе контроль: ты больше не заперт в монадах, ты их конструируешь. Хотя, будем честны, хорошие монады — это как хорошие категории: один раз понял функторы и натуральные преобразования — и уже сложно мыслить иначе. Категории вообще удобны: они позволяют увидеть, что половина твоего кода — это просто композиция морфизмов с лишним синтаксическим шумом.

При этом я параноик. Безопасность доступа к памяти — не опция. Если язык не гарантирует её сам, я навешиваю формальные методы верификации. Да, это медленно. Да, это сложно. Но когда у тебя смарт-контракт крутится на блокчейне, ошибка — это не exception, это финансовое событие. Поэтому Hardhat, строгая модель состояний и доказательства инвариантов — обязательны. Особенно сейчас, когда постквантовая криптография уже не теория, а вопрос времени. Хеш-функции и подписи надо выбирать так, будто квантовый компьютер уже у конкурента.

Инфраструктура? Она у меня детерминирована. Nix для сборок, Docker для изоляции, Kubernetes для оркестрации. Kafka гоняет события между сервисами, но сами сервисы — это не просто REST-обёртки, а агенты. Мультиагентная разработка позволяет декомпозировать систему не по функциям, а по стратегиям. И тут вступают в игру метаэвристики и гибридные алгоритмы: один агент оптимизирует, другой исследует, третий валидирует. Иногда я кэширую их решения через мемоизацию, иногда даю им забывать — чтобы не застревали в локальных минимумах.

Данные? Pandas и Postgres — это просто транспорт. Реальная работа происходит в моделях. Я переключаюсь между PyTorch и TensorFlow в зависимости от задачи, но архитектурно чаще думаю в сторону трансформеров. Они универсальны: текст, графы, даже поведенческие последовательности агентов. А если нужно ускорение — CUDA или WebGPU, в зависимости от того, где это будет исполняться. Иногда даже компилирую куски в WASM, чтобы утащить вычисления ближе к пользователю.

LLM-интеграция — отдельная тема. LangChain, Model Context Protocol — это не просто “склеить промпты”. Это про контроль контекста и эффектов, почти как в языках программирования. Claude Code я использую не как генератор, а как соавтора: он предлагает, я формализую, потом мы вместе загоняем это в систему типов и проверок.

И знаешь, что забавно? Вся эта сложность в итоге сводится к одному: уменьшить количество неизвестного. Типами, доказательствами, детерминированными сборками, формальными моделями.

Потому что баг — это не ошибка в коде. Это место, где ты позволил себе думать нестрого.
knovich ★★
()
Ответ на: комментарий от knovich

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

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

xfs в случае блэкаута целостность в принципе обеспечивает только для метаданных

Любая ФС заботится только о собственной целостности. Что там нужно для целостности твоих данных, она знать не может.

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

Мне даже встречались уникумы, которые всю медийную статику сайта кладут в СУБД.

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

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

Мне кажется - разумней всего по задержке ну и в целом по конструкции диска.

Если DRAM-кеша нет (такие диски раньше были), то понятно, что там кешироваться нечему, что записалось, то записалось, тут уже про fsync на стороне диска говорить не приходится, тут исключительно ОС важна.

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

Если на диске есть какой-нибудь там суперконденсатор, это отдельная тема, но диски, где такое есть, там точно сомнений не будет, те диски специально делают как положено.

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

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

Преподаватель мгу, утверждающий, что std::string это зло, которое необходимо всячески избегать подобен бабке поветухе на должности врача. Впрочем скорее это больше говорит о мгу, чем об авторе.

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

СССР поначалу отрёк кибернетику как «буржуазную псевдонауку», оставшись позади

Не надоело этот бред повторять?

Гонения придворных философов и журналистов на кибернетику в СССР шли где-то лет 5. Причём касались они, собственно не науки об управлении и уж тем более не того, из чего вышла современная информатика, а в основном ряда философских идей Винера. И в то самое время, пока придворные журналисты сотрясали воздух разоблачениями «буржуазной лженауки», Брук и Лебедев преспокойно создавали свои ЭВМ. А уже в 1955-м кибернетику реабилитировали и официально.

Отстал и остался позади СССР гораздо позже, когда при Брежневе было принято решение копировать IBM 360, против чего протестовал тот же Лебедев. Но это уже совсем другая история.

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

Какую же? Показать юзеру окошечко «упс, не шмагла»?

Откатить файл к предыдущему состоянию (truncate). Если формат позволяет. Хотя бы попытаться.
А если формат не позволяет, то переделать программу так, чтобы позволял.
Ну там много можно фантазировать, выстраивая уродливое подобие того, что давно уже отлажено во взрослых субд :)

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

Преподаватель мгу, утверждающий, что std::string это зло, которое необходимо всячески избегать подобен бабке поветухе на должности врача. Впрочем скорее это больше говорит о мгу, чем об авторе.

Давайте мыслить более узко. Не об МГУ как таковом, а об отдельном факультете - ВМиК.

Злые языки говорят, что вмк - это что-то вроде мехмат-а, но на полпути к цирку. Преувеличивают, конечно:
https://yandex.ru/maps/213/moscow/?ll=37.537818%2C55.698013&rl=37.530545%2C55.702897~0.001134%2C-0.004083&z=15.6
https://yandex.ru/maps/213/moscow/?ll=37.537818%2C55.698013&rl=37.531963%2C55.699086~0.007939%2C-0.004580&z=15.6

Однако личности вроде Столярова (увы, он там на вмк не один такой одарённый) заставляют сомневаться в том, какова доля шутки в этой шутке.

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 5)

вроде и не плохо где-то, но и прям гавно сочное часто. в общем я бы не советовал если честно

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

Бред у вас в голове. Неизлечимые последствия пионерско-комсомольсого импринтинга.

М-1 Берга и Ко. Запуск в опытную эксплуатацию - 1952 Быстродействие: 15—20 операций типа сложения в секунду Элементная база: 730 электровакуумных ламп + немецкие купроксные выпрямители, полученные по репарациям (число неизвестно)

ЭНИАК (прородитель M-1) Запуск в эксплуатацию - 1945 Быстродействие: 357 операций умножения или 5000 операций сложения в секунду Элементная база: 17 468 ламп + 7200 кремниевых диодов

Отставание как было на старте, так и продолжилось пока совок совсем не сгнил.

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

недавно видел несколько багов в doublecmd

«С ходу» прочитал как «недавно видел несколько букв в doublecmd».

Задумался... :))

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

почему-то РКН не блокирует сайт полностью, а даёт скачать только первые несколько килобайт

Просто авторы прошивки для ТСПУ учились программировать по «учебнику» Столярика ;)

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

На stolyarov.info наблюдается ЛОР-эффект.

Его же программировал автор «учебника» следуя своим «гениальным» идеям вместо общеринятых в индустрии практик - вот его и порвало с небольшого скачка трафика как самого @Croco с комментариев на ЛОРе ;)

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

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

Тоже хороший пример, но чем он принципиально лучше make -j не совсем понимаю. Тем более почему

Пример с make -j только подтверждает тезис автора.

В конце-концов, Линус Торвальдс потому и приобретает тредриперы, чтобы много ядер было и компилировалось быстро.

А про обратный Амдал не все инженеры то слышали.

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

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

Текстовый слой починен по советам с ЛОРа.

Вот их, кстати, можно было прямо в новость включить - Столярик с них так смешно подгорел в своё время :-D

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

Отставание как было на старте, так и продолжилось пока совок совсем не сгнил.

CDC 6600:

  • 1964 год
  • The entire 6600 machine contained approximately 400,000 transistors
  • The system used a 10 MHz clock
  • 60-bit word
  • 3 MFLOPS. Using the best available compilers, late in the machine's history, FORTRAN programs could expect to maintain about 0.5 MFLOPS



БЭСМ-6:

  • сдана Госкомиссии в 1967 году
  • 60 000 транзисторов и 180 000 полупроводниковых диодов
  • Тактовая частота — 9 МГц
  • 48-битное машинное слово
  • Быстродействие — около 1 млн операций в секунду



Отставание было, конечно. Но было ли оно существенным?

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

Про PowerShell вообще ни слова

И заметьте, без какого-либо Cygwin…

С появлением WSL в мастдае и то, и другое утратило смысл.

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

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

Бгыы… ты серьёзно рассчитывал на что-то иное? Столярик это ж препод-мем в МГУ - он по определению не может быть не прав. Если кто-то посмел указать Непогрешимому на ошибку, то он гарантировано никчёмный идиот, ничерта не понимающий в программировании.

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

М-1 Берга и Ко. Запуск в опытную эксплуатацию - 1952 Быстродействие: 15—20 операций типа сложения в секунду Элементная база: 730 электровакуумных ламп + немецкие купроксные выпрямители, полученные по репарациям (число неизвестно)

БЭСМ-1, 1953-й год, 4000 электронных ламп и 5000 диодов, 8-10 тысяч оп/сек., на 53-й год самая быстрая в Европе, хотя и уступала IBM 701.

А до 1952-го года была ещё и МЭСМ, запущенная в 1950-м, с быстродействием 50 операций/сек, что больше М-1.

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

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

Ему недавно закинул баг-репорт от ИИ-шки, так он подумал, что его написал какой-то хацкер-спец.

Узнаю Столярика. А есть ссылка на эту хохму?

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

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

В чём вот действительно сильно отставали - это в общем количестве вычислительных машин.

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

вот теперь вроде развитая цивилизация, а пахать для закрытия потребностей (притом в основном первичных) надо в 3-4 раза больше чем в каменном веке

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

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

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

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

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

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

Причем у него потом знатно подгорело, когда он понял, что это ИИ нашел эти баги

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

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

и если верить Столярову

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

Для обучения людей с базовым математическим образованием отлично подойдёт любая функциональщина (хоть SICP, хоть Haskell) благодаря близости к привычным им концепциям - изоморфизм Карри-Говарда в помощь.

Для обучения прикладников хватит и питона - всё-равно ИИ вероятнее всего им нагенерит именно его.

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

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

«По идее», ага.

Это как с жабой: по идее write once - run anywhere, а на практике SE, EE, EJB и пошло-поехало.

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

Хорошая попытка, но по всем статьям хуже. Одно лишь лукавое сравнение MIPS vs MFLOPS чего стоит. CDC-6600 держал пальму самого мощного компа в мире с 1964 по 1969, а потом был сделан ещё более мощный и 6600 сняли с производства. А вот БЭСМ ни в чём таком замечен не был и клепал его совок почти до самой своей кончины, видимо не от хорошей жизни. Поэтому да, разница есть, она заметна и существенна.

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

я вообще на третьем пне сидел до 2011 года, ичсх, был абсолютно счастлив

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

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

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

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

В том-то и дело что это даже нормально проверить не получится.

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

Но вот с точки зрения новичка

вполне возможно (или современные новички не такие-же уж терпеливые и усидчивые «новички», что были ранее?! :о)

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

в си/плюсах вообще без «отдельного слова» обходятся, если не считать «скобки», так они и в других языках «скобки»
-->
спрашивается «зачем» было так все усложнять и придумывать еще и разделение на function & procedure, тем самым «еще более» запутывая «молодые души»? (уж коли паскаль идет как «обучающий» перед более сложными языками)... без «придуманных дополнительных идей и размышлений на тему... как у „автора“, так, что простое становится сложным и запутанным

У си-подобных совершенно наркоманский синтаксис заголовков функций и методов
наркоманию тащить не стали

вот это-бы поподробнее развернуть (а то я живу и не знаю, что „тащюсь от норкоты“ :о)
можно в нескольких предложениях? спасибо

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

чем он принципиально лучше make -j

Тем, что если человек не понимает, зачем нужен многоядерный процессор, от абсолютно точно не знает, что такое make и тем более что делает «-j», и даже если вы ему это объясните, он всё равно ничего не поймёт, потому что не знает, что такое «компилировать». А что такое вкладки и почему каждая вкладка может требовать независимый процессор понять намного проще даже ребёнку из детсада. Правда и здесь может возникнуть вопрос, зачем ресурсы неактивным вкладкам, ведь я смотрю одновременно только одну страницу …

Пример с make -j только подтверждает тезис автора.

Потому что это лишний раз говорит о том, что да, действительно, нормальному человеку и вправду многоядерность не нужна. Нужна только тем, кто «это, как иво, ну конпеляет что ли», то есть маргинальным гикам. Что, собственно, и утверждает автор. Зачем же автору давать такой лёгкий аргумент?

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

Преподаватель мгу, утверждающий, что std::string это зло, которое необходимо всячески избегать подобен бабке поветухе на должности врача.

А ты уверен, что std::string не зло? И зачем оно вообще, если в C++ есть сишные строки?

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

можно я встану в стороне и предположу что и то и другое - вполне нормальные «средства» языка?!!! :о)
а иначе как по другому? что-бы «они» делали в самом языке?
почему «что-то» из «этого» должно быть чем-то непотребным? (или аналогия со скальпелем тут не прокатывает? :о)

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

Такого я еще не встречал)

Всё правильно написано. В России запятая разделитель, в большинстве европейских стран, а также в Южной Америке и некоторых других регионах. Это только в США - точка.

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

есть полезная часть популяции которая не понимает - даже если объяснение объясняющее а не просто констатация набора аксиом достаточных для «очевидного» следствия

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

таже часть которая не понимает указатели даже с помощью - полезны в иных областях деятельности

распределение кстати 1:5:95

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

можно я встану в стороне и предположу что и то и другое - вполне нормальные «средства» языка?!!! :о)

У автора есть возражения, почему некоторые средства языка вредны. Например они ломают zero runtime парадигму из-за которой C и ценен. Или стековые фреймы.

Почитай там FAQ или возьми http://rebuildworld.net/ где расписано, что есть зло и почему.

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

код версии - это не десятичное число

А какое это число, если не десятичное? Может это и не число совсем? Ещё у нас даты есть, у них тоже три части как в semantic versioning, и разделяются они минусами.

Saakx
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.