LINUX.ORG.RU
ФорумTalks

Рецензия на книги А. В. Столярова

 , ,


1

2

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

Что важно, этот курс стал бесплатно доступен любому желающему в два клика, без необходимости проходить бюрократический фильтр и платить цену автомобиля за доступ к информации. Благодаря работе Столярова любой заинтересованный человек получает качественно отредактированный конспект лекций МГУ по программированию с пояснениями. По содержанию это +/- 1999 или 2000 год.

Абсолютно ничего нового, революционного, свежего Столяров не написал. К моменту публикации (2016 год) по темам, затронутым Столяровым, было опубликовано десятки книг, которые пережили множество изданий. Например, книги по TCP/IP от издательства O’Reilly к тому времени издавались уже 20 лет и имели по 7-8 улучшенных и дополненных изданий.

Мало того, что Столяров опубликовал прописные истины администрирования и программирования, он еще их щедро разбавил философией лаборанта из 90-х. То есть технические книги стали содержать в себе конспекты типовых разговоров второкурсников за бутылкой водки. Что, конечно, добавило живости в чтиво, но дурно влияет на 17-летних подростков, которые пьяный трёп обслуживающего персонала воспринимают за жизненную философию и руководство к действию.

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

Но как разработчик, как автор, он не сделал ничего нового. И сам по себе является карикатурным образом админа 90-х, про которых писали юмористические рассказы в Fido. Попытка доказать всему честному люду, какой он великий инженер, через постройку велосипеда, развалившегося на первой кочке, — это типичный пример творчества тех лет. Рассказов про Винипуха и боды и записок Жены программиста.

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

Вывод: Столяров — это классический, можно сказать, эталонный системный администратор из 90-х. Человек, который отказался развиваться, отринул курсы повышения квалификации и навсегда остался в сладком возрасте 20 лет в рамках того давно ушедшего социума, его стереотипов и правил.

Книги Столярова — это книги 90-х, хотя они написаны через четверть века, в конце 2010-х. Это памятник эпохи начала массовой компьютеризации в России. Это надо понимать при работе с ними. Читая работы Столярова, надо давать «поправку на ветер», и всё будет хорошо.

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

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

Ответ на: комментарий от anc

Я не об уровне ребят, а о вас. Это вы так излагаете, что у них возникают такие вопросы. Разная культура, разный менталитет, разные методики преподавания… много чего разного. А в вашем случае всё это усугубляется тем, что вы преподаете в их естественной среде.

Так я об этом же. Есть существенная разница как излагать что-то студентам 3-4 курса, 1-2 курса и школьникам 9-11 класса (или сколько там сейчас учатся). Просто удивительно, когда сталкиваешься в первый раз, насколько разная скорость восприятия и прививания нового.

Соответственно, если ты ожидал что 8 лекций прочитаешь студентам 1 курса, а у тебя по факту школьники, то тут уже кардинально что-то мало изменишь, все равно будет не супер (мягко сказано). Потому что для школьников нужно готовить материал совершенно по другому, и в другом темпе его излагать.

Плюс еще очень сильно влияет местный образ жизни. При переходе в Политех после 15 лет Матмеха СПбГУ я осознал, что в разных университетах СУЩЕСТВЕННО разные студенты по тому, что им интересно, и примеры, учебные задачи на которых я учил ребят на матмехе тут не работают, они тупо не интересны. А в Китае вообще другой уклад жизни и мои задачи тоже вообще им перпендикулярны… Опять же пришлось адаптироваться, а это все влияет на результат…

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

Он справедливо ответит, тебя не кто не звал. За хостиг плачу я, код сайта написал я. Это моя территория, не надо на нее ходить.

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

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

вот сишечку то туда то туда относят

ИМХО вполне заслуженно. Даже если рассматривать применение C в программировании пром. контроллеров и то зависит от конкретных контроллеров и решаемых задач. Где-то это С который реально можно назвать низким уровнем, а где-то всё обмазано кучей либ с сотнями функций которые «делают тебе хорошо».

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

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

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

