LINUX.ORG.RU
ФорумTalks

Системные программисты


1

4

Я новичок, и мне показалось, что есть такой стереотип в программировании, что системные программисты - «трушные», самые правильные, «настоящие», могут разобраться во всех областях программирования. Откуда взялся этот стереотип?

Перемещено post-factum из development

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

код драйвера видеокарты
другой напишет «jvm»

чо?

ты себе даже не представляешь насколько сложны современные видеокарты и дрова к ним.

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

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

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

курица и яйцо. бессмыссленный спор.

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

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

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

Квалификация системщика в основном определяется количеством тонкостей, которые он зазубрил.

А мужики то и не знают!

Интересно как это ты будешь разрабатывать, скажем хорший компилятор, выучив несколько «тонкостей» без системного образования, без теории конечных автоматов, теории сложности, теории компиляторов и пр. ( http://se.math.spbu.ru/SE/info/sootvetstvie-kursov-acm-curricula ), что обязательно входит в стандарты специальности 010503 «Математическое обеспечение и администрирование информационных систем» ?

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

При последовательном доступе просто линейки кеша эффективнее используются, эффект всё тот же

?! что по одному байту читать, что строкой — кеш используется одинаково. Вопрос в скорости его заполнения.

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

Во-первых, тот же размер блока нужно подобрать

Разумеется, но это не тянет на «переключение между разными алгоритмами».

во-вторых, речь идёт не только о BLAS

Для не BLAS этим никто не занимается. Для более высокоуровневых функций главное иметь высокооптимизированный BLAS, используемый как backend.

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

А ты не находишь, что прошивка (ОС) без прикладных программ может существовать, а вот прикладные программы без ОС — нет? Внезапно в мобильниках свистелки и перделки появились недавно, основные же разработки ПО для них это уровень ОС, где прикладные программы в стиральны машинах? в сотовых ретрансляторах? в маршрутизаторах? в приборах утразвукового анализа рельсов? в блоках управления станками? и over9000 других штук. А сколько всего в военке (системы наведения, системы подавления, системы обнаружения...)? Там все на уровне прошивки.

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

?! что по одному байту читать, что строкой — кеш используется одинаково

Щито? Память всегда кешируется линиями по 64 байта. При последовательном доступе используется вся линия, при произвольном - только её часть, поэтому последовательный доступ и быстрее.

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

Для не BLAS этим никто не занимается.

Мы, например, при расчёте потенциалов в молекулярной динамике. В fftw тоже, емнип. Речь не только о линейной алгебре.

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

В fftw тоже, емнип

Всё так. Оно автоматом степени факторизации подбирает

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

а вот прикладные программы без ОС — нет

Если, допустим, поттеринг доберётся до ядра, я поплачу и пересоберу свой кроссплатформенный софт под что-нибудь ещё. ОС - не более, чем пускалка прикладного софта. Без него она нафиг никому не нужна, и тому есть масса примеров.

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

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

soomrack ★★★★
()

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

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

Внезапно в мобильниках свистелки и перделки появились недавно, основные же разработки ПО для них это уровень ОС, где прикладные программы в стиральны машинах?

Капитан тут мне шепчет, что в этих машинках прикладное ПО является частью прошивки.

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

А вот прошивка без прикладного ПО, это как неродной линукс на мобилке: вроде грузится и даже работает, но при этом звонить не может, графики нет, полторы кнопки работают, батареей управлять не может, в интернет выйти не может, зато, лять, есть шелл на UART'овской консоли — смотрите все, какой я юберхакер. Нафиг.

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

прошивка (ОС) без прикладных программ может существовать, а вот прикладные программы без ОС — нет?

давным-давно, когда трава была зеленее, а компы были размером со здание, никаких ОС еще не было. Что не мешало решать на них конкретные прикладные задачи

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

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

а в чем проблема-то?

код драйвера: прочитать битик, записать битик. все строго по манам.

код учета: прочитать поле, записать поле. ман придумываешь на ходу.

и там и там откладываешь тонны логов. не вижу разницы.

ты дрова-то писал? ;)

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

