Страница 3 из 3

Добавлено: Вс авг 16, 2009 21:34:09
GP1
sema писал(а): вообще-то если брать начинающего, то код на асме у него получится ничуть не меньше чем на си (на си наверное даже меньше). причина проста - запомнить все команды (мнемоники) асемблера с ходу + одновременно разобраться с железом = отобьт всякое желание у большинства разобраться до конца.
О чем я и говорил, 99,9% начинающих (что само собой подразумевает определенный возрастной порог) пишут на Си.
И что меня больше всего добивает в подрастающем поколении - полное нежелание самообразовываться, не у всех конечно, но уж больно часто мне попадались как раз те что не хотят.

Ради прикола придется Си освоить, чтобы не быть динозавром :wink:

Добавлено: Вс авг 16, 2009 21:37:01
Pooher
ARV я же писал:
Посмотрю я тогда на "абстрагировавшихся" от железа.
Вас я знаю с другой стороны.

Добавлено: Вс авг 16, 2009 22:03:32
Goodefine
GP1 писал(а): О чем я и говорил, 99,9% начинающих (что само собой подразумевает определенный возрастной порог) пишут на Си.
И что меня больше всего добивает в подрастающем поколении - полное нежелание самообразовываться...
Да кто же Вам сказал, что писать сложные программы на Си легко? И любой начинающий берет так запросто и пишет... Программы начинающих видны сразу - как правило все в одном файле, нет модульности, много ненужных глобальных переменных, прямолинейный код, отсутствие полезных квалификаторов, практически не используются указатели, алгоритм далек от оптимальности, использование плавающей арифметики без нужды, гигантские обработчики, неумение разложить одну задачу на несколько и увязать их, использование малой доли возможностей языка... Список можно продолжать. Это от языка не зависит. Только от способа мышления. Есть такой стиль написания на Си - как на Асм. Куча goto, меток, нет модульности, сплошная каша... Обычно так программеры переходят с ассемблера на Си. Это ужас а не программы. Неудивительно что они потом возмущаются, что писать столько же, да еще и код большой. Писать надо уметь. Силу и элегантность языка надо прочувствовать... А когда переход обратный - с Си на Асм, тут совсем другая картина, в коде порядок...
Насчет само образовываться - как раз Си и помогает идти дальше, учиться видеть грань между инструментом и задачей.
Те программисты, которые утверждают что портирование кода на асм, занимает почти столько же времени, вероятно серьезного ничего не писали. Поднимите хотя бы простенький web-сервер на новой платформе, даже если асмовский исходник будет, для другого семейства..

Добавлено: Вс авг 16, 2009 22:15:51
sema
GP1 писал(а):
sema писал(а): вообще-то если брать начинающего, то код на асме у него получится ничуть не меньше чем на си (на си наверное даже меньше). причина проста - запомнить все команды (мнемоники) асемблера с ходу + одновременно разобраться с железом = отобьт всякое желание у большинства разобраться до конца.
О чем я и говорил, 99,9% начинающих (что само собой подразумевает определенный возрастной порог) пишут на Си.
И что меня больше всего добивает в подрастающем поколении - полное нежелание самообразовываться, не у всех конечно, но уж больно часто мне попадались как раз те что не хотят.
вообще то я имел в виду другое - стартовать проще на си, а после этого если поймешь что это твое, что оно тебе нужно, уже копать глубже. если понимаешь как работает железо и как работает компилятор то объем hex-са практически не зависит от языка программирования :wink:

Добавлено: Пн авг 17, 2009 02:45:30
kalobyte
ARV писал(а): получил массу дельных советов, после которых проект стал на 2% меньше, чем был при "старом" компиляторе! и этот процесс (оптимизация всеми средствами) не менее увлекателен, чем ассемблерные изыскания :) так что любителям искать оптимум рекомендую искать его и в Си :)))
даже в холиварных темах можно извелечь профит
чего там тебе такого подсказали?
я вот несколько лет назад заменил цикл for на while и выиграл 56 байт в гцц
был в шоке

Добавлено: Пн авг 17, 2009 09:39:42
ARV
ну, на счет for <--> while я не могу утверждать категорично, но по-моему в настоящее время при одинаковых исходных условиях повторяемости цикла GCC делает абсолютно идентичный по размеру код (и иногда даже по командам асма).

а посоветовали мне ряд ключиков компилятора, которые иной раз очень сильно влияют на результат. в GCC же ключей оптимизации столько, что все их даже перечислить непросто :)