Лёша, я ссорюсь только с одним человеком, веся моя язва направлена на того, кто назвал другого «мудаком» по сути по-религиозным причинам. Я тут ни разу не влазил ни в чей монастырь, поэтому и не писал какую я использую процедуру умножения. Я не понимаю вообще зачем считать сколько она весит в данном случае, так же не понимаю зачем нужна самая быстрая точка на планете. Ведь я точно знаю, что я не буду её использовать в этом виде, обе процедуры видоизменятся до не узнаваемости в зависимости от того какой будет эффект. Ну ведь точками шарики да кубики уже рисовали-перерисовали-зарисовали всё что только можно. Каждый стремится придумать то чего нет, а точки уже есть лет 20 как. Вот как только будет статься о рисовании пиксельной фигуры не точками, а например, кусками блоков, паперами, рассуловиание алгоритмов заливки, тут же моментально умножение сольётся с десятком процедур. Вот я и не лез в этот монастырь. Мой вариант какой-то, который мигрировал с 1994-ого года
Лёша, так вот я пишу кучу ассемблерного кода и у меня тоже вырабатывается система. Вова пробовал что-то своё и сделал свои выводы. А у меня другой путь и я пришёл к нему тоже не от досужих размышлений, а работая. У меня код весь мигрирует от проекта к проекту. У меня ОЧЕНЬ систематизированная запись, и, что самое парадоксальное, я прошёл за последние 4 года от полного неприятия кода в строчку, к очень регулярному его использованию. Я пишу вроде не совсем тривиальные демы. Не только летающие точки и скроллеры. Мои исходники документированы в разы лучше чем 99% спектрумовского опен-сорса.
И невзирая на всё это, у меня выработались другие предпочтения.
Твоё знание не абсолютно. Так же как и моё разумеется. У нас разный дзен, Лёша. Не о чем спорить.
Лёша, проблема не в записи в строчку, а в системе. О чём пишет Вова, что он прошёл какой-то путь, что попробовал так, сяк, шмяк, и напоролся на то, что со временем стал путаться в своём коде. И он описывает, что ему не хватает системы. И я уверен что главное с чем он столкнулся, что предыдущая система, в данном случае «фича-строка» замылила его глаз, и простая ошибка что-то испортила. И я уверен, что если систематизировать свой код, придумать читаемую форму записи, то простые ошибки не будут портить тебе жизнь. И так же со временем ты сможешь проще и быстрее вникать в то, что сам написал. Мало того твой код легче и проще будет мигрировать от проекта к проекту. Вот форма записи в строчку это самая не систематизированная запись. Пока проект состоит из скролла и летающих точек система не особо нужна, лучше, что бы так же была, но крайне принципиально систематизировать, когда ты пишешь что-то, что собирается в 20-30 эффектов, и каждый эффект переплетается в памяти с соседом, или завязан на общих процедурах, в топу «фичу», важнее в 20-ти метрах кода не допустить ошибок, что бы в один прекрасный день, ты не сел над глючной демкой, и понял, что где-то при сборке вылез баг в модной форме записи «строчка». Это важнее в десять раз, это даёт возможность делать лаконичные библиотеки, а не пихать туда просто скопом всё, что было наработано за 20-30 лет.
Ну вообще-то мудаком в упомянутом тобой случае оказался и я тоже, так что непонятно даже.
А про код… ну я на самом деле сейчас в некотором недоумении, потому что тут просто удивительно сколько людей поругались сейчас из-за удивительно ничтожного повода. Ну вот я внимательно прочёл. Вертикальные блоки. Макросы. Ну если очень коротко, у нас разное понимание что такое читаемость. У Raidera одна, у тебя — другая, у меня как видишь третья оказалась. Не знаю что делать по этому поводу. Для начала, наверное, нужно перестать по этому поводу ссориться.
Я не хочу что бы это называлось ЧИТАЕМЫЙ КОД! Это не читаемо, это не по правилам и не может нигде и не при каких обстоятельствах назваться читаемым. Называй это как хочешь, «фича», «супер удача», «невероятный прорыв мысли», но только никак не читаемый код. Читаемый это когда понятно что конкретно делает кусок кода. Я не говорю о том, что бы он был прост, а том что бы он был читаемым. А главное во всём этом совсем другое, это возможность инструмента, которым ты пользуешься. Возможность располагать больше кода на экране достигается выбором монитора с расширением и редактором способным работать с фонтом 6х7 пикселей, а не компилятором который даст тебе писать текст змейкой. Вот смотри я использую текстовый редактор только тот, который мне позволит работать с блоками текста, для построения таблиц. Я вообще не рассматриваю ни один редактор который не даёт мне такую возможность. Мне очень важно умеет ли он раскрашивать текст, но давать мне возможность отметить блок и порисовать в тексте на скорую руку картинки это важнее. Так что мне написать компилятор, что бы мог воспринимать магическую запись текстового редактора ради таблиц? Или тот же ALIGN, да всё равно что пишется текст спиралькой, это не экономит ни место в памяти ни такты процессора, без ALIGN для меня вообще нет компилятора. Он у меня вообще везде, и после ALIGN стоят не только 256, а 16, если таблица на 16 байт. А если надо что бы ALIGN не тёр до границы ноликами есть ORGALI, я на этом всём пишу прошивки для флешек, где надо генерировать HEX файлы, в которых нужно делать дыры из ничего вообще, просто пространство. Эти инструменты важнее на порядок записи в строчку. И речь идёт не о том, что ты пишешь не верно, а том, что этот код не читаем. ALIGN 256 это чёткое описание твоего желания, а ORG ((($-1)/256)+1)*256 это частный случай с учётом повезёт тебе с округлением или нет, и что бы ты не говорил это не читаемо. Можешь написать туда MOD, это так же не читаем. Это всё равно что описывать «if» через «for», поверь, я могу тебе сделать анализатор-генератор СИшного кода и поменяю местами все if и for, и это откомпилирует, но опять таки это не читаемо. Я понимаю, если бы вы обсуждали макросы, что-то типа вот такого:
Я верю, что каждый может в строчку написать сто-тыщ операций, но это не читаемо. Читаемы слова, объясняющие что ты там на прерываниях делаешь. И потом когда будет происходить «дебаг», править надо будет только макрос, в котором через двоеточие, по спиральке, змейкой и крестиком пиши как угодно. Опять-таки я не говорю про простой код, пусть он будет сложный, пусть будет ветвистый и выжатый до последнего такта, но максимально читаемый. А каждый пример который был тут приведён не несёт оптимизации, и не несёт информативность, он несёт только фичу.
И я ещё раз говорю, слово «мудак» я применяю только к тому, кто его применил ко мне. И да, я очень сильно разозлился, кода прочитал что я «мудак» только лишь потому, что кто-то вышивает крестиком, да ещё постыдно это называет читаемый код.
Robus, ну просто убери $ и все твои примеры станут сразу нормальными.
Т.е. проблема опять в том, что ты утрируешь немного. И хочешь писать по-своему. Но пойми, Вова напал на нас первый и мы (многокомандвстрочники) просто защищались. Я же не говорю всем как писать, я говорю что имею право писать и мне так удобно. И есть свои достоинства, далеко всё не чёрно-белое. А разные люди приходят и говорят, что ld b,c,d,e — плохая команда, и что $ в строке непонятно к чему привязать. А то, что у меня в коде нет ни первого и не второго видимо спросить забыли.
Если так всё радужно и прекрасно писания в строчку, то почему вы так «заминусовали» паренька, который что-то там делал на WCT? Я могу ошибаться, вообщем он утверждал, что пишет закорючками прямо в машинном коде. И главное, он пишет всё в строчку! О… Да у него в одну строчку вмещается так много кода, что вообще кайф. А не хотите ввести запись в формате BASE64? Шикарная штука 6 бит на 8 бит, да при 80-ти символах в строке можно 60 символов текста впихнуть, а сколько кода можно нагородить? НЕТ? А почему нет? Это выходи за пределы ваших правил? А ваших ли? — Не ваших? А… Кто-то это в популярном компиляторе реализовал .?.. Да — точно… Это истина высшей инстанции, только так теперь и надо воспринимать «асм», а то, что это не ассемблер Z80 — уже не важно. Правила языка спускаем на классную фичу. Не важно, что тема ЧИТАЕМОСТЬ кода, «фича» навязанная компилятором важнее. Теперь кто не так пишет как другие называется — «мудак», не важно, что не читается, не важно, что до этого пишем про «давайте писать код так, что бы другой мог заюзать», тут же налепили в строчку, и так удивлённо, — «а вы чего читать не умете, не можете понять ???». Ну тогда компилируйте вот такой код:
И теперь угадываем DJNZ $ на какую из команд должен указывать, предлагаю в компиляторе делать значение адреса $ делать по RND на каждое двоеточие?
Код в строку не читаем. Да ляпать по клавиатуре меньше, да макросы как не использовали, так и не используем, но это не важно, главное это «фича» — в строку писать.
XOR A:LD HL,A:LD ($+3),A:JP (HL)
У вас такой команды LD HL,A нет, сделайте — будет, фича ведь, меньше клавиш нажимать, и модно как. А ($+3) генерируем по-рандому. Но ещё лучше записываем вот так
OzaKW4aECH488n4B1f3J412AaioCfmIGwe4KWW2ICb2
… Смотрите, какая компактная запись, а как читается? Ну просто прекрасно. От того что в СИ можно писать в строчку не значит что код будет читаем, это не значит, что так надо писать. От тог что в русском языке есть набор унижающих других слов, не значит что их надо применять, иначе давайте возвращайте забанненых тролей назад, они просто писали в строчку слова которые вы не можете правильно прочитать, а некоторые не могут прочитать потому что «мудаки». Про «мудака» — то про меня, конечно же. Вот по этой причине я и не выкладываю свои стати, я ведь «мудак» пишу на своём асаме, да в масоне.
Дело не только в скорости, а ещё и в том, что у тебя строка делает ЧТО-ТО ОДНО. Это как одна команда в каком-то языке чуть посложнее. Считай, ты макрос ввёл.
Потому что мы все имеем опыта программирования на более высоком уровне, выделение строки для каждой команды слишком «разбавляет» код. Да, я тоже терпеть не могу вереницы присваиваний
ld hl,#4000,de,#4001,bc,6911,(hl),l:ldir
Но пора перестать мешать в кучу код в строку (нормальная идея) от синтаксиса шторма — это не одно и то же.
Голова не обязательно должна кружиться от кода в строчку:
Я, кстати, в С очень часто обработку ошибок в одну строчку пишу, чтобы простыни снизу равной кол-ву основного кода не было когда с вложением проверки делаешь. Метку «error» использую в качестве аналога деструктора, если до этой проверки были выделены ресурсы (инициализированы драйвера, аллоцирована память (да, я пользуюсь динамическим выделением памяти)).
Типа:
Ну просто сидя в каком-нибудь Intellisense редакторе, ты всерьёз будешь мне говорить что может возникнуть проблема от того что у кого-то 5 команд в строке? Ну да, чуть другой интерфейс понадобится, но несерьёзно это как аргумент выдавать.
Напомню, в C разрешено больше одной команды в строке. И мы все до сих пор живы.
Но боюсь на него CALL бывает очень редко.
И невзирая на всё это, у меня выработались другие предпочтения.
Твоё знание не абсолютно. Так же как и моё разумеется. У нас разный дзен, Лёша. Не о чем спорить.
А про код… ну я на самом деле сейчас в некотором недоумении, потому что тут просто удивительно сколько людей поругались сейчас из-за удивительно ничтожного повода. Ну вот я внимательно прочёл. Вертикальные блоки. Макросы. Ну если очень коротко, у нас разное понимание что такое читаемость. У Raidera одна, у тебя — другая, у меня как видишь третья оказалась. Не знаю что делать по этому поводу. Для начала, наверное, нужно перестать по этому поводу ссориться.
Я верю, что каждый может в строчку написать сто-тыщ операций, но это не читаемо. Читаемы слова, объясняющие что ты там на прерываниях делаешь. И потом когда будет происходить «дебаг», править надо будет только макрос, в котором через двоеточие, по спиральке, змейкой и крестиком пиши как угодно. Опять-таки я не говорю про простой код, пусть он будет сложный, пусть будет ветвистый и выжатый до последнего такта, но максимально читаемый. А каждый пример который был тут приведён не несёт оптимизации, и не несёт информативность, он несёт только фичу.
И я ещё раз говорю, слово «мудак» я применяю только к тому, кто его применил ко мне. И да, я очень сильно разозлился, кода прочитал что я «мудак» только лишь потому, что кто-то вышивает крестиком, да ещё постыдно это называет читаемый код.
Т.е. проблема опять в том, что ты утрируешь немного. И хочешь писать по-своему. Но пойми, Вова напал на нас первый и мы (многокомандвстрочники) просто защищались. Я же не говорю всем как писать, я говорю что имею право писать и мне так удобно. И есть свои достоинства, далеко всё не чёрно-белое. А разные люди приходят и говорят, что ld b,c,d,e — плохая команда, и что $ в строке непонятно к чему привязать. А то, что у меня в коде нет ни первого и не второго видимо спросить забыли.
Код в строку не читаем. Да ляпать по клавиатуре меньше, да макросы как не использовали, так и не используем, но это не важно, главное это «фича» — в строку писать. У вас такой команды LD HL,A нет, сделайте — будет, фича ведь, меньше клавиш нажимать, и модно как. А ($+3) генерируем по-рандому. Но ещё лучше записываем вот так … Смотрите, какая компактная запись, а как читается? Ну просто прекрасно. От того что в СИ можно писать в строчку не значит что код будет читаем, это не значит, что так надо писать. От тог что в русском языке есть набор унижающих других слов, не значит что их надо применять, иначе давайте возвращайте забанненых тролей назад, они просто писали в строчку слова которые вы не можете правильно прочитать, а некоторые не могут прочитать потому что «мудаки». Про «мудака» — то про меня, конечно же. Вот по этой причине я и не выкладываю свои стати, я ведь «мудак» пишу на своём асаме, да в масоне.
именно вариант с: нравится.
Потому что мы все имеем опыта программирования на более высоком уровне, выделение строки для каждой команды слишком «разбавляет» код. Да, я тоже терпеть не могу вереницы присваиваний
Но пора перестать мешать в кучу код в строку (нормальная идея) от синтаксиса шторма — это не одно и то же.
Голова не обязательно должна кружиться от кода в строчку:
Разумеется, любую, даже самую хорошую идею можно довести до абсурда. Но что это доказывает? Правильно, ничего.
вполне логическая связка, годная для быстроты ввода.
Если это прочитать быстро то можно вызвать демона :) Чем продолжительней строка тем круче демон.
Типа:
Напомню, в C разрешено больше одной команды в строке. И мы все до сих пор живы.