Покупать книги? И кто у нас застрял в 90х? Сейчас книги принято скачивать, а не «покупать».

Скачивание книги не означает того, что вы за неё не заплатили деньги.

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

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

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

Очевидно, что есть и другие способы, но я про них не знаю.

Совершенно точно есть. Тот же Столяров как-то учился же. :)

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

Адепты секты Ондрея свет Викторовича неоднократно утверждали в данном топике, что ему в общем то и не надо уметь программировать, надо уметь преподавать программирование, а это другое! То есть читая манускрипты Столярова, Столяровым, увы, не стать.

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

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

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

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

Ну а на практике как?

Очереди на шлюхах поясняли. :)

Я ведь даже не про указатели, я про массивы рассказывал

Ну массивы ещё проще. Рейка со стопками одномерный массив. Ящик водки двухмерный массив.

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

Очереди на шлюхах поясняли. :)

Была в физматшколе задачка про голландский штурвал.

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

add AX, BX # это выражение? Я, как математик, считаю это выражением

А как программист, считать это выражением, вы не должны. Выражения - элемент языка программирования, что это такое можно почитать даже на вики. Допускаю, что определение выражения должно быть и в трехтомнике, но лично мне сейчас лень искать это, скажу только, что даже если определения не найдётся, понять что там имелось ввиду, можно, прочитав раздел 2.2 (издание 2.9, том 1). Команда add AX, BX выражением не является, никакого абстрактного результата у неё нет и никакие другие команды этот абстрактный результат никуда не вносят.

Вот тут я уже ничего не понял, «add AX, BX» это вычисляемое в рантайме выражение? Если нет, то нужно определение выражения рантайма.

Почему я ранее упомянул вычисления в рантайме? Потому, что обычно ассемблеры допускают вычисление выражений во время ассемблирования. И, да, тут речь про настоящие выражения.

Зачем вообще определение побочного эффекта в книге по прикладному программированию? Например, ради параграфа 4.8.3 (издание 2, том 2). Правда, чтобы понять что там написано, надо понимать что такое побочный эффект.

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

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

Адепты секты Ондрея свет Викторовича неоднократно утверждали в данном топике, что ему в общем то и не надо уметь программировать, надо уметь преподавать программирование, а это другое!

Может вы не совсем так поняли? Разница между теорией и практикой не только в программировании есть и то что теоретик != практик это нормально.

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

Очевидно, что есть и другие способы, но я про них не знаю.

Совершенно точно есть. Тот же Столяров как-то учился же. :)

Да я и сам учился немного не так.

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

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

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

А зачем делать размер страницы в полтора раза больше, если редкие символы вне koi8-r можно кодировать через Ӓ всякие?

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

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

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

Я понимаю, почему кому-то может не нравится юникод после того как в него внедрили эмодзи. Нужные символы при этом там отсутствуют или появились только недавно. Напимер 🄯 copyleft почему-то ломает строки и имеет пятизначный код 1F12F, хотя этот символ равнозначен с © copyright, который почему-то кодируется двузначным кодом A9 и должен был появиться в юникоде примерно одновременно с ним. Для проверки ещё напишу пару предложений, чтобы было видно, что делается со строками от этих символов. Хотя, похоже, ничего. Это только в поле ввода расстояние между строками раздвигается вокруг символа копилефта.

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

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

Ты не отличаешь функцию с возвращаемым значением, которая втыкается в математическое выражение от процедуры, вызов которой является отдельным оператором?

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

2122442

expression

language construct that defines the computation of a data value as a result from one or more operands

Note 1 to entry: Operands may be literals, identifiers, function calls.

Note 2 to entry: expression : term and definition standardized by ISO/IEC [ISO/IEC 2382-15:1999].

Note 3 to entry: 15.05.33 (2382)

