Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет mumuntu ([info]mumuntu)
@ 2003-10-20 10:25:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
[Programming, MHO] За реальных программистов
Дивитеся що товарищ пише:

Шло время, я набирался опыта, и системные программисты постепенно теряли свой полубожественный статус. Они уже не были титанами, парящими в облаках, а просто элитой, хоть и трудно, но достижимой целью.
Когда же я пересел на писишки, светлый образ рассыпался как пыль. ОСи писишек предстали передо мной как куча хаков и багов, готовых обвалиться в любой момент. Системные же программисты оказались прыщавыми нердами, с трудом представляющими что они делают и зачем (помню коменты из сырцов xfree: "I cannot fucking believe that fucking ^ is XOR instead of pow()!!!", это написал системный программист, думающий что в C есть оператор возведения в степень из Бейсика) - произошла переоценка ценностей. Герои-милиционеры оказались толпой алкашей и подонков, цель, к которой стремился, внезапно оказалась далеко за спиной.
[Читати цiлком]

Произошла типичная подмена понятий. На самом деле никаких кодеров, конечно, нет. Те люди, о которых идет речь в исходном постинге - простые и незатейливые работники демосцены (на мой взгляд практические знания, приобретаемые программистом при написании демок ничем не полезнее знаний о программировании COM-серверов). Если бы я сам не пробовал программировать как минимум на двух ассемблерах, я может быть и поверил бы в существование Всемогущих Кодеров, Головами Подпирающих Небо.
А что на самом деле?

А на самом деле, те люди, которые в условиях крайне ограниченных системных ресурсов разрабатывали полезные программы, зачастую и профессиональными программистами не были вовсе. В России написанием интерпретаторов (или это был компилятор? я не помню уже) языков высокого уровня занимались, например, физики (что не умаляет их достоинств). Может ли физик подпадать под определение кодера, данное в обсуждаемом постинге? Может, почему нет. А я могу? И я могу, почему не могу. :) Просто задач таких передо мной не стоит. Стояла задача писать на ассемблере MIPS RS2000 - писал.

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

В заключение еще раз прошу всех помнить: серебряной пули нет.


(Читать комментарии) - (Добавить комментарий)

Re: Немного соврал
[info]kunaifusu@lj
2003-10-21 01:31 (ссылка)
Арсенал опитимизации - это голова кодера, вот это весь арсенал. А то, что вы перечислили - мелочи, которые среди многих других показывает VTune, мало того что показывает - объясняет как исправить.

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

На счет reuse - во-первых большинство кода для reuse непригодно, во-вторых, ассемблерный оптимизированый код точно так же можно реюзить как и сишный (в конце-концов си в те же опкоды компилируется), а если вы говорили про *портировние* и использование на другой платформе, то это светлая сказка, весь time critical код работает с железом по определению, какой смысл писать быстрый код, который не трогает ввод/вывод? Задачи без i/o или с переносимым i/o - это прикладные задачи, уравнение там посчитать, или отчет по складу сделать.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Голова без сомнения нужна
[info]amirul@lj
2003-10-21 02:27 (ссылка)
А то, что вы перечислили - мелочи, которые среди многих других показывает VTune, мало того что показывает - объясняет как исправить
Ну и где же тут ручная оптимизация. Что мешает исключить из цепочки одно звено - человека?

Что касается оптимизирующих компиляторов - я как раз собираюсь написать сегодня заметку
Жду. Хотя, например, задача оптимального распределения регистров NP-полная. Вот только человек для ее решения будет пользоваться интуицией (довольно неплохо, но может быть и ужасно), а компилятор - итерационными методами дающими приближение к оптимуму с любой наперед заданной точностью (вероятность неоптимальности заранее известна). Задача оптимальной кодогенерации из промежуточного представления, кажется, тоже NP-полная (вот тут не уверен, а насчет регистров - точно) и методы решения те же.

весь time critical код работает с железом по определению, какой смысл писать быстрый код, который не трогает ввод/вывод?
Какой смысле писать на асме не time critical код? К тому же до реального профайлинга не всегда понятно, где же будет боттлнек. Как я уже говорил, я признаю оптимизацию (если действительно знаешь как оптимизировать) в виде inline-asm-а или отдельного(ых) асмовского(их) модуля(ей) в который(ые) вынесены все платформно зависимые и time-critical куски. Причем определять критичность кода надо не на глаз, а в профайлере. Все остальное нужно писать на чем нибудь, предполагающем статическую проверку типов, удобные конструкции, поддерживающие какую либо из парадигм программирования. Иначе это будет "из пушки по воробьям".

(Ответить) (Уровень выше) (Ветвь дискуссии)

Да и еще
[info]amirul@lj
2003-10-21 02:36 (ссылка)
При ручной оптимизации действует известное "правило семи кусков" или как оно там называется. Смысл в том, что средний человек не может хранить больше семи кусков информации одновременно. Эта величина распределена нормально, и дисперсия довольно маленькая. У компилятора таких проблем нет.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Да и еще
[info]kunaifusu@lj
2003-10-21 03:10 (ссылка)
Вы как раз вовремя эту тему подняли, потому что я еще вчера начал по этому поводу писать, и сейчас, вот дописал. (http://www.livejournal.com/users/kunaifusu/23999.htm)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Да и еще
[info]kunaifusu@lj
2003-10-21 03:11 (ссылка)
Че-то линк кривой вышел, вот этот можно попробовать
http://www.livejournal.com/users/kunaifusu/23999.html?mode=reply

(Ответить) (Уровень выше)


(Читать комментарии) -