при написании драйвера для какой-то железки в качестве отладчика использовал тестер

обычно все же осциллограф.

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

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

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

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

Не очень долго, но писал. Представление имею.

«Тонны логов» - да, но в прикладном программировании есть и более удобные средства. А бывает, что и с тоннами логов не особо разберёшься.

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

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

«более удобных» нет, просто для дров нужно и само устройство и шнуры к нему... но это все само собой, равно как в любом деле есть свои тонкие места и спец.инструменты.

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

бывает, что и с тоннами логов не особо разберёшься.

значит надо две тонны. или три. пока не разберешься ;)

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

и там и там откладываешь тонны логов. не вижу разницы.

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

// ковыряю на работе легаси TDI драйвер для венды. Масса впечатлений. Абстрактное мышление улучшилось на порядок.

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

Особенно если кодить под какой-нибудь атас навроде вендовых подсистем.

ну... некоторые вон и макбуки без стыда показывают.

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

ну... некоторые вон и макбуки без стыда показывают.

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

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

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

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

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

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

++

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

А велосипед так вообще считается священным животным.

CYB3R ★★★★★
()

Откуда взялся этот стереотип?

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

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

а почему фортран-программисты ниже сишников?

Фортран-программист - это никому не нужное животное.

Важно знание прикладной области.

То есть, математик, создающий какие-нибудь физ-мат модели и программирующий
на Intel Fortran, нисколько не ниже хакера, пишушего драйвера Linux для какого-
нибудь модема.

Обеим нужна культура мышления. Именно она и оценивается.

pacify ★★★★★
()

системные программисты это те кто на С пишут штоле?

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

при этом драйвер --- это буквально перенос манов в код, 1:1.

Бгг. А железка к которой этот самый «ман» написан - это Дар Богов, принесенный с неба. С изящным интерфейсом доступа, системой команд итп сделанными так, как написано в Библии.

Все это пограмистское дерьмо одинаково, только гемморой в разных местах.

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

А бывает, что и с тоннами логов не особо разберёшься.

«Тонны логов ниочом» называется :)

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

Только в этих задачах все равно всяко разно использовался «библиотечный кот», который впоследствии развился-выродился в эти ваши ОС, когда кто-то подумал, что реализовывать половину всякого функционала не по теме прикладной задачи каждый раз как-то впадлу :) (Это не мешало, конечно, под досом каждой игрушке иметь внутре свои дрова для железяк, элементы многозадачности и защищенного режима проца, когда писюки программистов доросли до того, что во взрослых осях уже давно появилось, обросло мхом и ржавчиной)

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

ты себе даже не представляешь насколько сложны современные видеокарты и дрова к ним.

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

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

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

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

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

как только берутся за это дело тот тут же

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

// fixed :]

vasily_pupkin ★★★★★
()

C'est la vie...

В последние 20 лет в основном конкретно востребованы прикладные программисты. Это реальность - и надо с ней жить.

Зарплата прикладника == от 80 тыр джуниора до 120 тыр старшего. Естественно, для Джавы. Всякие пыхеры, педонисты, рубироиды в enterpriZe - это оксюморон.

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

А задрот-нищеброд системный программист может только грызть монитор, ругать «бездуховное общество потребления» и жаловаться на вселенскую несправедливость. И придумывать в оправдание своей неконкурентоспособности на рынке Ъ-трушность.

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

при этом драйвер --- это буквально перенос манов в код

Убей себя. А перед этим напиши пару драйверов для чего-то хотя бы сложнее COM-порта.

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

Фееричный бред. Жаба ниже васика. Ада ниже жабаскрипта. руби→перл→питон. Это аже не вброс, это какой-то хаотично сгенерённый граф.

anonymoos ★★★★★
()
Ответ на: C'est la vie... от Bioreactor

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

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

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

Фееричный бред. Жаба ниже васика. Ада ниже жабаскрипта. руби→перл→питон. Это аже не вброс, это какой-то хаотично сгенерённый граф

Так ты читай, что слева написано: «Consider themselves superior to». Это не иерархия крутизны — это иерархия ЧСВ.

fang
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.