Отсюда следует, что «add AX, BX» это выражение.

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

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

ISO 9899:2017

6.5 Expressions

1 An expression is a sequence of operators and operands that specifies computation of a value, or that designates an object or a function, or that generates side effects, or that performs a combination thereof. The value computations of the operands of an operator are sequenced before the value computation of the result of the operator.

i = i + 1 это выражение, соотв. и inc AX должно быть выражением.

PS: что у вас подразумевается под абстрактным результатом?

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

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

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

зачем делать размер страницы в полтора раза больше

Ты про существование gzip в HTTP вообще не в курсе, как и столяров?

@goingUp

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

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

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

i = i + 1 это выражение

Не, не выражение. Это statement. А выражением будет i+1. Но в сишке таки да, это выражение, потому что присваивание сделали арифметическо операцией, поэтому как раз Столяров и не рекомендует с неё начинать - там нет некоторых важных концептов, которые должны быть в голове программиста до того как он начнёт писать программы на C.

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

лучшее враг хорошего etc

как поехал в байтах так и от добра добра не ищут

жаль что его тексты не на латыни

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

Ты про существование gzip в HTTP вообще не в курсе, как и столяров?

Даже с gzip разница будет, хотя может и меньше.

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

возможно коi-8 дешевле по энергии чем gzip utf8

вот телеологическая причина действий Андрея Викторовича

забота о Геи(а с Марсом так и Геях)

https://ru.wikipedia.org/wiki/Гипотеза_Геи

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

Даже с gzip разница будет, хотя может и меньше.

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

Ага. Парой килобайтов комментариев каналы забьются, а терабайты каких-нибудь тупых сериалов — это ОК, так что ли?

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

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

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

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

забота о Геи

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

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

логос эксталогичен как тарского теорема

и прочие чудькоссы в решёте

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

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

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

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

Для юникода вам трафика жалко, а для страниц целиком - нет.

На самом деле не жалко в обоих случаев. Но и минусов koi8-r в конкретно html особых нет, так как есть Ӓ для вставки странных символов. А вот в терминале нет разметки такого рода, там UTF-8 желателен.

Xenius ★★★★★
()

Я тут посмотрел книгу. Господин Столяров использует свою собственную лицензию с кучей ограничений, но широко использует в своём труде картинки из википедии, лицензированные под CC-BY-SA.

Сие есть нарушение лицензии. CC-BY-SA разрешает использовать картинки в производном произведении, но требует, чтобы такое произведение тоже было под CC-BY-SA, это копилефт а-ля GPL.

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

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

Во первых, как-то получается, что ты (и коллеги) не пойдешь преподавать как надо. И даже книгу как надо не напишешь. Банально потому, что занят другими вещами или не интересно. И уж точно денег не принесет. Приходится теоретикам этим заниматься.

Во вторых, а собственно, что значит «реальная разработка»? Она реальная в разных компаниях очень сильно по-разному. Совсем разные стеки технологий, совсем не обязательно то, к чему ты привык и считаешь «реальной разработкой» используется в конкретном месте. Например, где-то git используют, а где-то IBM ClearCase. Про git, кстати у Столярова есть в 3-м томе.

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

Ты не отличаешь функцию с возвращаемым значением, которая втыкается в математическое выражение от процедуры, вызов которой является отдельным оператором?

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

Оператор - это тоже функция или процедура с особым синтаксисом. Есть языки ( C++) где их можно определять.

Вот и все на практике. Но Столяров и ты за ним развели целую философию вокруг.

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

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

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

Вот сравни скорость работы Sberbank Online или gosuslugi с тоннами джаваскрипта и сайтов Столярова, где жаваскрипта нет. Почему-то второе почти мгновенное, а в первом надо ждать чуть ли не минуту ответа на клик.

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

А вообще говоря - стили, скрипты и прочая статика кешируются. Тормозят упомянутые тобой сайты в основном из-за гигантской нагрузки из-за востребованности. Сайт столярова же не тормозит, потому что, помимо пустоты и нуля функций, он никому не нужен.

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

Если ты большой фанат консольных браузеров и считаешь, что тебе важны их юзеры - сделай им простенький рендер в статику. 99.99% юзеров все равно будут пользоваться обычными браузерами и получать преимущества от жаваскрипта и функций, а остальные пусть сидят на текстовом-онли интерфейсе.

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

А можно узнать, что ТЫ разрабатываешь? Потому что, судя по твоим рассуждениям, боевой код ты не пишешь вообще, с юзерами не контактируешь, проектами не управляешь, а только рассуждаешь, как остальным надо писать, прямо как столяров.

Что до меня, то я не пишу сайтов, но у меня есть большое веб-приложение. Оно полностью собрано на HTML/CSS/JS-статике без фреймворков и весит что-то около 500 килобайт без gzip, 300 из которых составляет одна-единственная большая картинка PNG. Все остальные иконки идут в SVG (который столяров наверняка тоже не признает), чтобы юзеру не пришлось грузить стопицот PNG-иконок разного разрешения.

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

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

Но и минусов koi8-r в конкретно html особых нет, так как есть Ӓ для вставки странных символов. А вот в терминале нет разметки такого рода, там UTF-8 желателен.

О чем я и говорил - столяровщина вызывает кашу в голове. Да, у тебя ничего плохого в HTML и koi8-r нет, но когда ты захочешь из терминала с UTF-8 поредактировать эти файлы, то случится конфуз, если твой редактор не умеет менять кодировку. Не говоря уже про седогрепы. Вот и приходим обратно к тому, что проще всё хранить в UTF-8.

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

Приходится теоретикам этим заниматься.

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

К - конструктивно.

Она реальная в разных компаниях очень сильно по-разному.

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

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

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

Команда add AX, BX выражением не является, никакого абстрактного результата у неё нет

Зависящее от предпочтений и состояния ассемблера значение (цепочка 2-3 байтов "\3\303", "f\3\303", "\1\330" и "f\1\330") размещается в текущем фрагменте секции или сегмента.

i ()
{
    objdump -D -b binary /dev/stdin -M intel -m $1 <<< $2
}
for b in $'i8086 \3\303' $'i386 f\3\303' $'i8086 \1\330' $'i386 f\1\330' ; do i $b|grep add ; done
   0:   03 c3                   add    ax,bx
   0:   66 03 c3                add    ax,bx
   0:   01 d8                   add    ax,bx
   0:   66 01 d8                add    ax,bx
vM ★★
()
Последнее исправление: vM (всего исправлений: 1)
Ответ на: комментарий от liksys

когда ты захочешь из терминала с UTF-8 поредактировать эти файлы, то случится конфуз, если твой редактор не умеет менять кодировку.

Перекодировать из кодировки документа для отображения должны просмотрщики (браузеры e.g.) и редакторы.

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

А грепать и седить как?

Это все попытки наворотить костыли, когда можно просто использовать юникод. Еще раз: нет ни одной адекватной причины не использовать юникод.

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

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

Это не побочный эффект.

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

Иконв же. И на ввод, и перед выводом.

К юникоду одна претензия - в него полоумные наскальную живопись цветными мелками добавили.

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

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

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

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

Нормальные теоретики прекрасно адаптируются к практике и начинают работать инженерами

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

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

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

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

Ты не отличаешь функцию с возвращаемым значением, которая втыкается в математическое выражение от процедуры, вызов которой является отдельным оператором?

Отличаю. Но говорю я о другом. void func это функция или процедура?

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

дихотомия технари vs гуманитарии так же не универсальна (сумма меньше 1)

как и теоретики vs практики

ваще Смалиан с его сумашедшими вампирами очень в этом смысле

как и правильный инь-янь-хрень

судя по всему «там» и ни инь и ни янь

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